{"version":3,"sources":["webpack:///./node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/tinymce/themes/silver/theme.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///../../../src/components/VExpansionPanel/VExpansionPanels.ts","webpack:///../../../../src/components/VColorPicker/util/index.ts","webpack:///../../../src/components/VColorPicker/VColorPickerPreview.ts","webpack:///../../../src/components/VColorPicker/VColorPickerCanvas.ts","webpack:///../../../src/components/VColorPicker/VColorPickerEdit.ts","webpack:///../../src/util/colors.ts","webpack:///../../../src/components/VColorPicker/VColorPickerSwatches.ts","webpack:///../../../src/components/VColorPicker/VColorPicker.ts","webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./node_modules/core-js/internals/function-bind.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/transitionable/index.ts","webpack:///../../../src/components/VAlert/VAlert.ts","webpack:///./node_modules/core-js/modules/es.object.values.js","webpack:///./node_modules/tinymce/plugins/advlist/index.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/core-js/internals/to-index.js","webpack:///./node_modules/core-js/internals/get-substitution.js","webpack:///./node_modules/core-js/internals/string-pad.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/core-js/internals/native-url.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///../../../src/components/VGrid/VFlex.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///./node_modules/core-js/internals/string-repeat.js","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/core-js/internals/same-value.js","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///./node_modules/core-js/modules/es.array.reduce.js","webpack:///./node_modules/core-js/internals/typed-array-from-species-and-list.js","webpack:///./node_modules/core-js/internals/array-copy-within.js","webpack:///./node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack:///../../../src/components/VDialog/VDialog.ts","webpack:///../../../src/mixins/delayable/index.ts","webpack:///./node_modules/core-js/modules/es.typed-array.subarray.js","webpack:///./node_modules/tinymce/langs/fr_FR.js","webpack:///./node_modules/core-js/internals/array-for-each.js","webpack:///../../../src/components/VList/VListItemAction.ts","webpack:///./node_modules/core-js/internals/to-offset.js","webpack:///./node_modules/core-js/modules/es.string.anchor.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///../../../src/components/VList/VListItemGroup.ts","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/a-function.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///../../../src/mixins/routable/index.ts","webpack:///./node_modules/core-js/internals/engine-is-ios.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///../../../src/components/VRating/VRating.ts","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./node_modules/core-js/modules/es.typed-array.sort.js","webpack:///../../../src/mixins/stackable/index.ts","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///../../../src/components/VFileInput/VFileInput.ts","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/tinymce/plugins/lists/plugin.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/axios/lib/defaults.js","webpack:///../../../src/mixins/measurable/index.ts","webpack:///../../../src/components/VSubheader/index.ts","webpack:///./node_modules/core-js/modules/es.string.includes.js","webpack:///./node_modules/core-js/modules/es.typed-array.reduce-right.js","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack:///../../../src/components/VTextField/index.ts","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///./node_modules/core-js/modules/es.typed-array.slice.js","webpack:///../../../src/mixins/loadable/index.ts","webpack:///./node_modules/core-js/internals/iterator-close.js","webpack:///../../../src/components/VToolbar/index.ts","webpack:///./node_modules/core-js/modules/es.math.sign.js","webpack:///./node_modules/vue/dist/vue.runtime.esm.js","webpack:///./node_modules/core-js/modules/es.object.is.js","webpack:///./node_modules/core-js/modules/web.url.js","webpack:///../../../src/components/VAutocomplete/VAutocomplete.ts","webpack:///../../../src/components/VCombobox/VCombobox.ts","webpack:///./node_modules/core-js/modules/es.string.starts-with.js","webpack:///./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createSuper.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/axios/lib/core/createError.js","webpack:///../../../src/components/VSnackbar/VSnackbar.ts","webpack:///../../../src/mixins/picker-button/index.ts","webpack:///../../../src/components/VDatePicker/VDatePickerTitle.ts","webpack:///../../../src/mixins/localable/index.ts","webpack:///../../../../src/components/VDatePicker/util/pad.ts","webpack:///../../../../src/components/VDatePicker/util/createNativeLocaleFormatter.ts","webpack:///../../../../src/components/VDatePicker/util/monthChange.ts","webpack:///../../../src/components/VDatePicker/VDatePickerHeader.ts","webpack:///../../../../src/components/VDatePicker/util/eventHelpers.ts","webpack:///../../../../src/components/VDatePicker/util/sanitizeDateString.ts","webpack:///../../../../src/components/VDatePicker/util/isDateAllowed.ts","webpack:///../../../../src/components/VDatePicker/mixins/date-picker-table.ts","webpack:///../../src/util/dateTimeUtils.ts","webpack:///../../../src/components/VDatePicker/VDatePickerDateTable.ts","webpack:///../../../src/components/VDatePicker/VDatePickerMonthTable.ts","webpack:///../../../src/components/VDatePicker/VDatePickerYears.ts","webpack:///../../../src/components/VPicker/VPicker.ts","webpack:///../../../src/components/VPicker/index.ts","webpack:///../../../src/mixins/picker/index.ts","webpack:///../../../../src/components/VCalendar/util/timestamp.ts","webpack:///../../../src/components/VDatePicker/VDatePicker.ts","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///../../../src/components/VGrid/VSpacer.ts","webpack:///./node_modules/vue-class-component/dist/vue-class-component.esm.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///../../../src/components/VSkeletonLoader/VSkeletonLoader.ts","webpack:///./node_modules/js-levenshtein/index.js","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/components/VMenu/index.ts","webpack:///./node_modules/core-js/modules/es.typed-array.last-index-of.js","webpack:///./node_modules/core-js/modules/es.object.get-prototype-of.js","webpack:///./node_modules/core-js/internals/engine-user-agent.js","webpack:///../../../src/components/VList/VListItemIcon.ts","webpack:///../../../src/components/VChip/index.ts","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack:///./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack:///./node_modules/axios/lib/core/enhanceError.js","webpack:///../../../src/mixins/validatable/index.ts","webpack:///./node_modules/core-js/modules/es.string.repeat.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///../../../src/components/VTooltip/VTooltip.ts","webpack:///../../../src/mixins/applicationable/index.ts","webpack:///./node_modules/core-js/modules/es.typed-array.find-index.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/core-js/modules/es.typed-array.set.js","webpack:///./node_modules/core-js/modules/es.string.iterator.js","webpack:///./node_modules/core-js/modules/es.math.cbrt.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/core-js/modules/es.typed-array.map.js","webpack:///./node_modules/core-js/modules/es.array.unscopables.flat.js","webpack:///./node_modules/core-js/internals/this-number-value.js","webpack:///../../../src/directives/scroll/index.ts","webpack:///../../../src/mixins/scrollable/index.ts","webpack:///../../../src/components/VAppBar/VAppBar.ts","webpack:///./node_modules/core-js/modules/es.array.for-each.js","webpack:///./node_modules/tinymce/plugins/link/index.js","webpack:///./node_modules/core-js/internals/path.js","webpack:///./node_modules/node-libs-browser/mock/process.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/core-js/internals/is-regexp.js","webpack:///./node_modules/core-js/modules/es.array.some.js","webpack:///./node_modules/core-js/modules/es.string.match.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///../../../src/components/VThemeProvider/VThemeProvider.ts","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///./node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/core-js/modules/es.string.trim.js","webpack:///../../../src/components/VExpansionPanel/VExpansionPanelContent.ts","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///../../../src/mixins/activatable/index.ts","webpack:///./node_modules/core-js/modules/es.reflect.construct.js","webpack:///../../../src/components/VForm/VForm.ts","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/core-js/modules/es.string.pad-start.js","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/core-js/internals/array-from.js","webpack:///../../../src/mixins/groupable/index.ts","webpack:///./node_modules/tinymce/plugins/image/index.js","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/core-js/internals/has.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///../../../src/mixins/rippleable/index.ts","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack:///../../../src/components/VFooter/VFooter.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///../../src/util/mixins.ts","webpack:///../../../src/components/VSlider/index.ts","webpack:///../../../src/components/VRangeSlider/VRangeSlider.ts","webpack:///./node_modules/core-js/internals/not-a-regexp.js","webpack:///../../../src/components/VAppBar/VAppBarNavIcon.ts","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/core-js/modules/es.typed-array.uint8-array.js","webpack:///../../../src/components/VList/VListGroup.ts","webpack:///../../../src/components/VList/index.ts","webpack:///./node_modules/axios/lib/helpers/isAxiosError.js","webpack:///./node_modules/core-js/modules/es.typed-array.join.js","webpack:///./node_modules/core-js/internals/string-punycode-to-ascii.js","webpack:///../../../src/components/VItemGroup/VItemGroup.ts","webpack:///./node_modules/core-js/internals/engine-is-node.js","webpack:///./node_modules/vue-property-decorator/lib/vue-property-decorator.js","webpack:///./node_modules/core-js/modules/es.typed-array.iterator.js","webpack:///./node_modules/core-js/internals/object-assign.js","webpack:///./node_modules/core-js/internals/array-buffer.js","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///./node_modules/core-js/modules/es.typed-array.some.js","webpack:///./node_modules/tinymce/plugins/code/index.js","webpack:///./node_modules/vuetify-loader/lib/runtime/installComponents.js","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./node_modules/core-js/internals/redefine.js","webpack:///./node_modules/core-js/internals/object-to-array.js","webpack:///../../../src/components/VAvatar/index.ts","webpack:///./node_modules/core-js/internals/inherit-if-required.js","webpack:///../../../src/components/VTabs/VTab.ts","webpack:///../../../src/components/VToolbar/VToolbar.ts","webpack:///./node_modules/core-js/modules/es.typed-array.to-string.js","webpack:///./node_modules/core-js/modules/es.typed-array.fill.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/core-js/internals/define-well-known-symbol.js","webpack:///../../../src/components/VApp/VApp.ts","webpack:///./node_modules/core-js/internals/typed-array-constructor.js","webpack:///../../../src/mixins/themeable/index.ts","webpack:///../../../src/mixins/detachable/index.ts","webpack:///./node_modules/core-js/internals/ieee754.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///../../src/util/colorUtils.ts","webpack:///./node_modules/tinymce/plugins/paste/plugin.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/core-js/modules/es.array.find.js","webpack:///./node_modules/core-js/internals/define-iterator.js","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///./node_modules/core-js/internals/native-weak-map.js","webpack:///../../src/util/helpers.ts","webpack:///./node_modules/core-js/internals/array-fill.js","webpack:///../../../src/components/VAvatar/VAvatar.ts","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///../../../src/components/VList/VListItemAvatar.ts","webpack:///./node_modules/core-js/modules/es.typed-array.includes.js","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/core-js/modules/es.string.search.js","webpack:///./node_modules/tinymce/plugins/lists/index.js","webpack:///../../../src/mixins/comparable/index.ts","webpack:///./node_modules/core-js/internals/create-html.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///../../../src/components/VCounter/VCounter.ts","webpack:///../../../src/components/VCounter/index.ts","webpack:///../../../src/mixins/intersectable/index.ts","webpack:///../../src/util/dom.ts","webpack:///../../../src/components/VTextField/VTextField.ts","webpack:///../../../src/components/VList/VList.ts","webpack:///./node_modules/tinymce/plugins/advlist/plugin.js","webpack:///./node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/core-js/internals/typed-array-constructors-require-wrappers.js","webpack:///./node_modules/vue-router/dist/vue-router.esm.js","webpack:///../../../src/util/color/transformSRGB.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VData/VData.ts","webpack:///../../../src/components/VDataIterator/VDataFooter.ts","webpack:///../../../src/components/VDataIterator/VDataIterator.ts","webpack:///../../../../src/components/VDataTable/mixins/header.ts","webpack:///../../../src/components/VDataTable/VDataTableHeaderMobile.ts","webpack:///../../../src/components/VDataTable/VDataTableHeaderDesktop.ts","webpack:///../../src/util/dedupeModelListeners.ts","webpack:///../../src/util/rebuildFunctionalSlots.ts","webpack:///../../../src/components/VDataTable/VDataTableHeader.ts","webpack:///../../../src/components/VDataTable/Row.ts","webpack:///../../../src/components/VDataTable/RowGroup.ts","webpack:///../../../src/components/VDataTable/VSimpleTable.ts","webpack:///../../../src/components/VDataTable/MobileRow.ts","webpack:///../../../src/components/VDataTable/VDataTable.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/core-js/internals/regexp-exec.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/@mdi/js/mdi.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/web.url-search-params.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/modules/es.array.concat.js","webpack:///../../../src/components/VCard/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:///./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack:///./node_modules/core-js/internals/string-pad-webkit-bug.js","webpack:///./node_modules/core-js/internals/get-iterator.js","webpack:///./node_modules/core-js/modules/es.typed-array.copy-within.js","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///../../../src/components/VIcon/index.ts","webpack:///../../../src/mixins/bootable/index.ts","webpack:///../../../src/components/VCheckbox/VSimpleCheckbox.ts","webpack:///./node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/core-js/internals/typed-array-from.js","webpack:///./node_modules/core-js/modules/es.array.join.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/directives/click-outside/index.ts","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./node_modules/core-js/modules/es.array.splice.js","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack:///./node_modules/core-js/modules/es.symbol.js","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///./node_modules/core-js/modules/es.array.every.js","webpack:///./node_modules/core-js/modules/es.array.from.js","webpack:///./node_modules/core-js/internals/array-method-is-strict.js","webpack:///./node_modules/core-js/internals/to-integer.js","webpack:///../../../src/components/VGrid/VLayout.ts","webpack:///./node_modules/js-cookie/src/js.cookie.js","webpack:///./node_modules/core-js/modules/es.promise.finally.js","webpack:///../../../src/components/VTextarea/VTextarea.ts","webpack:///./node_modules/core-js/modules/es.typed-array.every.js","webpack:///./node_modules/core-js/internals/array-buffer-native.js","webpack:///../../../src/mixins/colorable/index.ts","webpack:///./node_modules/core-js/modules/es.number.constructor.js","webpack:///../../../src/components/VWindow/VWindow.ts","webpack:///../../../src/components/VTabs/VTabsItems.ts","webpack:///./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./node_modules/core-js/modules/es.regexp.exec.js","webpack:///../../../src/components/VCheckbox/VCheckbox.ts","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/core-js/internals/string-html-forced.js","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/index.ts","webpack:///./node_modules/core-js/internals/object-to-string.js","webpack:///../../../src/components/VCard/VCard.ts","webpack:///./node_modules/core-js/modules/es.function.name.js","webpack:///./node_modules/core-js/modules/es.typed-array.to-locale-string.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/core-js/internals/microtask.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/core-js/modules/es.object.keys.js","webpack:///./node_modules/core-js/modules/es.number.to-fixed.js","webpack:///./node_modules/core-js/internals/array-iteration.js","webpack:///../../../src/components/VSwitch/VSwitch.ts","webpack:///../../../src/components/VDivider/index.ts","webpack:///../../../src/mixins/dependent/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/components/VSelect/VSelectList.ts","webpack:///../../../src/mixins/filterable/index.ts","webpack:///../../../src/components/VSelect/VSelect.ts","webpack:///../../../src/components/VSlider/VSlider.ts","webpack:///../../../src/components/VLabel/VLabel.ts","webpack:///../../../src/components/VLabel/index.ts","webpack:///./node_modules/core-js/internals/freezing.js","webpack:///./node_modules/axios/index.js","webpack:///./node_modules/tinymce/plugins/paste/index.js","webpack:///./node_modules/tinymce/plugins/link/plugin.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/core-js/modules/es.array-buffer.constructor.js","webpack:///./node_modules/core-js/modules/es.typed-array.filter.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///../../../src/components/VMessages/VMessages.ts","webpack:///../../../src/components/VMessages/index.ts","webpack:///../../../src/components/VInput/VInput.ts","webpack:///../../../src/components/VInput/index.ts","webpack:///../../../src/directives/touch/index.ts","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/TinyMCE.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///../../../src/components/VWindow/VWindowItem.ts","webpack:///../../../src/components/VTabs/VTabItem.ts","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/core-js/modules/es.array.find-index.js","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///../../../src/components/VExpansionPanel/VExpansionPanelHeader.ts","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/core-js/internals/string-trim-forced.js","webpack:///./node_modules/core-js/modules/es.string.small.js","webpack:///./node_modules/core-js/modules/es.array.index-of.js","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/Utils.js","webpack:///./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/ScriptLoader.js","webpack:///./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/components/EditorPropTypes.js","webpack:///./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/components/Editor.js","webpack:///./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/index.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/core-js/modules/es.typed-array.reduce.js","webpack:///./node_modules/core-js/modules/es.array.includes.js","webpack:///./node_modules/core-js/modules/es.array.fill.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///../../../src/components/VChip/VChip.ts","webpack:///./node_modules/core-js/modules/es.object.assign.js","webpack:///./node_modules/core-js/modules/es.typed-array.reverse.js","webpack:///../../../src/components/VExpansionPanel/VExpansionPanel.ts","webpack:///./node_modules/tinymce/plugins/image/plugin.js","webpack:///./node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/core-js/internals/set-global.js","webpack:///../../../src/components/VDivider/VDivider.ts","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///../../../src/mixins/ssr-bootable/index.ts","webpack:///./node_modules/core-js/modules/es.typed-array.find.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/core-js/modules/es.symbol.iterator.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/core-js/modules/es.object.to-string.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///./node_modules/core-js/internals/array-reduce.js","webpack:///./node_modules/core-js/modules/es.typed-array.for-each.js","webpack:///./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/core-js/modules/es.array.map.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///../../src/util/console.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/VList/VListItem.ts","webpack:///./node_modules/core-js/internals/global.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack:///../../../src/directives/resize/index.ts","webpack:///./node_modules/core-js/modules/es.object.freeze.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/path-browserify/index.js","webpack:///./node_modules/core-js/modules/es.symbol.description.js","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/core-js/internals/redefine-all.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack:///../../../src/components/VMenu/VMenu.ts","webpack:///../../../src/mixins/mobile/index.ts","webpack:///../../../src/mixins/returnable/index.ts","webpack:///./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack:///./node_modules/tinymce/tinymce.js","webpack:///./node_modules/core-js/internals/array-last-index-of.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/core-js/modules/es.promise.js","webpack:///../../../src/components/VOverlay/VOverlay.ts","webpack:///../../../src/components/VOverlay/index.ts","webpack:///../../../src/mixins/overlayable/index.ts","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///../../../src/components/VGrid/grid.ts","webpack:///./node_modules/core-js/modules/es.typed-array.index-of.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/core-js/internals/array-buffer-view-core.js","webpack:///./node_modules/tinymce/plugins/code/plugin.js","webpack:///./node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/core-js/internals/internal-metadata.js","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///../src/install.ts","webpack:///../../src/locale/en.ts","webpack:///../../../src/presets/default/index.ts","webpack:///../../../src/services/service/index.ts","webpack:///../../../src/services/presets/index.ts","webpack:///../../../src/services/application/index.ts","webpack:///../../../src/services/breakpoint/index.ts","webpack:///../../../src/services/goto/easing-patterns.ts","webpack:///../../../src/services/goto/util.ts","webpack:///../../../src/services/goto/index.ts","webpack:///../../../../src/services/icons/presets/mdi-svg.ts","webpack:///../../../../src/services/icons/presets/md.ts","webpack:///../../../../src/services/icons/presets/mdi.ts","webpack:///../../../../src/services/icons/presets/fa.ts","webpack:///../../../../src/services/icons/presets/fa4.ts","webpack:///../../../../src/services/icons/presets/fa-svg.ts","webpack:///../../../../src/services/icons/presets/index.ts","webpack:///../../../src/services/icons/index.ts","webpack:///../../../src/services/lang/index.ts","webpack:///../../../src/util/color/transformCIELAB.ts","webpack:///../../../src/services/theme/utils.ts","webpack:///../../../src/services/theme/index.ts","webpack:///../src/framework.ts","webpack:///../../../src/mixins/menuable/index.ts","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///../../../src/components/VMain/VMain.ts","webpack:///./node_modules/core-js/internals/math-sign.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///../../../src/components/VNavigationDrawer/VNavigationDrawer.ts","webpack:///./node_modules/core-js/internals/to-positive-integer.js","webpack:///./node_modules/core-js/modules/es.array.slice.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///../../../src/mixins/selectable/index.ts","webpack:///../../../src/components/VSlideGroup/VSlideGroup.ts","webpack:///../../../src/components/VTabs/VTabsBar.ts","webpack:///../../../src/components/VTabs/VTabsSlider.ts","webpack:///../../../src/components/VTabs/VTabs.ts","webpack:///../../../src/mixins/positionable/index.ts","webpack:///./node_modules/core-js/internals/native-promise-constructor.js"],"names":["wellKnownSymbol","TO_STRING_TAG","test","module","exports","String","noop","noarg","f","compose","fa","fb","args","_i","arguments","length","apply","compose1","fbc","fab","a","constant","value","identity","x","curry","fn","initialArgs","restArgs","all","concat","not","t","die","msg","Error","never","always","global$1","tinymce","util","Tools","resolve","__assign","Object","assign","s","i","n","p","prototype","hasOwnProperty","call","this","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__spreadArrays","il","r","Array","k","j","jl","SimpleResultType","none","NONE","eq","o","isNone","thunk","id","me","fold","_s","is","isSome","getOr","getOrThunk","getOrDie","getOrNull","getOrUndefined","undefined","or","orThunk","map","each","bind","exists","forall","filter","equals","equals_","toArray","toString","some","constant_a","self","v","elementEq","b","from","Optional","typeOf","isPrototypeOf","constructor","name","isType","type","isSimpleType","isString","isObject","isArray","isBoolean","isUndefined","isNullable","isNonNullable","isFunction","isNumber","isArrayOf","pred","len","nativeSlice","slice","nativeIndexOf","nativePush","push","rawIndexOf","ts","xs","contains","range","num","chunk","array","size","eachr","partition","pass","fail","arr","foldr","acc","foldl","findUntil","until","find","findIndex","flatten","reverse","difference","a1","a2","mapToObject","sort","comparator","copy","get","head","last","from$1","findMap","_opt","_f","mapError","_","onValue","toOptional","isValue","isError","error","message","opt","onError","fromOption","err","Result","res","stype","serror","svalue","partition$1","results","values","errors","obj","val","map$1","Value","bind$1","bindError","toResult","fromResult","SimpleResult","keys","each$1","props","map$2","tupleMap","tuple","objAcc","internalFilter","onTrue","onFalse","filter$1","mapToArray","find$1","get$1","key","has","hasNonNullableKey","generate","cases","constructors","adt","acase","count","keys$1","argLength","match","branches","branchKeys","join","allReqd","reqKey","foldArgs","target","log","label","console","params","Adt","hasOwnProperty$1","shallow","old","nu","deep","bothObjects","deepMerge","baseMerge","merger","objects","ret","curObject","merge","cached","called","strict","defaultedThunk","asOption","asDefaultedOptionThunk","mergeWithThunk","defaulted","fallback","mergeWith","base","partition$2","bothErrors","firstError","secondError","bothValues","result","exclude","fields","wrap","_a","wrapAll","keyvalues","kv","exclude$1","wrap$1","wrapAll$1","mergeValues","mergeErrors","consolidate","objs","partitions","mergeValues$1","mergeErrors$1","consolidateObj","consolidateArr","ResultCombine","formatObj","input","JSON","stringify","formatErrors","es","path","getErrorInfo","missingStrict","missingKey","missingBranch","branch","unsupportedFields","unsupported","custom","adt$1","field","state","strictAccess","fallbackAccess","fallbackThunk","optionAccess","optionDefaultedAccess","cExtractOne","strength","okey","presence","prop","bundle","av","extract","bundleAsOption","optValue","outcome","ov","baseThunk","instantiator","cExtract","valueThunk","getDelegate","value$1","validator","getSetKeys","objOfOnly","delegate","objOf","fieldNames","extra","fieldStrings","_instantiator","arrOf","oneOf","props_1","setOf","validateKeys","validatedKeys","validKeys","schema","vk","desc","processor","getP","anyValue","arrOfObj","chooseFrom","ch","vp","choose","choice","chosen","_anyValue","arrOfObj$1","objFields","arrOfVal","valueThunkOf","valueOf","setOf$1","errs","asRaw","extraction","errInfo","formatError","asRawOrDie","chooseProcessor","choose$1","thunkOf","anyValue$1","typedValue","expectedType","actualType","number","string","boolean","functionProcessor","isPostMessageable","every","iter","callbackFn","next","done","postMessageable","validateEnum","strict$1","strictOf","strictNumber","strictString","strictStringEnum","strictBoolean","strictFunction","forbid","_v","strictObjOf","objSchema","strictArrayOfObj","strictArrayOf","option","optionOf","optionNumber","optionString","optionFunction","optionArrayOf","optionObjOf","optionObjOfOnly","defaulted$1","defaultedOf","defaultedNumber","defaultedString","defaultedStringEnum","defaultedBoolean","defaultedFunction","defaultedPostMsg","defaultedArrayOf","defaultedObjOf","state$1","Cell","initial","set","fromHtml","html","scope","doc","document","div","createElement","innerHTML","hasChildNodes","childNodes","fromDom","fromTag","tag","node","fromText","text","createTextNode","dom","fromPoint","docElm","y","elementFromPoint","SugarElement","DeviceType","os","browser","userAgent","mediaMatch","isiPad","isiOS","isiPhone","isMobile","isAndroid","isTouch","isTablet","isPhone","iOSwebview","isSafari","isDesktop","isWebView","firstMatch","regexes","find$2","agent","major","minor","group","Number","replace","nu$1","detect","versionRegexes","cleanedAgent","toLowerCase","unknown","Version","detect$1","candidates","candidate","search","detectBrowser","browsers","version","current","detectOs","oses","UaString","checkRange","str","substr","start","contains$1","endsWith","suffix","blank","trim","normalVersionRegex","checkContains","uastring","PlatformInfo","edge","chrome","ie","opera","firefox","safari","unknown$1","nu$2","info","isBrowser","isEdge","isChrome","isIE","isOpera","isFirefox","Browser","windows","ios","android","linux","osx","solaris","freebsd","chromeos","unknown$2","nu$3","isOS","isWindows","isOSX","isLinux","isSolaris","isFreeBSD","isChromeOS","OperatingSystem","detect$2","deviceType","PlatformDetection","query","window","matchMedia","matches","platform","navigator","detect$3","compareDocumentPosition","documentPositionContainedBy","Node","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT","DOCUMENT_FRAGMENT","ELEMENT","TEXT","element","selector","nodeType","elem","msMatchesSelector","webkitMatchesSelector","mozMatchesSelector","bypassSelector","childElementCount","querySelectorAll","one","querySelector","eq$1","e1","e2","regularContains","d1","d2","ieContains","contains$2","ensureIsRoot","isRoot","ancestor","transform","stop","parentNode","el","transformed","closest","isSource","component","simulatedEvent","event","nu$4","parts","all$1","handlers","handler","any","read","can","abort","run","fuse","constant$1","touchstart","touchmove","touchend","touchcancel","mousedown","mousemove","mouseout","mouseup","mouseover","focusin","focusout","keydown","keyup","change","click","transitionend","selectstart","prefixName","alloy","tap","focus","postBlur","postPaste","receive","execute","focusItem","longpress","sandboxClose","typeaheadCancel","systemInit","documentTouchmove","documentTouchend","windowScroll","windowResize","attachedToDom","detachedFromDom","dismissRequested","repositionRequested","focusShifted","slotVisibility","changeTab","dismissTab","highlight","dehighlight","emit","dispatchWith","emitWith","properties","emitExecute","dispatch","data","getSystem","triggerEvent","dispatchEvent","derive","configs","predicate","preventDefault","prevent","runActionExtra","action","runOnName","runOnSourceName","redirectToUid","uid","getByUid","redirectee","redirectToPart","detail","partName","partUids","runWithTarget","ev","getByDom","closest$1","c","cutter","cut","stopper","runOnSource","runOnAttached","runOnDetached","runOnInit","runOnExecute","Function","nodeName","isType$1","isElement","isText","isDocument","isDocumentFragment","owner","ownerDocument","documentOrOwner","dos","documentElement","defaultView","parent","offsetParent","nextSibling","children","child","index","cs","firstChild","isShadowRoot","host","supported","Element","attachShadow","getRootNode","isSupported","getContentContainer","body","isInShadowRoot","getShadowRoot","getShadowHost","getOriginalEventTarget","isOpenShadowHost","composed","composedPath","shadowRoot","before","marker","parent$1","insertBefore","after","sibling","append","prepend","firstChild$1","appendChild","appendAt","before$1","elements","append$1","empty","textContent","rogue","remove","removeChild","unwrap","wrapper","children$1","fromHtml$1","get$2","content","owner$1","docDom","fragment","createDocumentFragment","contentElements","getOuter","container","clone","cloneNode","rawSet","setAttribute","set$1","setAll","attrs","get$3","getAttribute","getOpt","has$1","hasAttribute","remove$1","removeAttribute","original","isDeep","shallow$1","getHtml","isRecursive","originator","events","warn","DefaultEvents","freeze","__proto__","unique","generate$1","prefix","date","Date","time","getTime","random","Math","floor","idAttr","prefix$1","idAttr$1","write","writeOnly","defineProperty","writable","read$1","generate$2","make","NoContextApi","getComp","debugInfo","triggerFocus","triggerEscape","build","addToWorld","removeFromWorld","addToGui","removeFromGui","broadcast","broadcastOn","broadcastEvent","isConnected","singleton","markAsBehaviourApi","apiName","apiFunction","endIndex","openBracketIndex","parameters","substring","split","toFunctionAnnotation","cleanParameters","markAsExtraApi","extraName","markAsSketchApi","premadeTag","premade","comp","getPremade","spec","makeApi","rest","getApis","NoState","init","nu$5","readState","generateFrom","validated","behaviours","list","optBlobThunk","output","blob","config","getBehaviours","bData","getData","byInnerKey","indexKey","chain","nu$6","classes","attributes","styles","merge$1","defnA","mod","combine","baseMod","modsByBehaviour","behaviour","exhibit","byAspect","modification","combineObjects","combinedClasses","combinedAttributes","combinedStyles","sortKeys","keyName","order","sorted","aKey","bKey","aIndex","bIndex","uncurried","purpose","curried","cHandler","curryArgs","descHandler","extraArgs","getCurried","behaviourTuple","nameToHandlers","groupByEvents","behaviourEvents","combine$1","eventOrder","byEventName","combineGroups","assemble","rawHandler","missingOrderError","eventName","tuples","fuse$1","sortedTuples","combined","assembled","baseBehaviour","toInfo","toDefinition","domChildren","components","toModification","domModification","toEvents","read$2","attr","add","remove$2","supports","classList","get$4","add$1","clazz","remove$3","add$2","cleanClass","remove$4","has$2","add$3","remove$5","isSupported$1","style","getPropertyValue","inBody","getBody","internalSet","property","setProperty","internalRemove","removeProperty","set$2","setAll$1","css","setOptions","get$5","getComputedStyle","getUnsafeProperty","getRaw","raw","getAllRaw","ruleName","item","isValidValue","remove$6","reflow","offsetWidth","get$6","set$3","renderToDom","definition","subject","innerHtml","getBehaviours$1","generateFrom$1","generate$3","getDomDefinition","bList","infoModification","baseModification","getEvents","baseEvents","getMe","systemApi","bBlob","modDefinition","subcomponents","connect","newApi","disconnect","syncComponents","subs","hasConfigured","apis","behaviourName","buildSubcomponents","build$1","buildFromSpec","userSpec","specEvents","completeSpec","external","extSpec","uids","userSpecWithUid","prebuilt","premade$1","Dimension","getOffset","h","parseFloat","aggregate","parseInt","isNaN","max","cumulativeInclusions","absoluteMax","api","getBoundingClientRect","height","offsetHeight","get$7","getOuter$1","setMax","inclusions","absMax","left","top","translate","SugarPosition","boxPosition","box","firstDefinedOrZero","absolute","win","offsetLeft","offsetTop","scrollTop","pageYOffset","scrollLeft","pageXOffset","clientTop","clientLeft","viewport","api$1","set$4","get$8","getOuter$2","setMax$1","mkEvent","kill","fromRawEvent","rawEvent","stopPropagation","clientX","clientY","handle","binder","useCapture","wrapped","addEventListener","unbind","bind$2","capture","removeEventListener","get$9","_DOC","to","scrollTo","get$a","_win","bounds","width","right","bottom","getBounds","scroll","clientWidth","clientHeight","visualViewport","pageLeft","pageTop","walkUp","navigation","frame","view","pathTo","d","paths","frameElement","Navigation","find$3","frames","offset","loc","pointed","point","rect","bounds$1","xy","w","absolute$1","position","ClosestOrAncestor","EventConfiguration","ancestor$1","descendant","descend","child_1","closest$2","ancestor$2","descendant$1","closest$3","is$1","find$4","queryElem","dependent","dep","manager","ariaId","link","unlink","isAriaPartOf","isPartOf","unknown$3","AttributeValue","eventConfig","makeEventLogger","initialTarget","sequence","startTime","logEventCut","_name","logEventStopped","logNoParent","logEventNoHandlers","logEventResponse","finishTime","processEvent","status","patterns","NORMAL","noLogger","LOGGING","logger","STOP","getTrace","stack","lines","line","ignoreEvent","monitorEvent","menuFields","itemFields","itemSchema","_initSize","itemMarkers","tieredMenuMarkers","markers","required","onPresenceHandler","fieldName","onHandler","onKeyboardHandler","onStrictHandler","onStrictKeyboardHandler","snapshot","initSize","nu$7","bubble","direction","boundsRestriction","adt$2","southeast","southwest","northeast","northwest","south","north","east","west","cata","cataVertical","middle","cataHorizontal","getRestriction","anchor","restriction","restrictions","dir","adjustBounds","boundsRestrictions","bubbleOffsets","applyRestriction","bubbleOffset","adjustedLeft","adjustedTop","adjustedRight","adjustedBottom","eastX","middleX","westX","northY","southY","centreY","eastEdgeX","westEdgeX","southeast$1","bubbles","southwest$1","northeast$1","northwest$1","north$1","south$1","east$1","west$1","all$2","allRtl","aboveOrBelow","aboveOrBelowRtl","belowOrAbove","belowOrAboveRtl","chooseChannels","channels","universal","events$1","receiveConfig","channelMap","receivingData","targetChannels","channelInfo","channelSchema","onReceive","ActiveReceiving","ReceivingSchema","executeEvent","bConfig","bState","executor","loadEvent","_simulatedEvent","create","active","configSchema","schemaSchema","doCreate","createModes","modes","wrapApi","bName","revokeBehaviour","getConfig","wrappedApis","apiF","wrappedExtra","extraF","revoke","prepared","configAsRaw","initialConfig","behaviourInfo","exhibitor","derive$1","capabilities","simpleSchema","create$1","modeSchema","createModes$1","branchKey","Receiving","posConfig","useFixed","ActivePosition","getDocument","focus$1","blur","hasFocus","root","activeElement","preserve","refocus","focused","oldFocus","newFocus","NuPositionCss","applyPositionCss","addPx","adt$3","relative","fixed","positionWithDirection","posName","decision","decisionX","decisionY","decisionWidth","decisionHeight","decisionRight","decisionBottom","reposition","origin","toBox","rel","viewport$1","pos","removeScroll","outerScroll","cata$1","onNone","onRelative","onFixed","anchorBox","box$1","cycleBy","delta","min","clamp","adt$4","fit","nofit","calcReposition","newX","newY","boundsX","boundsY","boundsWidth","boundsHeight","xInBounds","yInBounds","originInBounds","xFit","yFit","sizeInBounds","deltaW","abs","deltaH","maxX","maxY","limitX","limitY","attempt","candidateX","candidateY","bubbleLeft","bubbleTop","adjustedBounds","boundsBottom","boundsRight","upAvailable","downAvailable","maxHeight","westAvailable","eastAvailable","maxWidth","on","classesOn","off","classesOff","candidateYforTest","attempts","elementBox","panelWidth","panelHeight","attemptBestFit","layout","attemptLayout","newReposition","newDeltaW","newDeltaH","improved","abc","bestNext","elementSize","options","preference","setClasses","classInfo","setHeight","maxHeightFunction","setWidth","maxWidthFunction","setMaxHeight","anchored","available","expandable","defaultOr","dephault","simple","layouts","overrideOptions","go","allAlignments","nu$8","yoffset","getClasses","xDelta","yDelta","alignmentsOn","alignmentsOff","innerNorthwest","innerNortheast","innerNorth","innerSouthwest","innerSoutheast","innerSouth","innerWest","innerEast","nu$9","onDirection","isLtr","isRtl","getDirection","FocusInsideModes","Attribute","isBottomToTopDir","BottomToTop","schema$1","get$b","defaultLtr","defaultRtl","defaultBottomLtr","defaultBottomRtl","dirElement","isBottomToTop","customLtr","ls","onLtr","customRtl","onRtl","ltr","onBottomLtr","rtl","onBottomRtl","placement","anchorInfo","hotspot","overrides","placer","HotspotAnchor","placement$1","MakeshiftAnchor","adt$5","screen","toFixed","toAbsolute","sum","points","sumAsFixed","positions","sumAsAbsolute","absolute$2","hasSameOwner","frameOwner","compOwner","getRootPoint","capRect","newLeft","newTop","newWidth","newHeight","calcNewAnchor","optBox","rootPoint","topLeft","layoutsLtr","showAbove","layoutsRtl","placement$2","nodeBox","NodeAnchor","zeroWidth","nbsp","create$2","soffset","finish","foffset","SimRange","adt$6","cata$2","onBefore","onOn","onAfter","getStart","situ","before$2","after$1","Situ","adt$7","domRange","exact","exactFromRange","simRange","getStart$1","selection","rng","startContainer","startSitu","_finishSitu","_soffset","_finish","_foffset","relative$1","getWin","range$1","SimSelection","setStart","setStartBefore","setStartAfter","setFinish","setEndBefore","setEnd","setEndAfter","relativeToNative","finishSitu","createRange","exactToNative","toRect","getFirstRect","rects","getClientRects","adt$8","fromRange","startOffset","endContainer","endOffset","getRanges","doDiagnose","ranges","collapsed","reversed","rev","diagnose","asLtrRange","diagnosis","NodeValue","getOption","nodeValue","api$2","get$c","getEnd","isTextNodeWithCursorPosition","elementsWithCursorPosition","isCursorPosition","hasCursorPosition","last$1","descendantRtl","descendants","makeRange","after$2","same","getNativeSelection","getSelection","readRange","rangeCount","firstRng","getRangeAt","lastRng","doGetExact","anchorNode","focusNode","focus_1","anchorOffset","focusOffset","getExact","sel","getFirstRect$1","descendOnce","descendOnce$1","getAnchorSelection","modStart","modFinish","placement$3","selectionBox","optRect","rawRect","targetElement","SelectionAnchor","eastX$1","westX$1","northY$1","southY$1","southeast$2","southwest$2","northeast$2","northwest$2","all$3","allRtl$1","placement$4","submenuInfo","SubmenuAnchor","AnchorSchema","submenu","makeshift","getFixedOrigin","getRelativeOrigin","place","anchoring","placee","position$1","posState","positionWithin","boxElement","boundsBox","positionWithinBounds","anchorage","oldVisibility","doPlace","vis","getMode","pConfig","_pState","PositionApis","PositionSchema","Positioning","fireDetaching","fireAttaching","attach","detachChildren","childComp","replaceChildren","newChildren","deleted","attach$1","attachWith","insertion","doDetach","detach","detachChildren$1","attachSystem","guiSystem","attachSystemWith","attachSystemAfter","inserter","detachSystem","rebuild","sandbox","sConfig","sState","_data","getAttachPoint","built","open","newState","onOpen","setContent","openWhileCloaked","transaction","cloak","decloak","close","onClose","clear","isOpen","_sandbox","_sConfig","isPartOf$1","getState","store","cssKey","newValue","restore","oldValue","_sState","sink","cloakVisibilityAttr","hasPosition","SandboxApis","events$2","sandboxConfig","sandboxState","ActiveSandbox","SandboxSchema","contents","SandboxState","Sandboxing","dismissPopups","repositionPopups","mouseReleased","schema$2","receivingChannel","rawSpec","isPart","isExtraPart","fireEventInstead","fe","schema$3","receivingChannel$1","doReposition","onLoad","repConfig","repState","onUnload","setValue","getValue","getState$1","RepresentApis","events$3","resetOnDom","_se","ActiveRepresenting","memory","mode","isNotSet","manual","dataset","dataByValue","dataByText","lookup","itemString","update","items","currentDataByValue","currentDataByText","newDataByValue","newDataByText","meta","init$1","RepresentState","setValue$1","onSetValue","getValue$1","getDataKey","getFallbackEntry","onLoad$1","initialValue","onUnload$1","DatasetStore","getValue$2","_repState","setValue$2","onLoad$2","ManualStore","setValue$3","getValue$3","onLoad$3","initVal","onUnload$2","MemoryStore","RepresentSchema","Representing","setValueFrom","source","field$1","forbidden","get$d","dump","augment","SketchBehaviours","_placeholder","adt$9","single","multiple","isSubstituted","subPlaceholder","compSpec","placeholders","newSpec","scan","uiType","substitute","req","childSpecs","substituted","valuesThunk","preprocessor","preprocess","substituteAll","oneReplace","replacements","used","substitutePlaces","ps","ph","placeholder","adt$a","optional","fFactory","sketch","fSchema","fName","fPname","typeSpec","fGroupSchema","fDefaults","fOverrides","requiredSpec","externalSpec","optionalSpec","groupSpec","asNamedPart","part","name$1","asCommon","convert","adtConstructor","partSchema","external$1","PartType","combine$2","partSpec","partValidated","defaults","internals","externals","pname","factory","_partSpec","_partValidated","units","u","generate$4","np","g","doGenerateOne","generateOne","schemas","names","substitutes","getPart","partKey","getPartOrDie","getParts","partKeys","system","pk","getAllParts","pUid","_k","getAllPartNames","getPartsOrDie","defaultUids","baseUid","partTypes","partNames","pn","defaultUidsSchema","AlloyParts","partSchemas","partUidsSchemas","asRawOrDie$1","baseS","single$1","specWithUid","supplyUid","composite","partUidsSchema","components$1","hasUid","isSketchSpec","singleSchema","compositeSchema","single$2","rawConfig","configFields","extraApis","composite$1","partFields","cat","lift2","oa","ob","lift3","oc","mapFrom","someIf","inside","getCurrent","composeConfig","_composeState","ComposeApis","ComposeSchema","Composing","dehighlightAllExcept","hConfig","hState","skip","highlighted","highlightClass","skipComp","onDehighlight","dehighlightAll","dehighlight$1","isHighlighted","highlight$1","onHighlight","highlightFirst","getFirst","firstComp","highlightLast","getLast","lastComp","highlightAt","getByIndex","highlightBy","getCandidates","targetComp","queryTarget","getHighlighted","_hState","itemClass","getDelta","selected","dest","getPrevious","getNext","HighlightApis","HighlightSchema","Highlighting","BACKSPACE","TAB","ENTER","ESCAPE","SPACE","LEFT","UP","RIGHT","DOWN","cyclePrev","tryPrev","cycleNext","tryNext","inSet","which","and","preds","isShift","shiftKey","isControl","ctrlKey","isNotShift","rule","classification","choose$2","transitions","transition","reportFocusShifting","prevFocus","noChange","focusee","highlights","typical","infoSchema","stateInit","getKeydownRules","getKeyupRules","optFocusIn","processKey","getRules","keyingConfig","keyingState","rules","onFocusHandler","focusInside","OnFocusMode","focusIn","tryGoInsideComponent","isEnterOrSpace","OnEnterOrSpaceMode","keyboardEvents","create$3","cyclicField","isVisible","tabbingConfig","visibilitySelector","findInitial","tabstops","visibles","firstTabstop","findCurrent","focusManager","isTabstop","useTabstopAt","_tabbingState","goFromTabstop","stopIndex","cycle","cyclic","tabstop","optStopIndex","goBackwards","navigate","goForwards","onEnter","exit","onEscape","AcyclicType","CyclicType","doDefaultExecute","defaultExecute","isComplex","stopEventForFirefox","_component","schema$4","execute$1","executeConfig","_executeState","spaceExec","useSpace","enterExec","useEnter","downExec","useDown","execKeys","useControlEnter","ExecutionType","flatgrid","dimensions","setGridSize","numRows","numColumns","getNumRows","getNumColumns","init$2","KeyingState","useH","movement","move","use","west$2","moveLeft","moveRight","east$2","useV","north$2","south$2","isHidden","locate","locateVisible","visible","findIndex$1","withGrid","numCols","oldRow","oldColumn","address","newIndex","row","column","cycleHorizontal","onLastRow","colsInRow","newColumn","cycleVertical","newRow","newCol","cycleRight","cycleLeft","cycleUp","cycleDown","schema$5","gridConfig","_gridState","first","execute$2","doMove","gridState","identified","handleTab","captureTab","doEscape","moveNorth","moveSouth","getKeydownRules$1","getKeyupRules$1","FlatgridType","horizontal","isDisabledButton","tryCycle","schema$6","findCurrent$1","flowConfig","execute$3","focusIn$1","_state","getInitial","moveLeft$1","moveRight$1","doMove$1","flowState","executeOnMove","doEscape$1","getKeydownRules$2","_flowState","westMovers","allowVertical","eastMovers","getKeyupRules$2","FlowType","toCell","matrix","rowIndex","columnIndex","cell","cycleHorizontal$1","startCol","deltaCol","newColIndex","cycleVertical$1","colIndex","startRow","deltaRow","nextRowIndex","colsInNextRow","nextColIndex","moveHorizontal","moveVertical","cycleRight$1","cycleLeft$1","cycleUp$1","cycleDown$1","moveLeft$2","moveRight$2","moveUp","moveDown","schema$7","focusIn$2","matrixConfig","previousSelector","selectors","execute$4","toMatrix","rows","doMove$2","ifCycle","ifMove","cycles","inRow","cellsInRow","allRows","moveLeft$3","moveRight$3","moveNorth$1","moveSouth$1","getKeydownRules$3","getKeyupRules$3","MatrixType","schema$8","execute$5","menuConfig","focusIn$3","moveUp$1","moveDown$1","fireShiftTab","menuState","moveOnTab","fireTab","getKeydownRules$4","getKeyupRules$4","MenuType","schema$9","getKeydownRules$5","specialInfo","onSpace","onShiftEnter","onShiftTab","onTab","onUp","onDown","onLeft","onRight","getKeyupRules$5","stopSpaceKeyup","SpecialType","acyclic","flow","flatgrid$1","execution","menu","special","KeyboardBranches","isFlatgridState","keyState","Keying","keyConfig","sendFocusIn","set$5","replaceConfig","replaceState","insert","childSpec","append$2","appendee","prepend$1","prependee","remove$7","removee","foundChild","_replaceConfig","replaceAt","replaceeIndex","replacer","replacee","replaceBy","replaceePred","ReplaceApis","Replacing","events$4","eventHandlers","focus$2","focusConfig","ignore","onFocus","blur$1","isFocused","FocusApis","exhibit$1","tabindex","events$5","stopMousedown","ActiveFocus","FocusSchema","Focusing","SetupBehaviourCellState","initialState","updateAriaState","toggleConfig","toggleState","ariaInfo","aria","updateClass","toggleClass","toggle","set$6","on$1","isOn","onLoad$4","ToggleApis","exhibit$2","events$6","load","toggleOnExecute","ActiveToggle","updatePressed","syncWithExpanded","updateExpanded","updateSelected","updateChecked","ToggleSchema","pressed","checked","expanded","Toggling","pointerEvents","onClick","events$7","optAction","executeHandler","hoverEvent","focusEvent","onHover","hover","focus$3","builder","toggling","hasSubmenu","itemBehaviours","tConfig","ignoreFocus","schema$a","builder$1","schema$b","owner$2","builder$2","focusWidget","widget","onHorizontalArrow","autofocus","setSource","_widget","widgetBehaviours","schema$c","itemSchema$1","separator","configureGrid","movementInfo","configureMatrix","rowSelector","configureMenu","parts$1","itemInfo","unit","fakeFocus","schema$d","grid","focus$4","make$1","_spec","_externals","menuBehaviours","selectedItem","role","Menu","transpose","trace","byItem","byMenu","triggerItem","triggerMenu","generate$5","menus","expansions","menuItems","menuPaths","_triggerItem","init$3","primary","directory","isClear","setMenuBuilt","menuName","setContents","sPrimary","sMenus","sExpansions","sPaths","getTriggeringItem","menuValue","getTriggerData","getItemByValue","getPreparedMenu","triggeringItemValue","triggeredItem","triggeredMenu","triggeringItem","triggeringPath","getTriggeringPath","itemValue","extraPath","lookupItem","revPath","triggers","menuIndex","expand","collapse","refresh","lookupMenu","extractPreparedMenu","otherMenus","menuValues","getPrimary","getMenus","prep","LayeredState","make$2","_rawUiSpec","ExpandHighlightDecision","submenuParentItems","buildMenus","primaryName","makeSketch","nbMenu","layeredState","setup","componentMap","toDirectory","getItemValue","_container","_menuName","setActiveMenu","mv","closeOthers","others","backgroundMenu","stayInDom","getSubmenuParents","parentItems","itemComp","updateAriaExpansions","updateMenuPath","latestMenuName","menuPrep","activeMenu","buildIfRequired","expandRight","HighlightSubmenu","activeMenuPrep","onOpenSubmenu","collapseLeft","onCollapseMenu","updateView","keyOnItem","getSource","onExecute","onOpenMenu","highlightImmediately","navigateOnHover","HighlightParent","getActiveItem","collapseMenuApi","currentItem","highlightPrimary","extractMenuFromContainer","repositionMenus","maybeActivePrimary","allMenus","preparedMenus","primaryMenu","onRepositionMenu","collapseMenu","tmenuBehaviours","_keyInfo","selectedMenu","collapseItem","tieredData","singleData","collapseItem$1","tieredMenu","tmenu","makeMenu","menuSandbox","menuSpec","lazySink","isFirstTierSubmenu","triggeringPaths","getSubmenuLayouts","submenuTriggers","st","submenuLayouts","isPartOfRelated","related","getRelated","thing","showAt","showWithin","showWithinBounds","showMenuAt","showMenuWithinBounds","hide","getContent","inlineBehaviours","onShow","onHide","fireDismissalEventInstead","fireRepositionEventInstead","InlineView","westEdgeX$1","middleX$1","eastEdgeX$1","northY$2","southY$2","southeast$3","southwest$3","northeast$3","northwest$3","north$3","south$3","global$2","factory$1","lookupAttr","getModAttributes","roleAttrs","buttonBehaviours","Button","record","anyInSystem","asSpec","defaultIcon","icons","get$e","getFirst$1","notificationIconMap","success","warning","factory$2","memBannerText","translationProvider","renderPercentBar","percent","renderPercentText","memBannerProgress","progress","updateProgress","updateText","text$1","banner","iconChoices","icon","level","memButton","iconProvider","onAction","closeButton","Notification","NotificationManagerImpl","editor","extras","uiMothership","backstage","getLayoutDirection","prePositionNotifications","notifications","notification","moveTo","positionNotifications","firstItem","moveRel","getEl","settings","closeCallback","hideCloseButton","timeout","notificationWrapper","progressBar","shared","providers","getSink","header","isPositionedAtTop","setTimeout","layoutDirection_1","nodeAnchor","anchors","nuText","getArgs","ItemResponse","rate","timer","cancel","clearTimeout","throttle","last$2","global$3","isBoundary","isBlock","getContentEditable","repeatLeft","process","rootNode","backwards","autocompleteSelector","create$4","detect$4","getNode","getDoc","extractContents","insertNode","elm","normalize","setCursorLocation","isValidTextRange","getText","isWhitespace","chr","stripTriggerChar","triggerCh","findChar","char","charAt","findStart","initRange","minChars","findTriggerChIndex","getParent","getRoot","spot","cloneRange","triggerCharIndex","lastIndexOf","triggerChar","getContext","createRng","selectNode","onKeypress","redirectKeyToItem","getItem","getView","isActive","cancelIfNecessary","isMenuOpen","stopImmediatePropagation","isProcessingAction","AutocompleterEditorEvents","global$4","point$1","isText$1","isElement$1","toLast","toLeaf","isPreviousCharContent","leaf","isStartOfWord","getTriggerContext","database","triggerChars","getDatabase","getRng","context","lookupWithContext","fetchOptions","startText","autocompleters","lookupByChar","autocompleter","lookupData","ac","fetchResult","fetch","maxResults","then","matchText","columns","highlightOn","separatorMenuItemSchema","createSeparatorMenuItem","autocompleterItemSchema","autocompleterSchema","createSeparatorItem","createAutocompleterItem","createAutocompleter","baseToolbarButtonFields","toolbarButtonSchema","createToolbarButton","baseToolbarToggleButtonFields","toggleButtonSchema","createToggleButton","contextBarFields","contextButtonFields","contextToggleButtonFields","launchButtonFields","launchToggleButtonFields","toggleOrNormal","contextformbutton","contextformtogglebutton","contextFormSchema","createContextForm","contextToolbarSchema","createContextToolbar","stringArray","register","popups","ui","registry","getAll","popup","datasetValues","dv","ToolbarMode","ItemResponse$1","navClass","selectableClass","colorClass","presetClasses","normal","color","tickedClass","groupHeadingClass","iconClass","textClass","accessoryClass","caretClass","checkmarkClass","activeClass","iconClassRtl","containerClass","containerColumnClass","containerRowClass","containerAlignRightClass","containerAlignLeftClass","containerValignTopClass","containerValignMiddleClass","containerValignBottomClass","classForPreset","presets","forMenu","hasIcons","markers$1","menuClasses","dom$1","chunk$1","rowDom","chunks","forSwatch","forToolbar","preprocessCollection","isSeparator","allSplits","currentSplit","forCollection","initItems","_hasIcons","_item","forHorizontalCollection","menuHasIcons","handleError","createHorizontalPartialMenuWithAlloyItems","_columns","_presets","structure","createPartialMenuWithAlloyItems","cardImageFields","cardImageSchema","cardTextFields","cardTextSchema","itemSchema$2","cardimage","cardtext","cardcontainer","cardContainerSchema","commonMenuItemFields","cardMenuItemSchema","createCardMenuItem","choiceMenuItemSchema","createChoiceMenuItem","fancyTypes","fancyMenuItemSchema","createFancyMenuItem","menuItemSchema","createMenuItem","nestedMenuItemSchema","createNestedMenuItem","toggleMenuItemSchema","createToggleMenuItem","detectSize","margin","selectorClass","descendants$1","columnLength","thisTop","cTop","ceil","namedEvents","unnamedEvents","SimpleBehaviours","ExclusivityChannel","ShowTooltipEvent","HideTooltipEvent","hideAllExclusive","_tConfig","_tState","setComponents","tState","specs","getTooltip","tooltip","TooltippingApis","events$8","tooltipConfig","clearTooltip","clearTimer","show","isShowing","tooltipDom","tooltipComponents","setTooltip","resetTimer","delay","ActiveTooltipping","TooltippingSchema","init$4","TooltippingState","Tooltipping","escape","global$5","global$6","nativeDisabled","onLoad$5","disableConfig","disableState","disabled","disable","enable","hasNative","useNative","nativeIsDisabled","nativeDisable","nativeEnable","ariaIsDisabled","ariaDisable","ariaEnable","_disableState","disableClass","onDisabled","onEnabled","isDisabled","set$7","DisableApis","exhibit$3","events$9","ActiveDisable","DisableSchema","Disabling","global$7","getSkinUrl","skin","getParam","skinUrl","skinName","documentBaseURI","baseURL","isReadOnly","isSkinDisabled","getHeightSetting","getElement","getWidthSetting","DOM","getStyle","getMinWidthSetting","getMinHeightSetting","getMaxWidthSetting","getMaxHeightSetting","getUserStyleFormats","isMergeStyleFormats","getLineHeightFormats","getRemovedMenuItems","isMenubarEnabled","isToolbarEnabled","toolbar","isToolbarTrue","isToolbarString","isToolbarObjectArray","isMultipleToolbars","getMultipleToolbarsSetting","toolbars","toolbarArray","ToolbarLocation","getToolbarMode","getToolbarGroups","getToolbarLocation","auto","isToolbarLocationBottom","fixedContainerSelector","isToolbarPersist","fixedContainerElement","inline","useFixedContainer","getUiContainer","fixedContainer","isDistractionFree","isStickyToolbar","isDraggableModal","getMenubar","getToolbar","getFilePickerCallback","getFilePickerTypes","getFileBrowserCallbackTypes","noTypeaheadUrls","getAnchorTop","getAnchorBottom","getFilePickerValidatorHandler","ReadOnlyChannel","ReadOnlyDataSchema","broadcastReadonly","uiComponents","readonly","outerContainer","mothership","setupReadonlyModeSwitch","setMode","receivingConfig","button","splitButton","toolbarButton","DisablingConfigs","runWithApi","getApi","onControlAttached","editorOffCell","onDestroy","onSetup","onControlDetached","onMenuItemExecute","itemResponse","triggersSubmenu","CLOSE_ON_EXECUTE","menuItemEventOrder","componentRenderPipeline","renderCommonItem","providersbackstage","optComponents","buildData","global$8","convertText","mac","alt","ctrl","shift","access","other","shortcut","updated","segment","renderIcon","iconHtml","renderText","renderHtml","renderStyledText","renderShortcut","renderCheckmark","renderSubmenuCaret","renderDownwardsCaret","renderContainer","directionClass","alignClass","align","getValignClass","valign","renderImage","src","renderColorStructure","itemText","iconSvg","providerBackstage","colorPickerCommand","removeColorCommand","getDom","common","title","baseDom","renderItemDomStructure","rtlClass","ariaLabel","domTitle","renderNormalItemStructure","renderIcons","textRender","leftIcon","checkmark","checkMark","htmlContent","menuItem","shortcutContent","caret","rtlIcon","rtlTransform","renderItemStructure","providersBackstage","fallbackIcon","getIconName","iconName","needRtlClass","iconContent","tooltipBehaviour","sharedBackstage","tooltipWorker","_tooltip","encodeText","encode","replaceText","translated","encoded","escapedMatchRegex","RegExp","renderAutocompleteItem","useText","onItemValueHandler","_api","render","shouldHighlight","cardText","renderCardMenuItem","setDisabled","renderChoiceItem","isSelected","setActive","parts$2","hexColour","shorthandRegex","longformRegex","isHexString","hex","getLongForm","hexString","m","extractValues","longForm","splitForm","exec","toHex","fromRgba","rgbaColour","red","green","blue","round","rgbRegex","rgbaRegex","alpha","isRgbaComponent","fromHsv","hsv","hue","saturation","brightness","side","chroma","fromHex","fromStringValues","fromString","rgbaString","rgbMatch","rgbaMatch","rgba","fireSkinLoaded","fire","fireSkinLoadError","fireResizeEditor","fireResizeContent","fireScrollContent","fireTextColorChange","global$9","storageName","ColorCache","storageString","localstorage","parse","prune","diff","cache","unshift","pop","setItem","idx","splice","FocusMode","choiceItem","defaultColors","colorCache","mapColors","colorMap","colors","canvas","ctx","byteAsHex","colorByte","alphaByte","bg","colorByteWithWhiteBg","toUpperCase","asHexColor","clearRect","fillStyle","fillRect","getImageData","getColorCols","defaultCols","hasCustomColors","getColorMap","getColors","unmapped","getCurrentColors","addColor","getCurrentColor","format","getParents","applyFormat","undoManager","transact","formatter","nodeChanged","removeFormat","registerCommands","addCommand","calcCols","sqrt","getColorCols$1","getAdditionalColors","hasCustom","applyColor","onChoice","dialog","colorPickerDialog","colorOpt","execCommand","getColors$1","getFetch","callback","setIconColor","splitButtonApi","newColor","setIconFillAndStroke","pathId","setIconFill","setIconStroke","registerTextColorButton","lastColor","addSplitButton","select","optCurrentRgb","currentRgb","currentHex","_splitButtonApi","onItemAction","registerTextColorMenuItem","addNestedMenuItem","getSubmenuItems","fancytype","getOnSubmit","colorpicker","details","initialData","submit","windowManager","buttons","onSubmit","onCancel","register$1","lastForeColor","lastBackColor","createPartialChoiceMenu","presetItemTypes","alloyItems","createChoiceItems","itemPresets","deriveMenuMovement","menuMarkers","rowClass","deriveCollectionMovement","renderColorSwatchItem","colorinput","widgetSpec","cellOverEvent","cellExecuteEvent","makeCell","col","labelId","emitCellOver","se","makeCells","cells","selectCells","selectedRow","selectedColumn","makeComponents","cellRow","makeLabelText","renderInsertTableMenuItem","sizeLabelId","memLabel","fancyMenuItems","inserttable","colorswatch","valueOpt","renderFancyMenuItem","renderNestedItem","downwardsCaret","renderNormalItem","renderSeparatorItem","renderToggleMenuItem","autocomplete","nested","toggle$1","fancy","card","createMenuItemFromBridge","isHorizontalMenu","parseForHorizontalMenu","menuitem","createAutocompleteItems","createPartialMenu","itemHasIcon","createItem","createPartial","createTieredDataFrom","partialMenu","createMenuFrom","focusMode","ContentFocus","register$2","activeAutocompleter","processingAction","hideIfNecessary","lastElement","getAutocompleters","getCombinedItems","choices","itemMeta","nr","autocompleterApi","reload","BUBBLE_TO_SANDBOX","commenceIfNecessary","matchLength","display","ld","doLookup","newContext","lookupInfo","combinedItems","autocompleterUiApi","hasPlugin","Autocompleter","filter$2","bind$3","capture$1","fromRawEvent$1","closest$4","DelayedFunction","fun","ref","schedule","SIGNIFICANT_MOVE","LONGPRESS_DELAY","getTouch","touches","isFarEnough","touch","distX","distY","monitor","startData","longpressFired","longpress$1","handleTouchstart","handleTouchmove","handleTouchend","isSame","fireIfReady","isDangerous","keyEv","settingsSchema","bindFocus","bindBlur","setup$1","rawSettings","tapEvent","simpleEvents","tapStopped","stopped","pasteTimeout","onPaste","onKeydown","stopBackspace","onFocusIn","focusoutTimeout","onFocusOut","derive$2","rawTarget","fromSource","isStopped","isCut","fromExternal","adt$b","resume","complete","doTriggerHandler","eventType","handlerInfo","eventHandler","doTriggerOnUntilStopped","triggerHandler","listeners","_logger","listener","triggerUntilStopped","triggerOnUntilStopped","broadcastHandler","EventRegistry","registerId","findHandler","filterByType","isAboveRoot","unregisterId","handlersById","_eventName","Registry","readOrTag","failOnDuplicate","tagId","conflict","unregister","getById","factory$3","domWithoutAttributes","containerBehaviours","Container","takeover","domEvents","_alloyId","broadcast$1","destroy","broadcastData","receivers","receiver","renderBar","interpreter","schema$e","parts$3","excludeFactory","factory$4","fieldBehaviours","descriptor","descriptorId","getField","getLabel","FormField","exhibit$4","tabConfig","tabAttr","ActiveTabstopping","TabstopSchema","Tabstopping","global$a","renderFormFieldWith","pLabel","pField","extraClasses","extraBehaviours","renderFormFieldSpecWith","renderFormField","renderFormFieldDomWith","renderFormFieldDom","renderLabel","formChangeEvent","formCloseEvent","formCancelEvent","formActionEvent","formSubmitEvent","formBlockEvent","formUnblockEvent","formTabChangeEvent","formResizeEvent","renderCollection","runOnItem","htmlLines","mapItemName","disabledClass","encodeAllRaw","tgt","collectionEvents","currentActive","iterCollectionItems","applyAttributes","childElm","schema$f","focusBehaviours","selectOnFocus","setSelectionRange","inputBehaviours","dom$2","inputAttributes","inputStyles","inputClasses","factory$5","Input","exports$1","define","require","amd","global","EphoxContactWrapper","code","1","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","runClearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","Item","nextTick","env","argv","versions","addListener","once","removeListener","removeAllListeners","prependListener","prependOnceListener","binding","cwd","chdir","umask","2","setImmediate","setTimeoutFunc","thisArg","Promise","TypeError","_handled","_value","_deferreds","doResolve","deferred","_immediateFn","cb","onFulfilled","onRejected","reject","promise","finale","_unhandledRejectionFn","Handler","reason","ex","prom","remaining","race","_setImmediateFn","_setUnhandledRejectionFn","3","clearImmediate","immediateIds","nextImmediateId","Timeout","clearFn","_id","_clearFn","setInterval","clearInterval","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","4","promisePolyfill","Global","boltExport","HighlightOnOpen","nu$a","baseFn","callbacks","nCallback","isReady","cbs","pure","LazyValue","errorReporter","make$3","aFutureB","toPromise","anonBind","futureB","toLazy","toCached","nu$b","pure$1","Future","ariaElements","isAriaElement","markValid","invalidConfig","invalidClass","notify","notifyInfo","getContainer","validHtml","onValid","markInvalid","invalidState","onInvalid","_invalidState","validatorInfo","validate","run$1","onValidate","valid","isInvalid","InvalidateApis","events$a","onEvent","validateOnLoad","ActiveInvalidate","InvalidateSchema","Invalidating","validation","getCoupled","coupleConfig","coupleState","getOrCreate","CouplingApis","CouplingSchema","init$5","coupled","CouplingState","Coupling","partType","_a$1","getAnchor","getHotspot","getAnchorOverrides","mapFetch","fetcher","openF","highlightOnOpen","futureData","getLazySink","tdata","HighlightFirst","open$1","onOpenSync","processed","close$1","_onOpenSync","_highlightOnOpen","togglePopup","showing","matchWidth","useMinWidth","buttonWidth","sinkDetail","internalSink","lazySinkFn","doRepositionMenus","makeSandbox","ariaOwner","sandboxClasses","sandboxBehaviours","sandboxFields","schema$g","parts$4","factory$6","switchToMenu","HighlightNone","triggerExecute","dropdownBehaviours","Dropdown","exhibit$5","unselectable","events$b","ActiveUnselecting","Unselecting","renderPanelButton","colorInputChangeEvent","colorSwatchChangeEvent","colorPickerCancelEvent","renderColorInput","colorInputBackstage","inputValue","span","emitSwatchChange","colorBit","memColorButton","colorPicker","colorButton","_field","hsvColour","fromRgb","minRGB","maxRGB","calcHex","rgb","fieldsUpdate","sliderUpdate","paletteUpdate","labelPart","edgePart","model","edgeActions","det","mouseIsDown","tlEdgePart","tedgePart","trEdgePart","redgePart","brEdgePart","bedgePart","blEdgePart","ledgePart","thumbPart","spectrumPart","modelDetail","getValueFromEvent","spectrum","SliderParts","_sliderChangeEvent","sliderChangeEvent","isTouchEvent","evt","getEventSource","touchEvent","mouseEvent","r$1","l","minX","minY","min1X","min1Y","max1X","max1Y","range$2","xRange","yRange","halfX","halfY","step","stepSize","snap","snapToGrid","snapStart","rounded","hasEdge","edgeName","hasLEdge","hasREdge","hasTEdge","hasBEdge","currentValue","xValue","yValue","xyValue","fireSliderChange","setToTLEdgeXY","setToTEdge","setToTEdgeXY","setToTREdgeXY","setToREdge","setToREdgeXY","setToBREdgeXY","setToBEdge","setToBEdgeXY","setToBLEdgeXY","setToLEdge","setToLEdgeXY","reduceBy","increaseBy","capValue","snapValueOf","initValue","extraValue","remainder","adjustment","rawSteps","maxSteps","numSteps","findOffsetOf","findValueOf","hasMinEdge","hasMaxEdge","minBound","maxBound","screenRange","capMin","capMax","findOffsetOfValue","maxOffset","centerMinEdge","centerMaxEdge","getBounds$1","getBoundsProperty","getMinXBounds","getMaxXBounds","getMinYBounds","getMaxYBounds","getXScreenRange","getYScreenRange","getCenterOffsetOf","componentMinEdge","componentMaxEdge","spectrumMinEdge","getXCenterOffSetOf","componentBounds","spectrumBounds","getYCenterOffSetOf","fireSliderChange$1","sliderValue","findValueOfOffset","sliderVal","setToMin","setToMax","moveBy","handleMovement","findOffsetOfValue$1","minEdge","maxEdge","minOffset","findPositionOfValue","slider","setPositionFromValue","thumb","edges","getSpectrum","getLeftEdge","getRightEdge","thumbRadius","HorizontalModel","fireSliderChange$2","sliderValue$1","findValueOfOffset$1","setValueFrom$1","setToMin$1","setToMax$1","moveBy$1","handleMovement$1","getValueFromEvent$1","findOffsetOfValue$2","findPositionOfValue$1","setPositionFromValue$1","getTopEdge","getBottomEdge","onLeft$1","onRight$1","onUp$1","onDown$1","edgeActions$1","VerticalModel","fireSliderChange$3","sliderValue$2","setValueFrom$2","moveBy$2","isVerticalMovement","handleMovement$2","setToMin$2","mX","mY","setToMax$2","getValueFromEvent$2","setPositionFromValue$2","xPos","yPos","thumbXRadius","thumbYRadius","onLeft$2","onRight$2","onUp$2","onDown$2","edgeActions$2","TwoDModel","SliderSchema","getThumb","changeValue","onChange","resetToMin","resetToMax","fireOnChoose","onChoose","wasDown","onDragStart","onDragEnd","sliderBehaviours","getInitialValue","onInit","Slider","sliderFactory","getClass","_thumb","owner$3","schema$h","getPartName","sketch$1","fSpec","fieldParts","make$4","toResult$1","formBehaviours","form","resPs","resPThunk","pName","Form","validInput","invalidInput","validatingInput","translatePrefix","rgbFormFactory","onValidHexx","onInvalidHexx","invalidation","isValid","renderTextField","description","helptext","comps","concats","copyRgbToHex","hexField","copyRgbToForm","memPreview","updatePreview","preview","copyHexToRgb","setValueRgb","getValueRgb","onInvalidInput","onValidHex","onValidRgb","isHexInputEvent","onValidInput","formPartStrings","redStrings","greenStrings","blueStrings","hexStrings","updateHex","rgbFormSketcher","paletteFactory","_translate","setColour","grdWhite","createLinearGradient","addColorStop","grdBlack","setSliderColour","_detail","_slider","saturationBrightnessPaletteSketcher","setRgba","_apis","makeFactory","rgbForm","onInvalidHex","sbPalette","paletteRgba","memPalette","memRgb","updatePalette","palette","updateFields","runUpdates","updates","paletteUpdates","oldRgb","hsvColour$1","newHsvColour","nuHex","sliderUpdates","colourPickerSketcher","self$1","memento","mem","childAt","ComposingConfigs","english","getEnglishText","translate$1","renderColorPicker","colourPickerFactory","memPicker","picker","optRgbForm","optHex","formValues","pattern","global$b","isOldCustomEditor","renderCustomEditor","editorApi","memReplaced","ta","scriptId","scriptUrl","ea","cvalue","ed","global$c","processors","memento$1","rawProcessors","rawValue","postprocess","withComp","optInitialValue","getter","setter","withElement","domValue","domHtml","memory$1","RepresentingConfigs","defaultImageFileTypes","filterByExtension","files","allowedImageFileTypes","explode","getSetting","isFileInAllowedTypes","file","renderDropZone","actions","onDrop","transferEvent","handleFiles","dataTransfer","onSelect","memInput","accept","renderField","inputComp","renderGrid","beforeObject","afterObject","craftWithClasses","outline","craft","triggerTab","onFocus$1","isPseudoStop","platformNeedsSandboxing","getDynamicSource","isSandbox","cachedValue","_frameComponent","frameComponent","contentWindow","renderIFrame","sandboxed","sourcing","create$5","resize","clone$1","tCanvas","get2dContext","drawImage","getWidth","image","naturalWidth","getHeight","naturalHeight","anyWindow","asap","immediateFn","catch","values_1","Promise$1","blobToImage","blobUrl","URL","createObjectURL","Image","removeListeners","loaded","dataUriToBlobSync","uri","mimetype","base64","sliceSize","byteCharacters","atob","bytesLength","slicesCount","byteArrays","sliceIndex","begin","end","bytes","charCodeAt","Uint8Array","Blob","dataUriToBlob","canvasToBlob","quality","HTMLCanvasElement","toBlob","toDataURL","canvasToDataURL","blobToCanvas","revokeImageUrl","blobToDataUri","reader","FileReader","onloadend","readAsDataURL","revokeObjectURL","create$6","getCanvas","initialType","getType","toBase64","toAdjustedBlob","toAdjustedDataURL","toAdjustedBase64","dataurl","toCanvas","fromBlob","fromCanvas","blobToImageResult","clamp$1","parsedValue","identity$1","DELTA_INDEX","multiply","matrix1","matrix2","out","adjustContrast","adjustBrightness","adjustColors","adjustR","adjustG","adjustB","colorFilter","ir","applyColorFilter","applyMatrix","pixelsData","m0","m1","m2","m3","m4","m5","m6","m7","m8","m9","m10","m11","m12","m13","m14","m15","m16","m17","m18","m19","pixels","putImageData","convoluteFilter","applyConvoluteFilter","pIn","pOut","aMatrix","halfSide","drgba","cy","cx","scx","scy","innerOffset","wt","pixelsIn","pixelsOut","functionColorFilter","colorFn","filterImpl","applyLookup","complexAdjustableColorFilter","matrixAdjustFn","adjust","basicColorFilter","basicConvolutionFilter","kernel","invert","contrast","colorize","sharpen","gamma","pow","scale","dW","dH","sW","sH","wRatio","hRatio","scaleCapped","scaled","_scale","rotate","angle","applyRotate","translateX","translateY","PI","flip","axis","applyFlip","crop","applyCrop","resize$1","newCanvas","invert$1","sharpen$1","gamma$1","colorize$1","brightness$1","contrast$1","flip$1","crop$1","resize$2","rotate$1","renderIcon$1","renderIconFromPack","iconsProvider","renderReplacableIconFromPack","renderLabel$1","internalToolbarButtonExecute","onToolbarButtonExecute","itemApi","buttonApi","toolbarButtonEventOrder","updateMenuText","updateMenuIcon","renderCommonDropdown","optMemDisplayText","optMemDisplayIcon","onLeftOrRightInMenu","dropdown","tooltipAttributes","translatedTooltip","memDropdown","displayText","displayIcon","isMenuItemReference","isExpandingMenuItem","separator$1","unwrapReferences","realItems","getFromExpandingItem","submenuItems","newMenus","newExpansions","getFromItem","generateValueIfRequired","itemWithValue","newData","build$2","mainMenu","submenus","getMenuButtonApi","renderMenuButton","_comp","getFetch$1","getButton","getMenuItemAction","storage","orig","getMenuItemSetup","renderCommonSpec","actionOpt","domFinal","renderIconButtonSpec","renderIconButton","iconButtonSpec","renderButtonSpec","translatedText","borderless","renderButton","buttonSpec","getAction","buttonType","isMenuFooterButtonSpec","isNormalFooterButtonSpec","renderFooterButton","memButton_1","menuButtonSpec","fixedSpec","renderDialogButton","schema$i","coupledPart","selfName","otherName","lock","onLockedChange","parts$5","locked","lockClass","factory$7","coupledFieldBehaviours","field1Name","field1","field2Name","field2","getField1","getField2","getLock","FormCoupledInputs","formatSize","unitDec","maxDecimal","numText","parseSize","sizeText","numPattern","convertUnit","inInch","noSizeConversion","_input","ratioSizeConversion","makeRatioConverter","currentFieldText","otherFieldText","cValue","oValue","cSize","oSize","renderSizeInput","converter","ratioEvent","pLock","formGroup","getFieldPart","isField1","widthField","heightField","_lock","newSize","optCurrent","optOther","value1","value2","undo","redo","zoom","back","swap","tempTransform","transformApply","internal","saveState","disable$1","enable$1","external$2","renderEditPanel","imagePanel","createButton","createIconButton","disableAllComponents","eventcomp","enableAllComponents","panelDom","noop$1","emit$1","emitDisable","emitEnable","emitTransform","emitTempTransform","getBackSwap","memContainer","ButtonPanel","emitTransformApply","createBackButton","createSpacer","createApplyButton","makeCropTransform","getRect","cropPanelComponents","hideCrop","CropPanel","memSize","constrain","makeResizeTransform","resizePanelComponents","sizeInput","ResizePanel","makeValueTransform","horizontalFlip","verticalFlip","counterclockwiseRotate","clockwiseRotate","flipRotateOnAction","operation","flipRotateComponents","FlipRotatePanel","makeSlider","makeVariableSlider","valTransform","variableFilterPanelComponents","createVariableFilterPanel","filterPanelComponents","FilterPanel","BrightnessPanel","ContrastPanel","GammaPanel","makeColorTransform","makeColorSlider","redOpt","memRed","blueOpt","memBlue","greenOpt","memGreen","colorizePanelComponents","ColorizePanel","getTransformPanelEvent","panel","cropPanelUpdate","_anyInSystem","showCrop","resizePanelUpdate","measurements","getMeasurements","sharpenTransform","invertTransform","buttonPanelComponents","getApplyButton","global$d","global$e","global$f","global$g","getDocumentSize","scrollWidth","scrollHeight","updateWithTouchData","changedTouches","DragHelper","$eventOverlay","downButton","startX","startY","handleElement","getElementById","cursor","docSize","handleElm","screenX","screenY","runtimeStyle","zIndex","opacity","appendTo","drag","deltaX","deltaY","create$7","currentRect","viewPortRect","clampRect","containerElm","dragHelpers","handles","xMul","yMul","blockers","getAbsoluteRect","outerRect","relativeRect","getRelativeRect","innerRect","getInnerRect","moveRect","startRect","instance","setInnerRect","createDragHelper","blocker","repaint","activeHandle","moveAndBlock","keyCode","SPACEBAR","toggleVisibility","updateElementRect","setRect","setViewPortRect","setClampRect","helper","extend","CropRect","loadImage","renderImagePanel","initialUrl","memBg","zoomState","cropRect","rectState","viewRectState","repaintImg","img","panelW","panelH","cRect","zoomFit","updateSrc","url","aImg","lastViewRect","viewRect","inflate","currentZoom","newZoom","newRect","setButtonEnabled","enabled","renderSideBar","updateButtonUndoStates","undoEnabled","redoEnabled","memUndo","memRedo","UndoStack","removed","canUndo","canRedo","Delimiter","makeState","blobState","tempState","undoStack","getBlobState","setBlobState","getTempState","temp","updateTempState","newTempState","createState","destroyTempState","destroyState","destroyStates","states","addBlobState","addTempState","applyTempState","postApply","currentState","getHistoryStates","renderImageTools","historyStates","sideBar","disableUndoRedo","_oImg","unblock","imageResultToBlob","block","editPanel","applyButton","blobManipulate","oImg","manipulate","tempManipulate","manipulateApply","currentUrl","renderLabel$2","backstageShared","isSingleListItem","dataAttribute","fetchItems","dropdownComp","selectedValue","findItemByValue","renderListBox","initialItem","sketchSpec","listBoxWrap","renderPanel","factory$8","initialValues","selectClasses","selectAttributes","selectBehaviours","found","HtmlSelect","renderSelectBox","translatedOptions","chevron","selectWrap","renderTable","renderTh","renderHeader","renderTd","renderTr","renderRows","baseInputBehaviours","multiline","validatingBehaviours","vl","inputMode","inputmode","classname","flex","extraClasses2","maximized","renderInput","renderTextarea","events$c","streamConfig","streamState","streams","stream","cancelEvent","ActiveStreaming","_config","setTimer","init$6","StreamingState","setup$2","streamInfo","sInfo","throttler","onStream","stopEvent","StreamingSchema","Streaming","setValueFromItem","itemData","setCursorAtEnd","setSelectionOn","setSelectionToEnd","attemptSelectOver","selectsOver","inputDisplay_1","getDisplayText","itemDisplay","itemExecute","make$5","navigateList","highlighter","previewing","focusBehaviours$1","responseTime","focusInInput","previousValue_1","pv","sandboxIsOpen","openClass","onItemExecute","dismissOnBlur","typeahead","typeaheadBehaviours","schema$j","parts$6","populateFromBrowse","Typeahead","wrap$2","bindFuture","resA","bindResult","mapResult","foldResult","whenError","whenValue","withTimeout","errorThunk","timedOut","nu$c","worker","value$2","error$1","fromResult$1","fromFuture","future","fromPromise","completer","FutureResult","separator$2","toMenuItem","staticMenuItem","toMenuItems","targets","filterLinkTargets","filteredTargets","headerTargets","linkInfo","anchorTargets","anchorTargetTop","anchorTop","anchorTargetBottom","anchorBottom","historyTargets","history","joinMenuLists","bothEmpty","filterByQuery","term","lowerCaseTerm","getItems","fileType","urlBackstage","urlInputValue","getLinkInformation","getHistory","errorId","renderUrlInput","updateHistory","urlEntry","addToHistory","filetype","memUrlBox","_newValue","getValidationHandler","memInvalidIcon","invalidComp","_menu","_entry","makeIcon","errId","memStatus","optUrlPicker","getUrlPicker","browseUrlEvent","memUrlPickerButton","controlHWrapper","openUrlPicker","componentData","urlData","fieldname","chosenData","renderAlertBanner","iconTooltip","renderCheckbox","repBehaviour","toggleCheckboxHandler","className","memIcons","renderHtmlPanel","make$6","makeIframe","iframeSpec","factories","bar","collection","alertbanner","textarea","iframe","checkbox","dropzone","listbox","selectbox","sizeinput","urlinput","customeditor","htmlpanel","imagetools","table","noFormParts","interpretInForm","oldBackstage","newBackstage","interpretParts","interpretWithoutForm","bubbleAlignments","valignCentre","alignCentre","alignLeft","alignRight","getInlineDialogAnchor","contentAreaElement","lazyAnchorbar","lazyUseEditableAreaAnchor","editableAreaAnchor","standardAnchor","getBannerAnchor","getCursorAnchor","bodyElement","getNodeAnchor","getAnchors","isToolbarTop","useFixedToolbarContainer","getContentAreaContainer","inlineDialog","hasCustomColors$1","getColors$2","getColorCols$2","ColorInputBackstage","isDraggableModal$1","DialogBackstage","HeaderBackstage","getDockingMode","setDockingMode","defaultStyleFormats","isNestedFormat","isBlockFormat","isInlineFormat","isSelectorFormat","mapFormats","userFormats","fmt","customFormats","formats","formatName","formatNameWithPrefix","registerCustomFormats","registerFormats","getStyleFormats","registeredUserFormats","processBasic","isSelectedFor","getPreviewFor","formatterSpec","getStylePreview","register$3","enrichSupported","enrichMenu","submenuSpec","enrichCustom","customSpec","newItem","doEnrich","newItems_1","getStyleItems","init$7","parseStyle","getCssText","settingsFormats","settingsFlattenedFormats","eventsFormats","eventsFlattenedFormats","replaceSettings","_e","enriched","modifications","fromSettings","fromEvents","getFlattenedKeys","isElement$2","trim$1","hasContentEditableState","contentEditable","isContentEditableTrue","isContentEditableFalse","create$8","isChildOfContentEditableTrue","getElementText","innerText","getOrGenerateId","isAnchor","isValidAnchor","isEditable","isHeader","isValidHeader","getLevel","headerTarget","headerId","anchorTarget","anchorId","anchorText","getHeaderTargets","elms","getAnchorTargets","getTargetElements","hasTitle","find$5","LinkTargets","STORAGE_KEY","HISTORY_LENGTH","isHttpUrl","isArrayOfUrl","isRecordOfUrlArray","getAllHistory","unparsedHistory","SyntaxError","setAllHistory","itemsWithoutUrl","isTruthy","makeMap","getPicker","getPickerTypes","optFileTypes","optLegacyTypes","optTypes","_picker","types","getPickerSetting","pickerTypes","entry","getTextSetting","UrlInputBackstage","init$8","contextMenuState","styleselect","isContextMenuOpen","setContextMenuState","expandable$1","showContextToolbarEvent","hideContextToolbarEvent","schema$k","enhanceGroups","parts$7","factory$9","setGroups","groups","getGroupContainer","shell","toolbarBehaviours","Toolbar","generate$6","output$1","within","withinWidth","apportion","total","parray","toUnit","fitLast","fits","overflow","overflower","fitAll","tryFit","divide","partition$3","storedGroups","bGroups","findFocusedComp","focusedElm","setOverflow","overflowGroup","builtGroups","focusedComp","availableWidth","overflows","schema$l","schema$m","parts$8","schema$n","parts$9","toggledClass","toggle$2","toolbarSandbox","position$2","bounder","setGroups$1","makeSandbox$1","factory$a","FloatingToolbarButton","schema$o","parts$a","factory$b","tgroupBehaviours","itemSelector","ToolbarGroup","buildGroups","refresh$1","memFloatingToolbarButton","overflowGroups","floatingToolbarButton","factory$c","getOverflowBounds","overflowToggledClass","splitToolbarBehaviours","getOverflow","SplitFloatingToolbar","getAnimationRoot","slideConfig","getDimensionProperty","dimension","getDimension","disableTransitions","shrinkingClass","growingClass","setShrunk","closedClass","setGrown","doImmediateShrink","slideState","_calculatedSize","setCollapsed","onStartShrink","onShrunk","doStartShrink","calculatedSize","doStartSmartShrink","shrinker","doStartGrow","wasShrinking","beforeSize","fullSize","startPartialGrow","startCompleteGrow","setStartSize","setExpanded","onStartGrow","refresh$2","isExpanded","grow","shrink","immediateShrink","hasGrown","hasShrunk","isCollapsed","isGrowing","_slideState","isShrinking","isTransitioning","toggleGrow","SlidingApis","exhibit$6","events$d","propertyName","onGrown","ActiveSliding","SlidingSchema","init$9","SlidingState","Sliding","schema$p","parts$b","onClosed","onOpened","isOpen$1","toggleToolbar","overf","refresh$3","factory$d","toolbarToggleEvent","doSetGroups","_button","SplitSlidingToolbar","toolbarHeightChange","renderToolbarGroupCommon","toolbarGroup","renderToolbarGroup","getToolbarbehaviours","toolbarSpec","modeName","onAttached","initGroups","renderMoreToolbarCommon","cyclicKeying","renderFloatingMoreToolbar","baseSpec","overflowXOffset","headerElem","moreDrawerData","lazyHeader","headerBounds","docElem","docBounds","renderSlidingMoreToolbar","renderToolbar","scrolling","groupToolbarButtonSchema","createGroupToolbarButton","baseMenuButtonFields","MenuButtonSchema","createMenuButton","splitButtonSchema","createSplitButton","events$e","reflectingConfig","reflectingState","updateState","renderComponents","newComponents","channel","rawData","ActiveReflecting","getState$2","reflectState","ReflectingApis","ReflectingSchema","init$a","optS","ReflectingState","Reflecting","schema$q","arrowPart","arrow","buttonPart","btn","splitDropdown","parts$c","factory$e","openMenu","executeOnButton","buttonEvents","ariaDescriptor","splitDropdownBehaviours","SplitDropdown","getButtonApi","getToggleApi","getTooltipAttributes","focusButtonEvent","rtlIcon$1","rtlTransform$1","renderCommonStructure","_d","needsRtlClass","renderFloatingToolbarButton","identifyButtons","renderCommonToolbarButton","specialisation","toolbarButtonBehaviours","renderToolbarButton","renderToolbarButtonWith","bonusEvents","renderToolbarToggleButton","renderToolbarToggleButtonWith","fetchChoices","renderSplitButton","displayChannel","underlinePath","buttonComp","_b","_c","getFormApi","runOnExecute$1","formApi","renderContextButton","bridged","renderContextToggleButton","generateOne$1","generate$7","mementos","asSpecs","findPrimary","compInSystem","buildInitGroups","commands","renderContextForm","toolbarType","ContextForm","getHorizontalBounds","contentAreaBox","viewportBounds","contentBoxWidth","maxViewportWidth","getVerticalBounds","isToolbarLocationTop","headerBox","isToolbarBelowContentArea","isToolbarAbove","containerBounds","getContextToolbarBounds","toolbarOrMenubarEnabled","matchTargetWith","ctxs","toolbarApi","contextToolbars","contextForms","filterByPositionForStartNode","doesPositionExist","filterToolbarsByPosition","hasSelectionToolbars","hasNodeToolbars","nodeToolbars","selectionToolbars","filterByPositionForAncestorNode","findPosition_1","basePosition","matchStartNode","nodeCandidates","editorCandidates","nodeMatches","editorMatches","matchAncestor","startNode","scopes","ancestorElem","inNodeScope","lookup$1","rootElem","isOutsideRoot","inEditorScope","categorise","forms","formNavigators","lookupTable","registerForm","contextForm","launch","registerToolbar","contextToolbar","forwardSlideEvent","backSlideEvent","changeSlideEvent","resizingClass","renderContextToolbar","currentWidth","newContents","oldContents","forwardContents","generateSelectItems","_editor","generateItem","rawItem","response","si","invalid","validateItems","preItems","getCurrentValue","shouldHide","createMenuItems","createSelectButton","getComponent","setInitialValue","nodeChangeHandler","rawFormats","buildBasicStaticDataset","ResizeTypes","delimiter","SemiColon","buildBasicSettingsDataset","settingName","alignMenuItems","command","getSpec","getMatchingValue","_format","updateSelectMenuIcon","alignment","canApply","createAlignSelect","alignSelectMenu","defaultFontsFormats","systemStackFonts","splitFonts","fontFamily","fonts","font","isSystemFontStack","matchesSystemStack","getSpec$1","getFirstFont","queryCommandValue","matchOpt","updateSelectMenuText","createFontSelect","fontSelectMenu","defaultFontsizeFormats","legacyFontSizes","keywordFontSizes","round$1","precision","factor","toPt","fontSize","toLegacy","getSpec$2","_loop_1","pt","legacy","Space","createFontsizeSelect","fontsizeSelectMenu","findNearest","getStyles","revocable","doRevoke","isSet","destroyable","unbindable","value$3","onSetupFormatToggle","boundCallback","formatChanged","initialized","onActionToggleFormat","defaultBlocks","getSpec$3","detectedFormat","createFormatSelect","formatSelectMenu","getSpec$4","getFormatItems","flattenedItems","createStyleSelect","styleSelectMenu","defaultToolbar","renderFromBridge","bridgeBuilder","togglebutton","menubutton","splitbutton","grouptoolbarbutton","identify","allowToolbarGroups","TopToBottom","floating","styleSelectButton","fontsizeSelectButton","fontSelectButton","formatButton","alignMenuButton","extractFrom","bespokeButtons","fontsizeselect","fontselect","formatselect","removeUnusedDefaults","filteredItemGroups","subItem","convertStringToolbar","strToolbar","groupsStrings","isToolbarGroupSettingArray","createToolbar","toolbarConfig","lookupButton","toolbarItem","prefixes","toolbarGroups","bubbleSize","bubbleAlignments$1","anchorOverrides","desktopAnchorSpecLayouts","mobileAnchorSpecLayouts","getAnchorLayout","register$4","registryContextToolbars","contextbar","isRangeOverlapping","aTop","aBottom","bTop","bBottom","getLastElementVerticalBound","nodeBounds","ele","diffTop","shouldContextToolbarHide","lastElementBounds","contextToolbarBounds","lastAnchor","forceHide","hideOrRepositionIfNecessary","contextBarEle","wrapInPopDialog","shortcuts","getScopes","alloySpec","buildToolbar","buildContextToolbarGroups","allButtons","buildContextMenuGroups","default","toolbarKey","launchContext","sElem","launchContextToolbar","asyncOpen","setEditorTimeout","setup$3","ship","fireDismissPopups","onTouchstart","onTouchmove","onTouchend","onMousedown","onMouseup","onContentClick","onContentMouseup","onWindowScroll","onWindowResize","onEditorResize","onEditorProgress","parts$d","partType$1","schema$r","customListDetail","itemsPart","parts$e","name$2","factory$f","_external","setItems","getListContainer","itemComps","numListsRequired","numListsToAdd","itemsToAdd","makeItem","itemsToRemove","builtLists","setupItem","listBehaviours","CustomList","setup$4","isDocked","getBehaviours$2","StaticHeader","getOffsetParent","isFixed","offsetParent$1","getOrigin","morphAdt","static","appear","contextualInfo","transitionClass","fadeOutClass","fadeInClass","disappear","isPartiallyVisible","isTopCompletelyVisible","isBottomCompletelyVisible","isVisibleForModes","getPrior","getInitialPosition","storePrior","setInitialPosition","revertToOriginal","offsetBox_1","_left","_top","_right","_bottom","morphToOriginal","getModes","morphToFixed","winBox","top_1","isTop","getMorph","getMorphToOriginal","morphToStatic","onUndocked","morphToCoord","method","onDocked","updateVisibility","morphToDocked","contextual","contextInfo","lazyContext","setVisible","refreshInternal","lazyViewport","morph","setDocked","resetInternal","refresh$4","reset","isDocked$1","setModes","DockingApis","events$f","dockInfo","dockState","onShown","onHidden","ActiveDocking","DockingSchema","init$b","docked","initialBounds","DockingState","Docking","visibility","editorStickyOnClass","editorStickyOffClass","scrollFromBehindHeader","containerHeader","viewHeight","innerHeight","scrollPos","markerElement","markerPos","markerHeight","markerTop","markerBottom","editorHeaderPos","editorHeaderHeight","editorHeaderTop","editorHeaderBottom","editorHeaderDockedAtTop","editorHeaderDockedAtBottom","isDockedMode","updateIframeContentFlow","getOccupiedHeight","parentElem","padding","parentWidth","updateSinkVisibility","sinkElem","updateEditorClasses","editorContainer","restoreFocus","focusedElem","ownerDoc","activeElm","findFocusedElem","rootElm","setup$5","isDocked$2","getIframeBehaviours","getBehaviours$3","runOnSinkElement","onDockingSwitch","additionalBehaviours","headerHeight","boxHeight","topBound","StickyHeader","sticky","factory$g","setMenus","activeButton","hoveredButton","activeComp","hoveredComp","prev","SilverMenubar","owner$4","schema$s","getPartName$1","sketch$2","sSpec","slot","make$7","getSlotNames","getSlot","onSlot","def","onSlots","doShowing","_key","doShow","doHide","hideSlot","hideSlots","hideAllSlots","showSlot","slotBehaviours","slotApis","SlotContainer","sidebarSchema","createSidebar","setup$6","sidebars","addToggleButton","handleToggle","makePanels","panelConfigs","sidepanel","optSidePanelSpec","sidePanelSpec","makeSidebar","slotContainer","setSidebar","sidebar","optSlider","toggleSidebar","optSlotContainer","whichSidebar","sidebarOpen","fixSize","autoSize","renderSidebar","getAttrs","fromHtml$2","renderSpinner","toggleThrobber","renderThrobber","setup$7","lazyThrobber","throbberState","timerId","factory$h","getSocket","getHeader","setToolbar","setToolbars","mToolbar","refreshToolbar","toggleToolbarDrawer","isToolbarDrawerToggled","getThrobber","focusToolbar","optToolbar","setMenubar","menubar","focusMenubar","partMenubar","toolbarFactory","sliding","partMultipleToolbar","_mToolbar","tc","_index","partToolbar","renderer","lazyToolbar","lazyMoreButton","partHeader","partSocket","partSidebar","partThrobber","OuterContainer","grps","grp","renderedToolbars","defaultMenubar","defaultMenus","edit","tools","help","make$8","removedMenuItems","itemName","removedMenuItem","parseItemsString","identifyMenus","rawMenuData","userDefinedMenus","validMenus","menuData","isNotSeparator","fireSkinLoaded$1","_skinLoaded","fireSkinLoadError$1","loadStylesheet","stylesheetUrl","styleSheetLoader","unload","loadUiSkins","skinUiCss","loadShadowDomUiSkins","isInShadowRoot$1","shadowDomSkinCss","loadSkin","isInline","contentCSS","rawUiConfig","toolbarButtonsConfig","detection","isiOS12","setupEvents","initialDocEle","lastWindowDimensions","innerWidth","lastDocumentDimensions","resizeWindow","outer","resizeDocument","docEle","inner","elementLoad","render$1","lastToolbarWidth","eTargetNode","targetNode","uiRoot","socket","limit","unbinder","_ui","addQueryValueHandler","toolbarMode","refreshDrawer","iframeContainer","Iframe","parseToInt","re","numToPx","calcCappedSize","minSize","maxSize","minOverride","maxOverride","getHeight$1","baseHeight","minHeight","getHeightWithFallback","getWidth$1","baseWidth","minWidth","getWidthWithFallback","InlineHeader","targetElm","floatContainer","isSticky","editorMaxWidthOpt","headerBackstage","isSplitToolbar","calcToolbarOffset","tbar","calcMode","toolbar_1","toolbarHeight","targetBounds","roomAtTop","docHeight","roomAtBottom","winBounds","isRoomAtBottomViewport","setupMode","verticalDir","updateChromeWidth","bodyMargin","updateChromePosition","repositionPopups$1","updateChromeUi","resetDocking","floatContainerComp","updateMode","updateUi","currentMode","newMode","addClass","removeClass","getTargetPosAndBounds","setupEvents$1","toolbarPersist","prevPosAndBounds","resizeContent","prevPos","prevBounds","hasResized","requestAnimationFrame","render$2","uiContainer","Inline","register$5","alignToolbarButtons","cmd","alignNoneToolbarButton","addButton","register$6","toggleOutdentState","queryCommandState","onNodeChange","registerButtons","register$7","unsupportedLength","decimalDigits","signedInteger","exponentPart","dot","unsignedDecimalLiteral","float","isUnit","accepted","check","unitRaw","normalise","normaliseLineHeight","getLineHeights","Map","lastApi","registerMenuItems","registerButtons$1","addMenuButton","register$8","toggleFormat","registerFormatButtons","_idx","name_1","registerCommandButtons","registerCommandToggleButtons","registerButtons$2","registerMenuItems$1","addMenuItem","register$9","toggleUndoRedoState","checkState","onUndoStateChange","registerMenuItems$2","registerButtons$3","register$a","toggleVisualAidState","hasVisual","onVisualAid","registerMenuItems$3","addToggleMenuItem","registerToolbarButton","register$b","setup$8","nu$d","transpose$1","dx","dy","isTouchEvent$1","fromPageXY","pageX","pageY","fromClientXY","transposeContentAreaContainer","containerPos","getPos","getPointAnchor","getSelectionAnchor","getNodeAnchor$1","initAndShow","buildMenu","contextmenu","useNodeAnchor","anchorSpec","bubbleSize$1","bubbleAlignments$2","isTouchWithinSelection","touch_1","rngRectOpt","rngRect","getPointAnchorSpec","setupiOSOverrides","originalSelection","selectionReset","setRng","unbindEventListeners","preventMousedown","clearSelectionReset","initAndShow$1","shouldHighlightImmediately","openiOS_1","patchPipeConfig","shouldNeverUseNative","getMenuItems","defaultItems","contextMenus","isContextMenuDisabled","getContextMenu","getAvoidOverlapSelector","isSeparator$1","separator$3","makeContextItem","addContextMenuGroup","groupItems","lastMenuItem","generateContextMenu","selectedElement","sections","allItems","isNativeOverrideKeyEvent","isTriggeredByKeyboard","pointerType","getSelectedElement","shouldUseNodeAnchor","setup$9","hideContextMenu","showContextMenu","initAndShow$2","hideEvents","adt$c","subtract","add$4","transform$1","changes","asFixed","coord","asAbsolute","asOffset","withinRange","coord1","coord2","getDeltas","toStyles","stylesOpt","translate$2","absolute$3","fixed$1","absorb","partialCoord","originalCoord","absorbOne","stencil","optX","optY","parseAttrToInt","NaN","get$f","snapsInfo","leftAttr","topAttr","set$8","getCoords","snapInfo","moveOrSnap","newCoord","mustSnap","findClosestSnap","findSnap","fixedCoord","spanned","stopDrag","findMatchingSnap","snaps","sensor","inRange","getSnapPoints","matchSnap","bestSnap","deltas","bestDeltas","currAvg","bestAvg","snapTo","snapTo$1","dragConfig","getTarget","repositionTarget","scroll_1","origin_1","snapPin","DraggingApis","initialAttribute","resetZIndex","changeZIndex","zindex","instigate","anyComponent","discard","createComponent","blockerClass","blockerEvents","SnapSchema","schema$t","getCurrentCoord","location","clampCoords","coords","absoluteCoord","newCoords","offset$1","calcNewCoord","optSnaps","currentCoord","snapping","onSensor","dragBy","onDrag","calcStartData","move$1","dragState","dragMode","dragStartData","getStartData","dlt","updateStartState","setStartData","init$c","dragApi","forceDrop","drop","delayDrop","getData$1","getDelta$1","MouseData","events$g","stop$1","schema$u","init$d","getDataFrom","getData$2","getDelta$2","TouchData","events$h","blockerCell","schema$v","events$i","schema$w","mouse","mouseOrTouch","DraggingBranches","init$e","previous","calculateDelta","dragEvent","nuData","DragState","Dragging","dragger","snapWidth","snapOffset","calcSnap","selectorOpt","td","selectorHandle","sensorLeft","sensorTop","sensorWidth","sensorHeight","getSnapsConfig","isSameCell","cellOpt","currentTd","createSelector","setup$a","tlTds","brTds","startCell","finishCell","getTopLeftSnap","memTopLeft","getTopLeftSnaps","getBottomRightSnap","memBottomRight","getBottomRightSnaps","topLeftSnaps","bottomRightSnaps","bottomRight","showOrHideHandle","isAbove","isBelow","cellRect","viewportHeight","aboveViewport","belowViewport","getSnapConfig","snapTopLeft","snapLastTopLeft","snapBottomRight","snapLastBottomRight","otherCells","upOrLeftCells","downOrRightCells","getDimensions","resizeType","originalHeight","originalWidth","Both","resize$3","dim","isHidden$1","renderElementPath","getDataPath","newPathElements","_btn","divider","newAcc","updatePath","parents","newPath","parent_1","isDefaultPrevented","isPropagationStopped","renderWordCount","replaceCountText","words","characters","currentVal","wordCount","renderStatusbar","renderResizeHandlerIcon","renderBranding","linkHtml","getResizeType","None","Vertical","getTextComponents","getComponents","setup$b","lazyOuterContainer","platformClasses","touchPlatformClass","deviceClasses","isToolbarBottom","dirAttributes","verticalDirAttributes","isHeaderDocked","resizeUiMothership","makeSinkDefinition","isGridUiContainer","sinkSpec","reactiveWidthSpec","memAnchorBar","lazyAnchorBar","throbber","sb","statusbar","socketSidebarContainer","hasMultipleToolbar","hasToolbar","hasMenubar","getPartToolbar","editorComponents","containerComponents","border","addQueryStateHandler","getUi","broadcastAll","setEditorSize","parsedHeight","parsedWidth","renderUI","toolbarGroupButtonConfig","addGroupToolbarButton","toolbarOpt","describedBy","describedElement","describeElement","describeId","labelledBy","labelledElement","labelElement","schema$x","basic","parts$f","dragBlockClass","getDragBounds","getBusySpec","blockerBehaviours","blockSpec","isBlocked","onBlock","blockWith","onUnblock","BlockingApis","BlockingSchema","init$f","BlockingState","Blocking","factory$i","dialogComp","showDialog","externalBlocker","hideDialog","blockerDom","getDialogBody","getDialogFooter","setBusy","setIdle","modalEventsId","getFooter","modalBehaviours","ModalDialog","dialogToggleMenuItemSchema","dialogToggleMenuItemDataProcessor","baseFooterButtonFields","dialogFooterButtonFields","normalFooterButtonFields","menuFooterButtonFields","dialogFooterButtonSchema","alertBannerFields","alertBannerSchema","createBarFields","itemsField","buttonFields","buttonSchema","checkboxFields","checkboxSchema","checkboxDataProcessor","formComponentFields","formComponentWithLabelFields","collectionFields","collectionSchema","collectionDataProcessor","colorInputFields","colorInputSchema","colorInputDataProcessor","colorPickerFields","colorPickerSchema","colorPickerDataProcessor","customEditorFields","customEditorFieldsOld","customEditorSchema","customEditorDataProcessor","dropZoneFields","dropZoneSchema","dropZoneDataProcessor","createGridFields","htmlPanelFields","htmlPanelSchema","iframeFields","iframeSchema","iframeDataProcessor","imageToolsFields","imageToolsSchema","inputFields","inputSchema","inputDataProcessor","createLabelFields","listBoxSingleItemFields","listBoxNestedItemFields","listBoxItemSchema","listBoxFields","listBoxSchema","listBoxDataProcessor","selectBoxFields","selectBoxSchema","selectBoxDataProcessor","sizeInputFields","sizeInputSchema","sizeInputDataProcessor","tableFields","tableSchema","textAreaFields","textAreaSchema","textAreaDataProcessor","urlInputFields","urlInputSchema","urlInputDataProcessor","createItemsField","itemSchema$3","sErr","passValue","panelSchema","panelFields","tabFields","tabPanelFields","tabPanelSchema","dialogButtonFields","dialogButtonSchema","dialogSchema","tabpanel","createDialog","urlDialogButtonSchema","urlDialogSchema","createUrlDialog","getAllObjects","isNamedItem","dataProcessors","togglemenuitem","getDataProcessor","getNamedItems","createDataValidator","namedItems","extract$1","internalDialog","dataValidator","DialogManager","openUrl","redial","toValidValues","renderBodyPanel","memForm","formValue","vals","factory$j","tabButtonBehaviours","TabButton","schema$y","tabsPart","barDetail","dismissTab$1","tabbar","changeTab$1","clickToDismiss","tabClass","parts$g","factory$k","tabbarBehaviours","selectedClass","tab","Tabbar","factory$l","tabviewBehaviours","Tabview","schema$z","barPart","tabs","viewPart","parts$h","factory$m","tabValue","tabview","tabWithValue","tabData","onChangeTab","changeTabBy","section","byPred","tabSectionBehaviours","selectFirst","onDismissTab","getViewItems","showTab","tabKey","getTabIfNotActive","optTab","TabSection","measureHeights","allTabs","tabviewComp","_tab","getMaxHeight","heights","getMaxTabviewHeight","tablist","documentElement$1","tabviewHeight","isTabListBeside","currentTabHeight","dialogTopMargin","dialogBottomMargin","dialogHeight","chromeHeight","setTabviewHeight","updateTabviewHeight","dialogBody","maxTabHeight","getTabview","smartTabHeight","extraEvents","maxTabHeightOpt","oldHeight","naiveTabHeight","SendDataToSectionChannel","SendDataToViewChannel","renderTabPanel","storedValue","updateDataWithForm","formData","validData","currentData","setDataOnForm","oldTab","tabMode","_viewItems","oldName","tsection","dialogChannel","titleChannel","bodyChannel","footerChannel","bodySendMessageChannel","renderBody","ariaAttrs","incoming","isTabPanel","ariaAttributes","renderInlineBody","contentId","renderModalBody","bodySpec","renderIframeBody","hiddenHeader","pClose","pUntitled","pBodyMessage","pFooter","footer","pFooterGroup","startButtons","endButtons","renderDialog","dialogClass","blockerBackdropClass","scrollLockClass","extraStyles","dialogEvents","renderClose","renderTitle","renderDragHandle","renderInlineHeader","titleId","renderModalHeader","pTitle","pHandle","draghandle","draggable","bs","getEventExtras","lazyDialog","closeWindow","blockEvent","renderModalDialog","mapMenuButtons","mapItems","extractCellsToObject","menuButton","innerAcc","initCommonEvents","fireApiEvent","_event","initUrlDialog","getInstanceApi","withSpec","currentDialog","initDialog","currentDialogInit","cur","onTabChange","newTabName","oldTabName","SilverDialogEvents","makeButton","lookup$2","footerButtons","buttonName","buttonGroups","makeGroup","renderFooter","initSpec","lookupByName","renderInlineFooter","renderModalFooter","getCompByName","form_1","getFormWrapper","footerState","validateData","dialogState","getDialogApi","doRedial","menuItemStates","withRoot","valueComp","representedValues","menuItemCurrentState","setData","prevData","instanceApi","mergedData","newInternalData","bodyState","tabSection","dialogInit","getDialogSizeClasses","renderDialog$1","storagedMenuButtons","objOfCells","dialogSize","modalAccess","getForm","outerForm","renderInlineDialog","dialogLabelId","dialogContentId","memHeader","memBody","memFooter","global$h","getUrlDialogApi","sendMessage","SUPPORTED_MESSAGE_ACTIONS","isSupportedMessage","mceAction","isCustomMessage","handleMessage","insertContent","renderUrlDialog","iframeUri","base_uri","href","iframeDomain","protocol","port","messageHandlerUnbinder","isSameOrigin","onMessage","iframeEle","iframeWin","postMessage","setup$c","closeDialog","alertDialog","memFooterClose","titleSpec","closeSpec","footerCloseButton","setup$d","confirmDialog","memFooterYes","footerNo","footerYesButton","validateData$1","isAlertOrConfirmDialog","inlineAdditionalBehaviours","setup$e","isStickyToolbar$1","openInlineDialog","openModalDialog","openModalUrlDialog","internalInitialData","config$1","refreshDocking","dialogUi","inlineDialogComp","confirm","alert","Theme","windowMgr","getWindowManagerImpl","getNotificationManagerImpl","aFunction","that","provide","expansionPanels","accordion","flat","focusable","inset","popout","tile","Boolean","computed","created","$attrs","methods","updateItem","nextValue","toggleMethod","hsva","hexa","hsla","fromHexa","fromRGBA","oldColor","fromHSLA","fromHSVA","shouldStrip","hideAlpha","genAlpha","genTrack","staticClass","thumbColor","hideDetails","backgroundImage","$vuetify","genSliders","$createElement","genDot","background","genHue","VSlider","class","dotSize","boundingRect","watch","mounted","emitColor","updateCanvas","$refs","saturationGradient","valueGradient","handleClick","$el","handleMouseDown","handleMouseMove","handleMouseUp","genCanvas","radius","inputs","hideModeSwitch","internalMode","parseValue","changeMode","genInput","domProps","genInputs","maxlength","newVal","genSwitch","VBtn","small","VIcon","lighten5","lighten4","lighten3","lighten2","lighten1","darken1","darken2","darken3","darken4","accent1","accent2","accent3","accent4","pink","purple","deepPurple","indigo","lightBlue","cyan","teal","lightGreen","lime","yellow","amber","orange","deepOrange","brown","blueGrey","grey","shades","black","white","transparent","parseDefaultColors","mixins","swatches","genColor","parseColor","dark","light","genSwatches","swatch","canvasHeight","hideCanvas","hideSliders","hideInputs","showSwatches","swatchesMaxHeight","internalValue","hasAlpha","immediate","updateColor","extractColor","genControls","genEdit","genPreview","VSheet","elevationClasses","$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","proto","depthArg","O","sourceLen","A","construct","C","argsLength","partArgs","boundFunction","toIndexedObject","nativeGetOwnPropertyNames","windowNames","getOwnPropertyNames","getWindowNames","it","_unsupportedIterableToArray","minLen","arrayLikeToArray","DESCRIPTORS","propertyIsEnumerableModule","createPropertyDescriptor","toPrimitive","IE8_DOM_DEFINE","nativeGetOwnPropertyDescriptor","getOwnPropertyDescriptor","P","mergeTransitions","functional","hideOnLeave","leaveAbsolute","beforeEnter","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","enter","initialStyle","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFabTransition","createSimpleTransition","VFadeTransition","VScaleTransition","VSlideXTransition","VExpandTransition","createJavascriptTransition","VExpandXTransition","closeLabel","coloredBorder","dense","dismissible","closeIcon","outlined","prominent","__cachedBorder","setBackgroundColor","__cachedDismissible","lang","__cachedIcon","iconColor","computedColor","computedIcon","includes","hasColoredIcon","hasText","isDark","genWrapper","$slots","$scopedSlots","genContent","genAlert","directives","setColor","$values","stat","utils","buildURL","InterceptorManager","dispatchRequest","mergeConfig","Axios","instanceConfig","interceptors","request","forEach","interceptor","fulfilled","rejected","getUri","paramsSerializer","RangeError","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","captures","namedCaptures","replacement","tailPos","symbols","repeat","requireObjectCoercible","createMethod","IS_END","$this","maxLength","fillString","fillLen","stringFiller","S","stringLength","fillStr","intMaxLength","fails","IS_PURE","ITERATOR","searchParams","pathname","toJSON","URLSearchParams","username","hash","breakpoints","ALIGNMENT","makeProps","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","propMap","justify","alignContent","classMap","breakpointClass","breakpoint","noGutters","cacheKey","Infinity","fixRegExpWellKnownSymbolLogic","isRegExp","anObject","speciesConstructor","advanceStringIndex","callRegExpExec","regexpExec","arrayPush","MAX_UINT32","SUPPORTS_Y","SPLIT","nativeSplit","maybeCallNative","internalSplit","lim","lastIndex","lastLength","flags","ignoreCase","unicode","lastLastIndex","separatorCopy","splitter","regexp","rx","unicodeMatching","q","z","isFontAwesome5","iconType","isSvgPath","SIZE_MAP","medium","hasClickListener","listeners$","getIcon","getSize","sizes","xSmall","large","xLarge","explicitSize","getDefaultData","attrs$","getSvgWrapperData","wrapperData","applyColors","themeClasses","renderFontIcon","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","xmlns","viewBox","renderSvgIconComponent","$_wrapperFor","$reduce","arrayMethodIsStrict","CHROME_VERSION","IS_NODE","STRICT_METHOD","CHROME_BUG","forced","reduce","callbackfn","aTypedArrayConstructor","toAbsoluteIndex","copyWithin","inc","classof","R","DOMIterables","createNonEnumerableProperty","COLLECTION_NAME","Collection","CollectionPrototype","_objectWithoutPropertiesLoose","excluded","sourceKeys","_objectWithoutProperties","objectWithoutPropertiesLoose","sourceSymbolKeys","baseMixins","ClickOutside","fullscreen","noClickAnimation","persistent","retainFocus","scrollable","activatedBy","animate","animateTimeout","stackMinZIndex","previousActiveElement","contentClasses","hasActivator","beforeMount","beforeDestroy","animateClick","closeConditional","_isDestroyed","overlay","activeZIndex","hideScroll","onClickOutside","getOpenDependents","activator","onFocusin","getOpenDependentElements","showLazyContent","genTransition","genInnerContent","include","transformOrigin","openDelay","closeDelay","openTimeout","closeTimeout","clearDelay","runDelay","ArrayBufferViewCore","aTypedArray","exportTypedArrayMethod","beginIndex","buffer","byteOffset","BYTES_PER_ELEMENT","addI18n","$forEach","filteredChild","VNode","toPositiveInteger","BYTES","createHTML","forcedStringHTMLMethod","Constructor","isInGroup","listItemGroup","genData","setTextColor","getBuiltIn","SAFE_CLOSING","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","object","Ripple","exactActiveClass","nuxt","ripple","proxyClass","computedRipple","isClickable","isLink","$listeners","$route","generateRouteLink","onRouteChange","backgroundColor","clearable","emptyIcon","fullIcon","halfIcon","halfIncrements","iconLabel","hoverIndex","circle","iconProps","isHovering","$emit","createClickFn","createProps","isFilled","isHovered","genHoverIndex","isHalf","isHalfEvent","isFull","getColor","onMouseEnter","onMouseLeave","genItem","asyncGeneratorStep","gen","_next","_throw","arg","_asyncToGenerator","V8_VERSION","SPECIES","METHOD_NAME","foo","$sort","comparefn","stackElement","stackExclude","getMaxZIndex","zis","activeElements","isArrayIteratorMethod","getIteratorMethod","iteratorClose","iterable","unboundFunction","iterator","iterFn","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","condition","callFn","chips","counterSizeString","counterString","hideInput","prependIcon","showSize","smallChips","truncateLength","computedCounterValue","fileCount","isMultiple","lazyValue","internalArrayValue","isDirty","isLabelActive","truncatedText","hasChips","clearableCallback","genChips","genControl","genPrependSlot","genIcon","genSlot","genSelectionText","genSelections","genTextFieldSlot","onInput","onKeyDown","truncateText","charsKeepOneSide","integer","redefine","setGlobal","copyConstructorProperties","isForced","FORCED","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","noTargetGet","sham","groupBy","wasType","lastChild","shallowAs","mutate","matchNodeName","matchNodeNames","regex","isTextNode","isListNode","isOlUlNode","isOlNode","isListItemNode","isDlItemNode","isTableCellNode","isBr","isFirstChild","isTextBlock","getTextBlockElements","blockElements","isBogusBr","previousSibling","isEmpty","keepBookmarks","isChildOfBody","isChildOf","shouldIndentOnTab","getForcedRootBlock","getForcedRootBlockAttrs","createTextBlock","contentNode","textBlock","hasContentNode","getBlockElements","createFragment","blockName","tagName","setAttribs","splitList","ul","li","removeAndKeepBookmarks","bookmarks","newBlock","tmpRng","insertAfter","outdentDlItem","dl","indentDlItem","dlIndentation","indentation","dlItems","getNormalizedPoint","normalizeRange","outRng","rangeStart","rangeEnd","getParentList","selectionStart","getClosestListRootElm","isParentListSelected","parentList","selectedBlocks","findSubLists","grep","getSelectedSubLists","getSelectedBlocks","findParentListItemsNodes","listItemsElms","parentLi","getSelectedListItems","getSelectedDlItems","parentTableCell","findLastParentListNode","parentLists","getSelectedLists","firstList","subsequentLists","getSelectedListRoots","selectedLists","getUniqueListRoots","lists","listRoots","fromElements","fireListEvent","joinSegment","joinSegments","segments","appendSegments","head$1","tail","createSegment","listType","createSegments","populateSegments","listAttributes","itemAttributes","normalizeSegment","appendItem","writeShallow","cast","newCast","depth","writeDeep","composeList","entries","isList","hasFirstChildList","hasLastChildList","isIndented","cloneItemContent","createEntry","dirty","indentEntry","cloneListProperties","cleanListProperties","closestSiblingEntry","normalizeEntries","matchingEntry","parseItem","itemSelection","selectionState","currentItemEntry","childListEntries","parseList","parser","newDepth","parseLists","initialDepth","sourceList","outdentedComposer","normalizedEntries","indentedComposer","contentDocument","composeEntries","groupIsIndented","indentSelectedEntries","getItemSelection","selectedListItems","listIndentation","entrySets","entrySet","composedLists","composedList","selectionIndentation","isHandled","bookmark","getBookmark","moveToBookmark","indentListSelection","outdentListSelection","flattenListSelection","DOM$1","createBookmark","setupEndPoint","offsetNode","resolveBookmark","restoreEndPoint","nodeIndex","listToggleActionFromListName","listName","isCustomList","listState","activate","inList","updateListStyle","setStyle","updateListAttrs","updateListWithDetails","removeStyles","getEndPointNode","getSelectedTextBlocks","textBlocks","endNode","siblings","isBookmarkNode","hasCompatibleStyle","sib","sibStyle","detailStyle","applyList","listItemName","selectedTextBlocks","listBlock","rename","mergeWithAdjacentLists","isValidLists","list1","list2","hasSameListStyle","targetStyle","hasSameClasses","elm1","elm2","shouldMerge","updateList","newList","toggleMultipleLists","parentIsList","hasListStyleDetail","allLists","toggleSingleList","toggleList","selectedSubLists","DOM$2","normalizeList","normalizeLists","findNextCaretContainer","isForward","nonEmptyBlocks","getNonEmptyElements","walker","hasOnlyOneBlockChild","unwrapSingleBlockChild","moveChildren","fromElm","toElm","mergeLiElements","listNode","nestedLists","mergeIntoEmptyLi","fromLi","toLi","mergeForward","mergeBackward","resolvedBookmark","backspaceDeleteFromListToListCaret","selectionStartElm","rng_1","otherLi_1","removeBlock","parentBlock","backspaceDeleteIntoListCaret","otherLi_2","backspaceDeleteCaret","backspaceDeleteRange","startListParent","backspaceDelete","DELETE","currentList","getAttrib","setAttrib","queryListCommandState","setupTabKey","metaKeyPressed","listProperties","addContextMenu","Plugin","internalObjectKeys","enumBugKeys","hiddenKeys","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","getDefaultAdapter","adapter","XMLHttpRequest","transformRequest","isFormData","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","isURLSearchParams","transformResponse","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","measurableStyles","notARegExp","correctIsRegExpLogic","searchString","$reduceRight","TO_STRING","RegExpPrototype","nativeToString","NOT_GENERIC","INCORRECT_NAME","rf","unsafe","definePropertyModule","CONSTRUCTOR_NAME","configurable","_setPrototypeOf","setPrototypeOf","_inherits","subClass","superClass","normalizeComponent","scriptExports","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","_injectStyles","originalRender","existing","beforeCreate","_arrayWithoutHoles","_iterableToArray","Symbol","_nonIterableSpread","_toConsumableArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","$slice","Int8Array","loading","loaderHeight","genProgress","indeterminate","returnMethod","VToolbarTitle","VToolbarItems","sign","emptyObject","isUndef","isDef","isTrue","isFalse","isPrimitive","_toString","isPlainObject","isValidArrayIndex","isFinite","isPromise","toNumber","expectsLowerCase","isReservedAttribute","hasOwn","hit","camelizeRE","camelize","capitalize","hyphenateRE","hyphenate","polyfillBind","boundFn","_length","nativeBind","_from","no","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","keysA","keysB","looseIndexOf","SSR_ATTR","ASSET_TYPES","LIFECYCLE_HOOKS","optionMergeStrategies","silent","productionTip","devtools","performance","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","async","_lifecycleHooks","unicodeRegExp","isReserved","enumerable","bailRE","parsePath","_isServer","hasProto","inBrowser","inWeex","WXEnvironment","weexPlatform","UA","isIE9","isIOS","isFF","nativeWatch","supportsPassive","opts","isServerRendering","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","isNative","Ctor","_Set","hasSymbol","Reflect","ownKeys","Set","Dep","addSub","sub","removeSub","depend","addDep","targetStack","pushTarget","popTarget","componentOptions","asyncFactory","ns","fnContext","fnOptions","fnScopeId","componentInstance","isStatic","isRootInsert","isComment","isCloned","isOnce","asyncMeta","isAsyncPlaceholder","prototypeAccessors","defineProperties","createEmptyVNode","createTextVNode","cloneVNode","vnode","cloned","arrayProto","arrayMethods","methodsToPatch","inserted","__ob__","observeArray","arrayKeys","shouldObserve","toggleObserving","Observer","vmCount","protoAugment","copyAugment","walk","observe","asRootData","isExtensible","_isVue","defineReactive$$1","customSetter","childOb","dependArray","del","strats","toVal","fromVal","mergeDataOrFn","parentVal","childVal","vm","instanceData","defaultData","mergeHook","dedupeHooks","hooks","mergeAssets","key$1","inject","defaultStrat","normalizeProps","normalizeInject","normalized","normalizeDirectives","dirs","def$$1","mergeOptions","_base","extends","mergeField","strat","resolveAsset","warnMissing","assets","camelizedId","PascalCaseId","validateProp","propOptions","propsData","absent","booleanIndex","getTypeIndex","stringIndex","getPropDefaultValue","prevShouldObserve","_props","isSameType","expectedTypes","$parent","errorCaptured","globalHandleError","invokeWithErrorHandling","logError","timerFunc","isUsingMicroTask","pending","flushCallbacks","copies","MutationObserver","counter","observer","textNode","characterData","_resolve","seenObjects","traverse","_traverse","seen","isA","isFrozen","depId","normalizeEvent","passive","once$$1","createFnInvoker","fns","invoker","arguments$1","updateListeners","oldOn","remove$$1","createOnceHandler","mergeVNodeHook","hookKey","oldHook","wrappedHook","merged","extractPropsFromVNodeData","altKey","checkProp","simpleNormalizeChildren","normalizeChildren","normalizeArrayChildren","nestedIndex","_isVList","initProvide","_provided","initInjections","resolveInject","provideKey","provideDefault","resolveSlots","slots","normalizeScopedSlots","normalSlots","prevSlots","hasNormalSlots","isStable","$stable","$key","_normalized","$hasNormal","normalizeScopedSlot","key$2","proxyNormalSlot","proxy","renderList","renderSlot","bindObject","nodes","scopedSlotFn","resolveFilter","isKeyNotMatch","expect","actual","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","loop","camelizedKey","hyphenatedKey","$event","renderStatic","isInFor","_staticTrees","tree","_renderProxy","markStatic","markOnce","markStaticNode","bindObjectListeners","ours","resolveScopedSlots","hasDynamicKeys","contentHashKey","bindDynamicKeys","baseObj","prependModifier","symbol","installRenderHelpers","_o","_n","_l","_t","_q","_m","_u","_g","_p","FunctionalRenderContext","contextVm","this$1","_original","isCompiled","needNormalization","injections","scopedSlots","createFunctionalComponent","mergeProps","renderContext","cloneAndMarkFunctionalResult","vnodes","componentVNodeHooks","hydrating","keepAlive","mountedNode","prepatch","createComponentInstanceForVnode","activeInstance","$mount","oldVnode","updateChildComponent","_isMounted","callHook","queueActivatedComponent","activateChildComponent","deactivateChildComponent","$destroy","hooksToMerge","baseCtor","cid","resolveAsyncComponent","createAsyncPlaceholder","resolveConstructorOptions","transformModel","nativeOn","abstract","installComponentHooks","_isComponent","_parentVnode","inlineTemplate","toMerge","_merged","mergeHook$1","f1","f2","SIMPLE_NORMALIZE","ALWAYS_NORMALIZE","normalizationType","alwaysNormalize","_createElement","pre","applyNS","registerDeepBindings","force","initRender","_vnode","parentVnode","_renderChildren","parentData","_parentListeners","currentRenderingInstance","renderMixin","Vue","$nextTick","_render","ensureCtor","__esModule","toStringTag","errorComp","resolved","owners","loadingComp","sync","timerLoading","timerTimeout","$on","forceRender","renderCompleted","$forceUpdate","getFirstComponentChild","initEvents","_events","_hasHookEvent","updateComponentListeners","$off","_target","onceHandler","oldListeners","eventsMixin","hookRE","$once","i$1","setActiveInstance","prevActiveInstance","initLifecycle","$children","_watcher","_inactive","_directInactive","_isBeingDestroyed","lifecycleMixin","_update","prevEl","prevVnode","restoreActiveInstance","__patch__","__vue__","teardown","_watchers","mountComponent","updateComponent","Watcher","renderChildren","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","propKeys","_propKeys","isInInactiveTree","direct","activatedChildren","waiting","flushing","resetSchedulerState","currentFlushTimestamp","getNow","now","createEvent","timeStamp","flushSchedulerQueue","watcher","activatedQueue","updatedQueue","callActivatedHooks","callUpdatedHooks","queueWatcher","uid$2","expOrFn","isRenderWatcher","user","lazy","deps","newDeps","depIds","newDepIds","expression","cleanupDeps","tmp","evaluate","sharedPropertyDefinition","sourceKey","initState","initProps","initMethods","initData","initComputed","initWatch","propsOptions","computedWatcherOptions","watchers","_computedWatchers","isSSR","userDef","defineComputed","shouldCache","createComputedGetter","createGetterInvoker","createWatcher","$watch","stateMixin","dataDef","propsDef","$set","$delete","uid$3","initMixin","_init","_uid","initInternalComponent","_self","vnodeComponentOptions","_componentTag","super","superOptions","cachedSuperOptions","modifiedOptions","resolveModifiedOptions","extendOptions","modified","latest","sealed","sealedOptions","initUse","plugin","installedPlugins","_installedPlugins","install","initMixin$1","mixin","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","initProps$1","initComputed$1","Comp","initAssetRegisters","getComponentName","pruneCache","keepAliveInstance","cachedNode","pruneCacheEntry","cached$$1","patternTypes","KeepAlive","destroyed","ref$1","builtInComponents","initGlobalAPI","configDef","defineReactive","delete","observable","acceptValue","isEnumeratedAttr","isValidContentEditableValue","convertEnumeratedValue","isFalsyAttrValue","isBooleanAttr","xlinkNS","isXlink","getXlinkProp","genClassForVnode","childNode","mergeClassData","renderClass","dynamicClass","stringifyClass","stringifyArray","stringifyObject","stringified","namespaceMap","svg","math","isHTMLTag","isSVG","unknownElementCache","HTMLUnknownElement","HTMLElement","isTextInputType","createElement$1","createElementNS","namespace","createComment","newNode","referenceNode","setTextContent","setStyleScope","nodeOps","registerRef","isRemoval","refs","refInFor","emptyNode","sameVnode","sameInputType","typeA","typeB","createKeyToOldIdx","beginIdx","endIdx","createPatchFunction","backend","modules","emptyNodeAt","createRmCb","removeNode","createElm","insertedVnodeQueue","parentElm","refElm","ownerArray","setScope","createChildren","invokeCreateHooks","isReactivated","initComponent","reactivateComponent","pendingInsert","isPatchable","innerNode","ref$$1","addVnodes","startIdx","invokeDestroyHook","removeVnodes","removeAndInvokeRemoveHook","rm","updateChildren","oldCh","newCh","removeOnly","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","patchVnode","findIdxInOld","hydrate","postpatch","invokeInsertHook","isRenderedModule","inVPre","childrenMatch","fullInvoke","isInitialPatch","isRealElement","oldElm","_leaveCb","patchable","i$2","updateDirectives","oldDir","isCreate","isDestroy","oldDirs","normalizeDirectives$1","newDirs","dirsWithInsert","dirsWithPostpatch","oldArg","callHook$1","componentUpdated","callInsert","emptyModifiers","modifiers","getRawDirName","rawName","baseModules","updateAttrs","inheritAttrs","oldAttrs","setAttr","removeAttributeNS","baseSetAttr","setAttributeNS","__ieph","oldData","cls","_transitionClasses","_prevClass","target$1","klass","RANGE_TOKEN","CHECKBOX_RADIO_TOKEN","normalizeEvents","createOnceHandler$1","useMicrotaskFix","attachedTimestamp","_wrapper","currentTarget","updateDOMListeners","svgContainer","updateDOMProps","oldProps","strCur","shouldUpdateValue","checkVal","composing","isNotInFocusAndDirty","isDirtyWithModifiers","notInFocus","_vModifiers","parseStyleText","cssText","listDelimiter","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","staticStyle","bindingStyle","checkChild","styleData","emptyStyle","cssVarRE","importantRE","setProp","normalizedName","vendorNames","capName","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","whitespaceRE","tar","resolveTransition","autoCssTransition","enterClass","enterToClass","enterActiveClass","leaveClass","leaveToClass","leaveActiveClass","hasTransition","TRANSITION","ANIMATION","transitionProp","transitionEndEvent","animationProp","animationEndEvent","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","raf","nextFrame","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","getTransitionInfo","propCount","ended","onEnd","transformRE","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","durations","toMs","toggleDisplay","cancelled","_enterCb","appearClass","appearToClass","appearActiveClass","beforeAppear","afterAppear","appearCancelled","duration","transitionNode","isAppear","startClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","expectsCSS","userWantsControl","getHookArgumentsLength","pendingNode","_pending","isValidDuration","beforeLeave","delayLeave","explicitLeaveDuration","performLeave","invokerFns","_enter","platformModules","patch","vmodel","trigger","directive","_vOptions","setSelected","onCompositionStart","onCompositionEnd","prevOptions","curOptions","needReset","hasNoMatchingOption","actuallySetSelected","selectedIndex","initEvent","locateNode","transition$$1","originalDisplay","__vOriginalDisplay","platformDirectives","transitionProps","getRealChild","compOptions","extractTransitionData","rawChild","hasParentTransition","isSameChild","oldChild","isNotTextNode","isVShowDirective","Transition","_leaving","oldRawChild","delayedLeave","moveClass","TransitionGroup","kept","prevChildren","rawChildren","transitionData","c$1","hasMove","callPendingCbs","recordPosition","applyTranslation","_reflow","moved","WebkitTransform","transitionDuration","_moveCb","_hasMove","newPos","oldPos","platformComponents","EOF","USE_NATIVE_URL","anInstance","arrayFrom","codeAt","toASCII","setToStringTag","URLSearchParamsModule","InternalStateModule","NativeURL","getInternalSearchParamsState","setInternalState","getInternalURLState","getterFor","INVALID_AUTHORITY","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseHost","codePoints","parseIPv6","isSpecial","parseIPv4","percentEncode","C0ControlPercentEncodeSet","partsLength","numbers","radix","ipv4","numbersSeen","ipv4Piece","swaps","pieceIndex","compress","pointer","findLongestZeroSequence","ipv6","maxIndex","currStart","currLength","serializeHost","ignore0","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","encodeURIComponent","specialSchemes","ftp","http","https","ws","wss","scheme","includesCredentials","password","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","second","startsWithWindowsDriveLetter","third","shortenURLsPath","pathSize","isSingleDot","isDoubleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","bufferCodePoints","failure","seenAt","seenBracket","seenPasswordToken","codePoint","encodedCodePoints","URLConstructor","baseState","urlString","searchParamsState","updateSearchParams","updateURL","serializeURL","getProtocol","getUsername","getPassword","getHost","hostname","getHostname","getPort","getPathname","getSearch","getSearchParams","getHash","URLPrototype","accessorDescriptor","nativeCreateObjectURL","nativeRevokeObjectURL","defaultMenuProps","offsetY","offsetOverflow","VSelect","allowOverflow","autoSelectFirst","queryText","hideNoData","menuProps","noFilter","searchInput","lazySearch","computedItems","selectedValues","selectedItems","hasDisplayedItems","hideSelected","filteredItems","currentRange","internalSearch","isAnyValueAllowed","searchIsDirty","isSearching","menuCanShow","$_menuProps","listData","isMenuActive","oldVal","activateMenu","onFilteredItemsChanged","onInternalSearchChanged","updateMenuDimensions","changeSelectedIndex","deleteCurrentItem","curIndex","curItem","getDisabled","nextIndex","nextItem","VTextField","genInputSlot","hasSlot","isAppendInner","onSpaceDown","onTabDown","onUpDown","selectItem","setSelectedItems","setSearch","updateSelf","valueComparator","hasItem","onCopy","currentItemText","delimiters","returnObject","editingIndex","genChipSelection","chip","dblclick","onChipInput","onEnterDown","getMenuIndex","toLocaleLowerCase","updateEditing","updateCombobox","isUsingSlot","updateTags","pastedItemText","findExistingIndex","nativeStartsWith","startsWith","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","_getPrototypeOf","getPrototypeOf","_isNativeReflectConstruct","Proxy","_createSuper","Derived","isNativeReflectConstruct","NewTarget","possibleConstructorReturn","defer","IS_IOS","MessageChannel","Dispatch","ONREADYSTATECHANGE","runner","post","port2","port1","onmessage","importScripts","v8","enhanceError","app","centered","contentClass","multiLine","vertical","activeTimeout","hasBackground","paddingBottom","paddingLeft","paddingRight","paddingTop","genActions","mouseenter","mouseleave","genPickerButton","selectingYear","year","yearIcon","isReversing","computedTransition","genYearIcon","getYearBtn","genTitleText","genTitleDate","locale","currentLocale","padStart","targetLength","padString","createNativeLocaleFormatter","substrOptions","makeIsoString","dateString","pad","month","intlFormatter","Intl","nextAriaLabel","nextIcon","prevAriaLabel","prevIcon","timeZone","genBtn","ariaLabelId","calculateChange","monthChange","genHeader","itemTypeSuffix","allowedFn","Touch","allowedDates","eventColor","tableDate","wheelThrottle","displayedMonth","displayedYear","genButtonClasses","isAllowed","isCurrent","genButtonEvents","createItemTypeNativeListeners","genButton","isOtherMonth","mouseEventType","genEvents","getEventColors","arrayize","eventColors","eventData","isValidScroll","calculateTableDate","sanitizeType","sanitizeDateString","wheel","genTable","touchDirective","createUTCDate","day","firstWeekOffset","firstWeekDayInFirstWeek","firstDayOfWeek","firstWeekDayOfYear","dayOfYear","isLeapYear","weeksInYear","weekOffset","weekOffsetNext","daysInYear","week","localeFirstDayOfYear","showAdjacentMonths","showWeek","weekdayFormat","weekdayFormatter","weekday","weekDays","genTHead","days","genTR","weekDaysBeforeFirstDayOfTheMonth","firstDayOfTheMonth","weekDay","getWeekNumber","weekNumber","genWeekNumber","genTBody","daysInMonth","prevMonthYear","prevMonth","firstDayFromPreviousMonth","nextMonthYear","nextMonth","nextMonthDay","cols","tds","defaultColor","activeItem","genYearItem","formatted","genYearItems","selectedYear","maxYear","minYear","fullWidth","landscape","noTitle","computedTitleColor","defaultTitleColor","genTitle","genBodyTransition","genBody","headerColor","genPickerTitle","genPickerBody","genPickerActionsSlot","save","genPicker","elevation","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP","dayFormat","headerDateFormat","monthFormat","nextMonthAriaLabel","nextYearAriaLabel","pickerDate","prevMonthAriaLabel","prevYearAriaLabel","reactive","showCurrent","selectedItemsText","titleDateFormat","yearFormat","activePicker","inputDay","inputMonth","inputYear","multipleValue","lastValue","selectedMonths","getFullYear","getMonth","inputDate","tableMonth","tableYear","minMonth","maxMonth","formatters","titleDate","defaultTitleMultipleDateFormatter","dates","defaultTitleDateFormatter","titleFormats","titleDateFormatter","landscapeFormatter","nonDigit","emitInput","newInput","checkMultipleProp","valueType","expected","isDateAllowed","yearClick","monthClick","dateClick","genTableHeader","genDateTable","VDatePickerDateTable","createItemTypeListeners","genMonthTable","VDatePickerMonthTable","genYears","setInputDate","__CANCEL__","_typeof","_defineProperty","arr2","reflectionIsSupported","defineMetadata","getOwnMetadataKeys","copyReflectionMetadata","forwardMetadata","propertyKey","metaKeys","metaKey","metadata","getOwnMetadata","fakeArray","createDecorator","__decorators__","collectDataFromConstructor","Component","originalInit","_this","plainData","$internalHooks","componentFactory","decorators","superProto","Extended","forwardStaticMembers","shouldIgnore","callee","caller","Original","extendedDescriptor","superDescriptor","registerHooks","serializedParams","isDate","toISOString","hashmarkIndex","boilerplate","isLoading","rootTypes","article","avatar","heading","paragraph","sentences","genBone","genBones","bone","generator","genStructure","mapBones","genSkeleton","bones","onBeforeEnter","onBeforeLeave","_min","d0","bx","ay","la","lb","d3","dd","bx0","bx1","bx2","bx3","vector","generateWarning","defaultImpl","$lastIndexOf","searchElement","nativeGetPrototypeOf","CORRECT_PROTOTYPE_GETTER","FAILS_ON_PRIMITIVES","Iterators","objectKeys","Properties","_arrayWithHoles","_iterableToArrayLimit","_arr","_nonIterableRest","_slicedToArray","arrayWithHoles","iterableToArrayLimit","nonIterableRest","isAxiosError","fileName","lineNumber","columnNumber","errorCount","errorMessages","messages","successMessages","validateOnBlur","errorBucket","hasColor","hasFocused","hasInput","isResetting","hasError","internalErrorMessages","hasSuccess","internalSuccessMessages","externalError","hasMessages","validationTarget","hasState","shouldValidate","genInternalMessages","internalMessages","isInteractive","isReadonly","validations","validationState","resetValidation","isStandardBrowserEnv","originURL","msie","urlParsingNode","resolveURL","requestURL","parsed","openOnHover","calculatedMinWidth","closeDependents","calculatedLeft","activatorLeft","calcXOverflow","calculatedTop","activatorTop","calcYOverflow","offsetX","deactivate","genActivatorListeners","genActivatorAttributes","activatorFixed","isContentActive","applicationProperty","removeApplication","activated","deactivated","callUpdate","updateApplication","$findIndex","toOffset","arrayLike","defineIterator","STRING_ITERATOR","getInternalState","iterated","cbrt","$map","mapfn","addToUnscopables","Scroll","scrollTarget","scrollThreshold","currentScroll","currentThreshold","isScrollingUp","previousScroll","savedScroll","canScroll","computedScrollThreshold","onScroll","thresholdMet","VAppBar","clippedLeft","clippedRight","collapseOnScroll","elevateOnScroll","fadeImgOnScroll","hideOnScroll","invertedScroll","scrollOffScreen","shrinkOnScroll","VToolbar","scrollRatio","threshold","computedContentHeight","computedFontSize","computedLeft","application","computedMarginTop","computedOpacity","computedOriginalHeight","computedRight","computedTransform","hideShadow","isProminent","marginTop","genBackground","computedHeight","arch","execPath","pid","dlopen","uptime","memoryUsage","uvCounters","features","UNSCOPABLES","ArrayPrototype","MATCH","$some","regExpExec","nativeMatch","matcher","fullUnicode","matchStr","createError","defaultConstructor","circumference","normalizedValue","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","viewBoxSize","genCircle","fill","genSvg","genInfo","$trim","forcedStringTrimMethod","expansionPanel","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","mergeDeepProperties","axiosKeys","otherKeys","internalActivator","openOnFocus","activatorElement","activatorNode","slotType","addActivatorEvents","genActivator","getActivator","getContentSlot","getValueProxy","removeActivatorEvents","resetActivator","nativeConstruct","NEW_TARGET_BUG","F","ARGS_BUG","Target","newTarget","$args","lazyValidation","errorBag","watchInput","resetErrorBag","unwatch","novalidate","IS_INCLUDES","fromIndex","$padStart","WEBKIT_BUG","$filter","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","callWithSafeIterationClosing","createProperty","argumentsLength","mapping","iteratorMethod","groupClasses","collectionStrong","argument","transformData","isCancel","throwIfCancellationRequested","cancelToken","throwIfRequested","genRipple","center","getSubstitution","maybeToString","REPLACE","nativeReplace","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","searchValue","replaceValue","functionalReplace","accumulatedResult","nextSourcePosition","replacerArgs","enumerableOnly","sym","_objectSpread2","getOwnPropertyDescriptors","padless","computedBottom","isPositioned","DELAY_RIPPLE","isKeyboardEvent","calculate","localX","localY","centerX","centerY","ripples","animation","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","updateRipple","wasEnabled","copyright","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","whitespaces","whitespace","ltrim","rtrim","TYPE","activeThumb","toFocus","inputWidth","getTrackStyle","startPadding","endPadding","startDir","endDir","startLength","endLength","getIndexOfClosestValue","genTrackContainer","genChildren","onBlur","valueWidth","reevaluateSelected","refName","thumbRef","onSliderMouseDown","parseMouseMove","mouseUpOptions","mouseMoveOptions","onSliderClick","isInsideTrack","onMouseMove","parseKeyDown","setInternalValue","defaultSlot","bitmap","createTypedArrayConstructor","appendIcon","noAction","subGroup","listClick","matchRoute","genAppendIcon","VListItemIcon","VListItem","genItems","genPrependIcon","isBooted","VListItemActionText","VListItemContent","VListItemTitle","VListItemSubtitle","VList","VListItemAction","VListItemAvatar","VListItemGroup","payload","$join","maxInt","tMin","tMax","skew","damp","initialBias","initialN","regexNonASCII","regexSeparators","OVERFLOW_ERROR","baseMinusTMin","stringFromCharCode","fromCharCode","ucs2decode","digitToBasic","digit","adapt","numPoints","firstTime","inputLength","bias","basicLength","handledCPCount","handledCPCountPlusOne","qMinusT","baseMinusT","labels","BaseItemGroup","mandatory","internalLazyValue","valueIndex","updateInternalValue","updateItemsState","updateMultiple","updateSingle","updateMandatory","defaultValue","itemGroup","getMetadata","Watch","ArrayIterators","arrayValues","arrayEntries","nativeTypedArrayIterator","CORRECT_ITER_NAME","typedArrayValues","IndexedObject","nativeAssign","B","alphabet","T","NATIVE_ARRAY_BUFFER","redefineAll","toIndex","IEEE754","arrayFill","ARRAY_BUFFER","DATA_VIEW","PROTOTYPE","WRONG_LENGTH","WRONG_INDEX","NativeArrayBuffer","$ArrayBuffer","$DataView","$DataViewPrototype","ObjectPrototype","packIEEE754","pack","unpackIEEE754","unpack","packInt8","packInt16","packInt32","unpackInt32","packFloat32","packFloat64","addGetter","isLittleEndian","intIndex","byteLength","conversion","ArrayBufferPrototype","testView","nativeSetInt8","setInt8","getInt8","setUint8","bufferLength","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","ArrayBuffer","DataView","breakpointProps","offsetProps","orderProps","alignSelf","hasColClasses","CONVERT_TO_STRING","iterate","setSpecies","fastKey","internalStateGetterFor","getConstructor","IS_MAP","ADDER","getEntry","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","kind","originalArray","NATIVE_WEAK_MAP","objectHas","sharedKey","WeakMap","enforce","wmget","wmhas","wmset","facade","STATE","_arrayLikeToArray","InternalMetadataModule","checkCorrectnessOfIteration","inheritIfRequired","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","KEY","nativeMethod","REQUIRED","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","inspectSource","enforceInternalState","TEMPLATE","TO_ENTRIES","Wrapper","NewTargetPrototype","$router","extended","extensionHeight","short","isExtended","breakingProps","genExtension","Uint8ArrayPrototype","arrayToString","arrayJoin","IS_NOT_ARRAY_METHOD","$fill","wrappedWellKnownSymbolModule","NAME","theme","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","ArrayBufferModule","typedArrayFrom","getOwnPropertyDescriptorModule","nativeDefineProperty","NATIVE_ARRAY_BUFFER_VIEWS","TYPED_ARRAY_TAG","TypedArray","TypedArrayPrototype","isTypedArray","fromList","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","CLAMPED","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructor","TypedArrayConstructorPrototype","addElement","typedArrayOffset","$length","$len","Themeable","themeableProvide","appIsDark","rootIsDark","rootThemeClasses","validateAttachTarget","hasDetached","hasContent","getScopeIdAttrs","initDetach","LN2","mantissaLength","exponent","mantissa","exponentLength","eMax","eBias","rt","nBits","Cancel","expires","domain","secure","cookie","toGMTString","decodeURIComponent","hexColor","intToHex","colorToInt","sprime","RGBAtoCSS","HexToRGBA","RGBAtoHSVA","RGBAtoHex","HSVAtoRGBA","RGBtoInt","hasProPlugin","clipboard","quirks","firePastePreProcess","isWordHtml","wordContent","firePastePostProcess","firePastePlainTextToggle","firePaste","ieFake","shouldBlockDrop","shouldPasteDataImages","shouldFilterDrop","getPreProcess","getPostProcess","getWebkitStyles","shouldRemoveWebKitStyles","shouldMergeFormats","isSmartPasteEnabled","isPasteAsTextEnabled","getRetainStyleProps","getWordValidElements","defaultValidElements","shouldConvertWordFakeLists","shouldUseDefaultFilters","getValidate","getAllowHtmlDataUrls","getPasteDataImages","getImagesDataImgFilter","getImagesReuseFilename","getTabSpaces","getAllowedImageFileTypes","internalMimeType","internalMark","mark","unmark","isMarked","internalHtmlMime","isPlainText","toBRs","openContainer","rootTag","rootAttrs","toBlockElements","blocks","tagOpen","tagClose","paragraphs","stitch","domParser","shortEndedElements","getShortEndedElements","ignoreElements","currentNode","shortEnded","trimHtml","trimSpaces","s1","s2","createIdGenerator","getImageMimeType","ext","lowerExt","mimeOverrides","jpg","jpe","jfi","jif","jfif","pjpeg","pjp","isWordContent","isNumericList","isBulletList","convertFakeListsToProperLists","currentListNode","prevListNode","lastLevel","txt","trimListStart","regExp","removeIgnoredNodes","_listIgnore","convertParagraphToLi","paragraphNode","_listLevel","nodeText","filterStyles","validStyles","styleValue","outputStyles","serializeStyle","filterWordContent","retainStyleProperties","spaces","validElements","valid_elements","valid_children","attributesOrder","addAttributeFilter","addNodeFilter","serialize","preProcess","preProcess$1","forced_root_block","isRootContent","processResult","postProcessFilter","tempBody","postProcessArgs","filterContent","preProcessArgs","filteredContent","hasEventListeners","pasteHtml","paste","isAbsoluteUrl","isImageUrl","createImage","pasteHtmlFn","createLink","linkSelection","insertImage","smartInsertContent","pasteAsText","isCollapsibleWhitespace","isNewLineChar","isNewline","normalizeWhitespace","tabSpace","normalizedText","pcIsSpace","doPaste","pasteHtml$1","internalFlag","pasteText","encodedText","getDataTransferItems","mceInternalUrlPrefix","legacyText","contentType","getClipboardContent","clipboardEvent","clipboardData","hasContentType","clipboardContent","mimeType","hasHtmlOrText","parseDataUri","isValidDataUriImage","imgElm","extractFilename","uniqueId","pasteImage","imageItem","blobCache","editorUpload","blobInfo","existingBlobInfo","getByData","useFileName","filename","blobUri","isClipboardEvent","isDataTransferItem","getAsFile","readFilesAsDataUris","onload","isImage","allowedExtensions","extension","getImagesFromDataTransfer","pasteImageData","images","fileResults","isBrokenAndroidClipboardEvent","isKeyboardPasteEvent","registerEventHandlers","pasteBin","pasteFormat","keyboardPastePlainTextState","keyboardPasteEvent","keyboardPastePressed","removePasteBinOnKeyUp","webkit","insertClipboardContent","isKeyBoardPaste","plainTextMode","isDefaultContent","isPlainTextHtml","getLastRng","isKeyboardPaste","registerEventsAndFilters","isPasteInsert","transparentSrc","isWebKitFakeUrl","isDataUri","getPasteBinParent","isExternalPasteBin","delegatePasteEvents","pasteBinElm","pasteBinDefaultContent","isDefault","lastRngCell","gecko","pasteBinClone","copyAndRemove","pasteBinClones","dirtyWrappers","cleanWrapper","isPasteBin","PasteBin","Clipboard","togglePlainTextPaste","hasWorkingClipboardApi","iOS","setHtml5Clipboard","clearData","setClipboardData","markedHtml","contenteditable","setStyles","offscreenRange","selectNodeContents","isTableSelection","hasSelectedContent","getCaretRangeFromEvent","getCaretRangeFromPoint","isPlainTextFileUrl","plainTextContent","setFocusedRange","draggingInternallyState","dropContent","content_1","plugins","postProcess","addPreProcessFilter","filterFunc","addPostProcessFilter","removeExplorerBrElementsAfterBlocks","explorerBlocksRegExp","removeWebKitStyles","webKitStyles","webKitStylesSetting","dom_1","node_1","decode","removeUnderlineAndFontInAnchor","makeSetupHandler","pastePlainTextToggleHandler","activeXDocument","documentCreateElement","GT","LT","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","parentWindow","NullProtoObjectViaIFrame","iframeDocument","JS","NullProtoObject","ActiveXObject","$find","FIND","SKIPS_HOLES","createIteratorConstructor","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","ENTRIES","returnThis","Iterable","IteratorConstructor","DEFAULT","IS_SET","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","makeWatcher","$data","passiveSupported","testListenerOpts","deepEqual","getNestedValue","getObjectValueByPath","getZIndex","tagsToReplace","filtered","esc","space","up","down","home","backspace","pageup","pagedown","iconPath","override","sortBy","stringCollator","sensitivity","usage","sortKey","sortA","sortB","sortDesc","customSorters","customResult","defaultFilter","throttling","chunked","binary","mergeDeep","endPos","roundedClasses","$includes","btnToggle","depressed","plain","retainFocusOnClick","sizeableClasses","computedElevation","defaultRipple","hasBg","isElevated","isRound","genLoader","loader","isAbsoluteURL","combineURLs","requestedURL","sameValue","SEARCH","nativeSearch","searcher","previousLastIndex","quot","attribute","p1","isGreater","onObserve","onVisible","dirtyTypes","appendOuterIcon","clearIcon","counterValue","filled","prependInnerIcon","shaped","singleLine","solo","soloInverted","badInput","labelWidth","prefixWidth","prependWidth","isClearing","VInput","hasCounter","hasDetails","isEnclosed","isSingle","isSolo","labelPosition","labelValue","showLabel","hasLabel","genAppendSlot","genPrependInnerSlot","genIconSlot","genClearIcon","genCounter","genDefaultSlot","genFieldset","genLabel","for","VLabel","genLegend","quiet","onResize","genMessages","messagesNode","counterNode","genAffix","attachedRoot","onMouseDown","onMouseUp","setLabelWidth","setPrefixWidth","setPrependWidth","tryAutofocus","updateValue","isInList","isInMenu","isInNav","nav","subheader","threeLine","twoLine","applyListFormat","getNumberStyles","getBulletStyles","getSelectedStyleType","listElm","styleValueToText","isWithinList","tableCellIndex","iconStyle","listStyleType","listStyle","_styles","addControl","functionToString","nativeEndsWith","endPosition","encodeReserveRE","encodeReserveReplacer","commaRE","resolveQuery","extraQuery","_parseQuery","parsedQuery","parseQuery","castQueryParamValue","param","stringifyQuery","val2","trailingSlashRE","createRoute","redirectedFrom","router","route","fullPath","getFullPath","formatMatch","START","_stringifyQuery","isSameRoute","onlyPath","isObjectEqual","aKeys","bKeys","aVal","bVal","isIncludedRoute","queryIncludes","handleRouteEntered","instances","enteredCbs","View","routerView","_routerViewCache","inactive","_routerRoot","vnodeData","routerViewDepth","cachedData","cachedComponent","configProps","fillPropsinData","registerRouteInstance","propsToPass","resolveProps","resolvePath","firstChar","hashIndex","queryIndex","cleanPath","isarray","pathToRegexp_1","pathToRegexp","parse_1","compile_1","compile","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","tokens","defaultDelimiter","escaped","modifier","asterisk","partial","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","encodeAsterisk","pretty","token","attachKeys","sensitive","regexpToRegexp","arrayToRegexp","stringToRegexp","endsWithDelimiter","regexpCompileCache","fillParams","routeMsg","filler","pathMatch","normalizeLocation","params$1","rawPath","parsedPath","basePath","_Vue","toTypes","eventTypes","Link","exactPath","ariaCurrentValue","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","guardEvent","scopedSlot","isExactActive","findAnchor","aData","handler$1","event$1","aAttrs","defaultPrevented","installed","registerInstance","callVal","_router","_route","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","parentRoute","pathList","pathMap","nameMap","addRouteRecord","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","compileRouteRegex","alias","redirect","childMatchAs","aliases","aliasRoute","createMatcher","addRoutes","addRoute","parentOrRoute","getRoutes","currentRoute","_createRoute","paramNames","record$1","originalRedirect","resolveRecordPath","resolvedPath","aliasedPath","aliasedMatch","aliasedRecord","Time","genStateKey","getStateKey","setStateKey","positionStore","setupScroll","scrollRestoration","protocolAndPath","absolutePath","stateCopy","handlePopState","handleScroll","isPop","behavior","scrollBehavior","getScrollPosition","shouldScroll","scrollToPosition","saveScrollPosition","getElementPosition","docEl","docRect","elRect","isValidPosition","normalizePosition","normalizeOffset","hashStartsWithNumberRE","supportsPushState","ua","pushState","runQueue","NavigationFailureType","redirected","aborted","duplicated","createNavigationRedirectedError","createRouterError","stringifyRoute","createNavigationDuplicatedError","createNavigationCancelledError","createNavigationAbortedError","_isRouter","propertiesToLog","isNavigationFailure","errorType","resolveAsyncComponents","hasAsync","flatMapComponents","resolvedDef","isESModule","History","normalizeBase","ready","readyCbs","readyErrorCbs","errorCbs","baseEl","resolveQueue","extractGuards","records","guards","guard","extractGuard","extractLeaveGuards","bindGuard","extractUpdateHooks","extractEnterGuards","bindEnterGuard","listen","onReady","errorCb","transitionTo","onComplete","onAbort","confirmTransition","updateRoute","ensureURL","afterHooks","lastRouteIndex","lastCurrentIndex","beforeHooks","enterGuards","resolveHooks","setupListeners","cleanupListener","HTML5History","_startLocation","getLocation","expectScroll","supportsScroll","handleRoutingEvent","fromRoute","getCurrentLocation","HashHistory","checkFallback","ensureSlash","replaceHash","pushHash","getUrl","AbstractHistory","targetIndex","VueRouter","apps","registerHook","createHref","handleInitialScroll","routeOrError","beforeEach","beforeResolve","afterEach","forward","getMatchedComponents","normalizedTo","START_LOCATION","srgbForwardMatrix","srgbForwardTransform","srgbReverseMatrix","srgbReverseTransform","xyz","CancelToken","resolvePromise","backgroundOpacity","bufferValue","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","isReversed","normalizedBuffer","genListeners","customSort","mustSort","multiSort","page","itemsPerPage","groupDesc","customGroup","disableSort","disablePagination","disableFiltering","customFilter","serverItemsLength","internalOptions","sortDiff","groupDiff","itemsLength","pageCount","pageStart","pageStop","isGrouped","pagination","sortItems","paginateItems","groupedItems","scopedProps","sortArray","updateOptions","originalItemsLength","computedOptions","by","oldBy","oldDesc","byIndex","itemsPerPageOptions","firstIcon","lastIcon","itemsPerPageText","itemsPerPageAllText","showFirstLastPage","showCurrentPage","disableItemsPerPage","pageText","disableNextPageIcon","computedDataItemsPerPageOptions","onFirstPage","onPreviousPage","onNextPage","onLastPage","onChangeItemsPerPage","genDataItemsPerPageOption","genItemsPerPageSelect","computedIPPO","ippo","genPaginationInfo","genIcons","VData","itemKey","singleSelect","mobileBreakpoint","singleExpand","noResultsText","noDataText","loadingText","hideDefaultFooter","footerProps","selectableKey","expansion","internalCurrentItems","everyItem","selectableItems","someItems","sanitizedFooterProps","removedProps","toggleSelectAll","isSelectable","createItemProps","genEmptyWrapper","genEmpty","noData","filteredItemsLength","noResults","genFooter","genDefaultScopedSlot","outerProps","sortIcon","showGroupBy","genSelectAll","VSimpleCheckbox","genSortIcon","sortByText","genSortChip","sortIndex","beingSorted","isDesc","sortable","asc","VChip","genSortSelect","closeOnContentClick","sortHeaders","th","tr","genGroupByToggle","getAria","$t","ariaSort","mobile","dedupeModelListeners","VDataTableHeaderMobile","VDataTableHeaderDesktop","computedSlots","slotName","regularSlot","textAlign","headerClass","summaryClass","fixedHeader","hideDefaultHeader","mobileRowChildren","filterFn","searchTableItems","matchesColumnFilters","headersWithCustomFilters","matchesSearchTerm","headersWithoutCustomFilters","showSelect","showExpand","caption","headerProps","calculateWidths","headersLength","expandIcon","internalGroupBy","openCache","widths","computedHeaders","defaultHeader","colspanAttrs","colspan","columnSorters","sanitizedHeaderProps","computedItemsPerPage","firstOption","calcWidths","customFilterWithColumns","customSortWithHeaders","VDataIterator","genCaption","genColgroup","genLoading","genHeaders","genGroupedRows","genRows","genDefaultGroupedRow","toggleFn","removeFn","RowGroup","genScopedRows","genDefaultRows","genDefaultExpandedRow","headerRow","genDefaultSimpleRow","expandedRow","MobileRow","genFooters","simpleProps","proxySlot","IntersectionObserver","isIntersecting","Intersect","postfix","regexpFlags","stickyHelpers","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","PATCH","reCopy","charsAdded","strCopy","feature","POLYFILL","NATIVE","mdiAccountCircle","mdiAccountDetails","mdiAccountGroup","mdiAccountMultiple","mdiAccountPlus","mdiCalendarClock","mdiCamera","mdiClose","mdiCog","mdiCommentQuote","mdiCommentText","mdiContentCopy","mdiContentSave","mdiCurrencyUsd","mdiDelete","mdiDownload","mdiEmail","mdiEmailOpen","mdiEye","mdiEyeOff","mdiFileCancel","mdiFolder","mdiHome","mdiHospitalBoxOutline","mdiImageAlbum","mdiInformationOutline","mdiLink","mdiLockOpen","mdiLogout","mdiPaperclip","mdiPlus","mdiPlusCircle","mdiPoll","mdiRefresh","mdiSend","mdiUndo","mdiUpload","mdiViewList","mdiWashingMachine","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","_invoke","makeInvokeMethod","tryCatch","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","doneResult","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","displayName","isGeneratorFunction","genFun","ctor","awrap","skipTempReset","rootEntry","rootRecord","rval","exception","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","getIterator","$fetch","Headers","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","plus","sequences","percentSequence","percentDecode","deserialize","parseSearchParams","validateArgumentsLength","passed","URLSearchParamsIterator","URLSearchParamsConstructor","entryIterator","entryNext","URLSearchParamsPrototype","entriesIndex","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","E","VCardActions","VCardSubtitle","VCardText","VCardTitle","_assertThisInitialized","ReferenceError","_possibleConstructorReturn","assertThisInitialized","$copyWithin","__decorate","decorate","Attributes","eager","indeterminateIcon","onIcon","offIcon","RE","nativeJoin","ES3_STRINGS","defaultConditional","mapper","sourceIndex","mapFn","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","deleteCount","insertCount","actualDeleteCount","actualStart","Proxyable","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","nativeObjectCreate","getOwnPropertyNamesExternal","defineWellKnownSymbol","HIDDEN","SYMBOL","TO_PRIMITIVE","$stringify","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","WellKnownSymbolsStore","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","isSymbol","$defineProperty","$defineProperties","$getOwnPropertySymbols","$propertyIsEnumerable","$create","V","$getOwnPropertyDescriptor","$getOwnPropertyNames","IS_OBJECT_PROTOTYPE","keyFor","useSetter","useSimple","FORCED_JSON_STRINGIFY","$replacer","fluid","$every","INCORRECT_ITERATION","registeredInModuleLoader","OldCookies","Cookies","noConflict","toUTCString","stringifiedAttributes","attributeName","json","jar","cookies","getJSON","withConverter","NativePromise","promiseResolve","NON_GENERIC","real","onFinally","autoGrow","noResize","rowHeight","noResizeHandle","calculateInputHeight","colorName","NUMBER","NativeNumber","NumberPrototype","BROKEN_CLASSOF","maxCode","digits","NumberWrapper","windowGroup","continuous","showArrows","showArrowsOnHover","touchless","changedByDelimiters","internalHeight","transitionHeight","transitionCount","isReverse","internalReverse","hasActiveItems","hasNext","internalIndex","hasPrev","updateReverse","genContainer","genControlIcons","getNextIndex","getPrevIndex","prevIndex","error1","error2","inputIndeterminate","genCheckbox","dotAll","aspectRatio","computedAspectRatio","aspectStyle","__cachedSizer","hasIntersect","intersect","contain","gradient","lazySrc","rootMargin","srcset","currentSrc","calculatedAspectRatio","normalisedSrc","aspect","__cachedImage","backgroundPosition","lazyImg","getSrc","pollForSize","poll","__genPlaceholder","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","TO_STRING_TAG_SUPPORT","raised","FunctionPrototype","FunctionPrototypeToString","nameRE","$toLocaleString","toLocaleString","TO_LOCALE_STRING_BUG","settle","buildFullPath","parseHeaders","isURLSameOrigin","requestData","requestHeaders","auth","unescape","Authorization","btoa","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","responseData","responseType","responseText","statusText","onabort","onerror","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","setRequestHeader","onDownloadProgress","onUploadProgress","upload","send","flush","macrotask","IS_WEBOS_WEBKIT","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","task","createWellKnownSymbol","withoutSetter","nativeKeys","thisNumberValue","nativeToFixed","x2","c2","dataToString","fractionDigits","fractDigits","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_OUT","NO_HOLES","specificCreate","filterOut","switchData","onSwipeRight","onSwipeLeft","searchChildren","isDependent","openDependents","getClickableDependentElements","_createForOfIteratorHelper","normalCompletion","didErr","_e2","itemDisabled","parsedItems","tileActiveClass","staticNoDataTile","genTileContent","genAction","genDivider","VDivider","genFilteredText","getMaskedCharacters","genHighlight","VSubheader","genTile","needsTile","closeOnClick","disableKeys","openOnClick","cacheItems","deletableChips","disableLookup","itemColor","openOnClear","cachedItems","menuIsBooted","lastItem","keyboardLookupPrefix","keyboardLookupLastTime","filterDuplicates","computedOwns","dynamicHeight","staticList","VSelectList","virtualizedItems","normalisedProps","nudgeBottom","uniqueValues","genCommaSelection","selections","keypress","onKeyPress","genHiddenInput","genList","genListWithSlot","genMenu","VMenu","genSelection","genSlotSelection","onEscDown","KEYBOARD_LOOKUP_THRESHOLD","onMenuActiveChange","hasMouseDown","showMoreItems","activeTile","listIndex","setMenuIndex","appendInner","inverseLabel","thumbLabel","thumbSize","tickLabels","ticks","tickSize","trackColor","trackFillColor","keyPressed","noClick","roundValue","trackTransition","minValue","maxValue","stepNumeric","trackFillStyles","valueDir","trackStyles","showTicks","numTicks","showThumbLabel","computedTrackColor","computedTrackFillColor","computedThumbColor","genSlider","genThumbContainer","genSteps","offsetDirection","thumbLabelContent","genThumbLabelContent","genThumbLabel","getThumbContainerStyles","genThumb","onSliderMouseUp","onKeyUp","track","trackLength","clickOffset","clickPos","trackStart","steps","increase","multiplier","trimmedStep","decimals","preventExtensions","isNull","assumeExternalTargets","externalTargets","hasContextToolbar","getLinkList","getDefaultLinkTarget","getTargetList","getRelList","getLinkClassList","shouldShowLinkTitle","allowUnsafeLinkTarget","useQuickLink","getDefaultLinkProtocol","sanitizeList","extractValue","sanitizeWith","extracter","sanitize","createUi","ListOptions","getHref","collectNodesInRange","cloneContents","hasProtocol","applyRelTargetRules","isUnsafe","rels","addTargetRules","removeTargetRules","inArray","newRels","trimCaretContainers","getAnchorElement","selectedElm","isImageFigure","getAnchorText","anchorElm","hasLinks","hasLinksInSelection","isOnlyTextSelected","inlineTextElements","getTextInlineElements","getLinkAttrs","handleExternalTargets","applyLinkOverrides","linkAttrs","newLinkAttrs","newRel","updateLink","linkImageFigure","linkDomMutation","attachState","unlinkSelection","startAnchorElm","endAnchorElm","unlinkDomMutation","unlinkImageFigure","unwrapOptions","fig","isListGroup","findTextByValue","catalog","persistentText","hasPersistentText","findCatalog","catalogs","linkCatalog","persistentData","getTitleFromUrlChange","getTextFromUrlChange","onUrlChange","onCatalogChange","DialogChanges","delayedConfirm","tryEmailTransform","suggestMailTo","tryProtocolTransform","defaultLinkProtocol","suggestProtocol","DialogConfirms","anchorNodes","AnchorListOptions","ClassListOptions","parseJson","getLinks","extractor","convertURL","linkList","optItems","noneItem","LinkListOptions","getRels","isTargetBlank_1","enforceSafe","safeRelExtractor","sanitizer","RelOptions","fallbacks","getTargets","TargetOptions","nonEmptyAttr","extractFromAnchor","onlyText","linkClass","collect","linkNode","links","optNode","titleEnabled","DialogInfo","handleSubmit","getChangedValue","changedData","pData","collectData","getInitialData","defaultTarget","makeDialog","urlInput","titleText","dialogDelta","appendClickRemove","initMouseEvent","getLink","getSelectedLink","hasOnlyAltModifier","gotoLink","targetEl","scrollIntoView","openDialog","gotoSelectedLink","setupGotoLinks","toggler","toggleActiveState","toggleEnabledState","toggleUnlinkState","hasLinks$1","addShortcut","setupButtons","setupMenuItems","setupContextMenu","inLink","noLink","setupContextToolbars","collapseSelectionToEnd","onSetupLink","addContextForm","_defineProperties","_createClass","protoProps","staticProps","PREFERRED_STRING","arrayBufferModule","fromSpeciesAndList","ignoreDuplicateOf","genMessage","hint","persistentHint","computedId","messagesToDisplay","hasHint","validationResult","showDetails","extraData","hasListener","handleGesture","touchendY","dirRatio","minDistance","touchendX","touchstartX","touchstartY","createHandlers","touchmoveX","touchmoveY","getGlobal","getTinymce","FormData","isView","pipe","product","assignValue","stripBOM","reverseTransition","inTransition","genWindowItem","onAfterTransition","onBeforeTransition","onTransitionCancelled","VWindowItem","SHARED","FIND_INDEX","disableIconRotate","hideActions","hasMousedown","non","$indexOf","NEGATIVE_ZERO","validEvents","isValidKey","bindHandlers","bindModelHandlers","modelEvents","$props","normalizedEvents","outputFormat","initEditor","prevVal","uuid","isTextarea","normalizePluginArray","mergePlugins","initPlugins","inputPlugins","isNullOrUndefined","scriptLoaded","CreateScriptLoader","injectScriptTag","referrerPolicy","reinitialize","ScriptLoader","editorProps","apiKey","cloudChannel","tinymceScriptSrc","renderInline","renderIframe","initialise","finalInit","elementId","inlineEditor","Editor","scriptSrc","EXISTS","chipGroup","filterIcon","pill","textColor","hasClose","genFilter","genClose","nextIsActive","registerContent","unregisterContent","registerHeader","unregisterHeader","hasDimensions","hasAdvTab","hasUploadTab","getPrependUrl","getClassList","hasDescription","hasImageTitle","hasImageCaption","getImageList","hasUploadUrl","hasUploadHandler","showAccessibilityOptions","isAutomaticUploadsEnabled","parseIntAndGetMax","val1","getImageSize","removePixelSuffix","addPixelSuffix","mergeMargins","splitMargin","createImageList","imageList","waitLoadImage","selectImage","isPlaceholderImage","getHspace","marginLeft","marginRight","getVspace","marginBottom","getBorder","borderWidth","hasCaption","updateAttrib","wrapInFigure","figureElm","removeFigure","toggleCaption","normalizeStyle","normalizeCss","attrValue","setSize","setHspace","pxValue","setVspace","setBorder","setBorderStyle","borderStyle","getBorderStyle","isFigure","getIsDecorative","getAlt","hspace","vspace","isDecorative","getStyleValue","setAlt","figure","updateProp","sugarImage","updateAlt","mergedCss","compressed","getSelectedImage","splitTextBlock","textBlockElements","isValidChild","readImageDataFromSelection","insertImageAtCaret","outerHTML","insertedElm","syncSrcAttr","deleteImage","writeImageDataToSelection","insertOrUpdateImage","partialData","selectedImageData","isNotEmpty","isGroup","findEntryDelegate","findEntry","optList","ListUtils","makeTab","_info","AdvTab","urlListSanitizer","futureImageList","hasAdvTab$1","hasUploadTab$1","hasUploadUrl$1","hasUploadHandler$1","hasDescription$1","hasImageTitle$1","hasDimensions$1","hasImageCaption$1","hasAccessibilityOptions","automaticUploads","prependURL","preUrl","makeItems","imageUrl","imageDescription","imageTitle","imageDimensions","makeTab$1","MainTab","makeTab$2","UploadTab","prevImage","prevAlt","fromImageData","borderstyle","fileinput","toImageData","removeEmptyAlt","addPrependUrl2","srcURL","prependUrl","addPrependUrl","formFillFromMeta2","formFillFromMeta","calculateImageSize","helpers","imageSize","updateImagesDropdown","changeSrc","changeImages","calcVSpace","matchingTopBottom","calcHSpace","matchingLeftRight","calcBorderWidth","calcBorderStyle","calcStyle","changeStyle2","dataCopy","changeStyle","changeAStyle","changeFileInput","finalize","updateSrcAndSwitchTab","dataUrl","createBlobCache","uploadImage","alertErr","addToBlobCache","changeHandler","closeHandler","makeDialogBody","tabPanel","submitHandler","uploadImagesAuto","normalizeCss$1","stylesArg","Dialog","hasImageClass","toggleContentEditableState","toggleContentEditable","serializer","selectorChangedWithUnbind","newPromiseCapability","promiseCapability","orientation","createInstance","defaultConfig","axios","promises","spread","variable","NASHORN_BUG","aPossiblePrototype","CORRECT_SETTER","TAG","_classCallCheck","IS_RIGHT","memo","REPLACE_SUPPORTS_NAMED_GROUPS","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","arg2","forceStringMethod","stringMethod","regexMethod","createMessage","generateComponentTrace","newMessage","consoleWarn","consoleError","classifyRE","classify","formatComponentName","includeFile","currentRecursiveSequence","styleList","styleProp","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","selectable","genAttrs","globalThis","Resize","FREEZING","onFreeze","nativeFreeze","ArrayIteratorMethods","ArrayValues","normalizeArray","allowAboveRoot","basename","matchedSlash","resolvedAbsolute","isAbsolute","trailingSlash","fromParts","toParts","samePartsLength","outputParts","sep","dirname","hasRoot","extname","startDot","startPart","preDotState","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","native","ARRAY_ITERATOR","Arguments","calculatedTopAuto","defaultOffset","hasJustFocused","resizeTimeout","tiles","menuWidth","calcLeft","calculatedMaxHeight","calculatedMaxWidth","pageWidth","hasClickableTiles","calcScrollPosition","maxScrollTop","calcLeftAuto","calcTopAuto","tileDistanceFromMenuTop","firstTileOffsetTop","computedTop","changeListIndex","genDirectives","menuable__content__active","getTiles","mouseEnterHandler","mouseLeaveHandler","nextTile","prevTile","lastTile","firstTile","mobileWidth","returnValue","originalValue","isEquatableType","compareFn","contramap","eqa","tripleEq","eqString","eqArray","eqSortedArray","eqRecord","kx","ky","eqAny","tx","ty","typeOf$1","sort$1","bifilter","equal","isArray$1","each$2","indexOf$1","iteratee","accumulator","removeFromStart","numChars","removeLeading","lTrim","rTrim","platform$1","fileApi","windowsPhone","Env","caretAfter","documentMode","ceFalse","cacheSuffix","experimentalShadowDom","canHaveCSP","desktop","whiteSpaceRegExp","delim","sp","scn","de","cn","createNS","onCreate","exts","_addCacheSuffix","toArray$1","recurse","COMMENT","eq$2","rawParent","filterSelf","prevSibling","prevSiblings","nextSiblings","childNodesCount","getHead","getStyleContainer","intoView","alignToTop","scrollIntoViewIfNeeded","isNodeType","isRestrictedNode","lowercasedNames","matchStyleValues","cssValue","attrName","hasAttributeValue","isBogus","isBogusAll","isTable","isTextareaOrInput","isComment$1","isDocument$1","isDocumentFragment$1","isImg","isTableCell","isMedia","browser$1","firstElement","getTableCaptionDeltaY","bodyTop","captionTop","captionHeight","hasChild","module$1","par","asyncValues","asyncValue","par$1","futures","unite","requestAnimationFramePromise","support","Expr","isXML","tokenize","outermostContext","sortInput","hasDuplicate","setDocument","document$1","documentIsHTML","rbuggyQSA","rbuggyMatches","contains$3","child$1","promiseObj","requestAnimationFrameFunc","vendors","featurefill","wrappedSetTimeout","wrappedSetInterval","wrappedClearTimeout","wrappedClearInterval","debounce","func","Delay","setEditorInterval","StyleSheetLoader","documentOrShadowRoot","idCount","loadedStates","edos","maxLoadTime","_setReferrerPolicy","addStyle","removeStyle","styleContainer","getOrCreateState","failed","urlWithSuffix","wait","testCallback","waitCallback","waitForWebKitLinkLoaded","styleSheets","styleSheet","ownerNode","linkElem","contentCssCors","loadF","loadAll","urls","unloadAll","forElement","referenceElement","rootDom","sl","DomTreeWalker","prev2","findSibling","findPreviousNode","startName","siblingName","tableCells","tableSections","headings","listItems","wsElements","lazyLookup","isHeading","isTable$1","isBr$1","isListItem","isTableSection","isTableCell$1","isWsPreserveElement","isZwsp","removeZwsp","ZWSP","isZwsp$1","trim$2","isText$2","isCaretContainerBlock","isCaretContainerInline","isCaretContainer","insertInline","endsWithCaretContainer","splitText","startsWithCaretContainer","isBeforeInline","isAtStart","isAfterInline","isAtEnd","createBogusBr","br","insertBlock","blockNode","trimBogusBr","brs","getElementsByTagName","lastBr","showCaretContainerBlock","caretContainer","isRangeInCaretContainerBlock","isContentEditableTrue$1","isContentEditableFalse$1","isBr$2","isText$3","isInvalidTextElement","isAtomicInline","isTable$2","isCaretContainer$1","isCaretCandidate","isNonUiContentEditableFalse","isUnselectable","isInEditable","isAtomicContentEditableFalse","isAtomic","isEditableCaretCandidate","whiteSpaceRegExp$1","isWhitespaceText","hasWhitespacePreserveParent","rootElement","isNamedAnchor","isContent","isBookmark","isBogus$1","isBogusAll$1","isEmptyNode","skipBogus","brCount","isSpan","isInlineContent","surroundedByInlineContent","prevIsInline","nextIsInline","isKeepTextNode","isKeepElement","isDocument$2","trimNode","currentChildren","makeMap$1","attrsCharsRegExp","textCharsRegExp","rawCharsRegExp","entityRegExp","asciiMap","128","130","131","132","133","134","135","136","137","138","139","140","142","145","146","147","148","149","150","151","152","153","154","155","156","158","159","baseEntities","'","reverseEntities","nativeDecode","buildEntitiesLookup","entity","namedEntities","encodeRaw","encodeNumeric","encodeNamed","entities","getEncodeFunc","entitiesMap","encodeNamedAndNumeric","encodeCustomNamed","named","numeric","Entities","mapCache","dummyObj","makeMap$2","each$3","extend$1","explode$1","compileSchema","globalAttributes","blockContent","phrasingContent","flowContent","html4BlockContent","html4PhrasingContent","ni","arrayToMap","addAttrs","schemaItem","script","compileElementMap","Schema","patternElements","customElementsMap","specialElements","createLookupTable","extendWith","schemaItems","verify_html","valid_styles","invalidStyles","invalid_styles","validClasses","valid_classes","whiteSpaceElementsMap","selfClosingElementsMap","shortEndedElementsMap","boolAttrMap","nonEmptyOrMoveCaretBeforeOnEnter","nonEmptyElementsMap","moveCaretBeforeOnEnterElementsMap","textBlockElementsMap","blockElementsMap","textInlineElementsMap","patternToRegExp","addValidElements","ei","ai","al","attrData","elementName","attrType","outputName","globalAttributesOrder","elementRuleRegExp","attrRuleRegExp","hasPatternsRegExp","validElementsArr","paddEmpty","removeEmpty","removeEmptyAttrs","attributesRequired","attributesDefault","attributesForced","forcedValue","validValues","attributePatterns","setValidElements","addCustomElements","customElements","customElementRegExp","text_block_elements","block_elements","cloneName","customRule","elmName","addValidChildren","validChildren","childRuleRegExp","getElementRule","custom_elements","extended_valid_elements","dt","tbody","thead","tfoot","legend","area","parentsRequired","invalid_elements","getValidStyles","getInvalidStyles","getValidClasses","getBoolAttrs","getSelfClosingElements","getMoveCaretBeforeOnEnterElements","getWhiteSpaceElements","getSpecialElements","attrPatterns","getCustomElements","Styles","rgbRegExp","urlOrStrRegExp","styleRegExp","trimRightRegExp","encodingLookup","invisibleChar","encodingItems","isEncoded","urlConverter","url_converter","urlConverterScope","url_converter_scope","noJoin","canCompress","compress2","keepSlashes","decodeSingleHexSequence","escSeq","decodeHexSequences","processUrl","url2","url3","str2","allow_script_urls","allow_svg_data_urls","serializeStyles","i_1","eventExpandoPrefix","mouseEventRe","deprecated","keyLocation","layerX","layerY","webkitMovementX","webkitMovementY","keyIdentifier","mozPressure","hasIsDefaultPrevented","returnTrue","returnFalse","addEvent","attachEvent","removeEvent","detachEvent","isMouseEvent","fix","originalEvent","srcElement","eventDoc","cancelBubble","isImmediatePropagationStopped","bindOnReady","eventUtils","domLoaded","isDocReady","readyHandler","EventUtils","expando","hasMouseEnterLeave","hasFocusIn","callbackList","fakeName","nativeHandler","defaultNativeHandler","executeHandlers","namesList","mouseEnterLeave","relatedTarget","ci","eventMap","clean","Event","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","sortOrder","strundefined","MAX_NEGATIVE","push_native","indexOf$2","booleans","identifier","pseudos","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","rquickExpr","rsibling","rescape","runescape","funescape","escapedWhitespace","high","els","Sizzle","seed","nid","newSelector","getElementsByClassName","qsa","toSelector","testContext","qsaError","cacheLength","markFunction","siblingCheck","createInputPseudo","createButtonPseudo","createPositionalPseudo","matchIndexes","setFilters","addCombinator","combinator","checkNonElements","doneName","xml","oldCache","outerCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","unmatched","newUnmatched","mapped","setMatcher","preFilter","postFilter","postFinder","postSelector","preMap","postMap","preexisting","elems","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","uniqueSort","hasCompare","getTop","attrId","disconnectedMatch","adown","bup","compare","sortDetached","aup","ap","bp","expr","matchesSelector","attrHandle","getAttributeNode","specified","duplicates","detectDuplicates","sortStable","createPseudo","excess","unquoted","nodeNameSelector","operator","what","ofType","useCache","pseudo","elemLang","tabIndex","even","odd","lt","gt","nth","filters","parseOnly","soFar","preFilters","compiled","push$1","slice$1","rquickExpr$1","skipUniques","isDefined","isString$1","isWindow","fragDoc","frag","domManipulate","targetNodes","sourceItem","getElementDocument","DomQuery","makeArray","hasClass","lastParent","newWrapper","numericCssMap","booleanMap","propFix","cssFix","attrHooks","cssHooks","DomQueryConstructor","inArray$1","whiteSpaceRegExp$2","trim$3","each$4","removeAttr","camel","dashed","currentStyle","prependTo","replaceWith","wrapInner","classState","existingClassName","sibling$1","firstSibling","wrappedResult","parentsUntil","nextUntil","prevUntil","overrideDefaults","each$5","grep$1","simpleSelectorRe","setupAttrHooks","keepValues","keep_values","keepUrlHook","$elm","updateInternalStyleAttr","findNodeIndex","lastNodeType","DOMUtils","addedStyles","stdMode","boxModel","boundEvents","ownEvents","$$","defaultVal","getAttribs","onSetAttrib","attrElm","clone_1","root_element","getViewPort","argWin","getPos$1","update_styles","selectorVal","_findSib","getPrev","setHTML","canHaveHTML","newElm","outHtml","keepChildren","$node","removeAllAttribs","removeAttributeNode","styleElm","loadCSS","getOuterHTML","setOuterHTML","reference","replaceChild","attrNode","findCommonAncestor","pe","rgbVal","isNonEmptyElement","bogusVal","splitElm","replacementElm","beforeFragment","afterFragment","rv","getContentEditableParent","dumpRng","each$6","grep$2","QUEUED","LOADING","LOADED","FAILED","scriptLoadedCallbacks","queueLoadedCallbacks","loadScript","cleanup","isDone","markDone","loadQueue","loadScripts","scripts","failures","execCallbacks","loadingScripts","notifyCallbacks","isRaw","isTokenised","currentCode","getLanguageData","setCode","newCode","getCode","langData","translation","getLangData","textstr","removeContext","substitued","$1","$2","hasCode","I18n","AddOnManager","_listeners","runListeners","matchedListeners","dependencies","requireLangPack","languages","languageLoad","waitFor","language","wrappedLanguages","addOn","addOnConstructor","createUrl","baseUrl","resource","addComponents","pluginName","pluginUrl","loadDependencies","addOnUrl","newUrl","PluginManager","ThemeManager","annotation","dataAnnotation","dataAnnotationId","annotationName","an","newStart","getAttr","findMarkers","isAnnotation","findAll","nodesAlready","_registry","changeCallbacks","withCallbacks","updateCallbacks","callbackMap","outputData","fireCallbacks","fireNoAnnotation","annotations","identifyParserNode","spans","TextWalker","TextSeeker","isBlockBoundary","newOffset","forwards","clone$2","toStart","isEqual","rect1","rect2","isValidOverflow","overflowY","halfHeight","containsXY","getSelectedNode","extendingChars","isExtendingChar","isElement$3","isCaretCandidate$1","isBlock$1","isFloated","isValidElementCaretCandidate","isNotPre","isText$4","isBr$3","resolveIndex","isWhiteSpace","isRange","isHiddenWhiteSpaceRange","getBrClientRect","brNode","nbsp$1","clientRect","getBoundingClientRectWebKitText","sc","ec","so","eo","newRng","isZeroRect","clientRects","collapseAndInflateWidth","newClientRect","getCaretPositionClientRects","caretPosition","beforeNode","addUniqueAndValidRect","addCharacterOffset","CaretPosition","toRange","fromRangeStart","fromRangeEnd","pos1","pos2","isTextPosition","isElementPosition","HDirection","trimEmptyTextNode","insertFragment","rangeInsertNode","isText$5","isBogus$2","nodeIndex$1","normalizedParent","getChildNodes","normalizedTextOffset","equal$1","normalizedNodeIndex","numTextFragments","createPathItem","outputOffset","resolvePathItem","findTextPosition","dataLen","targetOffset","resolve$1","isContentEditableFalse$2","getNormalizedTextOffset","trimmedOffset","getPoint","findIndex$2","moveEndPoint","normalizeTableCellSelection","findAdjacentContentEditableFalseElm","getOffsetBookmark","getCaretBookmark","getRangeBookmark","createBookmarkSpan","getPersistentBookmark","rng2","endBookmarkNode","startBookmarkNode","keep","getUndoBookmark","defaultPreviewStyles","getBodySetting","bodyObj","getIframeAttrs","getDocType","getDocumentBaseUrl","getBodyId","getBodyClass","getContentSecurityPolicy","shouldPutBrInPre","getBrNewLineSelector","getNoNewLineSelector","shouldKeepStyles","shouldEndContainerOnEmptyBlock","getFontStyleValues","getFontSizeClasses","shouldReuseFileName","shouldReplaceBlobUris","getIconPackName","getIconsUrl","getImageUploadUrl","getImageUploadBasePath","getImagesUploadCredentials","getImagesUploadHandler","shouldUseContentCssCors","getReferrerPolicy","getLanguageCode","getLanguageUrl","shouldIndentUseMargin","getIndentation","getContentCss","contentCss","getFontCss","fontCss","getDirectionality","getInlineBoundarySelector","getObjectResizing","getResizeImgProportional","getPlaceholder","getEventRoot","getServiceMessage","getTheme","isInlineBoundariesEnabled","getFormats","getPreviewStyles","canFormatEmptyLines","getCustomUiSelector","getThemeUrl","isInline$1","hasHiddenInput","shouldPatchSubmit","isEncodingXml","shouldAddFormSubmitTrigger","shouldAddUnloadTrigger","hasForcedRootBlock","getCustomUndoRedoLevels","shouldDisableNodeChange","hasContentCssCors","getPlugins","getExternalPlugins","shouldBlockUnsupportedDrop","isVisualAidsEnabled","getVisualAidsTableClass","getVisualAidsAnchorClass","isElement$4","isText$6","trimCount","trimmedText","deleteZwspChars","deleteData","removeUnchanged","removeTextAndReposition","removeElementAndReposition","newPosition","removeTextCaretContainer","removeElementCaretContainer","removeAndReposition","caretContainerNode","browser$2","isContentEditableFalse$3","isMedia$1","isTableCell$2","inlineFakeCaretSelector","getAbsoluteClientRect","scrollX","scrollY","rootRect","trimInlineCaretContainers","fakeCaretTargetNodes","FakeCaret","cursorInterval","lastVisualCaret","rootBlock","caretBlock","isInlineFakeCaretTarget","caretState","startBlink","getCss","isFakeCaretTableBrowser","isFakeCaretTarget","isContentEditableFalse$4","isMedia$2","isBlockLike","isCaretContainer$2","isCaretContainerBlock$1","isElement$5","isCaretCandidate$2","isForwards","isBackwards","skipCaretContainers","findNode","predicateFn","isCefOrCaretContainer","getParentBlock","isInSameBlock","caretPosition1","caretPosition2","getChildNodeAtRelativeOffset","relativeOffset","beforeAfter","isNodesInSameBlock","node1","node2","lean","leanLeft","leanRight","getRelativeCefElm","getNormalizedRangeEndPoint","normalizedRange","getElementFromPosition","getElementFromPrevPosition","getVisualCaretPosition","walkFn","isMoveInsideSameBlock","inSameBlock","isContentEditableFalse$5","isText$7","isElement$6","isBr$4","isCaretCandidate$3","isAtomic$1","isEditableCaretCandidate$1","nodeAtIndex","getCaretCandidatePosition","moveForwardFromBr","nextNode","findCaretPosition","Forwards","startPos","rootContentEditableFalseElm","CaretWalker","Backwards","walkToPositionIn","fromPosition","afterElement","isBeforeOrStart","isAfterOrEnd","isBeforeAfterSameElement","isAtBr","shouldSkipPosition","navigateIgnore","ignoreFilter","positionIn","nextPosition","prevPosition","firstPositionIn","lastPositionIn","CARET_ID","isCaretNode","getParentCaretContainer","isStringPathBookmark","isRangeBookmark","isIdBookmark","isIndexBookmark","isPathBookmark","addBogus","resolveCaretPositionBookmark","insertZwsp","isEmpty$1","tryFindRangePosition","padEmptyCaretContainer","setEndPoint","isValidTextNode","appendData","resolvePaths","resolveId","spos","epos","resolveIndex$1","resolve$2","getBookmark$1","isBookmarkNode$1","is$2","isNbsp","isWhiteSpace$1","isContent$1","isNode","isInlineBlock","moveStart","isWhiteSpaceNode","getNonWhiteSpaceSibling","nextName","isTextBlock$1","allowSpaces","isEmptyTextNode","replaceVars","vars","isEq","str1","normalizeStyleValue","getTextDecoration","decoration","getParents$1","isVariableFormatName","hasVariableValues","isVariableValue","fieldValues","areSimilarFormats","otherFormatName","filterObj","validKey","fmt1","filteredFmt1","fmt2","filteredFmt2","isBookmarkNode$2","getParents$2","isWhiteSpaceNode$1","isTextBlock$2","findParentContentEditable","walkText","findSpace","findContent","findWordEndPoint","includeTrailingSpaces","lastTextNode","textSeeker","textOffset","spaceResult","findSelectorEndPoint","curFormat","findBlockEndPoint","scopeRoot","isAtBlockBoundary","findParentContainer","block_expand","isSelfOrParentBookmark","expandRng","includeTrailingSpace","startPoint","endPoint","clampToExistingChildren","getEndChild","walk$1","collectSiblings","findEndPoint","walkBoundary","siblings_1","getSelectedNodes","hasMultipleRanges","getCellsFromRanges","getCellsFromElement","getCellsFromElementOrRanges","selectedCells","getCellsFromEditor","getSel","getStartNode","getEndNode","getFirstChildren","getLastChildren","hasAllContentsSelected","moveEndPoint$1","hasAnyRanges","runOnRanges","fakeSelectionNodes","fakeNodeRng","fillBookmark","isZeroWidth","wrapName","applyWordGrab","makeAnnotation","eDoc","master","annotate","newWrappers","finishWrapper","getOrOpenWrapper","processElements","processElement","processNodes","annotateWithBookmark","initialRng","hasFakeSelection","selectionRng","Annotator","annotationChanged","BookmarkManager","getContentEditableRoot","isXYWithinRange","firePreProcess","firePostProcess","fireRemove","fireDetach","fireSwitchMode","fireObjectResizeStart","fireObjectResized","firePreInit","firePostRender","fireInit","firePlaceholderToggle","fireError","VK","END","HOME","modifierPressed","isContentEditableFalse$6","ControlSelection","selectedElmGhost","resizeHelper","selectedHandle","resizeBackdrop","selectedElmX","selectedElmY","startW","startH","ratio","resizeStarted","startScrollWidth","startScrollHeight","elementSelectionAttr","editableDoc","rootDocument","resizeHandles","nw","ne","sw","isEventOnImageOutsideRange","contextMenuSelectImage","getResizeTarget","firstElementChild","isResizable","createGhostElement","setGhostElmSize","ghostElm","resizeGhostElement","proportional","resizeHelperX","resizeHelperY","endGhostResize","wasResizeStarted","setSizeProp","showResizeRect","unbindResizeHandleEvents","targetWidth","targetHeight","hideResizeRect","startDrag","updateResizeRect","startElm","controlElm","isChildOrEqual","disableGeckoResize","isWithinContentEditableFalse","handleMSControlSelect_1","delayedSelect","throttledUpdateResizeRect","hasCeProperty","findParent","findClosestIeRange","createTextRange","moveToElementText","moveToPoint","moveOutOfContentEditableFalse","parentElement","fromPoint$1","pointDoc","caretPositionFromPoint","caretRangeFromPoint","isEq$1","rng1","findParent$1","hasParent","hasParentWithName","isTable$3","isTableCell$3","isCeFalseCaretContainer","hasBrBeforeAfter","isPrevNode","hasContentEditableFalseParent","findTextNodeRelative","isAfterNode","lastInlineElement","parentBlockContainer","normalizeEndPoint","directionLeft","normRng","split$1","RangeUtils","normalize$1","normalizedRng","compareRanges","documentFocusInHandler","excludeFromDescend","fireScrollIntoViewEvent","scrollEvent","fireAfterScrollIntoViewEvent","markerInfo","cleanupFun","createMarker","elementMarker","withMarker","preserveWith","applyWithMarker","withScrollEvents","startElement","endElement","scrollToMarker","intoWindowIfNeeded","viewportBottom","largerThanViewport","intoWindow","intoFrame","frameViewHeight","op","rangeIntoWindow","elementIntoWindow","rangeIntoFrame","elementIntoFrame","scrollElementIntoView","scroller","scrollRangeIntoView","before$3","browser$3","normalizeRng","isOrContains","isRngInRoot","shouldStore","nativeRangeToSelectionRange","getBookmark$2","bookmarkToNativeRng","newBookmark","storeNative","isEditorUIElement","FocusManager","isManualNodeChange","selectionChange","registerPageMouseUp","throttledStore","mouseUpPage","registerFocusOut","registerMouseUp","registerEditorEvents","isEditorUIElement$1","isEditorContentAreaElement","isUIElement","customSelector","getActiveElement","registerEvents","editorManager","focusedEditor","blurredEditor","activeEditor","unregisterDocumentEvents","getContentEditableHost","getCollapsedNode","getFocusInElement","normalizeSelection","caretPos","focusBody","hasElementFocus","hasIframeFocus","iframeElement","hasInlineFocus","rawBody","hasUiFocus","hasFocus$1","hasEditorOrUiFocus","focusEditor","refreshContentEditable","bookmarkRng","contentEditableHost","activateEditor","skipFocus","getEndpointElement","getStart$2","skipEmptyTextNodes","getNode$1","commonAncestorContainer","endElm","select$1","processRanges","typeLookup","walk$2","isEmptyTextNode$1","AstNode","selfAttrs","cloneAttrs","selfAttr","refNode","extractBase64DataUris","dataImageUri","uris","imageId","restoreDataUris","safeSvgDataUrlElements","isValidPrefixAttrName","blockSvgDataUris","allowSvgDataUrls","allowed","isInvalidUri","allow_html_data_urls","findEndTagIndex","startIndex","tokenRegExp","isConditionalComment","findCommentEndIndex","lcHtml","endIfIndex","endCommentRegexp","checkBogusAttribute","attrString","SaxParser","fix_self_closing","comment","cdata","pi","doctype","parseInternal","base64Extract","endRegExp","attrList","textData","isInternalElement","isShortEnded","elementRule","isValidElement","attribsValue","validAttributesMap","validAttributePatterns","anyAttributesRequired","filteredUrlAttrs","scriptUriRegExp","parsingMode","processEndTag","processText","processComment","allow_conditional_comments","processAttr","processMalformedComment","startTag","parseAttribute","val3","attrRule","trimRegExp","fillAttrsMap","attrRegExp","selfClosing","self_closing_elements","removeInternalElements","remove_internals","fixSelfClosing","processHtml","bogusValue","isValidCdataSection","preserve_cdata","findEndTag","tempAttrs","trimContentRegExp","trimInternal","endTagIndex","bogusAllRegExp","getTempAttrs","trimExternal","trimEmptyContents","emptyRegExp","getContentFromBody","getInner","no_events","getContentInternal","each$7","ElementUtils","attribs","compareObjects","obj1","obj2","makeMap$3","Writer","indent","indentBefore","indent_before","indentAfter","indent_after","entity_encoding","htmlOutput","element_format","HtmlSerializer","writer","8","7","10","11","sortedAttrs","isChar","isBeforeSpace","isAfterSpace","isEmptyText","matchesElementPosition","isImageBlock","isCefNode","isBeforeImageBlock","isAfterImageBlock","isBeforeMedia","isAfterMedia","isBeforeTable","isAfterTable","isBeforeContentEditableFalse","isAfterContentEditableFalse","getLastChildren$1","rawNode","removeTrailingBr","allBrs","fillWithPaddingBr","trimBlockTrailingBr","lastChildPrevSibling","dropLast","parentsUntil$1","parents$1","parentsAndSelf","navigateIgnoreEmptyTextNodes","getClosestBlock","isAtBeforeAfterBlockBoundary","fromBlock","isAtBlockBoundary$1","isAtStartOfBlock","isAtEndOfBlock","isBeforeBlock","isAfterBlock","isBr$5","findBr","parentBlocks","isBeforeBr","isAfterBr","findPreviousBr","findNextBr","isInMiddleOfText","getClosestBlock$1","hasSpaceBefore","hasSpaceAfter","isPreValue","isInPre","isAtBeginningOfBody","isAtEndOfBody","isAtLineBoundary","needsToHaveNbsp","needsToBeNbspLeft","needsToBeNbspRight","needsToBeNbsp","isNbspAt","hasNbsp","normalizeNbspMiddle","chars","normalizeNbspAtStart","firstPos","normalizeNbspInMiddleOfTextNode","newText","normalizeNbspAtEnd","lastPos","normalizeNbsps","normalizeNbspsInEditor","normalizeContent","isStartOfContent","isEndOfContent","previousCharIsSpace","replaceData","normalizeWhitespaceAfter","whitespaceCount","normalizeWhitespaceBefore","mergeTextNodes","prevNode","mergeToPrev","whitespaceOffset","insertData","needsReposition","beforeOrStartOf","afterOrEndOf","getPreviousSiblingCaretPosition","getNextSiblingCaretPosition","findCaretPositionBackwardsFromElm","startPosition","findCaretPositionForwardsFromElm","findCaretPositionBackwards","findCaretPositionForward","findCaretPosition$1","findCaretPosOutsideElmAfterDelete","setSelection","eqRawNode","isBlock$2","paddEmptyBlock","deleteNormalized","afterDeletePosOpt","prevTextOpt","nextTextOpt","isInlineElement","deleteElement","moveCaret","afterDeletePos","normalizedAfterDeletePos","paddPos","tableCellRng","tableSelection","deleteAction","removeTable","emptyCells","deleteCellSelection","isRootFromElement","getClosestCell","getClosestTable","isExpandedCellRng","cellRng","getTableFromCellRng","startParentTable","endParentTable","isSingleCellTable","getTableCells","getCellRng","endCell","getCellRangeFromStartTable","partialSelection","isWithinSameTable","getTableSelectionFromCellRng","getTableSelection","optCellRng","cRng","getCellIndex","getSelectedCells","isSingleCellTableContentSelected","getActionFromRange","freefallRtl","deleteCellContents","deleteContents","lastNode","lastBlock","additionalCleanupNodes","deleteTableElement","deleteCellRange","deleteCaptionRange","emptyElement","deleteTableRange","getParentCaption","deleteRange","getParentCell","deleteBetweenCells","fromCell","isDeleteOfLastCharPos","fromCaption","emptyCaretCaption","validateCaretCaption","toCaption","deleteCaretInsideCaption","deleteCaretCells","deleteCaretCaption","isNearTable","isBeforeOrAfterTable","fromPos","deleteCaret","createRange$1","normalizeBlockSelectionRange","newEndPos","normalize$2","hasOnlyOneChild","isPaddingNode","isPaddedEmptyBlock","isEmptyFragmentElement","nonEmptyElements","isListFragment","cleanupDomFragment","domFragment","toDomFragment","listItems$1","isPadding","isListItemPadded","isEmptyOrPadded","trimListItems","getParentLi","isParentBlockLi","getSplit","beforeRng","afterRng","findFirstIn","caretWalker","newCaretPos","findLastOf","insertMiddle","insertAtCaret","liTarget","liElms","BEGINNING","isAt","trimOrPadLeftRight","isTableCell$4","isTableCellContentSelected","validInsertion","trimBrsFromTableCell","reduceInlineTextElements","textInlineElements","root_1","elementUtils_1","testNode","markFragmentElements","unmarkFragmentElements","isPartOfFragment","canHaveChildren","moveSelectionToMarker","nextRng","getContentEditableFalseParent","parentEditableFalseElm","findNextCaretRng","deleteSelectedContent","insertHtmlAtCaret","bookmarkHtml","caretElement","parserArgs","_selectionOverrides","showBlockCaretContainer","addVisual","findMatchingNodes","nodeFilters","attributeFilters","attrMatches","name_2","filter$3","defaultFormat","isTreeNode","moveSelection","setEditorHtml","setContentString","forcedRootBlockName","padd","setContentTree","getNodeFilters","getAttributeFilters","setContentInternal","sibling$2","ancestor$3","isEq$2","matchesUnInheritedFormatSelector","formatList","inherit","matchParents","matchNode","matchName","matchItems","similar","onmatch","matchAll","matchedFormatNames","checkedMap","rawElm","defaultBlock","matchAllOnNode","formatNames","matchSimilar","ZWSP$1","CARET_ID$1","importNode","getEmptyCaretContainers","isCaretContainerEmpty","findFirstTextNode","createCaretContainer","trimZwspFromCaretContainer","removeCaretContainerNode","removeCaretContainer","insertCaretContainerNode","formatNode","appendNode","insertFormatNodesIntoCaretContainer","formatNodes","innerMostFormatNode","cleanFormatNode","validFormats","matchedFormats","uniqueFormats","fmtName","clonedFormatNode","applyCaretFormat","wordcharRegex","removeCaretFormat","hasContentAfter","expandedRng","newCaretContainer","cleanedFormatNode","caretTextNode","disableCaretContainer","replaceWithCaretFormat","innerMost","isFormatElement","inlineElements","isEmptyCaretFormatElement","postProcessHooks","filter$4","each$8","addPostProcessHook","hasPreSibling","isPre","joinPre","pre1","pre2","each$9","isElementNode","findElementSibling","mergeSiblingsNodes","tmpSibling","elementUtils","mergeSiblings","merge_siblings","clearChildStyles","clear_child_styles","processChildElements","unwrapEmptySpan","hasStyle","applyStyle","removeResult","MCE_ATTR_RE","each$a","isEq$3","isTableCellOrRow","isChildOfInlineParent","lastIdx","normalizeTableSelection","wrapWithSiblings","matchName$1","isColorFormatAndAnchor","removeNode$1","rootBlockElm","forcedRootBlock","list_block","forced_root_block_attrs","removeFormatInternal","compareNode","stylesModified","preserve_attributes","attrsToPreserve","remove_similar","valueOut","newName","findFormatRoot","formatRoot","removeFormatFromClone","wrapAndSplit","lastClone","firstClone","formatRootParent","mixed","splitToFormatRoot","isRemoveBookmarkNode","lastContentEditable","removeRngStyle","textDecorations","textDecoration","ceFalseOverride","each$b","mergeTextDecorationsAndColor","processTextDecorationsAndColor","mergeBackgroundColorAndFontSize","mergeSubSup","mergeWithChildren","mergeWithParents","merge_with_parents","each$c","hasFormatProperty","isElementNode$1","canFormatBR","parentName","validBRParentElements","figcaption","summary","hasCaretNodeSibling","setElementFormat","onformat","styleVal","applyNodeStyle","applyRngStyle","nodeSpecific","wrapElm","currentWrapElm","getChildCount","getChildElementNode","childCount","curSelNode","firstFormat","fake","formatItem","registeredFormatListeners","currentFormats","updateAndFireChangeCallbacks","formatChangeData","formatsList","newFormats","remainingFormats","filterRemainingFormats","addListeners","formatChangeItems","formatChangedInternal","tableModel","tableRow","cellPosition","getSpan","fillout","rowspan","y2","cellExists","skipCellsX","findElementPos","extractRows","sx","sy","ey","newRows","subTable","createDomTable","tableElement","tableBody","modelRowsToDomRows","fromDom$1","tableElm","toDom","subsection","findParentListContainer","getFullySelectedListWrappers","_li","listCont","listStyles","_style","wrap$3","innerElm","directListWrappers","commonAnchorContainer","getWrapElements","wrapElements","listWrappers","allWrappers","emptyFragment","getFragmentFromRange","getParentTable","getTableFragment","selectedTableCells","firstCell","lastCell","fullTableModel","sectionedTableModel","getSelectionFragment","trimLeadingCollapsibleText","getInnerText","bin","shouldTrim","getContextNodeName","parentBlockOpt","getTextContent","contextNodeName","shouldTrimSpaces","nonRenderedText","parentBlockText","textIndex","hasProceedingSpace","hasTrailingSpace","getSerializedContent","tmpElm","getSelectedContentInternal","KEEP","INSERT","vDown","vUp","snake","diag","buildScript","start1","end1","start2","end2","getMiddleSnake","i2","buildSnake","getOuterHtml","createFragment$1","insertAt","removeAt","applyDiff","fragments","currentFragments","undoLevelDocument","lazyTempDocument","implementation","createHTMLDocument","hasIframes","createFragmentedLevel","beforeBookmark","createCompleteLevel","createFromEditor","trimmedFragments","trimmed","applyToEditor","getLevelContent","getCleanLevelContent","hasEqualContent","level1","level2","hasEqualCleanedContent","isEq$4","isUnlocked","locks","setTyping","typing","endTyping","endTypingLevelIgnoreLocks","beforeChange","addUndoLevel","currentLevel","bm","customUndoRedoLevels","setDirty","callback1","callback2","hasUndo","hasRedo","addVisualInternal","matchedElm","value_1","cls_1","makePlainAdaptor","getModel","makeRtcAdaptor","rtcEditor","defaultVars","_undoManager","_locks","_node","_similar","_rfl","_details","getRawModel","makeNoopAdaptor","nul","isRtc","editorCast","rtcInstance","rtc","isRemote","getRtcInstanceWithFallback","getRtcInstanceWithError","beforeChange$1","addUndoLevel$1","undo$1","redo$1","clear$1","reset$1","hasUndo$1","hasRedo$1","transact$1","ignore$1","extra$1","matchFormat","matchAllFormats","matchNodeFormat","canApplyFormat","closestFormat","applyFormat$1","removeFormat$1","getSelectedContent","getContent$1","walkPastBookmark","outerElm","oldLength","normalizeTextIfRequired","mergeAndNormalizeText","outerNode","normalizer","innerTextNode","rngSetContent","prevText","nextText","setupArgs","cleanContent","contextBlock","contextArgs","setContent$1","contentArgs","createContextualFragment","deleteFromCallbackMap","newCallbacks","SelectorChanged","selectorChangedData","currentSelectors","matchedSelectors","isNativeIeSelection","isAttachedToDom","isValidRange","EditorSelection","selectedRange","explicitRange","getRng$1","getEnd$1","bookmarkManager","compareEndPoints","tryCompareBoundaryPoints","how","sourceRange","destinationRange","compareBoundaryPoints","START_TO_START","END_TO_END","ieRange","removeAllRanges","addRange","setBaseAndExtent","setNode","getSelectedBlocks$1","anchorRange","focusRange","selectorChanged","getScrollContainer","scrollContainer","placeCaretAt","controlSelection","removeAttrs","addFontToSpansFilter","fontSizes","face","addStrikeToSpanFilter","addFilters","convert_fonts_to_spans","font_size_legacy_values","inline_styles","blobUriToBlob","rejectWithError","xhr_1","parseDataUri$1","uriParts","buildBlob","uriToBlob","imageToBlobInfo","getByUri","dataUri","getAllImages","ImageScanner","uploadStatus","cachedPromises","isUploaded","imageInfo","newPromise","paddEmptyNode","brPreferred","padd_empty_with_br","isPaddedWithNbsp","hasOnlyChild","isPadded","isEmpty$2","whitespaceElements","isLineBreakNode","isBogusImage","isInternalImageSource","isValidDataImg","images_dataimg_filter","imgElem_1","registerBase64ImageFilter","blob_cache","processImage","inputSrc","remove_trailing_brs","prevName","whiteSpaceElements","appendRel","addNoOpener","allow_unsafe_link_target","allow_html_in_named_anchor","fix_list_elements","classValue","validClassesMap","makeMap$4","each$d","explode$2","extend$2","DomParser","matchedNodes","matchedAttributes","root_name","fixInvalidChildren","newParent","tempNode","nonSplitableElements","filterNode","fi","fl","isInWhiteSpacePreservedElement","invalidChildren","getRootBlockName","rootBlockName","startWhiteSpaceRegExp","endWhiteSpaceRegExp","allWhiteSpaceRegExp","isAllWhiteSpaceRegExp","addRootBlocks","rootBlockNode","createNode","removeWhitespaceBefore","textNodeNext","textVal","cloneAndExcludeBlocks","attrFiltersLen","htmlParser","internalName","hasChildren","trimTrailingBr","brNode1","brNode2","oldDoc","impl","shouldFireEvent","addTempAttr","postProcess$1","outArgs","getHtmlFromNode","parseHtml","serializeNode","htmlSerializer","toHtml","DomSerializerImpl","addRules","setRules","DomSerializer","domSerializer","defaultFormat$1","getContent$2","setContent$2","DOM$3","restoreOriginalStyles","orgDisplay","safeDestroy","clearDomReferences","contentAreaContainer","formElement","restoreForm","_mceOldSubmit","formEventDelegate","is_removing","unbindAllNativeEvents","automatic","_beforeUnload","hasOwnProperty$2","deep$1","sectionResult","deviceDetection","legacyMobilePlugins","defaultTouchSettings","table_grid","object_resizing","normalizePlugins","pluginNames","trimmedPlugins","filterLegacyMobilePlugins","extractSections","getSection","sectionSettings","hasSection","isSectionTheme","getSectionConfig","getDefaultSettings","documentBaseUrl","baseDefaults","toolbar_mode","document_base_url","add_form_submit_trigger","submit_patch","add_unload_trigger","convert_urls","relative_urls","remove_script_host","visual","hidden_input","getDefaultMobileSettings","mobileSettings","defaultMobileSettings","toolbar_sticky","defaultPhoneSettings","getExternalPlugins$1","overrideSettings","userDefinedExternalPlugins","external_plugins","combinePlugins","forcedPlugins","getPlatformPlugins","isMobileDevice","desktopPlugins","mobilePlugins","processPlugins","defaultOverrideSettings","forced_plugins","mobileConfig","platformPlugins","combinedPlugins","isOnMobile","combineSettings","defaultSettings","defaultDeviceSettings","extendedSettings","getEditorSettings","getFiltered","getParamObject","CreateIconManager","iconPack","IconManager","getProp","propName","getComputedSizeProp","getClientWidth","getClientHeight","getMarginTop","getMarginLeft","getBoundingClientRect$1","isInsideElementContentArea","bodyElm","isXYInContentArea","transposedPoint","fromDomSafe","isEditorAttachedToDom","rawContainer","unimplemented","NotificationManager","getImplementation","getTopNotification","addNotification","closeNotification","otherNotification","fireEvent","getNotifications","serviceMessage","WindowManagerImpl","getParams","setParams","BreakType","WindowManager","dialogs","funcBind","fireOpenEvent","fireCloseEvent","addDialog","otherDialog","getTopDialog","storeSelectionAndOpenDialog","windowManagerImpl","displayNotification","notificationManager","displayError","uploadError","createLoadError","pluginLoadError","iconsLoadError","languageLoadError","pluginInitError","initError","isContentCssSkinName","getContentCssUrls","transformToUrls","getFontCssUrls","cssLinks","contentCssFile","appendContentCssFromSettings","UploadStatus","PENDING","UPLOADED","blobUriStatuses","createStatus","resultUri","hasBlobUri","getResultUri","isPending","markPending","markUploaded","removeFailed","count$1","rnd","BlobCache","mimeToExt","mime","mimes","toBlobInfo","findFirst","cachedBlobInfo","removeByUri","Uploader","pendingPromises","pathJoin","path1","path2","defaultHandler","xhr","credentials","onprogress","noUpload","handlerSuccess","handlerFailure","resolvePending","uploadBlobInfo","openNotification","closeNotification_1","failureOptions","isDefaultHandler","pendingUploadBlobInfo","uploadBlobs","blobInfos","createUploader","ImageUploader","uploader","showNotification","UploadChangeHandler","lastChangedLevel","fireIfChanged","EditorUpload","imageScanner","urlFilters","aliveGuard","cacheInvalidator","replaceString","replaceImageUrl","targetUrl","replacementUrl","replacementString","replaceUrlInUndoStack","replaceImageUriInView","uploadImages","scanForImages","imageInfos","imagesToRemove","filteredResult","uploadInfo","uploadUri","dataImgFilter","addFilter","resultItem","replaceBlobUris","source_view","valigntop","verticalAlign","valignmiddle","valignbottom","alignleft","aligncenter","alignright","alignjustify","bold","fontWeight","italic","fontStyle","underline","strikethrough","forecolor","hilitecolor","fontname","fontsize","lineheight","lineHeight","fontsize_class","blockquote","subscript","superscript","_fmt","_itemName","removeformat","FormatRegistry","each$e","parsedSelectorToHtml","ancestry","sItem","getRequiredParent","elmRule","wrapInHtml","parentCandidate","ancestorName","parentRequired","siblingElm","parseSelectorItem","$0","$3","$4","parseSelector","previewFrag","parentFontSize","previewCss","previewStyles","removeVars","previewOpt","previewElm","numValue","Formatter","formatChangeState","registerEvents$1","isFirstTypedCharacter","addNonTypingUndoLevel","modKey","isInsertReplacementText","inputType","isInsertTextDataNull","isInsertFromPasteOrDrop","addKeyboardShortcuts","UndoManager","nonTypingKeycodes","placeholderAttr","isDeleteEvent","isNonTypingKeyboardEvent","isTypingKeyboardEvent","isVisuallyEmpty","isForcedRootBlockFalse","updatePlaceholder","showPlaceholder","isPlaceholderShown","strongRtl","hasStrongRtl","isInlineTarget","isRtl$1","findInlineParents","findRootInline","hasSameParentBlock","block1","block2","isAtZwsp","normalizeForwards","normalizeBackwards","isBeforeRoot","getParentBlock$1","placeCaretInEmptyBody","paddEmptyBody","willDeleteLastPositionInElement","normalizedFirstPos","normalizedLastPos","normalizedFromPos","nextPos","blockPosition","blockBoundary","getBlockPosition","isDifferentBlocks","hasSameParent","parent1","parent2","skipLastBr","lastPositionInBlock","readFromRange","fromBlockPos","toBlockPos","blockPos","read$3","getChildrenUntilBlockBoundary","extractChildren","removeEmptyRoot","isEmptyBefore","nestedBlockMerge","toBlock","insertionPoint","sidelongBlockMerge","findInsertionPoint","parentsAndSelf$1","getInsertionPoint","trimBr","mergeBlockInto","mergeBlocks","backspaceDelete$1","deleteRangeMergeBlocks","isRawNodeInTable","isSelectionInTable","isEverythingSelected","noPrevious","noNext","emptyEditor","deleteRange$1","backspaceDelete$2","_forward","isContentEditableTrue$2","isContentEditableFalse$7","showCaret","getNodeRange","renderCaretAtRange","caretPositionNode","caretPositionBeforeNode","ceRoot","renderRangeCaret","isBeforeBoundary","isAfterBoundary","trimEmptyTextNode$1","deleteContentAndShowCaret","peekCaretPosition","caretRange","deleteBoundaryText","getNextPosFn","isBeforeFn","nextCaretPosition","backspaceDelete$3","isCompoundElement","DeleteAction","moveToElement","moveToPosition","isAtContentEditableBlockCaret","caretLocation","isDeleteFromCefDifferentBlocks","deleteEmptyBlockOrMoveToCef","toCefElm","blockElm","findCefPosition","getContentEditableBlockAction","skipMoveToActionFromInlineCefToContent","getContentEditableAction","read$4","deleteElement$1","hideFakeCaret","getAncestorCe","selectedNode","deleteOffscreenSelection","hasCefAncestor","paddEmptyElement","backspaceDelete$4","deleteCaret$1","backspaceDelete$5","isText$8","startsWithCaretContainer$1","endsWithCaretContainer$1","createZwsp","insertBefore$1","insertAfter$1","insertInline$1","insertInlineBefore","insertInlineAfter","insertInlinePos","isPosCaretContainer","caretNode","renderCaret","evaluateUntil","Location","rescope","before$4","nPos","isNotInsideFormatCaretContainer","findInsideRootInline","after$3","isValidLocation","readLocation","getName","outside","isEq$5","location1","location2","betweenInlines","fromInline","toInline","skipNoMovement","fromLocation","toLocation","findLocationTraverse","findLocationSimple","findLocation","hasSelectionModifyApi","modify","moveByWord","setCaretPosition","renderCaretLocation","findLocation$1","isInlineTarget$1","toggleInlines","inlineBoundaries","selectedInlines","targetInlines","safeRemoveCaretContainer","renderInsideInlineCaret","inlines","_inline","moveWord","_caret","setupSelectedState","moveNextWord","movePrevWord","rangeFromPositions","hasOnlyTwoOrLessPositionsLeft","setCaretLocation","deleteFromTo","rescope$1","backspaceDeleteCollapsed","toPosition","backspaceDelete$6","getParentInlines","hasOnlyOneChild$1","deleteLastPosition","parentInlines","isFormatElement$1","deleteCaret$2","backspaceDelete$7","deleteElement$2","deleteCaret$3","isNearMedia","deleteRange$2","backspaceDelete$8","isEditable$1","parseIndentValue","getIndentStyleName","useMargin","indentStyleName","indentElement","validateBlocks","intentValue","canOutdent","getBlocksToIndent","isListComponent","parentIsListComponent","indentUnit","indentValue","backspaceDelete$9","nativeCommand","deleteCommand","forwardDeleteCommand","debounceLongpress","isEqualNode","isBlockElement","isValidTarget","hasBlockParent","shouldRemoveTextNode","rootNodeName","restoreSelection","findBlockCaretContainer","removeIeControlRect","blockCaretContainer","handleBlockContainer","VDirection","walk$3","getBreakType","currentPos","Br","Block","Wrap","getPositionsUntil","breakType","breakAt","Eol","getAdjacentLinePositions","getPositionsUntilBreak","findClosestHorizontalPositionFromPoint","lastRect","lastDist","newDist","findClosestHorizontalPosition","targetRect","getPositionsUntilPreviousLine","getPositionsUntilNextLine","isAtFirstLine","isAtLastLine","getPositionsAbove","getPositionsBelow","getFirstLinePositions","getLastLinePositions","getNodeClientRects","toArrayWithNode","customEventRootDelegates","beforeUnloadDelegate","findUntil$1","walkUntil","isAboveFn","isBeflowFn","targetClientRect","aboveLineNumber","isLineNumber","upUntil","Up","downUntil","Down","positionsUntil","isBelowFn","getClientRect","isAboveLine","isLine","isContentEditableFalse$8","findNode$1","distanceToRectLeft","distanceToRectRight","isInsideX","isInsideY","findClosestClientRect","oldClientRect","oldDistance","newDistance","walkUntil$1","includeChildren","findLineNodeRects","targetNodeRect","checkPosFn","lineRects","getFakeCaretTargets","caretInfo","closestFakeCaret","fakeTargetNodeRects","targetNodeRects","closestNodeRect","moveToRange","renderRangeCaretOpt","moveHorizontally","isBefore","isAfter","rangeIsInContainerBlock","moveVertically","caretClientRect","walkerFn","linePositions","nextLinePositions","nextLineRect","dist1","dist2","caretPositions","closestNextLineRect","getLineEndPoint","moveToLineEndPoint","isContentEditableFalse$9","moveToCeFalseHorizontally","moveToCeFalseVertically","exitPreBlock","getVisualCaretPosition$1","getHorizontalRange","getVerticalRange","moveH","newRange","moveV","moveToLineEndPoint$1","isCefPosition","isTarget","rangeBefore","insertElement","insertBr","insertBlock$1","insertEmptyLine","getClosestTargetBlock","isAtFirstOrLastLine","moveCaretToNewEmptyLine","rootBlockAttrs","moveV$1","defaultPatterns","matchesEvent","match$1","moveH$1","moveV$2","moveToLineEndPoint$2","deflate","getCorners","getYAxisValue","findClosestCorner","corners","newCorner","oldCorner","oldDist","getClosestCell$1","isTargetCorner","corner","getBottomValue","getTopValue","isAbove$1","isBelow$1","getClosestCellAbove","getClosestCellBelow","findClosestPositionInAboveCell","findClosestPositionInBelowCell","hasNextBreak","lineInfo","breakPos","startsWithWrapBreak","startsWithBrBreak","isAtTableCellLine","isAtFirstTableCellLine","isAtLastTableCellLine","isCaretAtStartOrEndOfTable","navigateHorizontally","_td","getClosestAbovePosition","getClosestBelowPosition","getTable","renderBlock","navigateVertically","mover","moveH$2","moveV$3","executeKeydownOverride","executeKeydownOverride$1","executeKeyupOverride","firstNonWhiteSpaceNodeSibling","moveToCaretPosition","getEditableRoot","editableRoot","getParentBlock$2","getParentBlockName","isListItemParentBlock","hasFirstChild","hasParent$1","isListBlock","isNestedList","getContainerBlock","containerBlock","containerBlockParent","isFirstOrLastLi","createNewBlock","newBlockName","trimZwsp","isEmptyAnchor","isTableCell$5","emptyBlock","containerAndSiblingName","canSplitBlock","trimInlineElementsOnLeftSideOfBlock","firstChilds","normalizeZwspOffset","includeZwspInRange","trimLeadingLineBreaks","getEditableRoot$1","forcedRootBlockAttrs","attrStyles","currentStyles","newStyles","attrClassesOpt","attrClasses","currentClassesOpt","currentClasses","filteredClasses","newClasses","appliedAttrs","remainingAttrs","setForcedBlockAttrs","wrapSelfAndSiblingsInDefaultBlock","addBrToBlockIfNeeded","insert$1","parentBlockName","isAfterLastNodeInContainer","clonedNode","isCaretAtStartOrEndOfBlock","normalizedOffset","insertNewBlockAfter","containerBlockName","hasRightSideContent","moveSelectionToBr","brElm","extraBr","insertBrAtCaret","isControlKey","insertBrBefore","insertBrAfter","hasBrAfter","isBeforeBr$1","isAnchorLink","isInsideAnchor","readInlineAnchorLocation","insertBrOutsideAnchor","insert$2","anchorLocation","shouldInsertBr","shouldBlockNewLine","newLineAction","shouldBlockNewLine$1","_shiftKey","isBrMode","requiredState","brMode","inListBlock","inBlock","inPreBlock","inSummaryBlock","shouldPutBrInPre$1","inBrContext","hasShiftKey","canInsertIntoEditableRoot","rootEditable","match$2","predicates","isMatch","getAction$1","insert$3","handleEnterKeyEvent","executeKeydownOverride$2","setup$f","browser$4","setupIeInput","keypressThrotter","setup$g","isComposing","insertTextAtPosition","insertNbspAtPosition","insertSpaceAtPosition","locationToCaretPosition","insertInlineBoundarySpaceOrNbsp","checkPos","setSelection$1","insertSpaceOrNbspAtSelection","executeKeydownOverride$3","setup$h","registerKeyboardOverrides","setup$i","NodeChange","lastPath","nativeRng","fakeRng","isSameElementPath","currentPath","preventSummaryToggle","filterDetails","setup$j","isTextBlockNode","normalizeSelection$1","setup$k","getAbsolutePosition","getBodyPosition","getBodyScroll","inlineScroll","iframeScroll","getMousePosition","iframePosition","scrollPosition","calculatePosition","bodyPosition","mousePosition","calc","isContentEditableFalse$a","isContentEditableTrue$3","isDraggable","isValidDropTarget","dragElement","cloneElement","cloneElm","createGhost","clonedElm","boxSizing","appendGhostToBody","moveGhost","overflowX","removeElement","isLeftMouseButtonPressed","applyRelPos","relX","start$1","ceElm","elmPos","dragging","relY","ghost","move$2","throttledPlaceCaretAt","targetPos","getRawTarget","targetClone_1","removeDragState","bindFakeDragEvents","pageDom","dragStartHandler","dragHandler","dropHandler","dragEndHandler","blockIeDrop","realTarget","blockUnsupportedFileDrop","preventFileDrop","preventFileDropIfUIElement","editorRoot","eventNames","setup$l","renderFocusCaret","setup$m","isContentEditableTrue$4","isContentEditableFalse$b","getContentEditableRoot$1","SelectionOverrides","fakeCaret","realSelectionId","isFakeSelectionElement","isFakeSelectionTargetElement","isNearFakeSelectionElement","getRealSelectionElement","setRange","getRange","contentEditableRoot","removeElementSelection","hasNormalCaretPosition","hasBetterMouseTarget","targetBlock","setElementSelection","fakeCaretInfo","normalizeShortEndedElementSelection","isRangeInCaretContainer","realSelectionElement","outerText","isWithinCaretContainer","setupOffscreenSelection","targetClone","origTargetClone","$realSelectionContainer","selectElement","nodeElm","afterNode","Quirks","isGecko","isWebKit","mceInternalDataType","setEditorCommandState","setMceInternalContent","selectionHtml","internalContent","getMceInternalContent","insertClipboardContents","queryCommandSupported","emptyEditorWhenDeleting","serializeRng","allContentsSelected","allRng","allSelection","selectAll","inputMethodFocus","removeHrOnBackspace","Range","body_1","selectControlElements","removeStylesWhenDeletingAcrossBlockElements","getAttributeApplyFunction","template","setAttributeNode","isSelectionAcrossElements","disableBackspaceIntoATable","removeBlockQuoteOnBackSpace","setGeckoEditingOptions","setOpts","addBrAfterLastLinks","fixLinks","setDefaultBlockType","showBrokenImageIcon","contentStyles","restoreFocusOnKeyDown","bodyHeight","blockCmdArrowNavigation","selection_1","disableAutoUrlDetect","tapLinksAndImages","blockFormSubmitInsideEditor","removeAppleInterchangeBrs","ieInternalDragAndDrop","DOM$4","appendStyle","getRootName","removeUndefined","mkParserSettings","mkSerializerSettings","boolean_attributes","move_caret_before_on_enter_elements","non_empty_elements","short_ended_elements","text_inline_elements","whitespace_elements","createParser","autoFocus","auto_focus","moveSelectionToFirstCaretPosition","bindPendingEventDelegates","execCallback","getStyleSheetLoader","makeStylesheetLoadingPromises","framedFonts","loadContentCss","removeCss","preInit","rtcMode","browser_spellcheck","gecko_spellcheck","spellcheck","directionality","protect","startContent","contentCssText_1","content_style","initContentBody","skipWrite","orgVisibility","iframeHTML","hex_colors","force_hex_style_colors","annotator","_nodeChangeDispatcher","loadingRtc","setProgressState","DOM$5","relaxDomain","ifr","bodyUuid","domainRelaxUrl","createIframeElement","customAttrs","frameBorder","allowTransparency","getIframeHtml","getURI","bodyId","bodyClass","createIframe","isDomainRelaxed","boxInfo","hidden","DOM$6","initPlugin","initializedPlugins","pluginInstance","trimLegacyPrefix","initIcons","iconPackName","currentIcons","loadIcons","addIcon","initTheme","renderFromLoadedTheme","renderFromThemeFunc","iframeHeight","createThemeFalseResult","renderThemeFalseIframe","renderThemeFalse","renderThemeUi","augmentEditorUiApi","uiApiFacade","renderInfo","DOM$7","hasSkipLoadPrefix","loadLanguage","scriptLoader","languageCode","languageUrl","url_1","loadTheme","themeUrl","getIconsUrlMetaFromUrl","getIconsUrlMetaFromName","defaultIconsUrl","customIconsUrl","urlMeta","loadPlugins","depPlugin","url_2","getStyleSheetLoader$1","resetContent","triggerSave","set_dirty","addVisual$1","legacyPropNames","getSpecifiedFontProp","getProperty","legacyPropName","normalizeFontFamily","getComputedFontProp","getFontProp","getFontSize","getFontFamily","findFirstCaretElement","getCaretElement","atStartOfNode","mapRange","fromFontSizeNumber","fontSizeNumber","fontClasses","normalizeFontNames","fontNameAction","fontNameQuery","fontSizeAction","fontSizeQuery","lineHeightQuery","specifiedStyle","computedStyle","lineHeightAction","processValue","insertAtCaret$1","each$f","map$3","inArray$2","EditorCommands","setupCommands","skip_focus","customCommand","addCommands","commandList","hasCustomCommand","execNativeCommand","isFormatMatch","storeSelection","selectionBookmark","queryCommandEnabled","listParent","editingHost","alignStates","Undo","Redo","internalContentEditableAttr","setContentEditable","switchOffContentEditableTrue","switchOnContentEditableTrue","removeFakeSelection","restoreFakeSelection","toggleReadOnly","isReadOnly$1","registerFilters","registerReadOnlyContentFilters","isClickEvent","getAnchorHrefOpt","processReadonlyEvents","registerReadOnlySelectionBlockers","nativeEvents","EventDispatcher","bindings","toggleEvent","nameIn","argsIn","beforeFire","wrappedCallback","currentName","bindingName","hi","getEventDispatcher","_eventDispatcher","toggleNativeEvent","Observable","dispatcherArgs","DOM$8","getEventTarget","eventRoot","isListening","bindEventDelegate","delegates","eventRootElm","editors","EditorObservable","_pendingNativeEvents","defaultModes","switchToMode","activeMode","availableModes","oldMode","editorReadOnly","registerMode","design","each$g","explode$3","keyCodeLookup","f3","f4","f5","f6","f7","f8","f9","f10","f11","f12","modifierNames","parseShortcut","charCode","Shortcuts","pendingPatterns","hasModifier","isFunctionKey","matchShortcut","subpatterns","executeShortcutAction","cmdFunc","normalizeCommandFunc","createShortcut","addAutocompleter","addContextToolbar","addSidebar","bridge","each$h","trim$4","queryParts","DEFAULT_PORTS","mailto","URI","baseUri","isProtocolRelative","toAbsPath","urlMatch","userInfo","uriComponents","setPath","toRelative","relativeUri","tu","uu","toRelPath","noHost","absoluteUri","defaultPort","breakPoint","normalizedBase","outPath","nb","noProtoHost","DOM$9","extend$3","each$i","resolve$3","ie$1","loadedCSS","isNotDirty","documentBaseURL","base_url","_setBaseUrl","baseURI","referrer_policy","language_load","editorCommands","cache_suffix","modeInstance","callbackLookup","initialContent","oldState","urlconverter_callback","_scanForImages","DOM$a","explode$4","each$j","extend$4","instanceCounter","boundGlobalEvents","legacyEditors","isValidLegacyKey","globalEventDelegate","EditorManager","toggleGlobalEvents","removeEditorFromList","targetEditor","oldEditors","purgeDestroyedEditor","isQuirksMode","compatMode","majorVersion","minorVersion","releaseDate","i18n","tinyMCEPreInit","srcScript","currentScript","pluginBaseUrls","plugin_base_urls","pluginBaseUrl","invalidInlineTargets","isInvalidInlineTarget","createId","findTargets","editor_deselector","editor_selector","provideResults","initEditors","initCount","createEditor","existingEditor","extendClass","initializing","relativePosition","targetW","targetH","relChars","findBestRelativePosition","constrainRect","x1","y1","fixedSize","cx2","cy2","underflowX1","underflowY1","overflowX2","overflowY2","fromClientRect","Rect","awaiter","resolveCb","rejectCb","tasks","resultFns","loadErrMsg","runErrMsg","waiter","Resource","each$k","extend$5","Class","_super","Mixins","Methods","Statics","Defaults","member","localStorage","min$1","max$1","round$2","Color","rgb2hsv","hsvToRgb","toRgb","toHsv","hexCode","JSONUtils","JSONP","XHR","success_scope","error_scope","overrideMimeType","content_type","crossDomain","requestheaders","extend$6","JSONRequest","sendRPC","ecb","scb","xhrArgs","create$9","removeItem","LocalStorage","publicApi","geom","TreeWalker","Serializer","Selection","isMac","exportToModuleLoaders","exportToWindowGlobal","tinyMCE","nativeLastIndexOf","relativeURL","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","microtask","hostReportErrors","newPromiseCapabilityModule","perform","PROMISE","getInternalPromiseState","PromiseConstructor","newGenericPromiseCapability","DISPATCH_EVENT","NATIVE_REJECTION_EVENT","PromiseRejectionEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","FULFILLED","REJECTED","HANDLED","UNHANDLED","GLOBAL_CORE_JS_PROMISE","FakePromise","isThenable","isReject","notified","reactions","ok","exited","reaction","rejection","onHandleUnhandled","onUnhandled","IS_UNHANDLED","isUnhandled","internalReject","internalResolve","capability","$promiseResolve","alreadyCalled","__scrim","hideOverlay","overlayColor","overlayOpacity","animationFrame","genOverlay","createOverlay","removeOverlay","showScroll","cancelAnimationFrame","scrollListener","checkPath","hasScrollbar","isInside","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TYPED_ARRAY_TAG_REQIRED","TypedArrayConstructorsList","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigIntArrayConstructorsList","BigInt64Array","BigUint64Array","ARRAY","exportTypedArrayStaticMethod","editorContent","PromiseCapability","$$resolve","$$reject","METADATA","setMetadata","objectID","weakData","getWeakData","Toggleable","registerComponents","vuetify","badge","dataIterator","dataTable","sortDescending","sortAscending","sortNone","activateNone","activateDescending","activateAscending","dataFooter","itemsPerPageAll","nextPage","prevPage","firstPage","lastPage","datePicker","itemsSelected","carousel","calendar","moreEvents","fileInput","counterSize","timePicker","am","pm","currentPage","rating","scrollBarWidth","thresholds","sm","md","lg","iconfont","locales","en","cspNonce","customProperties","minifyTheme","themeCache","variations","themes","secondary","accent","framework","defaultPreset","userPreset","preset","globalPreset","insetFooter","xl","xsOnly","smOnly","smAndDown","smAndUp","mdOnly","mdAndDown","mdAndUp","lgOnly","lgAndDown","lgAndUp","xlOnly","Breakpoint","ssr","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","totalOffset","_settings","easing","appOffset","goTo","isDrawer","isClipped","targetLocation","startLocation","ease","timeElapsed","currentTime","checkboxOn","checkboxOff","checkboxIndeterminate","subgroup","radioOn","radioOff","ratingEmpty","ratingFull","ratingHalf","unfold","minus","iconSet","convertToComponentDeclarations","mdiSvg","mdi","fa4","faSvg","Icons","LANG_PREFIX","getTranslation","usingDefault","shortKey","defaultLocale","Lang","translator","cielabForwardTransform","cielabReverseTransform","transformedY","Ln","lab","isItem","variant","parsedTheme","genVariations","genBaseColor","genColorVariableName","genColorVariable","cssVar","variablesCss","aColor","variants","variantValue","lighten","darken","amount","vueMeta","defaultTheme","metaKeyName","getOptions","metaInfo","vuetifyStylesheet","nonce","addApp","obs","styleEl","oldDark","currentTheme","isHydrating","service","Service","nudgeLeft","nudgeRight","nudgeTop","nudgeWidth","positionX","positionY","absoluteX","absoluteY","hasWindow","inputActivator","stackClass","absolutePosition","calcTop","xOverflow","documentHeight","toTop","contentHeight","totalHeight","isOverflowing","callActivate","callDeactivate","checkForPageYOffset","checkActivatorFixed","getInnerHeight","getOffsetLeft","getOffsetTop","getRoundedBoundedClientRect","measure","sneakPeek","startTransition","updateDimensions","classofRaw","CORRECT_ARGUMENTS","tryGet","eject","clipped","disableResizeWatcher","disableRouteWatcher","expandOnHover","miniVariant","miniVariantWidth","permanent","stateless","temporary","isMouseover","touchArea","computedMaxHeight","computedWidth","isMiniVariant","hasApp","isBottom","reactsToClick","reactsToMobile","reactsToResize","reactsToRoute","showOverlay","calculateTouchArea","parentRect","genAppend","genPosition","swipeRight","resizeEvent","genPrepend","genBorder","swipeLeft","updateMiniVariant","fin","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","falseValue","trueValue","rippleState","BaseSlideGroup","centerActive","internalItemsLength","scrollOffset","__cachedNext","__cachedPrev","hasAffixes","beforeUpdate","genNext","upperLocation","hasAffix","genPrev","calculateNewOffset","newAbosluteOffset","onAffixClick","onTouchStart","onTouchMove","onTouchEnd","maxScrollOffset","overflowCheck","lastItemPosition","wrapperPosition","calculateCenteredOffset","calculateUpdatedOffset","currentScrollOffset","totalWidth","itemOffset","additionalOffset","offsetCentered","setWidths","slideGroup","tabsBar","callSlider","oldPath","hasNew","hasOld","alignWithTitle","fixedTabs","hideSlider","iconsAndText","sliderColor","sliderSize","transitionTime","sliderStyles","activeTab","genBar","VTabsBar","VTabsItems","VTabsSlider","parseNodes","availableProps"],"mappings":"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AAO+B,GAASR,GAAa/gG,GAAOA,EAAMw/F,OAG1C0C,GAAa,SAAUh7B,EAAQ/0F,GACjC,OAAOsuH,GAAav5B,EAAQ/0F,GAAMy6E,MAAK,SAAU5sD,GAC/C,OAAOuhG,GAASxC,GAAUhxH,QAAQm5F,GAASlnE,EAAMknE,EAAO25B,iBAIxDsB,GAAoB,SAAUniG,GAChC,OAAOiiG,GAASjiG,IAGdoiG,GAAU,SAAUz1H,EAAO8vC,EAAK7S,GAClC,IAAIy4F,EAA+B,kBAAV11H,EAAqB68B,WAAW78B,GAASA,EAMlE,OALI01H,EAAcz4F,EAChBy4F,EAAcz4F,EACLy4F,EAAc5lF,IACvB4lF,EAAc5lF,GAET4lF,GAELC,GAAa,WACf,MAAO,CACL,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IAGAC,GAAc,CAChB,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,IACA,KACA,EACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,EACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,EACA,IACA,EACA,IACA,IACA,EACA,IACA,IACA,IACA,EACA,IACA,IACA,EACA,IACA,IACA,IACA,IAEEC,GAAW,SAAUC,EAASC,GAIhC,IAHA,IAEIzrH,EAFA81F,EAAM,GACN41B,EAAM,IAAIxzH,MAAM,IAEXf,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,IAAK,IAAIiB,EAAI,EAAGA,EAAI,E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,EAAKgJ,WACVqH,GAAUA,IAAWloB,KAAK25E,SAC5B,OAAOzxD,IAINwpU,EAnEW,GAsEhB38D,GAAS,CACX,UACA,QACA,UACA,MACA,KACA,aACA,SACA,OACA,WACA,SACA,SACA,OACA,OACA,MACA,UACA,UACA,OACA,IACA,KACA,WACA,KACA,SACA,UACA,SACA,aACA,KACA,KACA,KACA,KACA,KACA,KACA,UACA,MACA,MACA,YACA,OACA,MACA,KACA,KACA,KACA,KACA,QACA,QACA,QACA,QACA,KACA,KACA,KACA,WAEEi9D,GAAa,CACf,KACA,MAEEC,GAAgB,CAClB,QACA,QACA,SAEE3+H,GAAa,CACf,KACA,KACA,KACA,KACA,KACA,KACA,IACA,MACA,UACA,MACA,OACA,aACA,SACA,MACA,WACA,SACA,SACA,UACA,UACA,SACA,QACA,MACA,UAEE4+H,GAAW,CACb,KACA,KACA,KACA,KACA,KACA,MAEEC,GAAY,CACd,KACA,KACA,MAEExkI,GAAQ,CACV,KACA,KACA,MAEEykI,GAAa,CACf,MACA,SACA,WACA,SAEEC,GAAa,SAAU3rS,GACzB,IAAIH,EACJ,OAAO,SAAU1uC,GAEf,OADA0uC,EAASA,GAAkBjgD,GAAYogD,EAAO1nD,GACvCunD,EAAOzmD,eAAeyD,GAAKsU,MAGlCy6U,GAAYD,GAAWH,IACvB34Q,GAAU84Q,GAAWt9D,IACrBw9D,GAAY,SAAU16U,GACxB,MAAsB,UAAftU,GAAKsU,IAEVy6J,GAAW,SAAUz6J,GACvB,OAAO2P,GAAU3P,KAAU0hE,GAAQ1hE,IAEjC26U,GAAS,SAAU36U,GACrB,OAAO2P,GAAU3P,IAAwB,OAAftU,GAAKsU,IAE7B8xM,GAAc0oI,GAAW/+H,IACzBlE,GAASijI,GAAW1kI,IACpB8kI,GAAaJ,GAAWF,IACxBO,GAAiBL,GAAWJ,IAC5BU,GAAgBN,GAAWL,IAC3BY,GAAsBP,GAAWD,IAEjClxT,GAAa,SAAUhqB,EAAOmI,EAAUoB,GAC1C,OAAOogB,GAAW3pB,EAAOmI,EAAUoB,GAAQhf,UAGzCi2C,GAAY,SACZC,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","file":"js/chunk-vendors.05bb8a98.js","sourcesContent":["var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\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.7.0 (2021-02-10)\n */\n(function () {\n 'use strict';\n\n var noop = function () {\n };\n var noarg = function (f) {\n return function () {\n return f();\n };\n };\n var compose = function (fa, fb) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return fa(fb.apply(null, args));\n };\n };\n var compose1 = function (fbc, fab) {\n return function (a) {\n return fbc(fab(a));\n };\n };\n var constant = function (value) {\n return function () {\n return value;\n };\n };\n var identity = function (x) {\n return x;\n };\n function curry(fn) {\n var initialArgs = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n initialArgs[_i - 1] = arguments[_i];\n }\n return function () {\n var restArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n restArgs[_i] = arguments[_i];\n }\n var all = initialArgs.concat(restArgs);\n return fn.apply(null, all);\n };\n }\n var not = function (f) {\n return function (t) {\n return !f(t);\n };\n };\n var die = function (msg) {\n return function () {\n throw new Error(msg);\n };\n };\n var never = constant(false);\n var always = constant(true);\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.ThemeManager');\n\n var __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n };\n function __rest(s, e) {\n var t = {};\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === 'function')\n 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]))\n t[p[i]] = s[p[i]];\n }\n return t;\n }\n function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++)\n s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n }\n\n var none = function () {\n return NONE;\n };\n var NONE = function () {\n var eq = function (o) {\n return o.isNone();\n };\n var call = function (thunk) {\n return thunk();\n };\n var id = function (n) {\n return n;\n };\n var me = {\n fold: function (n, _s) {\n return n();\n },\n is: never,\n isSome: never,\n isNone: always,\n getOr: id,\n getOrThunk: call,\n getOrDie: function (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: none,\n equals: eq,\n equals_: eq,\n toArray: function () {\n return [];\n },\n toString: constant('none()')\n };\n return me;\n }();\n var some = function (a) {\n var constant_a = constant(a);\n var self = function () {\n return me;\n };\n var bind = function (f) {\n return f(a);\n };\n var me = {\n fold: function (n, s) {\n return s(a);\n },\n is: function (v) {\n return a === v;\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 (f) {\n return some(f(a));\n },\n each: function (f) {\n f(a);\n },\n bind: bind,\n exists: bind,\n forall: bind,\n filter: function (f) {\n return f(a) ? me : NONE;\n },\n toArray: function () {\n return [a];\n },\n toString: function () {\n return 'some(' + a + ')';\n },\n equals: function (o) {\n return o.is(a);\n },\n equals_: function (o, elementEq) {\n return o.fold(never, function (b) {\n return elementEq(a, b);\n });\n }\n };\n return me;\n };\n var from = function (value) {\n return value === null || value === undefined ? NONE : some(value);\n };\n var Optional = {\n some: some,\n none: none,\n from: from\n };\n\n var typeOf = function (x) {\n var t = typeof x;\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 var isType = function (type) {\n return function (value) {\n return typeOf(value) === type;\n };\n };\n var isSimpleType = function (type) {\n return function (value) {\n return typeof value === type;\n };\n };\n var eq = function (t) {\n return function (a) {\n return t === a;\n };\n };\n var isString = isType('string');\n var isObject = isType('object');\n var isArray = isType('array');\n var isBoolean = isSimpleType('boolean');\n var isUndefined = eq(undefined);\n var isNullable = function (a) {\n return a === null || a === undefined;\n };\n var isNonNullable = function (a) {\n return !isNullable(a);\n };\n var isFunction = isSimpleType('function');\n var isNumber = isSimpleType('number');\n var isArrayOf = function (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 return true;\n }\n return false;\n };\n\n var nativeSlice = Array.prototype.slice;\n var nativeIndexOf = Array.prototype.indexOf;\n var nativePush = Array.prototype.push;\n var rawIndexOf = function (ts, t) {\n return nativeIndexOf.call(ts, t);\n };\n var indexOf = function (xs, x) {\n var r = rawIndexOf(xs, x);\n return r === -1 ? Optional.none() : Optional.some(r);\n };\n var contains = function (xs, x) {\n return rawIndexOf(xs, x) > -1;\n };\n var exists = function (xs, pred) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i)) {\n return true;\n }\n }\n return false;\n };\n var range = function (num, f) {\n var r = [];\n for (var i = 0; i < num; i++) {\n r.push(f(i));\n }\n return r;\n };\n var chunk = function (array, size) {\n var r = [];\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 return r;\n };\n var map = function (xs, f) {\n var len = xs.length;\n var r = new Array(len);\n for (var i = 0; i < len; i++) {\n var x = xs[i];\n r[i] = f(x, i);\n }\n return r;\n };\n var each = function (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 var eachr = function (xs, f) {\n for (var i = xs.length - 1; i >= 0; i--) {\n var x = xs[i];\n f(x, i);\n }\n };\n var partition = function (xs, pred) {\n var pass = [];\n var fail = [];\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 return {\n pass: pass,\n fail: fail\n };\n };\n var filter = function (xs, pred) {\n var r = [];\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i)) {\n r.push(x);\n }\n }\n return r;\n };\n var foldr = function (xs, f, acc) {\n eachr(xs, function (x) {\n acc = f(acc, x);\n });\n return acc;\n };\n var foldl = function (xs, f, acc) {\n each(xs, function (x) {\n acc = f(acc, x);\n });\n return acc;\n };\n var findUntil = function (xs, pred, until) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i)) {\n return Optional.some(x);\n } else if (until(x, i)) {\n break;\n }\n }\n return Optional.none();\n };\n var find = function (xs, pred) {\n return findUntil(xs, pred, never);\n };\n var findIndex = function (xs, pred) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i)) {\n return Optional.some(i);\n }\n }\n return Optional.none();\n };\n var flatten = function (xs) {\n var r = [];\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 nativePush.apply(r, xs[i]);\n }\n return r;\n };\n var bind = function (xs, f) {\n return flatten(map(xs, f));\n };\n var forall = function (xs, pred) {\n for (var i = 0, len = xs.length; i < len; ++i) {\n var x = xs[i];\n if (pred(x, i) !== true) {\n return false;\n }\n }\n return true;\n };\n var reverse = function (xs) {\n var r = nativeSlice.call(xs, 0);\n r.reverse();\n return r;\n };\n var difference = function (a1, a2) {\n return filter(a1, function (x) {\n return !contains(a2, x);\n });\n };\n var mapToObject = function (xs, f) {\n var r = {};\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 return r;\n };\n var sort = function (xs, comparator) {\n var copy = nativeSlice.call(xs, 0);\n copy.sort(comparator);\n return copy;\n };\n var get = function (xs, i) {\n return i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none();\n };\n var head = function (xs) {\n return get(xs, 0);\n };\n var last = function (xs) {\n return get(xs, xs.length - 1);\n };\n var from$1 = isFunction(Array.from) ? Array.from : function (x) {\n return nativeSlice.call(x);\n };\n var findMap = function (arr, f) {\n for (var i = 0; i < arr.length; i++) {\n var r = f(arr[i], i);\n if (r.isSome()) {\n return r;\n }\n }\n return Optional.none();\n };\n\n var value = function (o) {\n var is = function (v) {\n return o === v;\n };\n var or = function (_opt) {\n return value(o);\n };\n var orThunk = function (_f) {\n return value(o);\n };\n var map = function (f) {\n return value(f(o));\n };\n var mapError = function (_f) {\n return value(o);\n };\n var each = function (f) {\n f(o);\n };\n var bind = function (f) {\n return f(o);\n };\n var fold = function (_, onValue) {\n return onValue(o);\n };\n var exists = function (f) {\n return f(o);\n };\n var forall = function (f) {\n return f(o);\n };\n var toOptional = function () {\n return Optional.some(o);\n };\n return {\n is: is,\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 var error = function (message) {\n var getOrThunk = function (f) {\n return f();\n };\n var getOrDie = function () {\n return die(String(message))();\n };\n var or = function (opt) {\n return opt;\n };\n var orThunk = function (f) {\n return f();\n };\n var map = function (_f) {\n return error(message);\n };\n var mapError = function (f) {\n return error(f(message));\n };\n var bind = function (_f) {\n return error(message);\n };\n var fold = function (onError, _) {\n return onError(message);\n };\n return {\n is: never,\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 var fromOption = function (opt, err) {\n return opt.fold(function () {\n return error(err);\n }, value);\n };\n var Result = {\n value: value,\n error: error,\n fromOption: fromOption\n };\n\n var SimpleResultType;\n (function (SimpleResultType) {\n SimpleResultType[SimpleResultType['Error'] = 0] = 'Error';\n SimpleResultType[SimpleResultType['Value'] = 1] = 'Value';\n }(SimpleResultType || (SimpleResultType = {})));\n var fold = function (res, onError, onValue) {\n return res.stype === SimpleResultType.Error ? onError(res.serror) : onValue(res.svalue);\n };\n var partition$1 = function (results) {\n var values = [];\n var errors = [];\n each(results, function (obj) {\n fold(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 var mapError = function (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 var map$1 = function (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 var bind$1 = function (res, f) {\n if (res.stype === SimpleResultType.Value) {\n return f(res.svalue);\n } else {\n return res;\n }\n };\n var bindError = function (res, f) {\n if (res.stype === SimpleResultType.Error) {\n return f(res.serror);\n } else {\n return res;\n }\n };\n var svalue = function (v) {\n return {\n stype: SimpleResultType.Value,\n svalue: v\n };\n };\n var serror = function (e) {\n return {\n stype: SimpleResultType.Error,\n serror: e\n };\n };\n var toResult = function (res) {\n return fold(res, Result.error, Result.value);\n };\n var fromResult = function (res) {\n return res.fold(serror, svalue);\n };\n var SimpleResult = {\n fromResult: fromResult,\n toResult: toResult,\n svalue: svalue,\n partition: partition$1,\n serror: serror,\n bind: bind$1,\n bindError: bindError,\n map: map$1,\n mapError: mapError,\n fold: fold\n };\n\n var keys = Object.keys;\n var hasOwnProperty = Object.hasOwnProperty;\n var each$1 = function (obj, f) {\n var props = keys(obj);\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 var map$2 = function (obj, f) {\n return tupleMap(obj, function (x, i) {\n return {\n k: i,\n v: f(x, i)\n };\n });\n };\n var tupleMap = function (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 var objAcc = function (r) {\n return function (x, i) {\n r[i] = x;\n };\n };\n var internalFilter = function (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 var filter$1 = function (obj, pred) {\n var t = {};\n internalFilter(obj, pred, objAcc(t), noop);\n return t;\n };\n var mapToArray = function (obj, f) {\n var r = [];\n each$1(obj, function (value, name) {\n r.push(f(value, name));\n });\n return r;\n };\n var find$1 = function (obj, pred) {\n var props = keys(obj);\n for (var k = 0, len = props.length; k < len; k++) {\n var i = props[k];\n var x = obj[i];\n if (pred(x, i, obj)) {\n return Optional.some(x);\n }\n }\n return Optional.none();\n };\n var values = function (obj) {\n return mapToArray(obj, function (v) {\n return v;\n });\n };\n var get$1 = function (obj, key) {\n return has(obj, key) ? Optional.from(obj[key]) : Optional.none();\n };\n var has = function (obj, key) {\n return hasOwnProperty.call(obj, key);\n };\n var hasNonNullableKey = function (obj, key) {\n return has(obj, key) && obj[key] !== undefined && obj[key] !== null;\n };\n\n var generate = function (cases) {\n if (!isArray(cases)) {\n throw new Error('cases must be an array');\n }\n if (cases.length === 0) {\n throw new Error('there must be at least one case');\n }\n var constructors = [];\n var adt = {};\n each(cases, function (acase, count) {\n var keys$1 = keys(acase);\n if (keys$1.length !== 1) {\n throw new Error('one and only one name per case');\n }\n var key = keys$1[0];\n var value = acase[key];\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 constructors.push(key);\n adt[key] = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var argLength = args.length;\n if (argLength !== value.length) {\n throw new Error('Wrong number of arguments to case ' + key + '. Expected ' + value.length + ' (' + value + '), got ' + argLength);\n }\n var match = function (branches) {\n var branchKeys = keys(branches);\n if (constructors.length !== branchKeys.length) {\n throw new Error('Wrong number of arguments to match. Expected: ' + constructors.join(',') + '\\nActual: ' + branchKeys.join(','));\n }\n var allReqd = forall(constructors, function (reqKey) {\n return contains(branchKeys, reqKey);\n });\n if (!allReqd) {\n throw new Error('Not all branches were specified when using match. Specified: ' + branchKeys.join(', ') + '\\nRequired: ' + constructors.join(', '));\n }\n return branches[key].apply(null, args);\n };\n return {\n fold: function () {\n var foldArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n foldArgs[_i] = arguments[_i];\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 var target = foldArgs[count];\n return target.apply(null, args);\n },\n match: match,\n log: function (label) {\n console.log(label, {\n constructors: constructors,\n constructor: key,\n params: args\n });\n }\n };\n };\n });\n return adt;\n };\n var Adt = { generate: generate };\n\n var hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n var shallow = function (old, nu) {\n return nu;\n };\n var deep = function (old, nu) {\n var bothObjects = isObject(old) && isObject(nu);\n return bothObjects ? deepMerge(old, nu) : nu;\n };\n var baseMerge = function (merger) {\n return function () {\n var objects = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n objects[_i] = arguments[_i];\n }\n if (objects.length === 0) {\n throw new Error('Can\\'t merge zero objects');\n }\n var ret = {};\n for (var j = 0; j < objects.length; j++) {\n var curObject = objects[j];\n for (var key in curObject) {\n if (hasOwnProperty$1.call(curObject, key)) {\n ret[key] = merger(ret[key], curObject[key]);\n }\n }\n }\n return ret;\n };\n };\n var deepMerge = baseMerge(deep);\n var merge = baseMerge(shallow);\n\n var cached = function (f) {\n var called = false;\n var r;\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!called) {\n called = true;\n r = f.apply(null, args);\n }\n return r;\n };\n };\n\n var adt = Adt.generate([\n { strict: [] },\n { defaultedThunk: ['fallbackThunk'] },\n { asOption: [] },\n { asDefaultedOptionThunk: ['fallbackThunk'] },\n { mergeWithThunk: ['baseThunk'] }\n ]);\n var defaulted = function (fallback) {\n return adt.defaultedThunk(constant(fallback));\n };\n var mergeWith = function (base) {\n return adt.mergeWithThunk(constant(base));\n };\n var strict = adt.strict;\n var asOption = adt.asOption;\n var defaultedThunk = adt.defaultedThunk;\n var asDefaultedOptionThunk = adt.asDefaultedOptionThunk;\n var mergeWithThunk = adt.mergeWithThunk;\n\n var comparison = Adt.generate([\n {\n bothErrors: [\n 'error1',\n 'error2'\n ]\n },\n {\n firstError: [\n 'error1',\n 'value2'\n ]\n },\n {\n secondError: [\n 'value1',\n 'error2'\n ]\n },\n {\n bothValues: [\n 'value1',\n 'value2'\n ]\n }\n ]);\n var partition$2 = function (results) {\n var errors = [];\n var values = [];\n each(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 = function (obj, fields) {\n var r = {};\n each$1(obj, function (v, k) {\n if (!contains(fields, k)) {\n r[k] = v;\n }\n });\n return r;\n };\n\n var wrap = function (key, value) {\n var _a;\n return _a = {}, _a[key] = value, _a;\n };\n var wrapAll = function (keyvalues) {\n var r = {};\n each(keyvalues, function (kv) {\n r[kv.key] = kv.value;\n });\n return r;\n };\n\n var exclude$1 = function (obj, fields) {\n return exclude(obj, fields);\n };\n var wrap$1 = function (key, value) {\n return wrap(key, value);\n };\n var wrapAll$1 = function (keyvalues) {\n return wrapAll(keyvalues);\n };\n var mergeValues = function (values, base) {\n return values.length === 0 ? Result.value(base) : Result.value(deepMerge(base, merge.apply(undefined, values)));\n };\n var mergeErrors = function (errors) {\n return Result.error(flatten(errors));\n };\n var consolidate = function (objs, base) {\n var partitions = partition$2(objs);\n return partitions.errors.length > 0 ? mergeErrors(partitions.errors) : mergeValues(partitions.values, base);\n };\n\n var mergeValues$1 = function (values, base) {\n return values.length > 0 ? SimpleResult.svalue(deepMerge(base, merge.apply(undefined, values))) : SimpleResult.svalue(base);\n };\n var mergeErrors$1 = function (errors) {\n return compose(SimpleResult.serror, flatten)(errors);\n };\n var consolidateObj = function (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 var consolidateArr = function (objects) {\n var partitions = SimpleResult.partition(objects);\n return partitions.errors.length > 0 ? mergeErrors$1(partitions.errors) : SimpleResult.svalue(partitions.values);\n };\n var ResultCombine = {\n consolidateObj: consolidateObj,\n consolidateArr: consolidateArr\n };\n\n var formatObj = function (input) {\n return isObject(input) && keys(input).length > 100 ? ' removed due to size' : JSON.stringify(input, null, 2);\n };\n var formatErrors = function (errors) {\n var es = errors.length > 10 ? errors.slice(0, 10).concat([{\n path: [],\n getErrorInfo: function () {\n return '... (only showing first ten failures)';\n }\n }]) : errors;\n return map(es, function (e) {\n return 'Failed path: (' + e.path.join(' > ') + ')\\n' + e.getErrorInfo();\n });\n };\n\n var nu = function (path, getErrorInfo) {\n return SimpleResult.serror([{\n path: path,\n getErrorInfo: getErrorInfo\n }]);\n };\n var missingStrict = function (path, key, obj) {\n return nu(path, function () {\n return 'Could not find valid *strict* value for \"' + key + '\" in ' + formatObj(obj);\n });\n };\n var missingKey = function (path, key) {\n return nu(path, function () {\n return 'Choice schema did not contain choice key: \"' + key + '\"';\n });\n };\n var missingBranch = function (path, branches, branch) {\n return nu(path, function () {\n return 'The chosen schema: \"' + branch + '\" did not exist in branches: ' + formatObj(branches);\n });\n };\n var unsupportedFields = function (path, unsupported) {\n return nu(path, function () {\n return 'There are unsupported fields: [' + unsupported.join(', ') + '] specified';\n });\n };\n var custom = function (path, err) {\n return nu(path, function () {\n return err;\n });\n };\n\n var adt$1 = Adt.generate([\n {\n field: [\n 'key',\n 'okey',\n 'presence',\n 'prop'\n ]\n },\n {\n state: [\n 'okey',\n 'instantiator'\n ]\n }\n ]);\n var strictAccess = function (path, obj, key) {\n return get$1(obj, key).fold(function () {\n return missingStrict(path, key, obj);\n }, SimpleResult.svalue);\n };\n var fallbackAccess = function (obj, key, fallbackThunk) {\n var v = get$1(obj, key).fold(function () {\n return fallbackThunk(obj);\n }, identity);\n return SimpleResult.svalue(v);\n };\n var optionAccess = function (obj, key) {\n return SimpleResult.svalue(get$1(obj, key));\n };\n var optionDefaultedAccess = function (obj, key, fallback) {\n var opt = get$1(obj, key).map(function (val) {\n return val === true ? fallback(obj) : val;\n });\n return SimpleResult.svalue(opt);\n };\n var cExtractOne = function (path, obj, field, strength) {\n return field.fold(function (key, okey, presence, prop) {\n var bundle = function (av) {\n var result = prop.extract(path.concat([key]), strength, av);\n return SimpleResult.map(result, function (res) {\n return wrap(okey, strength(res));\n });\n };\n var bundleAsOption = function (optValue) {\n return optValue.fold(function () {\n var outcome = wrap(okey, strength(Optional.none()));\n return SimpleResult.svalue(outcome);\n }, function (ov) {\n var result = prop.extract(path.concat([key]), strength, ov);\n return SimpleResult.map(result, function (res) {\n return wrap(okey, strength(Optional.some(res)));\n });\n });\n };\n return function () {\n return presence.fold(function () {\n return SimpleResult.bind(strictAccess(path, obj, key), bundle);\n }, function (fallbackThunk) {\n return SimpleResult.bind(fallbackAccess(obj, key, fallbackThunk), bundle);\n }, function () {\n return SimpleResult.bind(optionAccess(obj, key), bundleAsOption);\n }, function (fallbackThunk) {\n return SimpleResult.bind(optionDefaultedAccess(obj, key, fallbackThunk), bundleAsOption);\n }, function (baseThunk) {\n var base = baseThunk(obj);\n var result = SimpleResult.map(fallbackAccess(obj, key, constant({})), function (v) {\n return deepMerge(base, v);\n });\n return SimpleResult.bind(result, bundle);\n });\n }();\n }, function (okey, instantiator) {\n var state = instantiator(obj);\n return SimpleResult.svalue(wrap(okey, strength(state)));\n });\n };\n var cExtract = function (path, obj, fields, strength) {\n var results = map(fields, function (field) {\n return cExtractOne(path, obj, field, strength);\n });\n return ResultCombine.consolidateObj(results, {});\n };\n var valueThunk = function (getDelegate) {\n var extract = function (path, strength, val) {\n return getDelegate().extract(path, strength, val);\n };\n var toString = function () {\n return getDelegate().toString();\n };\n return {\n extract: extract,\n toString: toString\n };\n };\n var value$1 = function (validator) {\n var extract = function (path, strength, val) {\n return SimpleResult.bindError(validator(val, strength), function (err) {\n return custom(path, err);\n });\n };\n var toString = function () {\n return 'val';\n };\n return {\n extract: extract,\n toString: toString\n };\n };\n var getSetKeys = function (obj) {\n return keys(filter$1(obj, function (value) {\n return value !== undefined && value !== null;\n }));\n };\n var objOfOnly = function (fields) {\n var delegate = objOf(fields);\n var fieldNames = foldr(fields, function (acc, f) {\n return f.fold(function (key) {\n return deepMerge(acc, wrap$1(key, true));\n }, constant(acc));\n }, {});\n var extract = function (path, strength, o) {\n var keys = isBoolean(o) ? [] : getSetKeys(o);\n var extra = filter(keys, function (k) {\n return !hasNonNullableKey(fieldNames, k);\n });\n return extra.length === 0 ? delegate.extract(path, strength, o) : unsupportedFields(path, extra);\n };\n return {\n extract: extract,\n toString: delegate.toString\n };\n };\n var objOf = function (fields) {\n var extract = function (path, strength, o) {\n return cExtract(path, o, fields, strength);\n };\n var toString = function () {\n var fieldStrings = map(fields, function (field) {\n return field.fold(function (key, okey, presence, prop) {\n return key + ' -> ' + prop.toString();\n }, function (okey, _instantiator) {\n return 'state(' + okey + ')';\n });\n });\n return 'obj{\\n' + fieldStrings.join('\\n') + '}';\n };\n return {\n extract: extract,\n toString: toString\n };\n };\n var arrOf = function (prop) {\n var extract = function (path, strength, array) {\n var results = map(array, function (a, i) {\n return prop.extract(path.concat(['[' + i + ']']), strength, a);\n });\n return ResultCombine.consolidateArr(results);\n };\n var toString = function () {\n return 'array(' + prop.toString() + ')';\n };\n return {\n extract: extract,\n toString: toString\n };\n };\n var oneOf = function (props) {\n var extract = function (path, strength, val) {\n var errors = [];\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, strength, val);\n if (res.stype === SimpleResultType.Value) {\n return res;\n }\n errors.push(res);\n }\n return ResultCombine.consolidateArr(errors);\n };\n var toString = function () {\n return 'oneOf(' + map(props, function (prop) {\n return prop.toString();\n }).join(', ') + ')';\n };\n return {\n extract: extract,\n toString: toString\n };\n };\n var setOf = function (validator, prop) {\n var validateKeys = function (path, keys) {\n return arrOf(value$1(validator)).extract(path, identity, keys);\n };\n var extract = function (path, strength, 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(validKeys, function (vk) {\n return adt$1.field(vk, vk, strict(), prop);\n });\n return objOf(schema).extract(path, strength, o);\n });\n };\n var toString = function () {\n return 'setOf(' + prop.toString() + ')';\n };\n return {\n extract: extract,\n toString: toString\n };\n };\n var thunk = function (desc, processor) {\n var getP = cached(function () {\n return processor();\n });\n var extract = function (path, strength, val) {\n return getP().extract(path, strength, val);\n };\n var toString = function () {\n return getP().toString();\n };\n return {\n extract: extract,\n toString: toString\n };\n };\n var anyValue = constant(value$1(SimpleResult.svalue));\n var arrOfObj = compose(arrOf, objOf);\n var state = adt$1.state;\n var field = adt$1.field;\n\n var chooseFrom = function (path, strength, input, branches, ch) {\n var fields = get$1(branches, ch);\n return fields.fold(function () {\n return missingBranch(path, branches, ch);\n }, function (vp) {\n return vp.extract(path.concat(['branch: ' + ch]), strength, input);\n });\n };\n var choose = function (key, branches) {\n var extract = function (path, strength, input) {\n var choice = get$1(input, key);\n return choice.fold(function () {\n return missingKey(path, key);\n }, function (chosen) {\n return chooseFrom(path, strength, input, branches, chosen);\n });\n };\n var toString = function () {\n return 'chooseOn(' + key + '). Possible values: ' + keys(branches);\n };\n return {\n extract: extract,\n toString: toString\n };\n };\n\n var _anyValue = value$1(SimpleResult.svalue);\n var arrOfObj$1 = function (objFields) {\n return arrOfObj(objFields);\n };\n var arrOfVal = function () {\n return arrOf(_anyValue);\n };\n var valueThunkOf = valueThunk;\n var valueOf = function (validator) {\n return value$1(function (v) {\n return validator(v).fold(SimpleResult.serror, SimpleResult.svalue);\n });\n };\n var setOf$1 = function (validator, prop) {\n return setOf(function (v) {\n return SimpleResult.fromResult(validator(v));\n }, prop);\n };\n var extract = function (label, prop, strength, obj) {\n var res = prop.extract([label], strength, obj);\n return SimpleResult.mapError(res, function (errs) {\n return {\n input: obj,\n errors: errs\n };\n });\n };\n var asRaw = function (label, prop, obj) {\n return SimpleResult.toResult(extract(label, prop, identity, obj));\n };\n var getOrDie = function (extraction) {\n return extraction.fold(function (errInfo) {\n throw new Error(formatError(errInfo));\n }, identity);\n };\n var asRawOrDie = function (label, prop, obj) {\n return getOrDie(asRaw(label, prop, obj));\n };\n var formatError = function (errInfo) {\n return 'Errors: \\n' + formatErrors(errInfo.errors).join('\\n') + '\\n\\nInput object: ' + formatObj(errInfo.input);\n };\n var chooseProcessor = function (key, branches) {\n return choose(key, branches);\n };\n var choose$1 = function (key, branches) {\n return choose(key, map$2(branches, objOf));\n };\n var thunkOf = function (desc, schema) {\n return thunk(desc, schema);\n };\n var anyValue$1 = constant(_anyValue);\n var typedValue = function (validator, expectedType) {\n return value$1(function (a) {\n var actualType = typeof a;\n return validator(a) ? SimpleResult.svalue(a) : SimpleResult.serror('Expected type: ' + expectedType + ' but got: ' + actualType);\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 var isPostMessageable = function (val) {\n var every = function (iter, callbackFn) {\n var result = iter.next();\n while (!result.done) {\n if (!callbackFn(result.value)) {\n return false;\n }\n result = iter.next();\n }\n return true;\n };\n if (Object(val) !== val) {\n return true;\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 case 'Array':\n case 'Object':\n return Object.keys(val).every(function (prop) {\n return isPostMessageable(val[prop]);\n });\n case 'Map':\n return every(val.keys(), isPostMessageable) && every(val.values(), isPostMessageable);\n case 'Set':\n return every(val.keys(), isPostMessageable);\n default:\n return false;\n }\n };\n var postMessageable = value$1(function (a) {\n return isPostMessageable(a) ? SimpleResult.svalue(a) : SimpleResult.serror('Expected value to be acceptable for sending via postMessage');\n });\n\n var validateEnum = function (values) {\n return valueOf(function (value) {\n return contains(values, value) ? Result.value(value) : Result.error('Unsupported value: \"' + value + '\", choose one of \"' + values.join(', ') + '\".');\n });\n };\n var strict$1 = function (key) {\n return field(key, key, strict(), anyValue());\n };\n var strictOf = function (key, schema) {\n return field(key, key, strict(), schema);\n };\n var strictNumber = function (key) {\n return strictOf(key, number);\n };\n var strictString = function (key) {\n return strictOf(key, string);\n };\n var strictStringEnum = function (key, values) {\n return field(key, key, strict(), validateEnum(values));\n };\n var strictBoolean = function (key) {\n return strictOf(key, boolean);\n };\n var strictFunction = function (key) {\n return strictOf(key, functionProcessor);\n };\n var forbid = function (key, message) {\n return field(key, key, asOption(), value$1(function (_v) {\n return SimpleResult.serror('The field: ' + key + ' is forbidden. ' + message);\n }));\n };\n var strictObjOf = function (key, objSchema) {\n return field(key, key, strict(), objOf(objSchema));\n };\n var strictArrayOfObj = function (key, objFields) {\n return field(key, key, strict(), arrOfObj(objFields));\n };\n var strictArrayOf = function (key, schema) {\n return field(key, key, strict(), arrOf(schema));\n };\n var option = function (key) {\n return field(key, key, asOption(), anyValue());\n };\n var optionOf = function (key, schema) {\n return field(key, key, asOption(), schema);\n };\n var optionNumber = function (key) {\n return optionOf(key, number);\n };\n var optionString = function (key) {\n return optionOf(key, string);\n };\n var optionFunction = function (key) {\n return optionOf(key, functionProcessor);\n };\n var optionArrayOf = function (key, schema) {\n return optionOf(key, arrOf(schema));\n };\n var optionObjOf = function (key, objSchema) {\n return optionOf(key, objOf(objSchema));\n };\n var optionObjOfOnly = function (key, objSchema) {\n return optionOf(key, objOfOnly(objSchema));\n };\n var defaulted$1 = function (key, fallback) {\n return field(key, key, defaulted(fallback), anyValue());\n };\n var defaultedOf = function (key, fallback, schema) {\n return field(key, key, defaulted(fallback), schema);\n };\n var defaultedNumber = function (key, fallback) {\n return defaultedOf(key, fallback, number);\n };\n var defaultedString = function (key, fallback) {\n return defaultedOf(key, fallback, string);\n };\n var defaultedStringEnum = function (key, fallback, values) {\n return defaultedOf(key, fallback, validateEnum(values));\n };\n var defaultedBoolean = function (key, fallback) {\n return defaultedOf(key, fallback, boolean);\n };\n var defaultedFunction = function (key, fallback) {\n return defaultedOf(key, fallback, functionProcessor);\n };\n var defaultedPostMsg = function (key, fallback) {\n return defaultedOf(key, fallback, postMessageable);\n };\n var defaultedArrayOf = function (key, fallback, schema) {\n return defaultedOf(key, fallback, arrOf(schema));\n };\n var defaultedObjOf = function (key, fallback, objSchema) {\n return defaultedOf(key, fallback, objOf(objSchema));\n };\n var state$1 = function (okey, instantiator) {\n return state(okey, instantiator);\n };\n\n var Cell = function (initial) {\n var value = initial;\n var get = function () {\n return value;\n };\n var set = function (v) {\n value = v;\n };\n return {\n get: get,\n set: set\n };\n };\n\n var fromHtml = function (html, scope) {\n var doc = scope || document;\n var div = doc.createElement('div');\n div.innerHTML = html;\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 return fromDom(div.childNodes[0]);\n };\n var fromTag = function (tag, scope) {\n var doc = scope || document;\n var node = doc.createElement(tag);\n return fromDom(node);\n };\n var fromText = function (text, scope) {\n var doc = scope || document;\n var node = doc.createTextNode(text);\n return fromDom(node);\n };\n var fromDom = function (node) {\n if (node === null || node === undefined) {\n throw new Error('Node cannot be null or undefined');\n }\n return { dom: node };\n };\n var fromPoint = function (docElm, x, y) {\n return Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom);\n };\n var SugarElement = {\n fromHtml: fromHtml,\n fromTag: fromTag,\n fromText: fromText,\n fromDom: fromDom,\n fromPoint: fromPoint\n };\n\n var DeviceType = function (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 (regexes, s) {\n for (var i = 0; i < regexes.length; i++) {\n var x = regexes[i];\n if (x.test(s)) {\n return x;\n }\n }\n return undefined;\n };\n var find$2 = function (regexes, agent) {\n var r = firstMatch(regexes, agent);\n if (!r) {\n return {\n major: 0,\n minor: 0\n };\n }\n var group = function (i) {\n return Number(agent.replace(r, '$' + i));\n };\n return nu$1(group(1), group(2));\n };\n var detect = function (versionRegexes, agent) {\n var cleanedAgent = String(agent).toLowerCase();\n if (versionRegexes.length === 0) {\n return unknown();\n }\n return find$2(versionRegexes, cleanedAgent);\n };\n var unknown = function () {\n return nu$1(0, 0);\n };\n var nu$1 = function (major, minor) {\n return {\n major: major,\n minor: minor\n };\n };\n var Version = {\n nu: nu$1,\n detect: detect,\n unknown: unknown\n };\n\n var detect$1 = function (candidates, userAgent) {\n var agent = String(userAgent).toLowerCase();\n return find(candidates, function (candidate) {\n return candidate.search(agent);\n });\n };\n var detectBrowser = function (browsers, userAgent) {\n return detect$1(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 var detectOs = function (oses, userAgent) {\n return detect$1(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 var UaString = {\n detectBrowser: detectBrowser,\n detectOs: detectOs\n };\n\n var checkRange = function (str, substr, start) {\n return substr === '' || str.length >= substr.length && str.substr(start, start + substr.length) === substr;\n };\n var contains$1 = function (str, substr) {\n return str.indexOf(substr) !== -1;\n };\n var endsWith = function (str, suffix) {\n return checkRange(str, suffix, str.length - suffix.length);\n };\n var blank = function (r) {\n return function (s) {\n return s.replace(r, '');\n };\n };\n var trim = blank(/^\\s+|\\s+$/g);\n\n var normalVersionRegex = /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/;\n var checkContains = function (target) {\n return function (uastring) {\n return contains$1(uastring, target);\n };\n };\n var browsers = [\n {\n name: 'Edge',\n versionRegexes: [/.*?edge\\/ ?([0-9]+)\\.([0-9]+)$/],\n search: function (uastring) {\n return contains$1(uastring, 'edge/') && contains$1(uastring, 'chrome') && contains$1(uastring, 'safari') && contains$1(uastring, 'applewebkit');\n }\n },\n {\n name: 'Chrome',\n versionRegexes: [\n /.*?chrome\\/([0-9]+)\\.([0-9]+).*/,\n normalVersionRegex\n ],\n search: function (uastring) {\n return contains$1(uastring, 'chrome') && !contains$1(uastring, 'chromeframe');\n }\n },\n {\n name: 'IE',\n versionRegexes: [\n /.*?msie\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*?rv:([0-9]+)\\.([0-9]+).*/\n ],\n search: function (uastring) {\n return contains$1(uastring, 'msie') || contains$1(uastring, 'trident');\n }\n },\n {\n name: 'Opera',\n versionRegexes: [\n normalVersionRegex,\n /.*?opera\\/([0-9]+)\\.([0-9]+).*/\n ],\n search: checkContains('opera')\n },\n {\n name: 'Firefox',\n versionRegexes: [/.*?firefox\\/\\ ?([0-9]+)\\.([0-9]+).*/],\n search: checkContains('firefox')\n },\n {\n name: 'Safari',\n versionRegexes: [\n normalVersionRegex,\n /.*?cpu os ([0-9]+)_([0-9]+).*/\n ],\n search: function (uastring) {\n return (contains$1(uastring, 'safari') || contains$1(uastring, 'mobile/')) && contains$1(uastring, 'applewebkit');\n }\n }\n ];\n var oses = [\n {\n name: 'Windows',\n search: checkContains('win'),\n versionRegexes: [/.*?windows\\ nt\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'iOS',\n search: function (uastring) {\n return contains$1(uastring, 'iphone') || contains$1(uastring, 'ipad');\n },\n versionRegexes: [\n /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*cpu os ([0-9]+)_([0-9]+).*/,\n /.*cpu iphone os ([0-9]+)_([0-9]+).*/\n ]\n },\n {\n name: 'Android',\n search: checkContains('android'),\n versionRegexes: [/.*?android\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'OSX',\n search: checkContains('mac os x'),\n versionRegexes: [/.*?mac\\ os\\ x\\ ?([0-9]+)_([0-9]+).*/]\n },\n {\n name: 'Linux',\n search: checkContains('linux'),\n versionRegexes: []\n },\n {\n name: 'Solaris',\n search: checkContains('sunos'),\n versionRegexes: []\n },\n {\n name: 'FreeBSD',\n search: checkContains('freebsd'),\n versionRegexes: []\n },\n {\n name: 'ChromeOS',\n search: checkContains('cros'),\n versionRegexes: [/.*?chrome\\/([0-9]+)\\.([0-9]+).*/]\n }\n ];\n var PlatformInfo = {\n browsers: constant(browsers),\n oses: constant(oses)\n };\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 var unknown$1 = function () {\n return nu$2({\n current: undefined,\n version: Version.unknown()\n });\n };\n var nu$2 = function (info) {\n var current = info.current;\n var version = info.version;\n var isBrowser = function (name) {\n return function () {\n return current === name;\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 var Browser = {\n unknown: unknown$1,\n nu: nu$2,\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\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 var unknown$2 = function () {\n return nu$3({\n current: undefined,\n version: Version.unknown()\n });\n };\n var nu$3 = function (info) {\n var current = info.current;\n var version = info.version;\n var isOS = function (name) {\n return function () {\n return current === name;\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 var OperatingSystem = {\n unknown: unknown$2,\n nu: nu$3,\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$2 = function (userAgent, mediaMatch) {\n var browsers = PlatformInfo.browsers();\n var oses = PlatformInfo.oses();\n var browser = UaString.detectBrowser(browsers, userAgent).fold(Browser.unknown, Browser.nu);\n var os = UaString.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 var PlatformDetection = { detect: detect$2 };\n\n var mediaMatch = function (query) {\n return window.matchMedia(query).matches;\n };\n var platform = cached(function () {\n return PlatformDetection.detect(navigator.userAgent, mediaMatch);\n });\n var detect$3 = function () {\n return platform();\n };\n\n var compareDocumentPosition = function (a, b, match) {\n return (a.compareDocumentPosition(b) & match) !== 0;\n };\n var documentPositionContainedBy = function (a, b) {\n return compareDocumentPosition(a, b, Node.DOCUMENT_POSITION_CONTAINED_BY);\n };\n\n var DOCUMENT = 9;\n var DOCUMENT_FRAGMENT = 11;\n var ELEMENT = 1;\n var TEXT = 3;\n\n var is = function (element, selector) {\n var dom = element.dom;\n if (dom.nodeType !== ELEMENT) {\n return false;\n } else {\n var elem = dom;\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 var bypassSelector = function (dom) {\n return dom.nodeType !== ELEMENT && dom.nodeType !== DOCUMENT && dom.nodeType !== DOCUMENT_FRAGMENT || dom.childElementCount === 0;\n };\n var all = function (selector, scope) {\n var base = scope === undefined ? document : scope.dom;\n return bypassSelector(base) ? [] : map(base.querySelectorAll(selector), SugarElement.fromDom);\n };\n var one = function (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 (e1, e2) {\n return e1.dom === e2.dom;\n };\n var regularContains = function (e1, e2) {\n var d1 = e1.dom;\n var d2 = e2.dom;\n return d1 === d2 ? false : d1.contains(d2);\n };\n var ieContains = function (e1, e2) {\n return documentPositionContainedBy(e1.dom, e2.dom);\n };\n var contains$2 = function (e1, e2) {\n return detect$3().browser.isIE() ? ieContains(e1, e2) : regularContains(e1, e2);\n };\n\n var ensureIsRoot = function (isRoot) {\n return isFunction(isRoot) ? isRoot : never;\n };\n var ancestor = function (scope, transform, isRoot) {\n var element = scope.dom;\n var stop = ensureIsRoot(isRoot);\n while (element.parentNode) {\n element = element.parentNode;\n var el = SugarElement.fromDom(element);\n var transformed = transform(el);\n if (transformed.isSome()) {\n return transformed;\n } else if (stop(el)) {\n break;\n }\n }\n return Optional.none();\n };\n var closest = function (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(scope, transform, stop);\n });\n };\n\n var isSource = function (component, simulatedEvent) {\n return eq$1(component.element, simulatedEvent.event.target);\n };\n\n var nu$4 = function (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 return asRawOrDie('Extracting event.handler', objOfOnly([\n defaulted$1('can', always),\n defaulted$1('abort', never),\n defaulted$1('run', noop)\n ]), parts);\n };\n var all$1 = function (handlers, f) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return foldl(handlers, function (acc, handler) {\n return acc && f(handler).apply(undefined, args);\n }, true);\n };\n };\n var any = function (handlers, f) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return foldl(handlers, function (acc, handler) {\n return acc || f(handler).apply(undefined, args);\n }, false);\n };\n };\n var read = function (handler) {\n return isFunction(handler) ? {\n can: always,\n abort: never,\n run: handler\n } : handler;\n };\n var fuse = function (handlers) {\n var can = all$1(handlers, function (handler) {\n return handler.can;\n });\n var abort = any(handlers, function (handler) {\n return handler.abort;\n });\n var run = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n each(handlers, function (handler) {\n handler.run.apply(undefined, args);\n });\n };\n return nu$4({\n can: can,\n abort: abort,\n run: run\n });\n };\n\n var constant$1 = constant;\n var touchstart = constant$1('touchstart');\n var touchmove = constant$1('touchmove');\n var touchend = constant$1('touchend');\n var touchcancel = constant$1('touchcancel');\n var mousedown = constant$1('mousedown');\n var mousemove = constant$1('mousemove');\n var mouseout = constant$1('mouseout');\n var mouseup = constant$1('mouseup');\n var mouseover = constant$1('mouseover');\n var focusin = constant$1('focusin');\n var focusout = constant$1('focusout');\n var keydown = constant$1('keydown');\n var keyup = constant$1('keyup');\n var input = constant$1('input');\n var change = constant$1('change');\n var click = constant$1('click');\n var transitionend = constant$1('transitionend');\n var selectstart = constant$1('selectstart');\n\n var prefixName = function (name) {\n return constant('alloy.' + name);\n };\n var alloy = { tap: prefixName('tap') };\n var focus = prefixName('focus');\n var postBlur = prefixName('blur.post');\n var postPaste = prefixName('paste.post');\n var receive = prefixName('receive');\n var execute = 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 = prefixName('highlight');\n var dehighlight = prefixName('dehighlight');\n\n var emit = function (component, event) {\n dispatchWith(component, component.element, event, {});\n };\n var emitWith = function (component, event, properties) {\n dispatchWith(component, component.element, event, properties);\n };\n var emitExecute = function (component) {\n emit(component, execute());\n };\n var dispatch = function (component, target, event) {\n dispatchWith(component, target, event, {});\n };\n var dispatchWith = function (component, target, event, properties) {\n var data = __assign({ target: target }, properties);\n component.getSystem().triggerEvent(event, target, data);\n };\n var dispatchEvent = function (component, target, event, simulatedEvent) {\n component.getSystem().triggerEvent(event, target, simulatedEvent.event);\n };\n\n var derive = function (configs) {\n return wrapAll$1(configs);\n };\n var abort = function (name, predicate) {\n return {\n key: name,\n value: nu$4({ abort: predicate })\n };\n };\n var can = function (name, predicate) {\n return {\n key: name,\n value: nu$4({ can: predicate })\n };\n };\n var preventDefault = function (name) {\n return {\n key: name,\n value: nu$4({\n run: function (component, simulatedEvent) {\n simulatedEvent.event.prevent();\n }\n })\n };\n };\n var run = function (name, handler) {\n return {\n key: name,\n value: nu$4({ run: handler })\n };\n };\n var runActionExtra = function (name, action, extra) {\n return {\n key: name,\n value: nu$4({\n run: function (component, simulatedEvent) {\n action.apply(undefined, [\n component,\n simulatedEvent\n ].concat(extra));\n }\n })\n };\n };\n var runOnName = function (name) {\n return function (handler) {\n return run(name, handler);\n };\n };\n var runOnSourceName = function (name) {\n return function (handler) {\n return {\n key: name,\n value: nu$4({\n run: function (component, simulatedEvent) {\n if (isSource(component, simulatedEvent)) {\n handler(component, simulatedEvent);\n }\n }\n })\n };\n };\n };\n var redirectToUid = function (name, uid) {\n return run(name, function (component, simulatedEvent) {\n component.getSystem().getByUid(uid).each(function (redirectee) {\n dispatchEvent(redirectee, redirectee.element, name, simulatedEvent);\n });\n });\n };\n var redirectToPart = function (name, detail, partName) {\n var uid = detail.partUids[partName];\n return redirectToUid(name, uid);\n };\n var runWithTarget = function (name, f) {\n return run(name, function (component, simulatedEvent) {\n var ev = simulatedEvent.event;\n var target = component.getSystem().getByDom(ev.target).fold(function () {\n var closest$1 = closest(ev.target, function (el) {\n return component.getSystem().getByDom(el).toOptional();\n }, never);\n return closest$1.getOr(component);\n }, function (c) {\n return c;\n });\n f(component, target, simulatedEvent);\n });\n };\n var cutter = function (name) {\n return run(name, function (component, simulatedEvent) {\n simulatedEvent.cut();\n });\n };\n var stopper = function (name) {\n return run(name, function (component, simulatedEvent) {\n simulatedEvent.stop();\n });\n };\n var runOnSource = function (name, f) {\n return runOnSourceName(name)(f);\n };\n var runOnAttached = runOnSourceName(attachedToDom());\n var runOnDetached = runOnSourceName(detachedFromDom());\n var runOnInit = runOnSourceName(systemInit());\n var runOnExecute = runOnName(execute());\n\n var Global = typeof window !== 'undefined' ? window : Function('return this;')();\n\n var name = function (element) {\n var r = element.dom.nodeName;\n return r.toLowerCase();\n };\n var type = function (element) {\n return element.dom.nodeType;\n };\n var isType$1 = function (t) {\n return function (element) {\n return type(element) === t;\n };\n };\n var isElement = isType$1(ELEMENT);\n var isText = isType$1(TEXT);\n var isDocument = isType$1(DOCUMENT);\n var isDocumentFragment = isType$1(DOCUMENT_FRAGMENT);\n\n var owner = function (element) {\n return SugarElement.fromDom(element.dom.ownerDocument);\n };\n var documentOrOwner = function (dos) {\n return isDocument(dos) ? dos : owner(dos);\n };\n var documentElement = function (element) {\n return SugarElement.fromDom(documentOrOwner(element).dom.documentElement);\n };\n var defaultView = function (element) {\n return SugarElement.fromDom(documentOrOwner(element).dom.defaultView);\n };\n var parent = function (element) {\n return Optional.from(element.dom.parentNode).map(SugarElement.fromDom);\n };\n var parentNode = function (element) {\n return parent(element);\n };\n var offsetParent = function (element) {\n return Optional.from(element.dom.offsetParent).map(SugarElement.fromDom);\n };\n var nextSibling = function (element) {\n return Optional.from(element.dom.nextSibling).map(SugarElement.fromDom);\n };\n var children = function (element) {\n return map(element.dom.childNodes, SugarElement.fromDom);\n };\n var child = function (element, index) {\n var cs = element.dom.childNodes;\n return Optional.from(cs[index]).map(SugarElement.fromDom);\n };\n var firstChild = function (element) {\n return child(element, 0);\n };\n\n var isShadowRoot = function (dos) {\n return isDocumentFragment(dos) && isNonNullable(dos.dom.host);\n };\n var supported = isFunction(Element.prototype.attachShadow) && isFunction(Node.prototype.getRootNode);\n var isSupported = constant(supported);\n var getRootNode = supported ? function (e) {\n return SugarElement.fromDom(e.dom.getRootNode());\n } : documentOrOwner;\n var getContentContainer = function (dos) {\n return isShadowRoot(dos) ? dos : SugarElement.fromDom(documentOrOwner(dos).dom.body);\n };\n var isInShadowRoot = function (e) {\n return getShadowRoot(e).isSome();\n };\n var getShadowRoot = function (e) {\n var r = getRootNode(e);\n return isShadowRoot(r) ? Optional.some(r) : Optional.none();\n };\n var getShadowHost = function (e) {\n return SugarElement.fromDom(e.dom.host);\n };\n var getOriginalEventTarget = function (event) {\n if (isSupported() && isNonNullable(event.target)) {\n var el = SugarElement.fromDom(event.target);\n if (isElement(el) && isOpenShadowHost(el)) {\n if (event.composed && event.composedPath) {\n var composedPath = event.composedPath();\n if (composedPath) {\n return head(composedPath);\n }\n }\n }\n }\n return Optional.from(event.target);\n };\n var isOpenShadowHost = function (element) {\n return isNonNullable(element.dom.shadowRoot);\n };\n\n var before = function (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 var after = function (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(v, element);\n });\n }, function (v) {\n before(v, element);\n });\n };\n var prepend = function (parent, element) {\n var firstChild$1 = firstChild(parent);\n firstChild$1.fold(function () {\n append(parent, element);\n }, function (v) {\n parent.dom.insertBefore(element.dom, v.dom);\n });\n };\n var append = function (parent, element) {\n parent.dom.appendChild(element.dom);\n };\n var appendAt = function (parent, element, index) {\n child(parent, index).fold(function () {\n append(parent, element);\n }, function (v) {\n before(v, element);\n });\n };\n\n var before$1 = function (marker, elements) {\n each(elements, function (x) {\n before(marker, x);\n });\n };\n var append$1 = function (parent, elements) {\n each(elements, function (x) {\n append(parent, x);\n });\n };\n\n var empty = function (element) {\n element.dom.textContent = '';\n each(children(element), function (rogue) {\n remove(rogue);\n });\n };\n var remove = function (element) {\n var dom = element.dom;\n if (dom.parentNode !== null) {\n dom.parentNode.removeChild(dom);\n }\n };\n var unwrap = function (wrapper) {\n var children$1 = children(wrapper);\n if (children$1.length > 0) {\n before$1(wrapper, children$1);\n }\n remove(wrapper);\n };\n\n var fromHtml$1 = function (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$2 = function (element) {\n return element.dom.innerHTML;\n };\n var set = function (element, content) {\n var owner$1 = owner(element);\n var docDom = owner$1.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(element, fragment);\n };\n var getOuter = function (element) {\n var container = SugarElement.fromTag('div');\n var clone = SugarElement.fromDom(element.dom.cloneNode(true));\n append(container, clone);\n return get$2(container);\n };\n\n var rawSet = function (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 var set$1 = function (element, key, value) {\n rawSet(element.dom, key, value);\n };\n var setAll = function (element, attrs) {\n var dom = element.dom;\n each$1(attrs, function (v, k) {\n rawSet(dom, k, v);\n });\n };\n var get$3 = function (element, key) {\n var v = element.dom.getAttribute(key);\n return v === null ? undefined : v;\n };\n var getOpt = function (element, key) {\n return Optional.from(get$3(element, key));\n };\n var has$1 = function (element, key) {\n var dom = element.dom;\n return dom && dom.hasAttribute ? dom.hasAttribute(key) : false;\n };\n var remove$1 = function (element, key) {\n element.dom.removeAttribute(key);\n };\n\n var clone = function (original, isDeep) {\n return SugarElement.fromDom(original.dom.cloneNode(isDeep));\n };\n var shallow$1 = function (original) {\n return clone(original, false);\n };\n\n var getHtml = function (element) {\n if (isShadowRoot(element)) {\n return '#shadow-root';\n } else {\n var clone = shallow$1(element);\n return getOuter(clone);\n }\n };\n\n var element = function (elem) {\n return getHtml(elem);\n };\n\n var isRecursive = function (component, originator, target) {\n return eq$1(originator, component.element) && !eq$1(originator, target);\n };\n var events = derive([can(focus(), function (component, simulatedEvent) {\n var event = simulatedEvent.event;\n var originator = event.originator;\n var target = event.target;\n if (isRecursive(component, originator, target)) {\n console.warn(focus() + ' did not get interpreted by the desired target. ' + '\\nOriginator: ' + element(originator) + '\\nTarget: ' + element(target) + '\\nCheck the ' + focus() + ' event handlers');\n return false;\n } else {\n return true;\n }\n })]);\n\n var DefaultEvents = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events\n });\n\n var unique = 0;\n var generate$1 = function (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 = constant('alloy-id-');\n var idAttr = constant('data-alloy-id');\n\n var prefix$1 = prefix();\n var idAttr$1 = idAttr();\n var write = function (label, elem) {\n var id = generate$1(prefix$1 + label);\n writeOnly(elem, id);\n return id;\n };\n var writeOnly = function (elem, uid) {\n Object.defineProperty(elem.dom, idAttr$1, {\n value: uid,\n writable: true\n });\n };\n var read$1 = function (elem) {\n var id = isElement(elem) ? elem.dom[idAttr$1] : null;\n return Optional.from(id);\n };\n var generate$2 = function (prefix) {\n return generate$1(prefix);\n };\n\n var make = identity;\n\n var NoContextApi = function (getComp) {\n var fail = function (event) {\n return function () {\n throw new Error('The component must be in a context to send: ' + event + (getComp ? '\\n' + element(getComp().element) + ' is not in context.' : ''));\n };\n };\n return {\n debugInfo: constant('fake'),\n triggerEvent: fail('triggerEvent'),\n triggerFocus: fail('triggerFocus'),\n triggerEscape: fail('triggerEscape'),\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 broadcast: fail('broadcast'),\n broadcastOn: fail('broadcastOn'),\n broadcastEvent: fail('broadcastEvent'),\n isConnected: never\n };\n };\n var singleton = NoContextApi();\n\n var markAsBehaviourApi = function (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 f.toFunctionAnnotation = function () {\n return {\n name: apiName,\n parameters: cleanParameters(parameters.slice(0, 1).concat(parameters.slice(3)))\n };\n };\n return f;\n };\n var cleanParameters = function (parameters) {\n return map(parameters, function (p) {\n return endsWith(p, '/*') ? p.substring(0, p.length - '/*'.length) : p;\n });\n };\n var markAsExtraApi = function (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 f.toFunctionAnnotation = function () {\n return {\n name: extraName,\n parameters: cleanParameters(parameters)\n };\n };\n return f;\n };\n var markAsSketchApi = function (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 f.toFunctionAnnotation = function () {\n return {\n name: 'OVERRIDE',\n parameters: cleanParameters(parameters.slice(1))\n };\n };\n return f;\n };\n\n var premadeTag = generate$1('alloy-premade');\n var premade = function (comp) {\n return wrap$1(premadeTag, comp);\n };\n var getPremade = function (spec) {\n return get$1(spec, premadeTag);\n };\n var makeApi = function (f) {\n return markAsSketchApi(function (component) {\n var rest = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n return f.apply(void 0, __spreadArrays([\n component.getApis(),\n component\n ], rest));\n }, f);\n };\n\n var NoState = {\n init: function () {\n return nu$5({\n readState: function () {\n return 'No State required';\n }\n });\n }\n };\n var nu$5 = function (spec) {\n return spec;\n };\n\n var generateFrom = function (spec, all) {\n var schema = map(all, function (a) {\n return optionObjOf(a.name(), [\n strict$1('config'),\n defaulted$1('state', NoState)\n ]);\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 }, function (v) {\n return v;\n });\n return {\n list: all,\n data: map$2(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 function () {\n return output;\n };\n })\n };\n };\n var getBehaviours = function (bData) {\n return bData.list;\n };\n var getData = function (bData) {\n return bData.data;\n };\n\n var byInnerKey = function (data, tuple) {\n var r = {};\n each$1(data, function (detail, key) {\n each$1(detail, function (value, indexKey) {\n var chain = get$1(r, indexKey).getOr([]);\n r[indexKey] = chain.concat([tuple(key, value)]);\n });\n });\n return r;\n };\n\n var nu$6 = function (s) {\n return {\n classes: s.classes !== undefined ? s.classes : [],\n attributes: s.attributes !== undefined ? s.attributes : {},\n styles: s.styles !== undefined ? s.styles : {}\n };\n };\n var merge$1 = function (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 = function (info, baseMod, behaviours, base) {\n var modsByBehaviour = __assign({}, baseMod);\n each(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 var combineObjects = function (objects) {\n return foldr(objects, function (b, a) {\n return __assign(__assign({}, a.modification), b);\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$6({\n classes: combinedClasses,\n attributes: combinedAttributes,\n styles: combinedStyles\n });\n };\n\n var sortKeys = function (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 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 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 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 (handler, purpose) {\n return {\n handler: handler,\n purpose: purpose\n };\n };\n var curried = function (handler, purpose) {\n return {\n cHandler: handler,\n purpose: purpose\n };\n };\n var curryArgs = function (descHandler, extraArgs) {\n return curried(curry.apply(undefined, [descHandler.handler].concat(extraArgs)), descHandler.purpose);\n };\n var getCurried = function (descHandler) {\n return descHandler.cHandler;\n };\n\n var behaviourTuple = function (name, handler) {\n return {\n name: name,\n handler: handler\n };\n };\n var nameToHandlers = function (behaviours, info) {\n var r = {};\n each(behaviours, function (behaviour) {\n r[behaviour.name()] = behaviour.handlers(info);\n });\n return r;\n };\n var groupByEvents = function (info, behaviours, base) {\n var behaviourEvents = __assign(__assign({}, base), nameToHandlers(behaviours, info));\n return byInnerKey(behaviourEvents, behaviourTuple);\n };\n var combine$1 = function (info, eventOrder, behaviours, base) {\n var byEventName = groupByEvents(info, behaviours, base);\n return combineGroups(byEventName, eventOrder);\n };\n var assemble = function (rawHandler) {\n var handler = read(rawHandler);\n return function (component, simulatedEvent) {\n var rest = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n rest[_i - 2] = arguments[_i];\n }\n var args = [\n component,\n simulatedEvent\n ].concat(rest);\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 var missingOrderError = function (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(tuples, function (c) {\n return c.name;\n }), null, 2)]);\n };\n var fuse$1 = function (tuples, eventOrder, eventName) {\n var order = eventOrder[eventName];\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(sortedTuples, function (tuple) {\n return tuple.handler;\n });\n return fuse(handlers);\n });\n }\n };\n var combineGroups = function (byEventName, eventOrder) {\n var r = mapToArray(byEventName, function (tuples, eventName) {\n var combined = tuples.length === 1 ? Result.value(tuples[0].handler) : fuse$1(tuples, eventOrder, eventName);\n return combined.map(function (handler) {\n var assembled = assemble(handler);\n var purpose = tuples.length > 1 ? filter(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 baseBehaviour = 'alloy.base.behaviour';\n var toInfo = function (spec) {\n var _a;\n return asRaw('custom.definition', objOf([\n field('dom', 'dom', strict(), objOf([\n strict$1('tag'),\n defaulted$1('styles', {}),\n defaulted$1('classes', []),\n defaulted$1('attributes', {}),\n option('value'),\n option('innerHtml')\n ])),\n strict$1('components'),\n strict$1('uid'),\n defaulted$1('events', {}),\n defaulted$1('apis', {}),\n field('eventOrder', 'eventOrder', mergeWith((_a = {}, _a[execute()] = [\n 'disabling',\n baseBehaviour,\n 'toggling',\n 'typeaheadevents'\n ], _a[focus()] = [\n baseBehaviour,\n 'focusing',\n 'keying'\n ], _a[systemInit()] = [\n baseBehaviour,\n 'disabling',\n 'toggling',\n 'representing'\n ], _a[input()] = [\n baseBehaviour,\n 'representing',\n 'streaming',\n 'invalidating'\n ], _a[detachedFromDom()] = [\n baseBehaviour,\n 'representing',\n 'item-events',\n 'tooltipping'\n ], _a[mousedown()] = [\n 'focusing',\n baseBehaviour,\n 'item-type-events'\n ], _a[touchstart()] = [\n 'focusing',\n baseBehaviour,\n 'item-type-events'\n ], _a[mouseover()] = [\n 'item-type-events',\n 'tooltipping'\n ], _a[receive()] = [\n 'receiving',\n 'reflecting',\n 'tooltipping'\n ], _a)), anyValue$1()),\n option('domModification')\n ]), spec);\n };\n var toDefinition = function (detail) {\n return __assign(__assign({}, detail.dom), {\n uid: detail.uid,\n domChildren: map(detail.components, function (comp) {\n return comp.element;\n })\n });\n };\n var toModification = function (detail) {\n return detail.domModification.fold(function () {\n return nu$6({});\n }, nu$6);\n };\n var toEvents = function (info) {\n return info.events;\n };\n\n var read$2 = function (element, attr) {\n var value = get$3(element, attr);\n return value === undefined || value === '' ? [] : value.split(' ');\n };\n var add = function (element, attr, id) {\n var old = read$2(element, attr);\n var nu = old.concat([id]);\n set$1(element, attr, nu.join(' '));\n return true;\n };\n var remove$2 = function (element, attr, id) {\n var nu = filter(read$2(element, attr), function (v) {\n return v !== id;\n });\n if (nu.length > 0) {\n set$1(element, attr, nu.join(' '));\n } else {\n remove$1(element, attr);\n }\n return false;\n };\n\n var supports = function (element) {\n return element.dom.classList !== undefined;\n };\n var get$4 = function (element) {\n return read$2(element, 'class');\n };\n var add$1 = function (element, clazz) {\n return add(element, 'class', clazz);\n };\n var remove$3 = function (element, clazz) {\n return remove$2(element, 'class', clazz);\n };\n\n var add$2 = function (element, clazz) {\n if (supports(element)) {\n element.dom.classList.add(clazz);\n } else {\n add$1(element, clazz);\n }\n };\n var cleanClass = function (element) {\n var classList = supports(element) ? element.dom.classList : get$4(element);\n if (classList.length === 0) {\n remove$1(element, 'class');\n }\n };\n var remove$4 = function (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 cleanClass(element);\n };\n var has$2 = function (element, clazz) {\n return supports(element) && element.dom.classList.contains(clazz);\n };\n\n var add$3 = function (element, classes) {\n each(classes, function (x) {\n add$2(element, x);\n });\n };\n var remove$5 = function (element, classes) {\n each(classes, function (x) {\n remove$4(element, x);\n });\n };\n\n var isSupported$1 = function (dom) {\n return dom.style !== undefined && isFunction(dom.style.getPropertyValue);\n };\n\n var inBody = function (element) {\n var dom = isText(element) ? element.dom.parentNode : element.dom;\n if (dom === undefined || dom === null || dom.ownerDocument === null) {\n return false;\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 var body = function () {\n return getBody(SugarElement.fromDom(document));\n };\n var getBody = function (doc) {\n var b = doc.dom.body;\n if (b === null || b === undefined) {\n throw new Error('Body is not available yet');\n }\n return SugarElement.fromDom(b);\n };\n\n var internalSet = function (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 if (isSupported$1(dom)) {\n dom.style.setProperty(property, value);\n }\n };\n var internalRemove = function (dom, property) {\n if (isSupported$1(dom)) {\n dom.style.removeProperty(property);\n }\n };\n var set$2 = function (element, property, value) {\n var dom = element.dom;\n internalSet(dom, property, value);\n };\n var setAll$1 = function (element, css) {\n var dom = element.dom;\n each$1(css, function (v, k) {\n internalSet(dom, k, v);\n });\n };\n var setOptions = function (element, css) {\n var dom = element.dom;\n each$1(css, function (v, k) {\n v.fold(function () {\n internalRemove(dom, k);\n }, function (value) {\n internalSet(dom, k, value);\n });\n });\n };\n var get$5 = function (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 var getUnsafeProperty = function (dom, property) {\n return isSupported$1(dom) ? dom.style.getPropertyValue(property) : '';\n };\n var getRaw = function (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 var getAllRaw = function (element) {\n var css = {};\n var dom = element.dom;\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 return css;\n };\n var isValidValue = function (tag, property, value) {\n var element = SugarElement.fromTag(tag);\n set$2(element, property, value);\n var style = getRaw(element, property);\n return style.isSome();\n };\n var remove$6 = function (element, property) {\n var dom = element.dom;\n internalRemove(dom, property);\n if (getOpt(element, 'style').map(trim).is('')) {\n remove$1(element, 'style');\n }\n };\n var reflow = function (e) {\n return e.dom.offsetWidth;\n };\n\n var get$6 = function (element) {\n return element.dom.value;\n };\n var set$3 = function (element, value) {\n if (value === undefined) {\n throw new Error('Value.set was undefined');\n }\n element.dom.value = value;\n };\n\n var renderToDom = function (definition) {\n var subject = SugarElement.fromTag(definition.tag);\n setAll(subject, definition.attributes);\n add$3(subject, definition.classes);\n setAll$1(subject, definition.styles);\n definition.innerHtml.each(function (html) {\n return set(subject, html);\n });\n var children = definition.domChildren;\n append$1(subject, children);\n definition.value.each(function (value) {\n set$3(subject, value);\n });\n if (!definition.uid) {\n debugger;\n }\n writeOnly(subject, definition.uid);\n return subject;\n };\n\n var getBehaviours$1 = function (spec) {\n var behaviours = get$1(spec, 'behaviours').getOr({});\n var keys$1 = filter(keys(behaviours), function (k) {\n return behaviours[k] !== undefined;\n });\n return map(keys$1, function (k) {\n return behaviours[k].me;\n });\n };\n var generateFrom$1 = function (spec, all) {\n return generateFrom(spec, all);\n };\n var generate$3 = function (spec) {\n var all = getBehaviours$1(spec);\n return generateFrom$1(spec, all);\n };\n\n var getDomDefinition = function (info, bList, bData) {\n var definition = toDefinition(info);\n var infoModification = toModification(info);\n var baseModification = { 'alloy.base.modification': infoModification };\n var modification = bList.length > 0 ? combine(bData, baseModification, bList, definition) : infoModification;\n return merge$1(definition, modification);\n };\n var getEvents = function (info, bList, bData) {\n var baseEvents = { 'alloy.base.behaviour': toEvents(info) };\n return combine$1(bData, info.eventOrder, bList, baseEvents).getOrDie();\n };\n var build = function (spec) {\n var getMe = function () {\n return me;\n };\n var systemApi = Cell(singleton);\n var info = getOrDie(toInfo(spec));\n var bBlob = generate$3(spec);\n var bList = getBehaviours(bBlob);\n var bData = getData(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 var connect = function (newApi) {\n systemApi.set(newApi);\n };\n var disconnect = function () {\n systemApi.set(NoContextApi(getMe));\n };\n var syncComponents = function () {\n var children$1 = children(item);\n var subs = bind(children$1, function (child) {\n return systemApi.get().getByDom(child).fold(function () {\n return [];\n }, function (c) {\n return [c];\n });\n });\n subcomponents.set(subs);\n };\n var config = function (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 var hasConfigured = function (behaviour) {\n return isFunction(bData[behaviour.name()]);\n };\n var getApis = function () {\n return info.apis;\n };\n var readState = function (behaviourName) {\n return bData[behaviourName]().map(function (b) {\n return b.state.readState();\n }).getOr('not enabled');\n };\n var me = {\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 (spec) {\n var components = get$1(spec, 'components').getOr([]);\n return map(components, build$1);\n };\n var buildFromSpec = function (userSpec) {\n var _a = make(userSpec), specEvents = _a.events, spec = __rest(_a, ['events']);\n var components = buildSubcomponents(spec);\n var completeSpec = __assign(__assign({}, spec), {\n events: __assign(__assign({}, DefaultEvents), specEvents),\n components: components\n });\n return Result.value(build(completeSpec));\n };\n var text = function (textContent) {\n var element = SugarElement.fromText(textContent);\n return external({ element: element });\n };\n var external = function (spec) {\n var extSpec = asRawOrDie('external.component', objOfOnly([\n strict$1('element'),\n option('uid')\n ]), spec);\n var systemApi = Cell(NoContextApi());\n var connect = function (newApi) {\n systemApi.set(newApi);\n };\n var disconnect = function () {\n systemApi.set(NoContextApi(function () {\n return me;\n }));\n };\n extSpec.uid.each(function (uid) {\n writeOnly(extSpec.element, uid);\n });\n var me = {\n getSystem: systemApi.get,\n config: Optional.none,\n hasConfigured: never,\n connect: connect,\n disconnect: disconnect,\n getApis: function () {\n return {};\n },\n element: extSpec.element,\n spec: spec,\n readState: constant('No state'),\n syncComponents: noop,\n components: constant([]),\n events: {}\n };\n return premade(me);\n };\n var uids = generate$2;\n var build$1 = function (spec) {\n return getPremade(spec).fold(function () {\n var userSpecWithUid = spec.hasOwnProperty('uid') ? spec : __assign({ uid: uids('') }, spec);\n return buildFromSpec(userSpecWithUid).getOrDie();\n }, function (prebuilt) {\n return prebuilt;\n });\n };\n var premade$1 = premade;\n\n var Dimension = function (name, getOffset) {\n var set = function (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 var dom = element.dom;\n if (isSupported$1(dom)) {\n dom.style[name] = h + 'px';\n }\n };\n var get = function (element) {\n var r = getOffset(element);\n if (r <= 0 || r === null) {\n var css = get$5(element, name);\n return parseFloat(css) || 0;\n }\n return r;\n };\n var getOuter = get;\n var aggregate = function (element, properties) {\n return foldl(properties, function (acc, property) {\n var val = get$5(element, property);\n var value = val === undefined ? 0 : parseInt(val, 10);\n return isNaN(value) ? acc : acc + value;\n }, 0);\n };\n var max = function (element, value, properties) {\n var cumulativeInclusions = aggregate(element, properties);\n var absoluteMax = value > cumulativeInclusions ? value - cumulativeInclusions : 0;\n return absoluteMax;\n };\n return {\n set: set,\n get: get,\n getOuter: getOuter,\n aggregate: aggregate,\n max: max\n };\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 var get$7 = function (element) {\n return api.get(element);\n };\n var getOuter$1 = function (element) {\n return api.getOuter(element);\n };\n var setMax = function (element, value) {\n var inclusions = [\n 'margin-top',\n 'border-top-width',\n 'padding-top',\n 'padding-bottom',\n 'border-bottom-width',\n 'margin-bottom'\n ];\n var absMax = api.max(element, value, inclusions);\n set$2(element, 'max-height', absMax + 'px');\n };\n\n var r = function (left, top) {\n var translate = function (x, y) {\n return r(left + x, top + y);\n };\n return {\n left: left,\n top: top,\n translate: translate\n };\n };\n var SugarPosition = r;\n\n var boxPosition = function (dom) {\n var box = dom.getBoundingClientRect();\n return SugarPosition(box.left, box.top);\n };\n var firstDefinedOrZero = function (a, b) {\n if (a !== undefined) {\n return a;\n } else {\n return b !== undefined ? b : 0;\n }\n };\n var absolute = function (element) {\n var doc = element.dom.ownerDocument;\n var body = doc.body;\n var win = doc.defaultView;\n var html = doc.documentElement;\n if (body === element.dom) {\n return SugarPosition(body.offsetLeft, body.offsetTop);\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 var viewport = function (element) {\n var dom = element.dom;\n var doc = dom.ownerDocument;\n var body = doc.body;\n if (body === dom) {\n return SugarPosition(body.offsetLeft, body.offsetTop);\n }\n if (!inBody(element)) {\n return SugarPosition(0, 0);\n }\n return boxPosition(dom);\n };\n\n var api$1 = Dimension('width', function (element) {\n return element.dom.offsetWidth;\n });\n var set$4 = function (element, h) {\n return api$1.set(element, h);\n };\n var get$8 = function (element) {\n return api$1.get(element);\n };\n var getOuter$2 = function (element) {\n return api$1.getOuter(element);\n };\n var setMax$1 = function (element, value) {\n var inclusions = [\n 'margin-left',\n 'border-left-width',\n 'padding-left',\n 'padding-right',\n 'border-right-width',\n 'margin-right'\n ];\n var absMax = api$1.max(element, value, inclusions);\n set$2(element, 'max-width', absMax + 'px');\n };\n\n var mkEvent = function (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 var fromRawEvent = function (rawEvent) {\n var target = SugarElement.fromDom(getOriginalEventTarget(rawEvent).getOr(rawEvent.target));\n var stop = function () {\n return rawEvent.stopPropagation();\n };\n var prevent = function () {\n return rawEvent.preventDefault();\n };\n var kill = compose(prevent, stop);\n return mkEvent(target, rawEvent.clientX, rawEvent.clientY, stop, prevent, kill, rawEvent);\n };\n var handle = function (filter, handler) {\n return function (rawEvent) {\n if (filter(rawEvent)) {\n handler(fromRawEvent(rawEvent));\n }\n };\n };\n var binder = function (element, event, filter, handler, useCapture) {\n var wrapped = handle(filter, handler);\n element.dom.addEventListener(event, wrapped, useCapture);\n return { unbind: curry(unbind, element, event, wrapped, useCapture) };\n };\n var bind$2 = function (element, event, filter, handler) {\n return binder(element, event, filter, handler, false);\n };\n var capture = function (element, event, filter, handler) {\n return binder(element, event, filter, handler, true);\n };\n var unbind = function (element, event, handler, useCapture) {\n element.dom.removeEventListener(event, handler, useCapture);\n };\n\n var get$9 = function (_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 var to = function (x, y, _DOC) {\n var doc = _DOC !== undefined ? _DOC.dom : document;\n var win = doc.defaultView;\n if (win) {\n win.scrollTo(x, y);\n }\n };\n\n var get$a = function (_win) {\n var win = _win === undefined ? window : _win;\n return Optional.from(win['visualViewport']);\n };\n var bounds = function (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 var getBounds = function (_win) {\n var win = _win === undefined ? window : _win;\n var doc = win.document;\n var scroll = get$9(SugarElement.fromDom(doc));\n return get$a(win).fold(function () {\n var html = win.document.documentElement;\n var width = html.clientWidth;\n var height = html.clientHeight;\n return bounds(scroll.left, scroll.top, width, height);\n }, function (visualViewport) {\n return bounds(Math.max(visualViewport.pageLeft, scroll.left), Math.max(visualViewport.pageTop, scroll.top), visualViewport.width, visualViewport.height);\n });\n };\n\n var walkUp = function (navigation, doc) {\n var frame = navigation.view(doc);\n return frame.fold(constant([]), function (f) {\n var parent = navigation.owner(f);\n var rest = walkUp(navigation, parent);\n return [f].concat(rest);\n });\n };\n var pathTo = function (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 (doc) {\n var _a;\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 var owner$1 = function (element) {\n return owner(element);\n };\n\n var Navigation = /*#__PURE__*/Object.freeze({\n __proto__: null,\n view: view,\n owner: owner$1\n });\n\n var find$3 = function (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, element), function (frames) {\n var offset = viewport(element);\n var r = foldr(frames, function (b, a) {\n var loc = viewport(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 (point, width, height) {\n return {\n point: point,\n width: width,\n height: height\n };\n };\n var rect = function (x, y, width, height) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n };\n var bounds$1 = function (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 var box = function (element) {\n var xy = absolute(element);\n var w = getOuter$2(element);\n var h = getOuter$1(element);\n return bounds$1(xy.left, xy.top, w, h);\n };\n var absolute$1 = function (element) {\n var position = find$3(element);\n var width = getOuter$2(element);\n var height = getOuter$1(element);\n return bounds$1(position.left, position.top, width, height);\n };\n var win = function () {\n return getBounds(window);\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$1 = function (scope, predicate, isRoot) {\n var element = scope.dom;\n var stop = isFunction(isRoot) ? isRoot : never;\n while (element.parentNode) {\n element = element.parentNode;\n var el = SugarElement.fromDom(element);\n if (predicate(el)) {\n return Optional.some(el);\n } else if (stop(el)) {\n break;\n }\n }\n return Optional.none();\n };\n var closest$1 = function (scope, predicate, isRoot) {\n var is = function (s, test) {\n return test(s);\n };\n return ClosestOrAncestor(is, ancestor$1, scope, predicate, isRoot);\n };\n var descendant = function (scope, predicate) {\n var descend = function (node) {\n for (var i = 0; i < node.childNodes.length; i++) {\n var child_1 = SugarElement.fromDom(node.childNodes[i]);\n if (predicate(child_1)) {\n return Optional.some(child_1);\n }\n var res = descend(node.childNodes[i]);\n if (res.isSome()) {\n return res;\n }\n }\n return Optional.none();\n };\n return descend(scope.dom);\n };\n\n var closest$2 = function (scope, predicate, isRoot) {\n return closest$1(scope, predicate, isRoot).isSome();\n };\n\n var ancestor$2 = function (scope, selector, isRoot) {\n return ancestor$1(scope, function (e) {\n return is(e, selector);\n }, isRoot);\n };\n var descendant$1 = function (scope, selector) {\n return one(selector, scope);\n };\n var closest$3 = function (scope, selector, isRoot) {\n var is$1 = function (element, selector) {\n return is(element, selector);\n };\n return ClosestOrAncestor(is$1, ancestor$2, scope, selector, isRoot);\n };\n\n var find$4 = function (queryElem) {\n var dependent = closest$1(queryElem, function (elem) {\n if (!isElement(elem)) {\n return false;\n }\n var id = get$3(elem, 'id');\n return id !== undefined && id.indexOf('aria-owns') > -1;\n });\n return dependent.bind(function (dep) {\n var id = get$3(dep, 'id');\n var dos = getRootNode(dep);\n return descendant$1(dos, '[aria-owns=\"' + id + '\"]');\n });\n };\n var manager = function () {\n var ariaId = generate$1('aria-owns');\n var link = function (elem) {\n set$1(elem, 'aria-owns', ariaId);\n };\n var unlink = function (elem) {\n remove$1(elem, 'aria-owns');\n };\n return {\n id: ariaId,\n link: link,\n unlink: unlink\n };\n };\n\n var isAriaPartOf = function (component, queryElem) {\n return find$4(queryElem).exists(function (owner) {\n return isPartOf(component, owner);\n });\n };\n var isPartOf = function (component, queryElem) {\n return closest$2(queryElem, function (el) {\n return eq$1(el, component.element);\n }, never) || isAriaPartOf(component, queryElem);\n };\n\n var unknown$3 = 'unknown';\n var EventConfiguration;\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 var eventConfig = Cell({});\n var makeEventLogger = function (eventName, initialTarget) {\n var sequence = [];\n var startTime = new Date().getTime();\n return {\n logEventCut: function (_name, target, purpose) {\n sequence.push({\n outcome: 'cut',\n target: target,\n purpose: purpose\n });\n },\n logEventStopped: function (_name, target, purpose) {\n sequence.push({\n outcome: 'stopped',\n target: target,\n purpose: purpose\n });\n },\n logNoParent: function (_name, target, purpose) {\n sequence.push({\n outcome: 'no-parent',\n target: target,\n purpose: purpose\n });\n },\n logEventNoHandlers: function (_name, target) {\n sequence.push({\n outcome: 'no-handlers-left',\n target: target\n });\n },\n logEventResponse: function (_name, target, purpose) {\n sequence.push({\n outcome: 'response',\n purpose: purpose,\n target: target\n });\n },\n write: function () {\n var finishTime = new Date().getTime();\n if (contains([\n 'mousemove',\n 'mouseover',\n 'mouseout',\n systemInit()\n ], eventName)) {\n return;\n }\n console.log(eventName, {\n event: eventName,\n time: finishTime - startTime,\n target: initialTarget.dom,\n sequence: map(sequence, function (s) {\n if (!contains([\n 'cut',\n 'stopped',\n 'response'\n ], 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 var processEvent = function (eventName, initialTarget, f) {\n var status = get$1(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 switch (status) {\n case EventConfiguration.NORMAL:\n return f(noLogger());\n case EventConfiguration.LOGGING: {\n var logger = makeEventLogger(eventName, initialTarget);\n var output = f(logger);\n logger.write();\n return output;\n }\n case EventConfiguration.STOP:\n return true;\n }\n };\n var path = [\n 'alloy/data/Fields',\n 'alloy/debugging/Debugging'\n ];\n var getTrace = function () {\n var err = new Error();\n if (err.stack !== undefined) {\n var lines = err.stack.split('\\n');\n return find(lines, function (line) {\n return line.indexOf('alloy') > 0 && !exists(path, function (p) {\n return line.indexOf(p) > -1;\n });\n }).getOr(unknown$3);\n } else {\n return unknown$3;\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 var monitorEvent = function (eventName, initialTarget, f) {\n return processEvent(eventName, initialTarget, f);\n };\n var noLogger = constant(ignoreEvent);\n\n var menuFields = constant([\n strict$1('menu'),\n strict$1('selectedMenu')\n ]);\n var itemFields = constant([\n strict$1('item'),\n strict$1('selectedItem')\n ]);\n var schema = constant(objOf(itemFields().concat(menuFields())));\n var itemSchema = constant(objOf(itemFields()));\n\n var _initSize = strictObjOf('initSize', [\n strict$1('numColumns'),\n strict$1('numRows')\n ]);\n var itemMarkers = function () {\n return strictOf('markers', itemSchema());\n };\n var tieredMenuMarkers = function () {\n return strictObjOf('markers', [strict$1('backgroundMenu')].concat(menuFields()).concat(itemFields()));\n };\n var markers = function (required) {\n return strictObjOf('markers', map(required, strict$1));\n };\n var onPresenceHandler = function (label, fieldName, presence) {\n var trace = getTrace();\n return field(fieldName, fieldName, presence, valueOf(function (f) {\n return Result.value(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return f.apply(undefined, args);\n });\n }));\n };\n var onHandler = function (fieldName) {\n return onPresenceHandler('onHandler', fieldName, defaulted(noop));\n };\n var onKeyboardHandler = function (fieldName) {\n return onPresenceHandler('onKeyboardHandler', fieldName, defaulted(Optional.none));\n };\n var onStrictHandler = function (fieldName) {\n return onPresenceHandler('onHandler', fieldName, strict());\n };\n var onStrictKeyboardHandler = function (fieldName) {\n return onPresenceHandler('onKeyboardHandler', fieldName, strict());\n };\n var output = function (name, value) {\n return state$1(name, constant(value));\n };\n var snapshot = function (name) {\n return state$1(name, identity);\n };\n var initSize = constant(_initSize);\n\n var nu$7 = function (x, y, bubble, direction, boundsRestriction, label) {\n return {\n x: x,\n y: y,\n bubble: bubble,\n direction: direction,\n boundsRestriction: boundsRestriction,\n label: label\n };\n };\n\n var adt$2 = Adt.generate([\n { southeast: [] },\n { southwest: [] },\n { northeast: [] },\n { northwest: [] },\n { south: [] },\n { north: [] },\n { east: [] },\n { west: [] }\n ]);\n var cata = function (subject, southeast, southwest, northeast, northwest, south, north, east, west) {\n return subject.fold(southeast, southwest, northeast, northwest, south, north, east, west);\n };\n var cataVertical = function (subject, south, middle, north) {\n return subject.fold(south, south, north, north, south, north, middle, middle);\n };\n var cataHorizontal = function (subject, east, middle, west) {\n return subject.fold(east, west, east, west, middle, middle, east, west);\n };\n var southeast = adt$2.southeast;\n var southwest = adt$2.southwest;\n var northeast = adt$2.northeast;\n var northwest = adt$2.northwest;\n var south = adt$2.south;\n var north = adt$2.north;\n var east = adt$2.east;\n var west = adt$2.west;\n\n var getRestriction = function (anchor, restriction) {\n switch (restriction) {\n case 1:\n return anchor.x;\n case 0:\n return anchor.x + anchor.width;\n case 2:\n return anchor.y;\n case 3:\n return anchor.y + anchor.height;\n }\n };\n var boundsRestriction = function (anchor, restrictions) {\n return mapToObject([\n 'left',\n 'right',\n 'top',\n 'bottom'\n ], function (dir) {\n return get$1(restrictions, dir).map(function (restriction) {\n return getRestriction(anchor, restriction);\n });\n });\n };\n var adjustBounds = function (bounds, boundsRestrictions, bubbleOffsets) {\n var applyRestriction = function (dir, current) {\n var bubbleOffset = dir === 'top' || dir === 'bottom' ? bubbleOffsets.top : bubbleOffsets.left;\n return get$1(boundsRestrictions, dir).bind(identity).bind(function (restriction) {\n if (dir === 'left' || dir === 'top') {\n return restriction >= current ? Optional.some(restriction) : Optional.none();\n } else {\n return restriction <= current ? Optional.some(restriction) : Optional.none();\n }\n }).map(function (restriction) {\n return restriction + bubbleOffset;\n }).getOr(current);\n };\n var adjustedLeft = applyRestriction('left', bounds.x);\n var adjustedTop = applyRestriction('top', bounds.y);\n var adjustedRight = applyRestriction('right', bounds.right);\n var adjustedBottom = applyRestriction('bottom', bounds.bottom);\n return bounds$1(adjustedLeft, adjustedTop, adjustedRight - adjustedLeft, adjustedBottom - adjustedTop);\n };\n\n var eastX = function (anchor) {\n return anchor.x;\n };\n var middleX = function (anchor, element) {\n return anchor.x + anchor.width / 2 - element.width / 2;\n };\n var westX = function (anchor, element) {\n return anchor.x + anchor.width - element.width;\n };\n var northY = function (anchor, element) {\n return anchor.y - element.height;\n };\n var southY = function (anchor) {\n return anchor.y + anchor.height;\n };\n var centreY = function (anchor, element) {\n return anchor.y + anchor.height / 2 - element.height / 2;\n };\n var eastEdgeX = function (anchor) {\n return anchor.x + anchor.width;\n };\n var westEdgeX = function (anchor, element) {\n return anchor.x - element.width;\n };\n var southeast$1 = function (anchor, element, bubbles) {\n return nu$7(eastX(anchor), southY(anchor), bubbles.southeast(), southeast(), boundsRestriction(anchor, {\n left: 1,\n top: 3\n }), 'layout-se');\n };\n var southwest$1 = function (anchor, element, bubbles) {\n return nu$7(westX(anchor, element), southY(anchor), bubbles.southwest(), southwest(), boundsRestriction(anchor, {\n right: 0,\n top: 3\n }), 'layout-sw');\n };\n var northeast$1 = function (anchor, element, bubbles) {\n return nu$7(eastX(anchor), northY(anchor, element), bubbles.northeast(), northeast(), boundsRestriction(anchor, {\n left: 1,\n bottom: 2\n }), 'layout-ne');\n };\n var northwest$1 = function (anchor, element, bubbles) {\n return nu$7(westX(anchor, element), northY(anchor, element), bubbles.northwest(), northwest(), boundsRestriction(anchor, {\n right: 0,\n bottom: 2\n }), 'layout-nw');\n };\n var north$1 = function (anchor, element, bubbles) {\n return nu$7(middleX(anchor, element), northY(anchor, element), bubbles.north(), north(), boundsRestriction(anchor, { bottom: 2 }), 'layout-n');\n };\n var south$1 = function (anchor, element, bubbles) {\n return nu$7(middleX(anchor, element), southY(anchor), bubbles.south(), south(), boundsRestriction(anchor, { top: 3 }), 'layout-s');\n };\n var east$1 = function (anchor, element, bubbles) {\n return nu$7(eastEdgeX(anchor), centreY(anchor, element), bubbles.east(), east(), boundsRestriction(anchor, { left: 0 }), 'layout-e');\n };\n var west$1 = function (anchor, element, bubbles) {\n return nu$7(westEdgeX(anchor, element), centreY(anchor, element), bubbles.west(), west(), boundsRestriction(anchor, { right: 1 }), 'layout-w');\n };\n var all$2 = function () {\n return [\n southeast$1,\n southwest$1,\n northeast$1,\n northwest$1,\n south$1,\n north$1,\n east$1,\n west$1\n ];\n };\n var allRtl = function () {\n return [\n southwest$1,\n southeast$1,\n northwest$1,\n northeast$1,\n south$1,\n north$1,\n east$1,\n west$1\n ];\n };\n var aboveOrBelow = function () {\n return [\n northeast$1,\n northwest$1,\n southeast$1,\n southwest$1,\n north$1,\n south$1\n ];\n };\n var aboveOrBelowRtl = function () {\n return [\n northwest$1,\n northeast$1,\n southwest$1,\n southeast$1,\n north$1,\n south$1\n ];\n };\n var belowOrAbove = function () {\n return [\n southeast$1,\n southwest$1,\n northeast$1,\n northwest$1,\n south$1,\n north$1\n ];\n };\n var belowOrAboveRtl = function () {\n return [\n southwest$1,\n southeast$1,\n northwest$1,\n northeast$1,\n south$1,\n north$1\n ];\n };\n\n var chooseChannels = function (channels, message) {\n return message.universal ? channels : filter(channels, function (ch) {\n return contains(message.channels, ch);\n });\n };\n var events$1 = function (receiveConfig) {\n return derive([run(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(targetChannels, function (ch) {\n var channelInfo = channelMap[ch];\n var channelSchema = channelInfo.schema;\n var data = asRawOrDie('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$1\n });\n\n var ReceivingSchema = [strictOf('channels', setOf$1(Result.value, objOfOnly([\n onStrictHandler('onReceive'),\n defaulted$1('schema', anyValue$1())\n ])))];\n\n var executeEvent = function (bConfig, bState, executor) {\n return runOnExecute(function (component) {\n executor(component, bConfig, bState);\n });\n };\n var loadEvent = function (bConfig, bState, f) {\n return runOnInit(function (component, _simulatedEvent) {\n f(component, bConfig, bState);\n });\n };\n var create = function (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 var createModes = function (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 var wrapApi = function (bName, apiFunction, apiName) {\n var f = function (component) {\n var rest = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n var args = [component].concat(rest);\n return component.config({ name: constant(bName) }).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, [\n component,\n info.config,\n info.state\n ].concat(rest));\n });\n };\n return markAsBehaviourApi(f, apiName, apiFunction);\n };\n var revokeBehaviour = function (name) {\n return {\n key: name,\n value: undefined\n };\n };\n var doCreate = function (configSchema, schemaSchema, name, active, apis, extra, state) {\n var getConfig = function (info) {\n return hasNonNullableKey(info, name) ? info[name]() : Optional.none();\n };\n var wrappedApis = map$2(apis, function (apiF, apiName) {\n return wrapApi(name, apiF, apiName);\n });\n var wrappedExtra = map$2(extra, function (extraF, extraName) {\n return markAsExtraApi(extraF, extraName);\n });\n var me = __assign(__assign(__assign({}, wrappedExtra), wrappedApis), {\n revoke: curry(revokeBehaviour, name),\n config: function (spec) {\n var prepared = asRawOrDie(name + '-config', configSchema, spec);\n return {\n key: name,\n value: {\n config: prepared,\n me: me,\n configAsRaw: cached(function () {\n return asRawOrDie(name + '-config', configSchema, spec);\n }),\n initialConfig: spec,\n state: state\n }\n };\n },\n schema: constant(schemaSchema),\n exhibit: function (info, base) {\n return getConfig(info).bind(function (behaviourInfo) {\n return get$1(active, 'exhibit').map(function (exhibitor) {\n return exhibitor(base, behaviourInfo.config, behaviourInfo.state);\n });\n }).getOr(nu$6({}));\n },\n name: constant(name),\n handlers: function (info) {\n return getConfig(info).map(function (behaviourInfo) {\n var getEvents = get$1(active, 'events').getOr(function () {\n return {};\n });\n return getEvents(behaviourInfo.config, behaviourInfo.state);\n }).getOr({});\n }\n });\n return me;\n };\n\n var derive$1 = function (capabilities) {\n return wrapAll$1(capabilities);\n };\n var simpleSchema = objOfOnly([\n strict$1('fields'),\n strict$1('name'),\n defaulted$1('active', {}),\n defaulted$1('apis', {}),\n defaulted$1('state', NoState),\n defaulted$1('extra', {})\n ]);\n var create$1 = function (data) {\n var value = asRawOrDie('Creating behaviour: ' + data.name, simpleSchema, data);\n return create(value.fields, value.name, value.active, value.apis, value.extra, value.state);\n };\n var modeSchema = objOfOnly([\n strict$1('branchKey'),\n strict$1('branches'),\n strict$1('name'),\n defaulted$1('active', {}),\n defaulted$1('apis', {}),\n defaulted$1('state', NoState),\n defaulted$1('extra', {})\n ]);\n var createModes$1 = function (data) {\n var value = asRawOrDie('Creating behaviour: ' + data.name, modeSchema, data);\n return createModes(choose$1(value.branchKey, value.branches), value.name, value.active, value.apis, value.extra, value.state);\n };\n var revoke = constant(undefined);\n\n var Receiving = create$1({\n fields: ReceivingSchema,\n name: 'receiving',\n active: ActiveReceiving\n });\n\n var exhibit = function (base, posConfig) {\n return nu$6({\n classes: [],\n styles: posConfig.useFixed() ? {} : { position: 'relative' }\n });\n };\n\n var ActivePosition = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit\n });\n\n var getDocument = function () {\n return SugarElement.fromDom(document);\n };\n\n var focus$1 = function (element) {\n return element.dom.focus();\n };\n var blur = function (element) {\n return element.dom.blur();\n };\n var hasFocus = function (element) {\n var root = getRootNode(element).dom;\n return element.dom === root.activeElement;\n };\n var active = function (root) {\n if (root === void 0) {\n root = getDocument();\n }\n return Optional.from(root.dom.activeElement).map(SugarElement.fromDom);\n };\n var search = function (element) {\n return active(getRootNode(element)).filter(function (e) {\n return element.dom.contains(e.dom);\n });\n };\n\n var preserve = function (f, container) {\n var dos = getRootNode(container);\n var refocus = active(dos).bind(function (focused) {\n var hasFocus = function (elem) {\n return eq$1(focused, elem);\n };\n return hasFocus(container) ? Optional.some(container) : descendant(container, hasFocus);\n });\n var result = f(container);\n refocus.each(function (oldFocus) {\n active(dos).filter(function (newFocus) {\n return eq$1(newFocus, oldFocus);\n }).fold(function () {\n focus$1(oldFocus);\n }, noop);\n });\n return result;\n };\n\n var NuPositionCss = function (position, left, top, right, bottom) {\n return {\n position: position,\n left: left,\n top: top,\n right: right,\n bottom: bottom\n };\n };\n var applyPositionCss = function (element, position) {\n var addPx = function (num) {\n return num + 'px';\n };\n setOptions(element, {\n position: Optional.some(position.position),\n left: position.left.map(addPx),\n top: position.top.map(addPx),\n right: position.right.map(addPx),\n bottom: position.bottom.map(addPx)\n });\n };\n\n var adt$3 = Adt.generate([\n { none: [] },\n {\n relative: [\n 'x',\n 'y',\n 'width',\n 'height'\n ]\n },\n {\n fixed: [\n 'x',\n 'y',\n 'width',\n 'height'\n ]\n }\n ]);\n var positionWithDirection = function (posName, decision, x, y, width, height) {\n var decisionX = decision.x - x;\n var decisionY = decision.y - y;\n var decisionWidth = decision.width;\n var decisionHeight = decision.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(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 var reposition = function (origin, decision) {\n return origin.fold(function () {\n return NuPositionCss('absolute', Optional.some(decision.x), Optional.some(decision.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 var toBox = function (origin, element) {\n var rel = curry(find$3, element);\n var position = origin.fold(rel, rel, function () {\n var scroll = get$9();\n return find$3(element).translate(-scroll.left, -scroll.top);\n });\n var width = getOuter$2(element);\n var height = getOuter$1(element);\n return bounds$1(position.left, position.top, width, height);\n };\n var viewport$1 = function (origin, getBounds) {\n return getBounds.fold(function () {\n return origin.fold(win, win, bounds$1);\n }, function (b) {\n return origin.fold(b, b, function () {\n var bounds = b();\n var pos = translate(origin, bounds.x, bounds.y);\n return bounds$1(pos.left, pos.top, bounds.width, bounds.height);\n });\n });\n };\n var translate = function (origin, x, y) {\n var pos = SugarPosition(x, y);\n var removeScroll = function () {\n var outerScroll = get$9();\n return pos.translate(-outerScroll.left, -outerScroll.top);\n };\n return origin.fold(constant(pos), constant(pos), removeScroll);\n };\n var cata$1 = function (subject, onNone, onRelative, onFixed) {\n return subject.fold(onNone, onRelative, onFixed);\n };\n var none$1 = adt$3.none;\n var relative = adt$3.relative;\n var fixed = adt$3.fixed;\n\n var anchor = function (anchorBox, origin) {\n return {\n anchorBox: anchorBox,\n origin: origin\n };\n };\n var box$1 = function (anchorBox, origin) {\n return anchor(anchorBox, origin);\n };\n\n var cycleBy = function (value, delta, min, max) {\n var r = value + delta;\n if (r > max) {\n return min;\n } else if (r < min) {\n return max;\n } else {\n return r;\n }\n };\n var clamp = function (value, min, max) {\n return Math.min(Math.max(value, min), max);\n };\n\n var adt$4 = Adt.generate([\n { fit: ['reposition'] },\n {\n nofit: [\n 'reposition',\n 'deltaW',\n 'deltaH'\n ]\n }\n ]);\n var calcReposition = function (newX, newY, width, height, bounds) {\n var boundsX = bounds.x;\n var boundsY = bounds.y;\n var boundsWidth = bounds.width;\n var boundsHeight = bounds.height;\n var xInBounds = newX >= boundsX;\n var yInBounds = newY >= boundsY;\n var originInBounds = xInBounds && yInBounds;\n var xFit = newX + width <= boundsX + boundsWidth;\n var yFit = newY + height <= boundsY + boundsHeight;\n var sizeInBounds = xFit && yFit;\n var deltaW = Math.abs(Math.min(width, xInBounds ? boundsX + boundsWidth - newX : boundsX - (newX + width)));\n var deltaH = Math.abs(Math.min(height, yInBounds ? boundsY + boundsHeight - newY : boundsY - (newY + height)));\n var maxX = Math.max(bounds.x, bounds.right - width);\n var maxY = Math.max(bounds.y, bounds.bottom - height);\n var limitX = clamp(newX, bounds.x, maxX);\n var limitY = clamp(newY, bounds.y, maxY);\n return {\n originInBounds: originInBounds,\n sizeInBounds: sizeInBounds,\n limitX: limitX,\n limitY: limitY,\n deltaW: deltaW,\n deltaH: deltaH\n };\n };\n var attempt = function (candidate, width, height, bounds) {\n var candidateX = candidate.x;\n var candidateY = candidate.y;\n var bubbleOffsets = candidate.bubble.offset;\n var bubbleLeft = bubbleOffsets.left;\n var bubbleTop = bubbleOffsets.top;\n var adjustedBounds = adjustBounds(bounds, candidate.boundsRestriction, bubbleOffsets);\n var boundsY = adjustedBounds.y;\n var boundsBottom = adjustedBounds.bottom;\n var boundsX = adjustedBounds.x;\n var boundsRight = adjustedBounds.right;\n var newX = candidateX + bubbleLeft;\n var newY = candidateY + bubbleTop;\n var _a = calcReposition(newX, newY, width, height, adjustedBounds), originInBounds = _a.originInBounds, sizeInBounds = _a.sizeInBounds, limitX = _a.limitX, limitY = _a.limitY, deltaW = _a.deltaW, deltaH = _a.deltaH;\n var upAvailable = constant(limitY + deltaH - boundsY);\n var downAvailable = constant(boundsBottom - limitY);\n var maxHeight = cataVertical(candidate.direction, downAvailable, downAvailable, upAvailable);\n var westAvailable = constant(limitX + deltaW - boundsX);\n var eastAvailable = constant(boundsRight - limitX);\n var maxWidth = cataHorizontal(candidate.direction, eastAvailable, eastAvailable, westAvailable);\n var reposition = {\n x: limitX,\n y: limitY,\n width: deltaW,\n height: deltaH,\n maxHeight: maxHeight,\n maxWidth: maxWidth,\n direction: candidate.direction,\n classes: {\n on: candidate.bubble.classesOn,\n off: candidate.bubble.classesOff\n },\n label: candidate.label,\n candidateYforTest: newY\n };\n return originInBounds && sizeInBounds ? adt$4.fit(reposition) : adt$4.nofit(reposition, deltaW, deltaH);\n };\n var attempts = function (candidates, anchorBox, elementBox, bubbles, bounds) {\n var panelWidth = elementBox.width;\n var panelHeight = elementBox.height;\n var attemptBestFit = function (layout, reposition, deltaW, deltaH) {\n var next = layout(anchorBox, elementBox, bubbles);\n var attemptLayout = attempt(next, panelWidth, panelHeight, bounds);\n return attemptLayout.fold(adt$4.fit, function (newReposition, newDeltaW, newDeltaH) {\n var improved = newDeltaH > deltaH || newDeltaW > deltaW;\n return improved ? adt$4.nofit(newReposition, newDeltaW, newDeltaH) : adt$4.nofit(reposition, deltaW, deltaH);\n });\n };\n var abc = foldl(candidates, function (b, a) {\n var bestNext = curry(attemptBestFit, a);\n return b.fold(adt$4.fit, bestNext);\n }, adt$4.nofit({\n x: anchorBox.x,\n y: anchorBox.y,\n width: elementBox.width,\n height: elementBox.height,\n maxHeight: elementBox.height,\n maxWidth: elementBox.width,\n direction: southeast(),\n classes: {\n on: [],\n off: []\n },\n label: 'none',\n candidateYforTest: anchorBox.y\n }, -1, -1));\n return abc.fold(identity, identity);\n };\n\n var elementSize = function (p) {\n return {\n width: getOuter$2(p),\n height: getOuter$1(p)\n };\n };\n var layout = function (anchorBox, element, bubbles, options) {\n remove$6(element, 'max-height');\n remove$6(element, 'max-width');\n var elementBox = elementSize(element);\n return attempts(options.preference, anchorBox, elementBox, bubbles, options.bounds);\n };\n var setClasses = function (element, decision) {\n var classInfo = decision.classes;\n remove$5(element, classInfo.off);\n add$3(element, classInfo.on);\n };\n var setHeight = function (element, decision, options) {\n var maxHeightFunction = options.maxHeightFunction;\n maxHeightFunction(element, decision.maxHeight);\n };\n var setWidth = function (element, decision, options) {\n var maxWidthFunction = options.maxWidthFunction;\n maxWidthFunction(element, decision.maxWidth);\n };\n var position = function (element, decision, options) {\n applyPositionCss(element, reposition(options.origin, decision));\n };\n\n var setMaxHeight = function (element, maxHeight) {\n setMax(element, Math.floor(maxHeight));\n };\n var anchored = constant(function (element, available) {\n setMaxHeight(element, available);\n setAll$1(element, {\n 'overflow-x': 'hidden',\n 'overflow-y': 'auto'\n });\n });\n var expandable = constant(function (element, available) {\n setMaxHeight(element, available);\n });\n\n var defaultOr = function (options, key, dephault) {\n return options[key] === undefined ? dephault : options[key];\n };\n var simple = function (anchor, element, bubble, layouts, getBounds, overrideOptions) {\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$1(origin, getBounds),\n origin: origin,\n preference: layouts,\n maxHeightFunction: maxHeightFunction,\n maxWidthFunction: maxWidthFunction\n };\n go(anchorBox, element, bubble, options);\n };\n var go = function (anchorBox, element, bubble, options) {\n var decision = layout(anchorBox, element, bubble, options);\n position(element, decision, options);\n setClasses(element, decision);\n setHeight(element, decision, options);\n setWidth(element, decision, options);\n };\n\n var allAlignments = [\n 'valignCentre',\n 'alignLeft',\n 'alignRight',\n 'alignCentre',\n 'top',\n 'bottom',\n 'left',\n 'right'\n ];\n var nu$8 = function (width, yoffset, classes) {\n var getClasses = function (prop) {\n return get$1(classes, prop).getOr([]);\n };\n var make = function (xDelta, yDelta, alignmentsOn) {\n var alignmentsOff = difference(allAlignments, alignmentsOn);\n return {\n offset: SugarPosition(xDelta, yDelta),\n classesOn: bind(alignmentsOn, getClasses),\n classesOff: bind(alignmentsOff, getClasses)\n };\n };\n return {\n southeast: function () {\n return make(-width, yoffset, [\n 'top',\n 'alignLeft'\n ]);\n },\n southwest: function () {\n return make(width, yoffset, [\n 'top',\n 'alignRight'\n ]);\n },\n south: function () {\n return make(-width / 2, yoffset, [\n 'top',\n 'alignCentre'\n ]);\n },\n northeast: function () {\n return make(-width, -yoffset, [\n 'bottom',\n 'alignLeft'\n ]);\n },\n northwest: function () {\n return make(width, -yoffset, [\n 'bottom',\n 'alignRight'\n ]);\n },\n north: function () {\n return make(-width / 2, -yoffset, [\n 'bottom',\n 'alignCentre'\n ]);\n },\n east: function () {\n return make(width, -yoffset / 2, [\n 'valignCentre',\n 'left'\n ]);\n },\n west: function () {\n return make(-width, -yoffset / 2, [\n 'valignCentre',\n 'right'\n ]);\n },\n innerNorthwest: function () {\n return make(-width, yoffset, [\n 'top',\n 'alignRight'\n ]);\n },\n innerNortheast: function () {\n return make(width, yoffset, [\n 'top',\n 'alignLeft'\n ]);\n },\n innerNorth: function () {\n return make(-width / 2, yoffset, [\n 'top',\n 'alignCentre'\n ]);\n },\n innerSouthwest: function () {\n return make(-width, -yoffset, [\n 'bottom',\n 'alignRight'\n ]);\n },\n innerSoutheast: function () {\n return make(width, -yoffset, [\n 'bottom',\n 'alignLeft'\n ]);\n },\n innerSouth: function () {\n return make(-width / 2, -yoffset, [\n 'bottom',\n 'alignCentre'\n ]);\n },\n innerWest: function () {\n return make(width, -yoffset / 2, [\n 'valignCentre',\n 'right'\n ]);\n },\n innerEast: function () {\n return make(-width, -yoffset / 2, [\n 'valignCentre',\n 'left'\n ]);\n }\n };\n };\n var fallback = function () {\n return nu$8(0, 0, {});\n };\n\n var nu$9 = function (x) {\n return x;\n };\n\n var onDirection = function (isLtr, isRtl) {\n return function (element) {\n return getDirection(element) === 'rtl' ? isRtl : isLtr;\n };\n };\n var getDirection = function (element) {\n return get$5(element, 'direction') === 'rtl' ? 'rtl' : 'ltr';\n };\n\n var AttributeValue;\n (function (AttributeValue) {\n AttributeValue['TopToBottom'] = 'toptobottom';\n AttributeValue['BottomToTop'] = 'bottomtotop';\n }(AttributeValue || (AttributeValue = {})));\n var Attribute = 'data-alloy-vertical-dir';\n var isBottomToTopDir = function (el) {\n return closest$2(el, function (current) {\n return isElement(current) && get$3(current, 'data-alloy-vertical-dir') === AttributeValue.BottomToTop;\n });\n };\n\n var schema$1 = function () {\n return optionObjOf('layouts', [\n strict$1('onLtr'),\n strict$1('onRtl'),\n option('onBottomLtr'),\n option('onBottomRtl')\n ]);\n };\n var get$b = function (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 = function (component, anchorInfo, origin) {\n var hotspot = anchorInfo.hotspot;\n var anchorBox = toBox(origin, hotspot.element);\n var layouts = get$b(component.element, anchorInfo, belowOrAbove(), belowOrAboveRtl(), aboveOrBelow(), aboveOrBelowRtl(), Optional.some(anchorInfo.hotspot.element));\n return Optional.some(nu$9({\n anchorBox: anchorBox,\n bubble: anchorInfo.bubble.getOr(fallback()),\n overrides: anchorInfo.overrides,\n layouts: layouts,\n placer: Optional.none()\n }));\n };\n var HotspotAnchor = [\n strict$1('hotspot'),\n option('bubble'),\n defaulted$1('overrides', {}),\n schema$1(),\n output('placement', placement)\n ];\n\n var placement$1 = function (component, anchorInfo, origin) {\n var pos = translate(origin, anchorInfo.x, anchorInfo.y);\n var anchorBox = bounds$1(pos.left, pos.top, anchorInfo.width, anchorInfo.height);\n var layouts = get$b(component.element, anchorInfo, all$2(), allRtl(), all$2(), allRtl(), Optional.none());\n return Optional.some(nu$9({\n anchorBox: anchorBox,\n bubble: anchorInfo.bubble,\n overrides: anchorInfo.overrides,\n layouts: layouts,\n placer: Optional.none()\n }));\n };\n var MakeshiftAnchor = [\n strict$1('x'),\n strict$1('y'),\n defaulted$1('height', 0),\n defaulted$1('width', 0),\n defaulted$1('bubble', fallback()),\n defaulted$1('overrides', {}),\n schema$1(),\n output('placement', placement$1)\n ];\n\n var adt$5 = Adt.generate([\n { screen: ['point'] },\n {\n absolute: [\n 'point',\n 'scrollLeft',\n 'scrollTop'\n ]\n }\n ]);\n var toFixed = function (pos) {\n return pos.fold(identity, function (point, scrollLeft, scrollTop) {\n return point.translate(-scrollLeft, -scrollTop);\n });\n };\n var toAbsolute = function (pos) {\n return pos.fold(identity, identity);\n };\n var sum = function (points) {\n return foldl(points, function (b, a) {\n return b.translate(a.left, a.top);\n }, SugarPosition(0, 0));\n };\n var sumAsFixed = function (positions) {\n var points = map(positions, toFixed);\n return sum(points);\n };\n var sumAsAbsolute = function (positions) {\n var points = map(positions, toAbsolute);\n return sum(points);\n };\n var screen = adt$5.screen;\n var absolute$2 = adt$5.absolute;\n\n var getOffset = function (component, origin, anchorInfo) {\n var win = defaultView(anchorInfo.root).dom;\n var hasSameOwner = function (frame) {\n var frameOwner = owner(frame);\n var compOwner = owner(component.element);\n return eq$1(frameOwner, compOwner);\n };\n return Optional.from(win.frameElement).map(SugarElement.fromDom).filter(hasSameOwner).map(absolute);\n };\n var getRootPoint = function (component, origin, anchorInfo) {\n var doc = owner(component.element);\n var outerScroll = get$9(doc);\n var offset = getOffset(component, origin, anchorInfo).getOr(outerScroll);\n return absolute$2(offset, outerScroll.left, outerScroll.top);\n };\n\n var capRect = function (left, top, width, height) {\n var newLeft = left, newTop = top, newWidth = width, newHeight = height;\n if (left < 0) {\n newLeft = 0;\n newWidth = width + left;\n }\n if (top < 0) {\n newTop = 0;\n newHeight = height + top;\n }\n var point = screen(SugarPosition(newLeft, newTop));\n return Optional.some(pointed(point, newWidth, newHeight));\n };\n var calcNewAnchor = function (optBox, rootPoint, anchorInfo, origin, elem) {\n return optBox.map(function (box) {\n var points = [\n rootPoint,\n box.point\n ];\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$b(elem, anchorInfo, layoutsLtr, layoutsRtl, layoutsLtr, layoutsRtl, Optional.none());\n return nu$9({\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 (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 = capRect(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 var NodeAnchor = [\n strict$1('node'),\n strict$1('root'),\n option('bubble'),\n schema$1(),\n defaulted$1('overrides', {}),\n defaulted$1('showAbove', false),\n output('placement', placement$2)\n ];\n\n var zeroWidth = '\\uFEFF';\n var nbsp = '\\xA0';\n\n var create$2 = function (start, soffset, finish, foffset) {\n return {\n start: start,\n soffset: soffset,\n finish: finish,\n foffset: foffset\n };\n };\n var SimRange = { create: create$2 };\n\n var adt$6 = Adt.generate([\n { before: ['element'] },\n {\n on: [\n 'element',\n 'offset'\n ]\n },\n { after: ['element'] }\n ]);\n var cata$2 = function (subject, onBefore, onOn, onAfter) {\n return subject.fold(onBefore, onOn, onAfter);\n };\n var getStart = function (situ) {\n return situ.fold(identity, identity, identity);\n };\n var before$2 = adt$6.before;\n var on = adt$6.on;\n var after$1 = adt$6.after;\n var Situ = {\n before: before$2,\n on: on,\n after: after$1,\n cata: cata$2,\n getStart: getStart\n };\n\n var adt$7 = Adt.generate([\n { domRange: ['rng'] },\n {\n relative: [\n 'startSitu',\n 'finishSitu'\n ]\n },\n {\n exact: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n }\n ]);\n var exactFromRange = function (simRange) {\n return adt$7.exact(simRange.start, simRange.soffset, simRange.finish, simRange.foffset);\n };\n var getStart$1 = function (selection) {\n return selection.match({\n domRange: function (rng) {\n return SugarElement.fromDom(rng.startContainer);\n },\n relative: function (startSitu, _finishSitu) {\n return Situ.getStart(startSitu);\n },\n exact: function (start, _soffset, _finish, _foffset) {\n return start;\n }\n });\n };\n var domRange = adt$7.domRange;\n var relative$1 = adt$7.relative;\n var exact = adt$7.exact;\n var getWin = function (selection) {\n var start = getStart$1(selection);\n return defaultView(start);\n };\n var range$1 = SimRange.create;\n var SimSelection = {\n domRange: domRange,\n relative: relative$1,\n exact: exact,\n exactFromRange: exactFromRange,\n getWin: getWin,\n range: range$1\n };\n\n var setStart = function (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 var setFinish = function (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 var relativeToNative = function (win, startSitu, finishSitu) {\n var range = win.document.createRange();\n setStart(range, startSitu);\n setFinish(range, finishSitu);\n return range;\n };\n var exactToNative = function (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 var toRect = function (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 var getFirstRect = function (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$8 = Adt.generate([\n {\n ltr: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n },\n {\n rtl: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n }\n ]);\n var fromRange = function (win, type, range) {\n return type(SugarElement.fromDom(range.startContainer), range.startOffset, SugarElement.fromDom(range.endContainer), range.endOffset);\n };\n var getRanges = function (win, selection) {\n return selection.match({\n domRange: function (rng) {\n return {\n ltr: constant(rng),\n rtl: Optional.none\n };\n },\n relative: function (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 (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 var doDiagnose = function (win, ranges) {\n var rng = ranges.ltr();\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$8.rtl(SugarElement.fromDom(rev.endContainer), rev.endOffset, SugarElement.fromDom(rev.startContainer), rev.startOffset);\n }).getOrThunk(function () {\n return fromRange(win, adt$8.ltr, rng);\n });\n } else {\n return fromRange(win, adt$8.ltr, rng);\n }\n };\n var diagnose = function (win, selection) {\n var ranges = getRanges(win, selection);\n return doDiagnose(win, ranges);\n };\n var asLtrRange = function (win, selection) {\n var diagnosis = diagnose(win, selection);\n return diagnosis.match({\n ltr: function (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 (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 var ltr = adt$8.ltr;\n var rtl = adt$8.rtl;\n\n var NodeValue = function (is, name) {\n var get = function (element) {\n if (!is(element)) {\n throw new Error('Can only get ' + name + ' value of a ' + name + ' node');\n }\n return getOption(element).getOr('');\n };\n var getOption = function (element) {\n return is(element) ? Optional.from(element.dom.nodeValue) : Optional.none();\n };\n var set = function (element, value) {\n if (!is(element)) {\n throw new Error('Can only set raw ' + name + ' value of a ' + name + ' node');\n }\n element.dom.nodeValue = value;\n };\n return {\n get: get,\n getOption: getOption,\n set: set\n };\n };\n\n var api$2 = NodeValue(isText, 'text');\n var get$c = function (element) {\n return api$2.get(element);\n };\n var getOption = function (element) {\n return api$2.getOption(element);\n };\n\n var getEnd = function (element) {\n return name(element) === 'img' ? 1 : getOption(element).fold(function () {\n return children(element).length;\n }, function (v) {\n return v.length;\n });\n };\n var isTextNodeWithCursorPosition = function (el) {\n return getOption(el).filter(function (text) {\n return text.trim().length !== 0 || text.indexOf(nbsp) > -1;\n }).isSome();\n };\n var elementsWithCursorPosition = [\n 'img',\n 'br'\n ];\n var isCursorPosition = function (elem) {\n var hasCursorPosition = isTextNodeWithCursorPosition(elem);\n return hasCursorPosition || contains(elementsWithCursorPosition, name(elem));\n };\n\n var last$1 = function (element) {\n return descendantRtl(element, isCursorPosition);\n };\n var descendantRtl = function (scope, predicate) {\n var descend = function (element) {\n var children$1 = children(element);\n for (var i = children$1.length - 1; i >= 0; i--) {\n var child = children$1[i];\n if (predicate(child)) {\n return Optional.some(child);\n }\n var res = descend(child);\n if (res.isSome()) {\n return res;\n }\n }\n return Optional.none();\n };\n return descend(scope);\n };\n\n var descendants = function (scope, selector) {\n return all(selector, scope);\n };\n\n var makeRange = function (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 var after$2 = function (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 (win) {\n return Optional.from(win.getSelection());\n };\n var readRange = function (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 var doGetExact = function (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 var getExact = function (win) {\n return getNativeSelection(win).filter(function (sel) {\n return sel.rangeCount > 0;\n }).bind(doGetExact);\n };\n var getFirstRect$1 = function (win, selection) {\n var rng = asLtrRange(win, selection);\n return getFirstRect(rng);\n };\n\n var point = function (element, offset) {\n return {\n element: element,\n offset: offset\n };\n };\n var descendOnce = function (element, offset) {\n var children$1 = children(element);\n if (children$1.length === 0) {\n return point(element, offset);\n } else if (offset < children$1.length) {\n return point(children$1[offset], 0);\n } else {\n var last = children$1[children$1.length - 1];\n var len = isText(last) ? get$c(last).length : children(last).length;\n return point(last, len);\n }\n };\n\n var descendOnce$1 = function (element, offset) {\n return isText(element) ? point(element, offset) : descendOnce(element, offset);\n };\n var getAnchorSelection = function (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$1(sel.start, sel.soffset);\n var modFinish = descendOnce$1(sel.finish, sel.foffset);\n return SimSelection.range(modStart.element, modStart.offset, modFinish.element, modFinish.offset);\n });\n };\n var placement$3 = function (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 = getFirstRect$1(win, SimSelection.exactFromRange(sel)).orThunk(function () {\n var x = SugarElement.fromText(zeroWidth);\n before(sel.start, x);\n return getFirstRect$1(win, SimSelection.exact(x, 0, x, 1)).map(function (rect) {\n remove(x);\n return rect;\n });\n });\n return optRect.bind(function (rawRect) {\n return capRect(rawRect.left, rawRect.top, rawRect.width, rawRect.height);\n });\n });\n var targetElement = getAnchorSelection(win, anchorInfo).bind(function (sel) {\n return isElement(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 var SelectionAnchor = [\n option('getSelection'),\n strict$1('root'),\n option('bubble'),\n schema$1(),\n defaulted$1('overrides', {}),\n defaulted$1('showAbove', false),\n output('placement', placement$3)\n ];\n\n var eastX$1 = function (anchor) {\n return anchor.x + anchor.width;\n };\n var westX$1 = function (anchor, element) {\n return anchor.x - element.width;\n };\n var northY$1 = function (anchor, element) {\n return anchor.y - element.height + anchor.height;\n };\n var southY$1 = function (anchor) {\n return anchor.y;\n };\n var southeast$2 = function (anchor, element, bubbles) {\n return nu$7(eastX$1(anchor), southY$1(anchor), bubbles.southeast(), southeast(), boundsRestriction(anchor, {\n left: 0,\n top: 2\n }), 'link-layout-se');\n };\n var southwest$2 = function (anchor, element, bubbles) {\n return nu$7(westX$1(anchor, element), southY$1(anchor), bubbles.southwest(), southwest(), boundsRestriction(anchor, {\n right: 1,\n top: 2\n }), 'link-layout-sw');\n };\n var northeast$2 = function (anchor, element, bubbles) {\n return nu$7(eastX$1(anchor), northY$1(anchor, element), bubbles.northeast(), northeast(), boundsRestriction(anchor, {\n left: 0,\n bottom: 3\n }), 'link-layout-ne');\n };\n var northwest$2 = function (anchor, element, bubbles) {\n return nu$7(westX$1(anchor, element), northY$1(anchor, element), bubbles.northwest(), northwest(), boundsRestriction(anchor, {\n right: 1,\n bottom: 3\n }), 'link-layout-nw');\n };\n var all$3 = function () {\n return [\n southeast$2,\n southwest$2,\n northeast$2,\n northwest$2\n ];\n };\n var allRtl$1 = function () {\n return [\n southwest$2,\n southeast$2,\n northwest$2,\n northeast$2\n ];\n };\n\n var placement$4 = function (component, submenuInfo, origin) {\n var anchorBox = toBox(origin, submenuInfo.item.element);\n var layouts = get$b(component.element, submenuInfo, all$3(), allRtl$1(), all$3(), allRtl$1(), Optional.none());\n return Optional.some(nu$9({\n anchorBox: anchorBox,\n bubble: fallback(),\n overrides: submenuInfo.overrides,\n layouts: layouts,\n placer: Optional.none()\n }));\n };\n var SubmenuAnchor = [\n strict$1('item'),\n schema$1(),\n defaulted$1('overrides', {}),\n output('placement', placement$4)\n ];\n\n var AnchorSchema = choose$1('anchor', {\n selection: SelectionAnchor,\n node: NodeAnchor,\n hotspot: HotspotAnchor,\n submenu: SubmenuAnchor,\n makeshift: MakeshiftAnchor\n });\n\n var getFixedOrigin = function () {\n var html = document.documentElement;\n return fixed(0, 0, html.clientWidth, html.clientHeight);\n };\n var getRelativeOrigin = function (component) {\n var position = absolute(component.element);\n var bounds = component.element.dom.getBoundingClientRect();\n return relative(position.left, position.top, bounds.width, bounds.height);\n };\n var place = function (component, origin, anchoring, getBounds, placee) {\n var anchor = box$1(anchoring.anchorBox, origin);\n simple(anchor, placee.element, anchoring.bubble, anchoring.layouts, getBounds, anchoring.overrides);\n };\n var position$1 = function (component, posConfig, posState, anchor, placee) {\n positionWithin(component, posConfig, posState, anchor, placee, Optional.none());\n };\n var positionWithin = function (component, posConfig, posState, anchor, placee, boxElement) {\n var boundsBox = boxElement.map(box);\n return positionWithinBounds(component, posConfig, posState, anchor, placee, boundsBox);\n };\n var positionWithinBounds = function (component, posConfig, posState, anchor, placee, bounds) {\n var anchorage = asRawOrDie('positioning anchor.info', AnchorSchema, anchor);\n preserve(function () {\n set$2(placee.element, 'position', 'fixed');\n var oldVisibility = getRaw(placee.element, 'visibility');\n set$2(placee.element, 'visibility', 'hidden');\n var origin = posConfig.useFixed() ? getFixedOrigin() : getRelativeOrigin(component);\n var placer = anchorage.placement;\n var getBounds = bounds.map(constant).or(posConfig.getBounds);\n placer(component, anchorage, origin).each(function (anchoring) {\n var doPlace = anchoring.placer.getOr(place);\n doPlace(component, origin, anchoring, getBounds, placee);\n });\n oldVisibility.fold(function () {\n remove$6(placee.element, 'visibility');\n }, function (vis) {\n set$2(placee.element, 'visibility', vis);\n });\n if (getRaw(placee.element, 'left').isNone() && getRaw(placee.element, 'top').isNone() && getRaw(placee.element, 'right').isNone() && getRaw(placee.element, 'bottom').isNone() && getRaw(placee.element, 'position').is('fixed')) {\n remove$6(placee.element, 'position');\n }\n }, placee.element);\n };\n var getMode = function (component, pConfig, _pState) {\n return pConfig.useFixed() ? 'fixed' : 'absolute';\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 });\n\n var PositionSchema = [\n defaulted$1('useFixed', never),\n option('getBounds')\n ];\n\n var Positioning = create$1({\n fields: PositionSchema,\n name: 'positioning',\n active: ActivePosition,\n apis: PositionApis\n });\n\n var fireDetaching = function (component) {\n emit(component, detachedFromDom());\n var children = component.components();\n each(children, fireDetaching);\n };\n var fireAttaching = function (component) {\n var children = component.components();\n each(children, fireAttaching);\n emit(component, attachedToDom());\n };\n var attach = function (parent, child) {\n append(parent.element, child.element);\n };\n var detachChildren = function (component) {\n each(component.components(), function (childComp) {\n return remove(childComp.element);\n });\n empty(component.element);\n component.syncComponents();\n };\n var replaceChildren = function (component, newChildren) {\n var subs = component.components();\n detachChildren(component);\n var deleted = difference(subs, newChildren);\n each(deleted, function (comp) {\n fireDetaching(comp);\n component.getSystem().removeFromWorld(comp);\n });\n each(newChildren, function (childComp) {\n if (!childComp.getSystem().isConnected()) {\n component.getSystem().addToWorld(childComp);\n attach(component, childComp);\n if (inBody(component.element)) {\n fireAttaching(childComp);\n }\n } else {\n attach(component, childComp);\n }\n component.syncComponents();\n });\n };\n\n var attach$1 = function (parent, child) {\n attachWith(parent, child, append);\n };\n var attachWith = function (parent, child, insertion) {\n parent.getSystem().addToWorld(child);\n insertion(parent.element, child.element);\n if (inBody(parent.element)) {\n fireAttaching(child);\n }\n parent.syncComponents();\n };\n var doDetach = function (component) {\n fireDetaching(component);\n remove(component.element);\n component.getSystem().removeFromWorld(component);\n };\n var detach = function (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 var detachChildren$1 = function (component) {\n var subs = component.components();\n each(subs, doDetach);\n empty(component.element);\n component.syncComponents();\n };\n var attachSystem = function (element, guiSystem) {\n attachSystemWith(element, guiSystem, append);\n };\n var attachSystemAfter = function (element, guiSystem) {\n attachSystemWith(element, guiSystem, after);\n };\n var attachSystemWith = function (element, guiSystem, inserter) {\n inserter(element, guiSystem.element);\n var children$1 = children(guiSystem.element);\n each(children$1, function (child) {\n guiSystem.getByDom(child).each(fireAttaching);\n });\n };\n var detachSystem = function (guiSystem) {\n var children$1 = children(guiSystem.element);\n each(children$1, function (child) {\n guiSystem.getByDom(child).each(fireDetaching);\n });\n remove(guiSystem.element);\n };\n\n var rebuild = function (sandbox, sConfig, sState, data) {\n sState.get().each(function (_data) {\n detachChildren$1(sandbox);\n });\n var point = sConfig.getAttachPoint(sandbox);\n attach$1(point, sandbox);\n var built = sandbox.getSystem().build(data);\n attach$1(sandbox, built);\n sState.set(built);\n return built;\n };\n var open = function (sandbox, sConfig, sState, data) {\n var newState = rebuild(sandbox, sConfig, sState, data);\n sConfig.onOpen(sandbox, newState);\n return newState;\n };\n var setContent = function (sandbox, sConfig, sState, data) {\n return sState.get().map(function () {\n return rebuild(sandbox, sConfig, sState, data);\n });\n };\n var openWhileCloaked = function (sandbox, sConfig, sState, data, transaction) {\n cloak(sandbox, sConfig);\n open(sandbox, sConfig, sState, data);\n transaction();\n decloak(sandbox, sConfig);\n };\n var close = function (sandbox, sConfig, sState) {\n sState.get().each(function (data) {\n detachChildren$1(sandbox);\n detach(sandbox);\n sConfig.onClose(sandbox, data);\n sState.clear();\n });\n };\n var isOpen = function (_sandbox, _sConfig, sState) {\n return sState.isOpen();\n };\n var isPartOf$1 = function (sandbox, sConfig, sState, queryElem) {\n return isOpen(sandbox, sConfig, sState) && sState.get().exists(function (data) {\n return sConfig.isPartOf(sandbox, data, queryElem);\n });\n };\n var getState = function (_sandbox, _sConfig, sState) {\n return sState.get();\n };\n var store = function (sandbox, cssKey, attr, newValue) {\n getRaw(sandbox.element, cssKey).fold(function () {\n remove$1(sandbox.element, attr);\n }, function (v) {\n set$1(sandbox.element, attr, v);\n });\n set$2(sandbox.element, cssKey, newValue);\n };\n var restore = function (sandbox, cssKey, attr) {\n getOpt(sandbox.element, attr).fold(function () {\n return remove$6(sandbox.element, cssKey);\n }, function (oldValue) {\n return set$2(sandbox.element, cssKey, oldValue);\n });\n };\n var cloak = function (sandbox, sConfig, _sState) {\n var sink = sConfig.getAttachPoint(sandbox);\n set$2(sandbox.element, 'position', Positioning.getMode(sink));\n store(sandbox, 'visibility', sConfig.cloakVisibilityAttr, 'hidden');\n };\n var hasPosition = function (element) {\n return exists([\n 'top',\n 'left',\n 'right',\n 'bottom'\n ], function (pos) {\n return getRaw(element, pos).isSome();\n });\n };\n var decloak = function (sandbox, sConfig, _sState) {\n if (!hasPosition(sandbox.element)) {\n remove$6(sandbox.element, 'position');\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,\n openWhileCloaked: openWhileCloaked,\n close: close,\n isOpen: isOpen,\n isPartOf: isPartOf$1,\n getState: getState,\n setContent: setContent\n });\n\n var events$2 = function (sandboxConfig, sandboxState) {\n return derive([run(sandboxClose(), function (sandbox, _simulatedEvent) {\n close(sandbox, sandboxConfig, sandboxState);\n })]);\n };\n\n var ActiveSandbox = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$2\n });\n\n var SandboxSchema = [\n onHandler('onOpen'),\n onHandler('onClose'),\n strict$1('isPartOf'),\n strict$1('getAttachPoint'),\n defaulted$1('cloakVisibilityAttr', 'data-precloak-visibility')\n ];\n\n var init = function () {\n var contents = Cell(Optional.none());\n var readState = constant('not-implemented');\n var isOpen = function () {\n return contents.get().isSome();\n };\n var set = function (comp) {\n contents.set(Optional.some(comp));\n };\n var get = function () {\n return contents.get();\n };\n var clear = function () {\n contents.set(Optional.none());\n };\n return nu$5({\n readState: readState,\n isOpen: isOpen,\n clear: clear,\n set: set,\n get: get\n });\n };\n\n var SandboxState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init\n });\n\n var Sandboxing = create$1({\n fields: SandboxSchema,\n name: 'sandboxing',\n active: ActiveSandbox,\n apis: SandboxApis,\n state: SandboxState\n });\n\n var dismissPopups = constant('dismiss.popups');\n var repositionPopups = constant('reposition.popups');\n var mouseReleased = constant('mouse.released');\n\n var schema$2 = objOfOnly([\n defaulted$1('isExtraPart', never),\n optionObjOf('fireEventInstead', [defaulted$1('event', dismissRequested())])\n ]);\n var receivingChannel = function (rawSpec) {\n var _a;\n var detail = asRawOrDie('Dismissal', schema$2, rawSpec);\n return _a = {}, _a[dismissPopups()] = {\n schema: objOfOnly([strict$1('target')]),\n onReceive: function (sandbox, data) {\n if (Sandboxing.isOpen(sandbox)) {\n var isPart = Sandboxing.isPartOf(sandbox, data.target) || detail.isExtraPart(sandbox, data.target);\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$3 = objOfOnly([\n optionObjOf('fireEventInstead', [defaulted$1('event', repositionRequested())]),\n strictFunction('doReposition')\n ]);\n var receivingChannel$1 = function (rawSpec) {\n var _a;\n var detail = asRawOrDie('Reposition', schema$3, rawSpec);\n return _a = {}, _a[repositionPopups()] = {\n onReceive: function (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 = function (component, repConfig, repState) {\n repConfig.store.manager.onLoad(component, repConfig, repState);\n };\n var onUnload = function (component, repConfig, repState) {\n repConfig.store.manager.onUnload(component, repConfig, repState);\n };\n var setValue = function (component, repConfig, repState, data) {\n repConfig.store.manager.setValue(component, repConfig, repState, data);\n };\n var getValue = function (component, repConfig, repState) {\n return repConfig.store.manager.getValue(component, repConfig, repState);\n };\n var getState$1 = function (component, repConfig, repState) {\n return repState;\n };\n\n var RepresentApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n onLoad: onLoad,\n onUnload: onUnload,\n setValue: setValue,\n getValue: getValue,\n getState: getState$1\n });\n\n var events$3 = function (repConfig, repState) {\n var es = repConfig.resetOnDom ? [\n runOnAttached(function (comp, _se) {\n onLoad(comp, repConfig, repState);\n }),\n runOnDetached(function (comp, _se) {\n onUnload(comp, repConfig, repState);\n })\n ] : [loadEvent(repConfig, repState, onLoad)];\n return derive(es);\n };\n\n var ActiveRepresenting = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$3\n });\n\n var memory = function () {\n var data = Cell(null);\n var readState = function () {\n return {\n mode: 'memory',\n value: data.get()\n };\n };\n var isNotSet = function () {\n return data.get() === null;\n };\n var clear = function () {\n data.set(null);\n };\n return nu$5({\n set: data.set,\n get: data.get,\n isNotSet: isNotSet,\n clear: clear,\n readState: readState\n });\n };\n var manual = function () {\n var readState = noop;\n return nu$5({ readState: readState });\n };\n var dataset = function () {\n var dataByValue = Cell({});\n var dataByText = Cell({});\n var readState = function () {\n return {\n mode: 'dataset',\n dataByValue: dataByValue.get(),\n dataByText: dataByText.get()\n };\n };\n var clear = function () {\n dataByValue.set({});\n dataByText.set({});\n };\n var lookup = function (itemString) {\n return get$1(dataByValue.get(), itemString).orThunk(function () {\n return get$1(dataByText.get(), itemString);\n });\n };\n var update = function (items) {\n var currentDataByValue = dataByValue.get();\n var currentDataByText = dataByText.get();\n var newDataByValue = {};\n var newDataByText = {};\n each(items, function (item) {\n newDataByValue[item.value] = item;\n get$1(item, 'meta').each(function (meta) {\n get$1(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 return nu$5({\n readState: readState,\n lookup: lookup,\n update: update,\n clear: clear\n });\n };\n var init$1 = function (spec) {\n return spec.store.manager.state(spec);\n };\n\n var RepresentState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n memory: memory,\n dataset: dataset,\n manual: manual,\n init: init$1\n });\n\n var setValue$1 = function (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 var getValue$1 = function (component, repConfig, repState) {\n var store = repConfig.store;\n var key = store.getDataKey(component);\n return repState.lookup(key).fold(function () {\n return store.getFallbackEntry(key);\n }, function (data) {\n return data;\n });\n };\n var onLoad$1 = function (component, repConfig, repState) {\n var store = repConfig.store;\n store.initialValue.each(function (data) {\n setValue$1(component, repConfig, repState, data);\n });\n };\n var onUnload$1 = function (component, repConfig, repState) {\n repState.clear();\n };\n var DatasetStore = [\n option('initialValue'),\n strict$1('getFallbackEntry'),\n strict$1('getDataKey'),\n strict$1('setValue'),\n output('manager', {\n setValue: setValue$1,\n getValue: getValue$1,\n onLoad: onLoad$1,\n onUnload: onUnload$1,\n state: dataset\n })\n ];\n\n var getValue$2 = function (component, repConfig, _repState) {\n return repConfig.store.getValue(component);\n };\n var setValue$2 = function (component, repConfig, _repState, data) {\n repConfig.store.setValue(component, data);\n repConfig.onSetValue(component, data);\n };\n var onLoad$2 = function (component, repConfig, _repState) {\n repConfig.store.initialValue.each(function (data) {\n repConfig.store.setValue(component, data);\n });\n };\n var ManualStore = [\n strict$1('getValue'),\n defaulted$1('setValue', noop),\n option('initialValue'),\n output('manager', {\n setValue: setValue$2,\n getValue: getValue$2,\n onLoad: onLoad$2,\n onUnload: noop,\n state: NoState.init\n })\n ];\n\n var setValue$3 = function (component, repConfig, repState, data) {\n repState.set(data);\n repConfig.onSetValue(component, data);\n };\n var getValue$3 = function (component, repConfig, repState) {\n return repState.get();\n };\n var onLoad$3 = function (component, repConfig, repState) {\n repConfig.store.initialValue.each(function (initVal) {\n if (repState.isNotSet()) {\n repState.set(initVal);\n }\n });\n };\n var onUnload$2 = function (component, repConfig, repState) {\n repState.clear();\n };\n var MemoryStore = [\n option('initialValue'),\n output('manager', {\n setValue: setValue$3,\n getValue: getValue$3,\n onLoad: onLoad$3,\n onUnload: onUnload$2,\n state: memory\n })\n ];\n\n var RepresentSchema = [\n defaultedOf('store', { mode: 'memory' }, choose$1('mode', {\n memory: MemoryStore,\n manual: ManualStore,\n dataset: DatasetStore\n })),\n onHandler('onSetValue'),\n defaulted$1('resetOnDom', false)\n ];\n\n var Representing = create$1({\n fields: RepresentSchema,\n name: 'representing',\n active: ActiveRepresenting,\n apis: RepresentApis,\n extra: {\n setValueFrom: function (component, source) {\n var value = Representing.getValue(source);\n Representing.setValue(component, value);\n }\n },\n state: RepresentState\n });\n\n var field$1 = function (name, forbidden) {\n return defaultedObjOf(name, {}, map(forbidden, function (f) {\n return forbid(f.name(), 'Cannot configure ' + f.name() + ' for ' + name);\n }).concat([state$1('dump', identity)]));\n };\n var get$d = function (data) {\n return data.dump;\n };\n var augment = function (data, original) {\n return __assign(__assign({}, data.dump), derive$1(original));\n };\n var SketchBehaviours = {\n field: field$1,\n augment: augment,\n get: get$d\n };\n\n var _placeholder = 'placeholder';\n var adt$9 = Adt.generate([\n {\n single: [\n 'required',\n 'valueThunk'\n ]\n },\n {\n multiple: [\n 'required',\n 'valueThunks'\n ]\n }\n ]);\n var isSubstituted = function (spec) {\n return has(spec, 'uiType');\n };\n var subPlaceholder = function (owner, detail, compSpec, placeholders) {\n if (owner.exists(function (o) {\n return o !== compSpec.owner;\n })) {\n return adt$9.single(true, constant(compSpec));\n }\n return get$1(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 var scan = function (owner, detail, compSpec, placeholders) {\n if (isSubstituted(compSpec) && compSpec.uiType === _placeholder) {\n return subPlaceholder(owner, detail, compSpec, placeholders);\n } else {\n return adt$9.single(false, constant(compSpec));\n }\n };\n var substitute = function (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$1(value, 'components').getOr([]);\n var substituted = bind(childSpecs, function (c) {\n return substitute(owner, detail, c, placeholders);\n });\n return [__assign(__assign({}, value), { components: substituted })];\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);\n return preprocessor(values);\n } else {\n return valuesThunk(detail);\n }\n });\n };\n var substituteAll = function (owner, detail, components, placeholders) {\n return bind(components, function (c) {\n return substitute(owner, detail, c, placeholders);\n });\n };\n var oneReplace = function (label, replacements) {\n var called = false;\n var used = function () {\n return called;\n };\n var replace = function () {\n if (called) {\n throw new Error('Trying to use the same placeholder more than once: ' + label);\n }\n called = true;\n return replacements;\n };\n var required = function () {\n return replacements.fold(function (req, _) {\n return req;\n }, function (req, _) {\n return req;\n });\n };\n return {\n name: constant(label),\n required: required,\n used: used,\n replace: replace\n };\n };\n var substitutePlaces = function (owner, detail, components, placeholders) {\n var ps = map$2(placeholders, function (ph, name) {\n return oneReplace(name, ph);\n });\n var outcome = substituteAll(owner, detail, components, ps);\n each$1(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 var single = adt$9.single;\n var multiple = adt$9.multiple;\n var placeholder = constant(_placeholder);\n\n var adt$a = Adt.generate([\n { required: ['data'] },\n { external: ['data'] },\n { optional: ['data'] },\n { group: ['data'] }\n ]);\n var fFactory = defaulted$1('factory', { sketch: identity });\n var fSchema = defaulted$1('schema', []);\n var fName = strict$1('name');\n var fPname = field('pname', 'pname', defaultedThunk(function (typeSpec) {\n return '';\n }), anyValue$1());\n var fGroupSchema = state$1('schema', function () {\n return [option('preprocess')];\n });\n var fDefaults = defaulted$1('defaults', constant({}));\n var fOverrides = defaulted$1('overrides', constant({}));\n var requiredSpec = objOf([\n fFactory,\n fSchema,\n fName,\n fPname,\n fDefaults,\n fOverrides\n ]);\n var externalSpec = objOf([\n fFactory,\n fSchema,\n fName,\n fDefaults,\n fOverrides\n ]);\n var optionalSpec = objOf([\n fFactory,\n fSchema,\n fName,\n fPname,\n fDefaults,\n fOverrides\n ]);\n var groupSpec = objOf([\n fFactory,\n fGroupSchema,\n fName,\n strict$1('unit'),\n fPname,\n fDefaults,\n fOverrides\n ]);\n var asNamedPart = function (part) {\n return part.fold(Optional.some, Optional.none, Optional.some, Optional.some);\n };\n var name$1 = function (part) {\n var get = function (data) {\n return data.name;\n };\n return part.fold(get, get, get, get);\n };\n var asCommon = function (part) {\n return part.fold(identity, identity, identity, identity);\n };\n var convert = function (adtConstructor, partSchema) {\n return function (spec) {\n var data = asRawOrDie('Converting part type', partSchema, spec);\n return adtConstructor(data);\n };\n };\n var required = convert(adt$a.required, requiredSpec);\n var external$1 = convert(adt$a.external, externalSpec);\n var optional = convert(adt$a.optional, optionalSpec);\n var group = convert(adt$a.group, groupSpec);\n var original = constant('entirety');\n\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$2 = function (detail, data, partSpec, partValidated) {\n return deepMerge(data.defaults(detail, partSpec, partValidated), partSpec, { uid: detail.partUids[data.name] }, data.overrides(detail, partSpec, partValidated));\n };\n var subs = function (owner, detail, parts) {\n var internals = {};\n var externals = {};\n each(parts, function (part) {\n part.fold(function (data) {\n internals[data.pname] = single(true, function (detail, partSpec, partValidated) {\n return data.factory.sketch(combine$2(detail, data, partSpec, partValidated));\n });\n }, function (data) {\n var partSpec = detail.parts[data.name];\n externals[data.name] = constant(data.factory.sketch(combine$2(detail, data, partSpec[original()]), partSpec));\n }, function (data) {\n internals[data.pname] = single(false, function (detail, partSpec, partValidated) {\n return data.factory.sketch(combine$2(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(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(internals),\n externals: constant(externals)\n };\n };\n\n var generate$4 = function (owner, parts) {\n var r = {};\n each(parts, function (part) {\n asNamedPart(part).each(function (np) {\n var g = doGenerateOne(owner, np.pname);\n r[np.name] = function (config) {\n var validated = asRawOrDie('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 var doGenerateOne = function (owner, pname) {\n return {\n uiType: placeholder(),\n owner: owner,\n name: pname\n };\n };\n var generateOne = function (owner, pname, config) {\n return {\n uiType: placeholder(),\n owner: owner,\n name: pname,\n config: config,\n validated: {}\n };\n };\n var schemas = function (parts) {\n return bind(parts, function (part) {\n return part.fold(Optional.none, Optional.some, Optional.none, Optional.none).map(function (data) {\n return strictObjOf(data.name, data.schema.concat([snapshot(original())]));\n }).toArray();\n });\n };\n var names = function (parts) {\n return map(parts, name$1);\n };\n var substitutes = function (owner, detail, parts) {\n return subs(owner, detail, parts);\n };\n var components = function (owner, detail, internals) {\n return substitutePlaces(Optional.some(owner), detail, detail.components, internals);\n };\n var getPart = function (component, detail, partKey) {\n var uid = detail.partUids[partKey];\n return component.getSystem().getByUid(uid).toOptional();\n };\n var getPartOrDie = function (component, detail, partKey) {\n return getPart(component, detail, partKey).getOrDie('Could not find part: ' + partKey);\n };\n var getParts = function (component, detail, partKeys) {\n var r = {};\n var uids = detail.partUids;\n var system = component.getSystem();\n each(partKeys, function (pk) {\n r[pk] = constant(system.getByUid(uids[pk]));\n });\n return r;\n };\n var getAllParts = function (component, detail) {\n var system = component.getSystem();\n return map$2(detail.partUids, function (pUid, _k) {\n return constant(system.getByUid(pUid));\n });\n };\n var getAllPartNames = function (detail) {\n return keys(detail.partUids);\n };\n var getPartsOrDie = function (component, detail, partKeys) {\n var r = {};\n var uids = detail.partUids;\n var system = component.getSystem();\n each(partKeys, function (pk) {\n r[pk] = constant(system.getByUid(uids[pk]).getOrDie());\n });\n return r;\n };\n var defaultUids = function (baseUid, partTypes) {\n var partNames = names(partTypes);\n return wrapAll$1(map(partNames, function (pn) {\n return {\n key: pn,\n value: baseUid + '-' + pn\n };\n }));\n };\n var defaultUidsSchema = function (partTypes) {\n return field('partUids', 'partUids', mergeWithThunk(function (spec) {\n return defaultUids(spec.uid, partTypes);\n }), anyValue$1());\n };\n\n var AlloyParts = /*#__PURE__*/Object.freeze({\n __proto__: null,\n generate: generate$4,\n generateOne: generateOne,\n schemas: schemas,\n names: names,\n substitutes: substitutes,\n components: components,\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 (partSchemas, partUidsSchemas) {\n var ps = partSchemas.length > 0 ? [strictObjOf('parts', partSchemas)] : [];\n return ps.concat([\n strict$1('uid'),\n defaulted$1('dom', {}),\n defaulted$1('components', []),\n snapshot('originalSpec'),\n defaulted$1('debug.sketcher', {})\n ]).concat(partUidsSchemas);\n };\n var asRawOrDie$1 = function (label, schema, spec, partSchemas, partUidsSchemas) {\n var baseS = base(partSchemas, partUidsSchemas);\n return asRawOrDie(label + ' [SpecSchema]', objOfOnly(baseS.concat(schema)), spec);\n };\n\n var single$1 = function (owner, schema, factory, spec) {\n var specWithUid = supplyUid(spec);\n var detail = asRawOrDie$1(owner, schema, specWithUid, [], []);\n return factory(detail, specWithUid);\n };\n var composite = function (owner, schema, partTypes, factory, spec) {\n var specWithUid = supplyUid(spec);\n var partSchemas = schemas(partTypes);\n var partUidsSchema = defaultUidsSchema(partTypes);\n var detail = asRawOrDie$1(owner, schema, specWithUid, partSchemas, [partUidsSchema]);\n var subs = substitutes(owner, detail, partTypes);\n var components$1 = components(owner, detail, subs.internals());\n return factory(detail, components$1, specWithUid, subs.externals());\n };\n var hasUid = function (spec) {\n return has(spec, 'uid');\n };\n var supplyUid = function (spec) {\n return hasUid(spec) ? spec : __assign(__assign({}, spec), { uid: generate$2('uid') });\n };\n\n var isSketchSpec = function (spec) {\n return spec.uid !== undefined;\n };\n var singleSchema = objOfOnly([\n strict$1('name'),\n strict$1('factory'),\n strict$1('configFields'),\n defaulted$1('apis', {}),\n defaulted$1('extraApis', {})\n ]);\n var compositeSchema = objOfOnly([\n strict$1('name'),\n strict$1('factory'),\n strict$1('configFields'),\n strict$1('partFields'),\n defaulted$1('apis', {}),\n defaulted$1('extraApis', {})\n ]);\n var single$2 = function (rawConfig) {\n var config = asRawOrDie('Sketcher for ' + rawConfig.name, singleSchema, rawConfig);\n var sketch = function (spec) {\n return single$1(config.name, config.configFields, config.factory, spec);\n };\n var apis = map$2(config.apis, makeApi);\n var extraApis = map$2(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 var composite$1 = function (rawConfig) {\n var config = asRawOrDie('Sketcher for ' + rawConfig.name, compositeSchema, rawConfig);\n var sketch = function (spec) {\n return composite(config.name, config.configFields, config.partFields, config.factory, spec);\n };\n var parts = generate$4(config.name, config.partFields);\n var apis = map$2(config.apis, makeApi);\n var extraApis = map$2(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 cat = function (arr) {\n var r = [];\n var push = function (x) {\n r.push(x);\n };\n for (var i = 0; i < arr.length; i++) {\n arr[i].each(push);\n }\n return r;\n };\n var sequence = function (arr) {\n var r = [];\n for (var i = 0; i < arr.length; i++) {\n var x = arr[i];\n if (x.isSome()) {\n r.push(x.getOrDie());\n } else {\n return Optional.none();\n }\n }\n return Optional.some(r);\n };\n var lift2 = function (oa, ob, f) {\n return oa.isSome() && ob.isSome() ? Optional.some(f(oa.getOrDie(), ob.getOrDie())) : Optional.none();\n };\n var lift3 = function (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 var mapFrom = function (a, f) {\n return a !== undefined && a !== null ? Optional.some(f(a)) : Optional.none();\n };\n var someIf = function (b, a) {\n return b ? Optional.some(a) : Optional.none();\n };\n\n var inside = function (target) {\n return name(target) === 'input' && get$3(target, 'type') !== 'radio' || name(target) === 'textarea';\n };\n\n var getCurrent = function (component, composeConfig, _composeState) {\n return composeConfig.find(component);\n };\n\n var ComposeApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getCurrent: getCurrent\n });\n\n var ComposeSchema = [strict$1('find')];\n\n var Composing = create$1({\n fields: ComposeSchema,\n name: 'composing',\n apis: ComposeApis\n });\n\n var dehighlightAllExcept = function (component, hConfig, hState, skip) {\n var highlighted = descendants(component.element, '.' + hConfig.highlightClass);\n each(highlighted, function (h) {\n if (!exists(skip, function (skipComp) {\n return skipComp.element === h;\n })) {\n remove$4(h, hConfig.highlightClass);\n component.getSystem().getByDom(h).each(function (target) {\n hConfig.onDehighlight(component, target);\n emit(target, dehighlight());\n });\n }\n });\n };\n var dehighlightAll = function (component, hConfig, hState) {\n return dehighlightAllExcept(component, hConfig, hState, []);\n };\n var dehighlight$1 = function (component, hConfig, hState, target) {\n if (isHighlighted(component, hConfig, hState, target)) {\n remove$4(target.element, hConfig.highlightClass);\n hConfig.onDehighlight(component, target);\n emit(target, dehighlight());\n }\n };\n var highlight$1 = function (component, hConfig, hState, target) {\n dehighlightAllExcept(component, hConfig, hState, [target]);\n if (!isHighlighted(component, hConfig, hState, target)) {\n add$2(target.element, hConfig.highlightClass);\n hConfig.onHighlight(component, target);\n emit(target, highlight());\n }\n };\n var highlightFirst = function (component, hConfig, hState) {\n getFirst(component, hConfig).each(function (firstComp) {\n highlight$1(component, hConfig, hState, firstComp);\n });\n };\n var highlightLast = function (component, hConfig, hState) {\n getLast(component, hConfig).each(function (lastComp) {\n highlight$1(component, hConfig, hState, lastComp);\n });\n };\n var highlightAt = function (component, hConfig, hState, index) {\n getByIndex(component, hConfig, hState, index).fold(function (err) {\n throw err;\n }, function (firstComp) {\n highlight$1(component, hConfig, hState, firstComp);\n });\n };\n var highlightBy = function (component, hConfig, hState, predicate) {\n var candidates = getCandidates(component, hConfig);\n var targetComp = find(candidates, predicate);\n targetComp.each(function (c) {\n highlight$1(component, hConfig, hState, c);\n });\n };\n var isHighlighted = function (component, hConfig, hState, queryTarget) {\n return has$2(queryTarget.element, hConfig.highlightClass);\n };\n var getHighlighted = function (component, hConfig, _hState) {\n return descendant$1(component.element, '.' + hConfig.highlightClass).bind(function (e) {\n return component.getSystem().getByDom(e).toOptional();\n });\n };\n var getByIndex = function (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 var getFirst = function (component, hConfig, _hState) {\n return descendant$1(component.element, '.' + hConfig.itemClass).bind(function (e) {\n return component.getSystem().getByDom(e).toOptional();\n });\n };\n var getLast = function (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 var getDelta = function (component, hConfig, hState, delta) {\n var items = descendants(component.element, '.' + hConfig.itemClass);\n var current = findIndex(items, function (item) {\n return has$2(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 var getPrevious = function (component, hConfig, hState) {\n return getDelta(component, hConfig, hState, -1);\n };\n var getNext = function (component, hConfig, hState) {\n return getDelta(component, hConfig, hState, +1);\n };\n var getCandidates = function (component, hConfig, _hState) {\n var items = descendants(component.element, '.' + hConfig.itemClass);\n return cat(map(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$1,\n highlight: highlight$1,\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\n var HighlightSchema = [\n strict$1('highlightClass'),\n strict$1('itemClass'),\n onHandler('onHighlight'),\n onHandler('onDehighlight')\n ];\n\n var Highlighting = create$1({\n fields: HighlightSchema,\n name: 'highlighting',\n apis: HighlightApis\n });\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 (values, index, predicate) {\n var before = reverse(values.slice(0, index));\n var after = reverse(values.slice(index + 1));\n return find(before.concat(after), predicate);\n };\n var tryPrev = function (values, index, predicate) {\n var before = reverse(values.slice(0, index));\n return find(before, predicate);\n };\n var cycleNext = function (values, index, predicate) {\n var before = values.slice(0, index);\n var after = values.slice(index + 1);\n return find(after.concat(before), predicate);\n };\n var tryNext = function (values, index, predicate) {\n var after = values.slice(index + 1);\n return find(after, predicate);\n };\n\n var inSet = function (keys) {\n return function (event) {\n var raw = event.raw;\n return contains(keys, raw.which);\n };\n };\n var and = function (preds) {\n return function (event) {\n return forall(preds, function (pred) {\n return pred(event);\n });\n };\n };\n var isShift = function (event) {\n var raw = event.raw;\n return raw.shiftKey === true;\n };\n var isControl = function (event) {\n var raw = event.raw;\n return raw.ctrlKey === true;\n };\n var isNotShift = not(isShift);\n\n var rule = function (matches, action) {\n return {\n matches: matches,\n classification: action\n };\n };\n var choose$2 = function (transitions, event) {\n var transition = find(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 (component, prevFocus, newFocus) {\n var noChange = prevFocus.exists(function (p) {\n return newFocus.exists(function (n) {\n return eq$1(n, p);\n });\n });\n if (!noChange) {\n emitWith(component, focusShifted(), {\n prevFocus: prevFocus,\n newFocus: newFocus\n });\n }\n };\n var dom = function () {\n var get = function (component) {\n return search(component.element);\n };\n var set = function (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 return {\n get: get,\n set: set\n };\n };\n var highlights = function () {\n var get = function (component) {\n return Highlighting.getHighlighted(component).map(function (item) {\n return item.element;\n });\n };\n var set = function (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 return {\n get: get,\n set: set\n };\n };\n\n var FocusInsideModes;\n (function (FocusInsideModes) {\n FocusInsideModes['OnFocusMode'] = 'onFocus';\n FocusInsideModes['OnEnterOrSpaceMode'] = 'onEnterOrSpace';\n FocusInsideModes['OnApiMode'] = 'onApi';\n }(FocusInsideModes || (FocusInsideModes = {})));\n\n var typical = function (infoSchema, stateInit, getKeydownRules, getKeyupRules, optFocusIn) {\n var schema = function () {\n return infoSchema.concat([\n defaulted$1('focusManager', dom()),\n defaultedOf('focusInside', 'onFocus', valueOf(function (val) {\n return contains([\n 'onFocus',\n 'onEnterOrSpace',\n 'onApi'\n ], val) ? Result.value(val) : Result.error('Invalid value for focusInside');\n })),\n output('handler', me),\n output('state', stateInit),\n output('sendFocusIn', optFocusIn)\n ]);\n };\n var processKey = function (component, simulatedEvent, getRules, keyingConfig, keyingState) {\n var rules = getRules(component, simulatedEvent, keyingConfig, keyingState);\n return choose$2(rules, simulatedEvent.event).bind(function (rule) {\n return rule(component, simulatedEvent, keyingConfig, keyingState);\n });\n };\n var toEvents = function (keyingConfig, keyingState) {\n var onFocusHandler = keyingConfig.focusInside !== FocusInsideModes.OnFocusMode ? Optional.none() : optFocusIn(keyingConfig).map(function (focusIn) {\n return run(focus(), function (component, simulatedEvent) {\n focusIn(component, keyingConfig, keyingState);\n simulatedEvent.stop();\n });\n });\n var tryGoInsideComponent = function (component, simulatedEvent) {\n var isEnterOrSpace = inSet(SPACE.concat(ENTER))(simulatedEvent.event);\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 var keyboardEvents = [\n run(keydown(), function (component, simulatedEvent) {\n processKey(component, simulatedEvent, getKeydownRules, keyingConfig, keyingState).fold(function () {\n tryGoInsideComponent(component, simulatedEvent);\n }, function (_) {\n simulatedEvent.stop();\n });\n }),\n run(keyup(), function (component, simulatedEvent) {\n processKey(component, simulatedEvent, getKeyupRules, keyingConfig, keyingState).each(function (_) {\n simulatedEvent.stop();\n });\n })\n ];\n return derive(onFocusHandler.toArray().concat(keyboardEvents));\n };\n var me = {\n schema: schema,\n processKey: processKey,\n toEvents: toEvents\n };\n return me;\n };\n\n var create$3 = function (cyclicField) {\n var schema = [\n option('onEscape'),\n option('onEnter'),\n defaulted$1('selector', '[data-alloy-tabstop=\"true\"]:not(:disabled)'),\n defaulted$1('firstTabstop', 0),\n defaulted$1('useTabstopAt', always),\n option('visibilitySelector')\n ].concat([cyclicField]);\n var isVisible = function (tabbingConfig, element) {\n var target = tabbingConfig.visibilitySelector.bind(function (sel) {\n return closest$3(element, sel);\n }).getOr(element);\n return get$7(target) > 0;\n };\n var findInitial = function (component, tabbingConfig) {\n var tabstops = descendants(component.element, tabbingConfig.selector);\n var visibles = filter(tabstops, function (elem) {\n return isVisible(tabbingConfig, elem);\n });\n return Optional.from(visibles[tabbingConfig.firstTabstop]);\n };\n var findCurrent = function (component, tabbingConfig) {\n return tabbingConfig.focusManager.get(component).bind(function (elem) {\n return closest$3(elem, tabbingConfig.selector);\n });\n };\n var isTabstop = function (tabbingConfig, element) {\n return isVisible(tabbingConfig, element) && tabbingConfig.useTabstopAt(element);\n };\n var focusIn = function (component, tabbingConfig, _tabbingState) {\n findInitial(component, tabbingConfig).each(function (target) {\n tabbingConfig.focusManager.set(component, target);\n });\n };\n var goFromTabstop = function (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 var go = function (component, _simulatedEvent, tabbingConfig, cycle) {\n var tabstops = descendants(component.element, tabbingConfig.selector);\n return findCurrent(component, tabbingConfig).bind(function (tabstop) {\n var optStopIndex = findIndex(tabstops, curry(eq$1, tabstop));\n return optStopIndex.bind(function (stopIndex) {\n return goFromTabstop(component, tabstops, stopIndex, tabbingConfig, cycle);\n });\n });\n };\n var goBackwards = function (component, simulatedEvent, tabbingConfig) {\n var navigate = tabbingConfig.cyclic ? cyclePrev : tryPrev;\n return go(component, simulatedEvent, tabbingConfig, navigate);\n };\n var goForwards = function (component, simulatedEvent, tabbingConfig) {\n var navigate = tabbingConfig.cyclic ? cycleNext : tryNext;\n return go(component, simulatedEvent, tabbingConfig, navigate);\n };\n var execute = function (component, simulatedEvent, tabbingConfig) {\n return tabbingConfig.onEnter.bind(function (f) {\n return f(component, simulatedEvent);\n });\n };\n var exit = function (component, simulatedEvent, tabbingConfig) {\n return tabbingConfig.onEscape.bind(function (f) {\n return f(component, simulatedEvent);\n });\n };\n var getKeydownRules = constant([\n rule(and([\n isShift,\n inSet(TAB)\n ]), goBackwards),\n rule(inSet(TAB), goForwards),\n rule(inSet(ESCAPE), exit),\n rule(and([\n isNotShift,\n inSet(ENTER)\n ]), execute)\n ]);\n var getKeyupRules = constant([]);\n return typical(schema, NoState.init, getKeydownRules, getKeyupRules, function () {\n return Optional.some(focusIn);\n });\n };\n\n var AcyclicType = create$3(state$1('cyclic', never));\n\n var CyclicType = create$3(state$1('cyclic', always));\n\n var doDefaultExecute = function (component, _simulatedEvent, focused) {\n dispatch(component, focused, execute());\n return Optional.some(true);\n };\n var defaultExecute = function (component, simulatedEvent, focused) {\n var isComplex = inside(focused) && inSet(SPACE)(simulatedEvent.event);\n return isComplex ? Optional.none() : doDefaultExecute(component, simulatedEvent, focused);\n };\n var stopEventForFirefox = function (_component, _simulatedEvent) {\n return Optional.some(true);\n };\n\n var schema$4 = [\n defaulted$1('execute', defaultExecute),\n defaulted$1('useSpace', false),\n defaulted$1('useEnter', true),\n defaulted$1('useControlEnter', false),\n defaulted$1('useDown', false)\n ];\n var execute$1 = function (component, simulatedEvent, executeConfig) {\n return executeConfig.execute(component, simulatedEvent, component.element);\n };\n var getKeydownRules = function (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$1)].concat(executeConfig.useControlEnter ? [rule(and([\n isControl,\n inSet(ENTER)\n ]), execute$1)] : []);\n };\n var getKeyupRules = function (component, _simulatedEvent, executeConfig, _executeState) {\n return executeConfig.useSpace && !inside(component.element) ? [rule(inSet(SPACE), stopEventForFirefox)] : [];\n };\n var ExecutionType = typical(schema$4, NoState.init, getKeydownRules, getKeyupRules, function () {\n return Optional.none();\n });\n\n var flatgrid = function () {\n var dimensions = Cell(Optional.none());\n var setGridSize = function (numRows, numColumns) {\n dimensions.set(Optional.some({\n numRows: numRows,\n numColumns: numColumns\n }));\n };\n var getNumRows = function () {\n return dimensions.get().map(function (d) {\n return d.numRows;\n });\n };\n var getNumColumns = function () {\n return dimensions.get().map(function (d) {\n return d.numColumns;\n });\n };\n return nu$5({\n readState: function () {\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 var init$2 = function (spec) {\n return spec.state(spec);\n };\n\n var KeyingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n flatgrid: flatgrid,\n init: init$2\n });\n\n var useH = function (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 var west$2 = function (moveLeft, moveRight) {\n var movement = onDirection(moveLeft, moveRight);\n return useH(movement);\n };\n var east$2 = function (moveLeft, moveRight) {\n var movement = onDirection(moveRight, moveLeft);\n return useH(movement);\n };\n var useV = function (move) {\n return function (component, simulatedEvent, config, state) {\n return use(move, component, simulatedEvent, config, state);\n };\n };\n var use = function (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 var north$2 = useV;\n var south$2 = useV;\n var move = useV;\n\n var isHidden = function (dom) {\n return dom.offsetWidth <= 0 && dom.offsetHeight <= 0;\n };\n var isVisible = function (element) {\n return !isHidden(element.dom);\n };\n\n var locate = function (candidates, predicate) {\n return findIndex(candidates, predicate).map(function (index) {\n return {\n index: index,\n candidates: candidates\n };\n });\n };\n\n var locateVisible = function (container, current, selector) {\n var predicate = function (x) {\n return eq$1(x, current);\n };\n var candidates = descendants(container, selector);\n var visible = filter(candidates, isVisible);\n return locate(visible, predicate);\n };\n var findIndex$1 = function (elements, target) {\n return findIndex(elements, function (elem) {\n return eq$1(target, elem);\n });\n };\n\n var withGrid = function (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 var cycleHorizontal = function (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 var cycleVertical = function (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(oldColumn, 0, colsInRow - 1);\n return Optional.some({\n row: newRow,\n column: newCol\n });\n });\n };\n var cycleRight = function (values, index, numRows, numCols) {\n return cycleHorizontal(values, index, numRows, numCols, +1);\n };\n var cycleLeft = function (values, index, numRows, numCols) {\n return cycleHorizontal(values, index, numRows, numCols, -1);\n };\n var cycleUp = function (values, index, numRows, numCols) {\n return cycleVertical(values, index, numRows, numCols, -1);\n };\n var cycleDown = function (values, index, numRows, numCols) {\n return cycleVertical(values, index, numRows, numCols, +1);\n };\n\n var schema$5 = [\n strict$1('selector'),\n defaulted$1('execute', defaultExecute),\n onKeyboardHandler('onEscape'),\n defaulted$1('captureTab', false),\n initSize()\n ];\n var focusIn = function (component, gridConfig, _gridState) {\n descendant$1(component.element, gridConfig.selector).each(function (first) {\n gridConfig.focusManager.set(component, first);\n });\n };\n var findCurrent = function (component, gridConfig) {\n return gridConfig.focusManager.get(component).bind(function (elem) {\n return closest$3(elem, gridConfig.selector);\n });\n };\n var execute$2 = function (component, simulatedEvent, gridConfig, _gridState) {\n return findCurrent(component, gridConfig).bind(function (focused) {\n return gridConfig.execute(component, simulatedEvent, focused);\n });\n };\n var doMove = function (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 var handleTab = function (_component, _simulatedEvent, gridConfig) {\n return gridConfig.captureTab ? Optional.some(true) : Optional.none();\n };\n var doEscape = function (component, simulatedEvent, gridConfig) {\n return gridConfig.onEscape(component, simulatedEvent);\n };\n var moveLeft = doMove(cycleLeft);\n var moveRight = doMove(cycleRight);\n var moveNorth = doMove(cycleUp);\n var moveSouth = doMove(cycleDown);\n var getKeydownRules$1 = constant([\n rule(inSet(LEFT), west$2(moveLeft, moveRight)),\n rule(inSet(RIGHT), east$2(moveLeft, moveRight)),\n rule(inSet(UP), north$2(moveNorth)),\n rule(inSet(DOWN), south$2(moveSouth)),\n rule(and([\n isShift,\n inSet(TAB)\n ]), handleTab),\n rule(and([\n isNotShift,\n inSet(TAB)\n ]), handleTab),\n rule(inSet(ESCAPE), doEscape),\n rule(inSet(SPACE.concat(ENTER)), execute$2)\n ]);\n var getKeyupRules$1 = constant([rule(inSet(SPACE), stopEventForFirefox)]);\n var FlatgridType = typical(schema$5, flatgrid, getKeydownRules$1, getKeyupRules$1, function () {\n return Optional.some(focusIn);\n });\n\n var horizontal = function (container, selector, current, delta) {\n var isDisabledButton = function (candidate) {\n return name(candidate) === 'button' && get$3(candidate, 'disabled') === 'disabled';\n };\n var tryCycle = function (initial, index, candidates) {\n var newIndex = cycleBy(index, delta, 0, candidates.length - 1);\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 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$6 = [\n strict$1('selector'),\n defaulted$1('getInitial', Optional.none),\n defaulted$1('execute', defaultExecute),\n onKeyboardHandler('onEscape'),\n defaulted$1('executeOnMove', false),\n defaulted$1('allowVertical', true)\n ];\n var findCurrent$1 = function (component, flowConfig) {\n return flowConfig.focusManager.get(component).bind(function (elem) {\n return closest$3(elem, flowConfig.selector);\n });\n };\n var execute$3 = function (component, simulatedEvent, flowConfig) {\n return findCurrent$1(component, flowConfig).bind(function (focused) {\n return flowConfig.execute(component, simulatedEvent, focused);\n });\n };\n var focusIn$1 = function (component, flowConfig, _state) {\n flowConfig.getInitial(component).orThunk(function () {\n return descendant$1(component.element, flowConfig.selector);\n }).each(function (first) {\n flowConfig.focusManager.set(component, first);\n });\n };\n var moveLeft$1 = function (element, focused, info) {\n return horizontal(element, info.selector, focused, -1);\n };\n var moveRight$1 = function (element, focused, info) {\n return horizontal(element, info.selector, focused, +1);\n };\n var doMove$1 = function (movement) {\n return function (component, simulatedEvent, flowConfig, flowState) {\n return movement(component, simulatedEvent, flowConfig, flowState).bind(function () {\n return flowConfig.executeOnMove ? execute$3(component, simulatedEvent, flowConfig) : Optional.some(true);\n });\n };\n };\n var doEscape$1 = function (component, simulatedEvent, flowConfig) {\n return flowConfig.onEscape(component, simulatedEvent);\n };\n var getKeydownRules$2 = function (_component, _se, flowConfig, _flowState) {\n var westMovers = LEFT.concat(flowConfig.allowVertical ? UP : []);\n var eastMovers = RIGHT.concat(flowConfig.allowVertical ? DOWN : []);\n return [\n rule(inSet(westMovers), doMove$1(west$2(moveLeft$1, moveRight$1))),\n rule(inSet(eastMovers), doMove$1(east$2(moveLeft$1, moveRight$1))),\n rule(inSet(ENTER), execute$3),\n rule(inSet(SPACE), execute$3),\n rule(inSet(ESCAPE), doEscape$1)\n ];\n };\n var getKeyupRules$2 = constant([rule(inSet(SPACE), stopEventForFirefox)]);\n var FlowType = typical(schema$6, NoState.init, getKeydownRules$2, getKeyupRules$2, function () {\n return Optional.some(focusIn$1);\n });\n\n var toCell = function (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 var cycleHorizontal$1 = function (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 var cycleVertical$1 = function (matrix, colIndex, startRow, deltaRow) {\n var nextRowIndex = cycleBy(startRow, deltaRow, 0, matrix.length - 1);\n var colsInNextRow = matrix[nextRowIndex].length;\n var nextColIndex = clamp(colIndex, 0, colsInNextRow - 1);\n return toCell(matrix, nextRowIndex, nextColIndex);\n };\n var moveHorizontal = function (matrix, rowIndex, startCol, deltaCol) {\n var row = matrix[rowIndex];\n var colsInRow = row.length;\n var newColIndex = clamp(startCol + deltaCol, 0, colsInRow - 1);\n return toCell(matrix, rowIndex, newColIndex);\n };\n var moveVertical = function (matrix, colIndex, startRow, deltaRow) {\n var nextRowIndex = clamp(startRow + deltaRow, 0, matrix.length - 1);\n var colsInNextRow = matrix[nextRowIndex].length;\n var nextColIndex = clamp(colIndex, 0, colsInNextRow - 1);\n return toCell(matrix, nextRowIndex, nextColIndex);\n };\n var cycleRight$1 = function (matrix, startRow, startCol) {\n return cycleHorizontal$1(matrix, startRow, startCol, +1);\n };\n var cycleLeft$1 = function (matrix, startRow, startCol) {\n return cycleHorizontal$1(matrix, startRow, startCol, -1);\n };\n var cycleUp$1 = function (matrix, startRow, startCol) {\n return cycleVertical$1(matrix, startCol, startRow, -1);\n };\n var cycleDown$1 = function (matrix, startRow, startCol) {\n return cycleVertical$1(matrix, startCol, startRow, +1);\n };\n var moveLeft$2 = function (matrix, startRow, startCol) {\n return moveHorizontal(matrix, startRow, startCol, -1);\n };\n var moveRight$2 = function (matrix, startRow, startCol) {\n return moveHorizontal(matrix, startRow, startCol, +1);\n };\n var moveUp = function (matrix, startRow, startCol) {\n return moveVertical(matrix, startCol, startRow, -1);\n };\n var moveDown = function (matrix, startRow, startCol) {\n return moveVertical(matrix, startCol, startRow, +1);\n };\n\n var schema$7 = [\n strictObjOf('selectors', [\n strict$1('row'),\n strict$1('cell')\n ]),\n defaulted$1('cycles', true),\n defaulted$1('previousSelector', Optional.none),\n defaulted$1('execute', defaultExecute)\n ];\n var focusIn$2 = function (component, matrixConfig, _state) {\n var focused = matrixConfig.previousSelector(component).orThunk(function () {\n var selectors = matrixConfig.selectors;\n return descendant$1(component.element, selectors.cell);\n });\n focused.each(function (cell) {\n matrixConfig.focusManager.set(component, cell);\n });\n };\n var execute$4 = function (component, simulatedEvent, matrixConfig) {\n return search(component.element).bind(function (focused) {\n return matrixConfig.execute(component, simulatedEvent, focused);\n });\n };\n var toMatrix = function (rows, matrixConfig) {\n return map(rows, function (row) {\n return descendants(row, matrixConfig.selectors.cell);\n });\n };\n var doMove$2 = function (ifCycle, ifMove) {\n return function (element, focused, matrixConfig) {\n var move = matrixConfig.cycles ? ifCycle : ifMove;\n return closest$3(focused, matrixConfig.selectors.row).bind(function (inRow) {\n var cellsInRow = descendants(inRow, matrixConfig.selectors.cell);\n return findIndex$1(cellsInRow, focused).bind(function (colIndex) {\n var allRows = descendants(element, matrixConfig.selectors.row);\n return findIndex$1(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 var moveLeft$3 = doMove$2(cycleLeft$1, moveLeft$2);\n var moveRight$3 = doMove$2(cycleRight$1, moveRight$2);\n var moveNorth$1 = doMove$2(cycleUp$1, moveUp);\n var moveSouth$1 = doMove$2(cycleDown$1, moveDown);\n var getKeydownRules$3 = constant([\n rule(inSet(LEFT), west$2(moveLeft$3, moveRight$3)),\n rule(inSet(RIGHT), east$2(moveLeft$3, moveRight$3)),\n rule(inSet(UP), north$2(moveNorth$1)),\n rule(inSet(DOWN), south$2(moveSouth$1)),\n rule(inSet(SPACE.concat(ENTER)), execute$4)\n ]);\n var getKeyupRules$3 = constant([rule(inSet(SPACE), stopEventForFirefox)]);\n var MatrixType = typical(schema$7, NoState.init, getKeydownRules$3, getKeyupRules$3, function () {\n return Optional.some(focusIn$2);\n });\n\n var schema$8 = [\n strict$1('selector'),\n defaulted$1('execute', defaultExecute),\n defaulted$1('moveOnTab', false)\n ];\n var execute$5 = function (component, simulatedEvent, menuConfig) {\n return menuConfig.focusManager.get(component).bind(function (focused) {\n return menuConfig.execute(component, simulatedEvent, focused);\n });\n };\n var focusIn$3 = function (component, menuConfig, _state) {\n descendant$1(component.element, menuConfig.selector).each(function (first) {\n menuConfig.focusManager.set(component, first);\n });\n };\n var moveUp$1 = function (element, focused, info) {\n return horizontal(element, info.selector, focused, -1);\n };\n var moveDown$1 = function (element, focused, info) {\n return horizontal(element, info.selector, focused, +1);\n };\n var fireShiftTab = function (component, simulatedEvent, menuConfig, menuState) {\n return menuConfig.moveOnTab ? move(moveUp$1)(component, simulatedEvent, menuConfig, menuState) : Optional.none();\n };\n var fireTab = function (component, simulatedEvent, menuConfig, menuState) {\n return menuConfig.moveOnTab ? move(moveDown$1)(component, simulatedEvent, menuConfig, menuState) : Optional.none();\n };\n var getKeydownRules$4 = constant([\n rule(inSet(UP), move(moveUp$1)),\n rule(inSet(DOWN), move(moveDown$1)),\n rule(and([\n isShift,\n inSet(TAB)\n ]), fireShiftTab),\n rule(and([\n isNotShift,\n inSet(TAB)\n ]), fireTab),\n rule(inSet(ENTER), execute$5),\n rule(inSet(SPACE), execute$5)\n ]);\n var getKeyupRules$4 = constant([rule(inSet(SPACE), stopEventForFirefox)]);\n var MenuType = typical(schema$8, NoState.init, getKeydownRules$4, getKeyupRules$4, function () {\n return Optional.some(focusIn$3);\n });\n\n var schema$9 = [\n onKeyboardHandler('onSpace'),\n onKeyboardHandler('onEnter'),\n onKeyboardHandler('onShiftEnter'),\n onKeyboardHandler('onLeft'),\n onKeyboardHandler('onRight'),\n onKeyboardHandler('onTab'),\n onKeyboardHandler('onShiftTab'),\n onKeyboardHandler('onUp'),\n onKeyboardHandler('onDown'),\n onKeyboardHandler('onEscape'),\n defaulted$1('stopSpaceKeyup', false),\n option('focusIn')\n ];\n var getKeydownRules$5 = function (component, simulatedEvent, specialInfo) {\n return [\n rule(inSet(SPACE), specialInfo.onSpace),\n rule(and([\n isNotShift,\n inSet(ENTER)\n ]), specialInfo.onEnter),\n rule(and([\n isShift,\n inSet(ENTER)\n ]), specialInfo.onShiftEnter),\n rule(and([\n isShift,\n inSet(TAB)\n ]), specialInfo.onShiftTab),\n rule(and([\n isNotShift,\n inSet(TAB)\n ]), specialInfo.onTab),\n rule(inSet(UP), specialInfo.onUp),\n rule(inSet(DOWN), specialInfo.onDown),\n rule(inSet(LEFT), specialInfo.onLeft),\n rule(inSet(RIGHT), specialInfo.onRight),\n rule(inSet(SPACE), specialInfo.onSpace),\n rule(inSet(ESCAPE), specialInfo.onEscape)\n ];\n };\n var getKeyupRules$5 = function (component, simulatedEvent, specialInfo) {\n return specialInfo.stopSpaceKeyup ? [rule(inSet(SPACE), stopEventForFirefox)] : [];\n };\n var SpecialType = typical(schema$9, NoState.init, getKeydownRules$5, getKeyupRules$5, function (specialInfo) {\n return specialInfo.focusIn;\n });\n\n var acyclic = AcyclicType.schema();\n var cyclic = CyclicType.schema();\n var flow = FlowType.schema();\n var flatgrid$1 = FlatgridType.schema();\n var matrix = MatrixType.schema();\n var execution = ExecutionType.schema();\n var menu = MenuType.schema();\n var special = SpecialType.schema();\n\n var KeyboardBranches = /*#__PURE__*/Object.freeze({\n __proto__: null,\n acyclic: acyclic,\n cyclic: cyclic,\n flow: flow,\n flatgrid: flatgrid$1,\n matrix: matrix,\n execution: execution,\n menu: menu,\n special: special\n });\n\n var isFlatgridState = function (keyState) {\n return hasNonNullableKey(keyState, 'setGridSize');\n };\n var Keying = createModes$1({\n branchKey: 'mode',\n branches: KeyboardBranches,\n name: 'keying',\n active: {\n events: function (keyingConfig, keyingState) {\n var handler = keyingConfig.handler;\n return handler.toEvents(keyingConfig, keyingState);\n }\n },\n apis: {\n focusIn: function (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 (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$5 = function (component, replaceConfig, replaceState, data) {\n preserve(function () {\n var newChildren = map(data, component.getSystem().build);\n replaceChildren(component, newChildren);\n }, component.element);\n };\n var insert = function (component, replaceConfig, insertion, childSpec) {\n var child = component.getSystem().build(childSpec);\n attachWith(component, child, insertion);\n };\n var append$2 = function (component, replaceConfig, replaceState, appendee) {\n insert(component, replaceConfig, append, appendee);\n };\n var prepend$1 = function (component, replaceConfig, replaceState, prependee) {\n insert(component, replaceConfig, prepend, prependee);\n };\n var remove$7 = function (component, replaceConfig, replaceState, removee) {\n var children = contents(component);\n var foundChild = find(children, function (child) {\n return eq$1(removee.element, child.element);\n });\n foundChild.each(detach);\n };\n var contents = function (component, _replaceConfig) {\n return component.components();\n };\n var replaceAt = function (component, replaceConfig, replaceState, replaceeIndex, replacer) {\n var children = contents(component);\n return Optional.from(children[replaceeIndex]).map(function (replacee) {\n remove$7(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 var replaceBy = function (component, replaceConfig, replaceState, replaceePred, replacer) {\n var children = contents(component);\n return findIndex(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$2,\n prepend: prepend$1,\n remove: remove$7,\n replaceAt: replaceAt,\n replaceBy: replaceBy,\n set: set$5,\n contents: contents\n });\n\n var Replacing = create$1({\n fields: [],\n name: 'replacing',\n apis: ReplaceApis\n });\n\n var events$4 = function (name, eventHandlers) {\n var events = derive(eventHandlers);\n return create$1({\n fields: [strict$1('enabled')],\n name: name,\n active: { events: constant(events) }\n });\n };\n var config = function (name, eventHandlers) {\n var me = events$4(name, eventHandlers);\n return {\n key: name,\n value: {\n config: {},\n me: me,\n configAsRaw: constant({}),\n initialConfig: {},\n state: NoState\n }\n };\n };\n\n var focus$2 = function (component, focusConfig) {\n if (!focusConfig.ignore) {\n focus$1(component.element);\n focusConfig.onFocus(component);\n }\n };\n var blur$1 = function (component, focusConfig) {\n if (!focusConfig.ignore) {\n blur(component.element);\n }\n };\n var isFocused = function (component) {\n return hasFocus(component.element);\n };\n\n var FocusApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n focus: focus$2,\n blur: blur$1,\n isFocused: isFocused\n });\n\n var exhibit$1 = function (base, focusConfig) {\n var mod = focusConfig.ignore ? {} : { attributes: { tabindex: '-1' } };\n return nu$6(mod);\n };\n var events$5 = function (focusConfig) {\n return derive([run(focus(), function (component, simulatedEvent) {\n focus$2(component, focusConfig);\n simulatedEvent.stop();\n })].concat(focusConfig.stopMousedown ? [run(mousedown(), function (_, simulatedEvent) {\n simulatedEvent.event.prevent();\n })] : []));\n };\n\n var ActiveFocus = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit$1,\n events: events$5\n });\n\n var FocusSchema = [\n onHandler('onFocus'),\n defaulted$1('stopMousedown', false),\n defaulted$1('ignore', false)\n ];\n\n var Focusing = create$1({\n fields: FocusSchema,\n name: 'focusing',\n active: ActiveFocus,\n apis: FocusApis\n });\n\n var SetupBehaviourCellState = function (initialState) {\n var init = function () {\n var cell = Cell(initialState);\n var get = function () {\n return cell.get();\n };\n var set = function (newState) {\n return cell.set(newState);\n };\n var clear = function () {\n return cell.set(initialState);\n };\n var readState = function () {\n return cell.get();\n };\n return {\n get: get,\n set: set,\n clear: clear,\n readState: readState\n };\n };\n return { init: init };\n };\n\n var updateAriaState = function (component, toggleConfig, toggleState) {\n var ariaInfo = toggleConfig.aria;\n ariaInfo.update(component, ariaInfo, toggleState.get());\n };\n var updateClass = function (component, toggleConfig, toggleState) {\n toggleConfig.toggleClass.each(function (toggleClass) {\n if (toggleState.get()) {\n add$2(component.element, toggleClass);\n } else {\n remove$4(component.element, toggleClass);\n }\n });\n };\n var toggle = function (component, toggleConfig, toggleState) {\n set$6(component, toggleConfig, toggleState, !toggleState.get());\n };\n var on$1 = function (component, toggleConfig, toggleState) {\n toggleState.set(true);\n updateClass(component, toggleConfig, toggleState);\n updateAriaState(component, toggleConfig, toggleState);\n };\n var off = function (component, toggleConfig, toggleState) {\n toggleState.set(false);\n updateClass(component, toggleConfig, toggleState);\n updateAriaState(component, toggleConfig, toggleState);\n };\n var set$6 = function (component, toggleConfig, toggleState, state) {\n var action = state ? on$1 : off;\n action(component, toggleConfig, toggleState);\n };\n var isOn = function (component, toggleConfig, toggleState) {\n return toggleState.get();\n };\n var onLoad$4 = function (component, toggleConfig, toggleState) {\n set$6(component, toggleConfig, toggleState, toggleConfig.selected);\n };\n\n var ToggleApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n onLoad: onLoad$4,\n toggle: toggle,\n isOn: isOn,\n on: on$1,\n off: off,\n set: set$6\n });\n\n var exhibit$2 = function () {\n return nu$6({});\n };\n var events$6 = function (toggleConfig, toggleState) {\n var execute = executeEvent(toggleConfig, toggleState, toggle);\n var load = loadEvent(toggleConfig, toggleState, onLoad$4);\n return derive(flatten([\n toggleConfig.toggleOnExecute ? [execute] : [],\n [load]\n ]));\n };\n\n var ActiveToggle = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit$2,\n events: events$6\n });\n\n var updatePressed = function (component, ariaInfo, status) {\n set$1(component.element, 'aria-pressed', status);\n if (ariaInfo.syncWithExpanded) {\n updateExpanded(component, ariaInfo, status);\n }\n };\n var updateSelected = function (component, ariaInfo, status) {\n set$1(component.element, 'aria-selected', status);\n };\n var updateChecked = function (component, ariaInfo, status) {\n set$1(component.element, 'aria-checked', status);\n };\n var updateExpanded = function (component, ariaInfo, status) {\n set$1(component.element, 'aria-expanded', status);\n };\n\n var ToggleSchema = [\n defaulted$1('selected', false),\n option('toggleClass'),\n defaulted$1('toggleOnExecute', true),\n defaultedOf('aria', { mode: 'none' }, choose$1('mode', {\n pressed: [\n defaulted$1('syncWithExpanded', false),\n output('update', updatePressed)\n ],\n checked: [output('update', updateChecked)],\n expanded: [output('update', updateExpanded)],\n selected: [output('update', updateSelected)],\n none: [output('update', noop)]\n }))\n ];\n\n var Toggling = create$1({\n fields: ToggleSchema,\n name: 'toggling',\n active: ActiveToggle,\n apis: ToggleApis,\n state: SetupBehaviourCellState(false)\n });\n\n var pointerEvents = function () {\n var onClick = function (component, simulatedEvent) {\n simulatedEvent.stop();\n emitExecute(component);\n };\n return [\n run(click(), onClick),\n run(tap(), onClick),\n cutter(touchstart()),\n cutter(mousedown())\n ];\n };\n var events$7 = function (optAction) {\n var executeHandler = function (action) {\n return runOnExecute(function (component, simulatedEvent) {\n action(component);\n simulatedEvent.stop();\n });\n };\n return derive(flatten([\n optAction.map(executeHandler).toArray(),\n pointerEvents()\n ]));\n };\n\n var hoverEvent = 'alloy.item-hover';\n var focusEvent = 'alloy.item-focus';\n var onHover = function (item) {\n if (search(item.element).isNone() || Focusing.isFocused(item)) {\n if (!Focusing.isFocused(item)) {\n Focusing.focus(item);\n }\n emitWith(item, hoverEvent, { item: item });\n }\n };\n var onFocus = function (item) {\n emitWith(item, focusEvent, { item: item });\n };\n var hover = constant(hoverEvent);\n var focus$3 = constant(focusEvent);\n\n var builder = function (detail) {\n return {\n dom: detail.dom,\n domModification: __assign(__assign({}, detail.domModification), { attributes: __assign(__assign(__assign({ 'role': detail.toggling.isSome() ? 'menuitemcheckbox' : 'menuitem' }, detail.domModification.attributes), { 'aria-haspopup': detail.hasSubmenu }), detail.hasSubmenu ? { 'aria-expanded': false } : {}) }),\n behaviours: SketchBehaviours.augment(detail.itemBehaviours, [\n detail.toggling.fold(Toggling.revoke, function (tConfig) {\n return Toggling.config(__assign({ aria: { mode: 'checked' } }, tConfig));\n }),\n Focusing.config({\n ignore: detail.ignoreFocus,\n stopMousedown: detail.ignoreFocus,\n onFocus: function (component) {\n onFocus(component);\n }\n }),\n Keying.config({ mode: 'execution' }),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: detail.data\n }\n }),\n config('item-type-events', __spreadArrays(pointerEvents(), [\n run(mouseover(), onHover),\n run(focusItem(), Focusing.focus)\n ]))\n ]),\n components: detail.components,\n eventOrder: detail.eventOrder\n };\n };\n var schema$a = [\n strict$1('data'),\n strict$1('components'),\n strict$1('dom'),\n defaulted$1('hasSubmenu', false),\n option('toggling'),\n SketchBehaviours.field('itemBehaviours', [\n Toggling,\n Focusing,\n Keying,\n Representing\n ]),\n defaulted$1('ignoreFocus', false),\n defaulted$1('domModification', {}),\n output('builder', builder),\n defaulted$1('eventOrder', {})\n ];\n\n var builder$1 = function (detail) {\n return {\n dom: detail.dom,\n components: detail.components,\n events: derive([stopper(focusItem())])\n };\n };\n var schema$b = [\n strict$1('dom'),\n strict$1('components'),\n output('builder', builder$1)\n ];\n\n var owner$2 = constant('item-widget');\n var parts = constant([required({\n name: 'widget',\n overrides: function (detail) {\n return {\n behaviours: derive$1([Representing.config({\n store: {\n mode: 'manual',\n getValue: function (_component) {\n return detail.data;\n },\n setValue: noop\n }\n })])\n };\n }\n })]);\n\n var builder$2 = function (detail) {\n var subs = substitutes(owner$2(), detail, parts());\n var components$1 = components(owner$2(), detail, subs.internals());\n var focusWidget = function (component) {\n return getPart(component, detail, 'widget').map(function (widget) {\n Keying.focusIn(widget);\n return widget;\n });\n };\n var onHorizontalArrow = function (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 return {\n dom: detail.dom,\n components: components$1,\n domModification: detail.domModification,\n events: derive([\n runOnExecute(function (component, simulatedEvent) {\n focusWidget(component).each(function (_widget) {\n simulatedEvent.stop();\n });\n }),\n run(mouseover(), onHover),\n run(focusItem(), function (component, _simulatedEvent) {\n if (detail.autofocus) {\n focusWidget(component);\n } else {\n Focusing.focus(component);\n }\n })\n ]),\n behaviours: SketchBehaviours.augment(detail.widgetBehaviours, [\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: detail.data\n }\n }),\n Focusing.config({\n ignore: detail.ignoreFocus,\n onFocus: function (component) {\n onFocus(component);\n }\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 (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$c = [\n strict$1('uid'),\n strict$1('data'),\n strict$1('components'),\n strict$1('dom'),\n defaulted$1('autofocus', false),\n defaulted$1('ignoreFocus', false),\n SketchBehaviours.field('widgetBehaviours', [\n Representing,\n Focusing,\n Keying\n ]),\n defaulted$1('domModification', {}),\n defaultUidsSchema(parts()),\n output('builder', builder$2)\n ];\n\n var itemSchema$1 = choose$1('type', {\n widget: schema$c,\n item: schema$a,\n separator: schema$b\n });\n var configureGrid = function (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 var configureMatrix = function (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 var configureMenu = function (detail, movementInfo) {\n return {\n mode: 'menu',\n selector: '.' + detail.markers.item,\n moveOnTab: movementInfo.moveOnTab,\n focusManager: detail.focusManager\n };\n };\n var parts$1 = constant([group({\n factory: {\n sketch: function (spec) {\n var itemInfo = asRawOrDie('menu.spec item', itemSchema$1, spec);\n return itemInfo.builder(itemInfo);\n }\n },\n name: 'items',\n unit: 'item',\n defaults: function (detail, u) {\n return u.hasOwnProperty('uid') ? u : __assign(__assign({}, u), { uid: generate$2('item') });\n },\n overrides: function (detail, u) {\n return {\n type: u.type,\n ignoreFocus: detail.fakeFocus,\n domModification: { classes: [detail.markers.item] }\n };\n }\n })]);\n var schema$d = constant([\n strict$1('value'),\n strict$1('items'),\n strict$1('dom'),\n strict$1('components'),\n defaulted$1('eventOrder', {}),\n field$1('menuBehaviours', [\n Highlighting,\n Representing,\n Composing,\n Keying\n ]),\n defaultedOf('movement', {\n mode: 'menu',\n moveOnTab: true\n }, choose$1('mode', {\n grid: [\n initSize(),\n output('config', configureGrid)\n ],\n matrix: [\n output('config', configureMatrix),\n strict$1('rowSelector')\n ],\n menu: [\n defaulted$1('moveOnTab', true),\n output('config', configureMenu)\n ]\n })),\n itemMarkers(),\n defaulted$1('fakeFocus', false),\n defaulted$1('focusManager', dom()),\n onHandler('onHighlight')\n ]);\n\n var focus$4 = constant('alloy.menu-focus');\n\n var make$1 = function (detail, components, _spec, _externals) {\n return {\n uid: detail.uid,\n dom: detail.dom,\n markers: detail.markers,\n behaviours: augment(detail.menuBehaviours, [\n Highlighting.config({\n highlightClass: detail.markers.selectedItem,\n itemClass: detail.markers.item,\n onHighlight: detail.onHighlight\n }),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: detail.value\n }\n }),\n Composing.config({ find: Optional.some }),\n Keying.config(detail.movement.config(detail, detail.movement))\n ]),\n events: derive([\n run(focus$3(), 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$4(), {\n menu: menu,\n item: item\n });\n });\n }),\n run(hover(), function (menu, simulatedEvent) {\n var item = simulatedEvent.event.item;\n Highlighting.highlight(menu, item);\n })\n ]),\n components: components,\n eventOrder: detail.eventOrder,\n domModification: { attributes: { role: 'menu' } }\n };\n };\n\n var Menu = composite$1({\n name: 'Menu',\n configFields: schema$d(),\n partFields: parts$1(),\n factory: make$1\n });\n\n var transpose = function (obj) {\n return tupleMap(obj, function (v, k) {\n return {\n k: v,\n v: k\n };\n });\n };\n var trace = function (items, byItem, byMenu, finish) {\n return get$1(byMenu, finish).bind(function (triggerItem) {\n return get$1(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 var generate$5 = function (menus, expansions) {\n var items = {};\n each$1(menus, function (menuItems, menu) {\n each(menuItems, function (item) {\n items[item] = menu;\n });\n });\n var byItem = expansions;\n var byMenu = transpose(expansions);\n var menuPaths = map$2(byMenu, function (_triggerItem, submenu) {\n return [submenu].concat(trace(items, byItem, byMenu, submenu));\n });\n return map$2(items, function (menu) {\n return get$1(menuPaths, menu).getOr([menu]);\n });\n };\n\n var init$3 = function () {\n var expansions = Cell({});\n var menus = Cell({});\n var paths = Cell({});\n var primary = Cell(Optional.none());\n var directory = Cell({});\n var clear = function () {\n expansions.set({});\n menus.set({});\n paths.set({});\n primary.set(Optional.none());\n };\n var isClear = function () {\n return primary.get().isNone();\n };\n var setMenuBuilt = function (menuName, built) {\n var _a;\n menus.set(__assign(__assign({}, menus.get()), (_a = {}, _a[menuName] = {\n type: 'prepared',\n menu: built\n }, _a)));\n };\n var setContents = function (sPrimary, sMenus, sExpansions, dir) {\n primary.set(Optional.some(sPrimary));\n expansions.set(sExpansions);\n menus.set(sMenus);\n directory.set(dir);\n var sPaths = generate$5(dir, sExpansions);\n paths.set(sPaths);\n };\n var getTriggeringItem = function (menuValue) {\n return find$1(expansions.get(), function (v, _k) {\n return v === menuValue;\n });\n };\n var getTriggerData = function (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 var getTriggeringPath = function (itemValue, getItemByValue) {\n var extraPath = filter(lookupItem(itemValue).toArray(), function (menuValue) {\n return getPreparedMenu(menuValue).isSome();\n });\n return get$1(paths.get(), itemValue).bind(function (path) {\n var revPath = reverse(extraPath.concat(path));\n var triggers = bind(revPath, function (menuValue, menuIndex) {\n return getTriggerData(menuValue, getItemByValue, revPath.slice(0, menuIndex + 1)).fold(function () {\n return primary.get().is(menuValue) ? [] : [Optional.none()];\n }, function (data) {\n return [Optional.some(data)];\n });\n });\n return sequence(triggers);\n });\n };\n var expand = function (itemValue) {\n return get$1(expansions.get(), itemValue).map(function (menu) {\n var current = get$1(paths.get(), itemValue).getOr([]);\n return [menu].concat(current);\n });\n };\n var collapse = function (itemValue) {\n return get$1(paths.get(), itemValue).bind(function (path) {\n return path.length > 1 ? Optional.some(path.slice(1)) : Optional.none();\n });\n };\n var refresh = function (itemValue) {\n return get$1(paths.get(), itemValue);\n };\n var getPreparedMenu = function (menuValue) {\n return lookupMenu(menuValue).bind(extractPreparedMenu);\n };\n var lookupMenu = function (menuValue) {\n return get$1(menus.get(), menuValue);\n };\n var lookupItem = function (itemValue) {\n return get$1(expansions.get(), itemValue);\n };\n var otherMenus = function (path) {\n var menuValues = directory.get();\n return difference(keys(menuValues), path);\n };\n var getPrimary = function () {\n return primary.get().bind(getPreparedMenu);\n };\n var getMenus = function () {\n return menus.get();\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 var extractPreparedMenu = function (prep) {\n return prep.type === 'prepared' ? Optional.some(prep.menu) : Optional.none();\n };\n var LayeredState = {\n init: init$3,\n extractPreparedMenu: extractPreparedMenu\n };\n\n var make$2 = function (detail, _rawUiSpec) {\n var submenuParentItems = Cell(Optional.none());\n var buildMenus = function (container, primaryName, menus) {\n return map$2(menus, function (spec, name) {\n var makeSketch = function () {\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()\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 var layeredState = LayeredState.init();\n var setup = function (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 var getItemValue = function (item) {\n return Representing.getValue(item).value;\n };\n var getItemByValue = function (_container, menus, itemValue) {\n return findMap(menus, function (menu) {\n if (!menu.getSystem().isConnected()) {\n return Optional.none();\n }\n var candidates = Highlighting.getCandidates(menu);\n return find(candidates, function (c) {\n return getItemValue(c) === itemValue;\n });\n });\n };\n var toDirectory = function (_container) {\n return map$2(detail.data.menus, function (data, _menuName) {\n return bind(data.items, function (item) {\n return item.type === 'separator' ? [] : [item.data.value];\n });\n });\n };\n var setActiveMenu = function (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 var getMenus = function (state, menuValues) {\n return cat(map(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 var closeOthers = function (container, state, path) {\n var others = getMenus(state, state.otherMenus(path));\n each(others, function (o) {\n remove$5(o.element, [detail.markers.backgroundMenu]);\n if (!detail.stayInDom) {\n Replacing.remove(container, o);\n }\n });\n };\n var getSubmenuParents = function (container) {\n return submenuParentItems.get().getOrThunk(function () {\n var r = {};\n var items = descendants(container.element, '.' + detail.markers.item);\n var parentItems = filter(items, function (i) {\n return get$3(i, 'aria-haspopup') === 'true';\n });\n each(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(Optional.some(r));\n return r;\n });\n };\n var updateAriaExpansions = function (container, path) {\n var parentItems = getSubmenuParents(container);\n each$1(parentItems, function (v, k) {\n var expanded = contains(path, k);\n set$1(v.element, 'aria-expanded', expanded);\n });\n };\n var updateMenuPath = function (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(rest, function (r) {\n add$2(r.element, detail.markers.backgroundMenu);\n });\n if (!inBody(activeMenu.element)) {\n Replacing.append(container, premade$1(activeMenu));\n }\n remove$5(activeMenu.element, [detail.markers.backgroundMenu]);\n setActiveMenu(container, activeMenu);\n closeOthers(container, state, path);\n return Optional.some(activeMenu);\n }\n });\n });\n };\n var ExpandHighlightDecision;\n (function (ExpandHighlightDecision) {\n ExpandHighlightDecision[ExpandHighlightDecision['HighlightSubmenu'] = 0] = 'HighlightSubmenu';\n ExpandHighlightDecision[ExpandHighlightDecision['HighlightParent'] = 1] = 'HighlightParent';\n }(ExpandHighlightDecision || (ExpandHighlightDecision = {})));\n var buildIfRequired = function (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 var expandRight = function (container, item, decision) {\n if (decision === void 0) {\n decision = ExpandHighlightDecision.HighlightSubmenu;\n }\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 if (!inBody(activeMenu.element)) {\n Replacing.append(container, premade$1(activeMenu));\n }\n detail.onOpenSubmenu(container, item, activeMenu, reverse(path));\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 var collapseLeft = function (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 var updateView = function (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 var onRight = function (container, item) {\n return inside(item.element) ? Optional.none() : expandRight(container, item, ExpandHighlightDecision.HighlightSubmenu);\n };\n var onLeft = function (container, item) {\n return inside(item.element) ? Optional.none() : collapseLeft(container, item);\n };\n var onEscape = function (container, item) {\n return collapseLeft(container, item).orThunk(function () {\n return detail.onEscape(container, item).map(function () {\n return container;\n });\n });\n };\n var keyOnItem = function (f) {\n return function (container, simulatedEvent) {\n return closest$3(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 var events = derive([\n run(focus$4(), 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 }),\n runOnExecute(function (component, simulatedEvent) {\n var target = simulatedEvent.event.target;\n component.getSystem().getByDom(target).each(function (item) {\n var itemValue = getItemValue(item);\n if (itemValue.indexOf('collapse-item') === 0) {\n collapseLeft(component, item);\n }\n expandRight(component, item, ExpandHighlightDecision.HighlightSubmenu).fold(function () {\n detail.onExecute(component, item);\n }, noop);\n });\n }),\n runOnAttached(function (container, _simulatedEvent) {\n setup(container).each(function (primary) {\n Replacing.append(container, premade$1(primary));\n detail.onOpenMenu(container, primary);\n if (detail.highlightImmediately) {\n setActiveMenu(container, primary);\n }\n });\n })\n ].concat(detail.navigateOnHover ? [run(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 var getActiveItem = function (container) {\n return Highlighting.getHighlighted(container).bind(Highlighting.getHighlighted);\n };\n var collapseMenuApi = function (container) {\n getActiveItem(container).each(function (currentItem) {\n collapseLeft(container, currentItem);\n });\n };\n var highlightPrimary = function (container) {\n layeredState.getPrimary().each(function (primary) {\n setActiveMenu(container, primary);\n });\n };\n var extractMenuFromContainer = function (container) {\n return Optional.from(container.components()[0]).filter(function (comp) {\n return get$3(comp.element, 'role') === 'menu';\n });\n };\n var repositionMenus = function (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(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, triggeringPath = _a.triggeringPath;\n detail.onRepositionMenu(container, primary, triggeringPath);\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, [\n Keying.config({\n mode: 'special',\n onRight: keyOnItem(onRight),\n onLeft: keyOnItem(onLeft),\n onEscape: keyOnItem(onEscape),\n focusIn: function (container, _keyInfo) {\n layeredState.getPrimary().each(function (primary) {\n dispatch(container, primary.element, focusItem());\n });\n }\n }),\n Highlighting.config({\n highlightClass: detail.markers.selectedMenu,\n itemClass: detail.markers.menu\n }),\n Composing.config({\n find: function (container) {\n return Highlighting.getHighlighted(container);\n }\n }),\n Replacing.config({})\n ]),\n eventOrder: detail.eventOrder,\n apis: apis,\n events: events\n };\n };\n var collapseItem = constant('collapse-item');\n\n var tieredData = function (primary, menus, expansions) {\n return {\n primary: primary,\n menus: menus,\n expansions: expansions\n };\n };\n var singleData = function (name, menu) {\n return {\n primary: name,\n menus: wrap$1(name, menu),\n expansions: {}\n };\n };\n var collapseItem$1 = function (text) {\n return {\n value: generate$1(collapseItem()),\n meta: { text: text }\n };\n };\n var tieredMenu = single$2({\n name: 'TieredMenu',\n configFields: [\n onStrictKeyboardHandler('onExecute'),\n onStrictKeyboardHandler('onEscape'),\n onStrictHandler('onOpenMenu'),\n onStrictHandler('onOpenSubmenu'),\n onHandler('onRepositionMenu'),\n onHandler('onCollapseMenu'),\n defaulted$1('highlightImmediately', true),\n strictObjOf('data', [\n strict$1('primary'),\n strict$1('menus'),\n strict$1('expansions')\n ]),\n defaulted$1('fakeFocus', false),\n onHandler('onHighlight'),\n onHandler('onHover'),\n tieredMenuMarkers(),\n strict$1('dom'),\n defaulted$1('navigateOnHover', true),\n defaulted$1('stayInDom', false),\n field$1('tmenuBehaviours', [\n Keying,\n Highlighting,\n Composing,\n Replacing\n ]),\n defaulted$1('eventOrder', {})\n ],\n apis: {\n collapseMenu: function (apis, tmenu) {\n apis.collapseMenu(tmenu);\n },\n highlightPrimary: function (apis, tmenu) {\n apis.highlightPrimary(tmenu);\n },\n repositionMenus: function (apis, tmenu) {\n apis.repositionMenus(tmenu);\n }\n },\n factory: make$2,\n extraApis: {\n tieredData: tieredData,\n singleData: singleData,\n collapseItem: collapseItem$1\n }\n });\n\n var makeMenu = function (detail, menuSandbox, anchor, menuSpec, getBounds) {\n var lazySink = function () {\n return detail.lazySink(menuSandbox);\n };\n var layouts = menuSpec.type === 'horizontal' ? {\n layouts: {\n onLtr: function () {\n return belowOrAbove();\n },\n onRtl: function () {\n return belowOrAboveRtl();\n }\n }\n } : {};\n var isFirstTierSubmenu = function (triggeringPaths) {\n return triggeringPaths.length === 2;\n };\n var getSubmenuLayouts = function (triggeringPaths) {\n return isFirstTierSubmenu(triggeringPaths) ? layouts : {};\n };\n return tieredMenu.sketch({\n dom: { tag: 'div' },\n data: menuSpec.data,\n markers: menuSpec.menu.markers,\n highlightImmediately: menuSpec.menu.highlightImmediately,\n onEscape: function () {\n Sandboxing.close(menuSandbox);\n detail.onEscape.map(function (handler) {\n return handler(menuSandbox);\n });\n return Optional.some(true);\n },\n onExecute: function () {\n return Optional.some(true);\n },\n onOpenMenu: function (tmenu, menu) {\n Positioning.positionWithinBounds(lazySink().getOrDie(), anchor, menu, getBounds());\n },\n onOpenSubmenu: function (tmenu, item, submenu, triggeringPaths) {\n var sink = lazySink().getOrDie();\n Positioning.position(sink, __assign({\n anchor: 'submenu',\n item: item\n }, getSubmenuLayouts(triggeringPaths)), submenu);\n },\n onRepositionMenu: function (tmenu, primaryMenu, submenuTriggers) {\n var sink = lazySink().getOrDie();\n Positioning.positionWithinBounds(sink, anchor, primaryMenu, getBounds());\n each(submenuTriggers, function (st) {\n var submenuLayouts = getSubmenuLayouts(st.triggeringPath);\n Positioning.position(sink, __assign({\n anchor: 'submenu',\n item: st.triggeringItem\n }, submenuLayouts), st.triggeredMenu);\n });\n }\n });\n };\n var factory = function (detail, spec) {\n var isPartOfRelated = function (sandbox, queryElem) {\n var related = detail.getRelated(sandbox);\n return related.exists(function (rel) {\n return isPartOf(rel, queryElem);\n });\n };\n var setContent = function (sandbox, thing) {\n Sandboxing.setContent(sandbox, thing);\n };\n var showAt = function (sandbox, anchor, thing) {\n showWithin(sandbox, anchor, thing, Optional.none());\n };\n var showWithin = function (sandbox, anchor, thing, boxElement) {\n showWithinBounds(sandbox, anchor, thing, function () {\n return boxElement.map(function (elem) {\n return box(elem);\n });\n });\n };\n var showWithinBounds = function (sandbox, anchor, thing, getBounds) {\n var sink = detail.lazySink(sandbox).getOrDie();\n Sandboxing.openWhileCloaked(sandbox, thing, function () {\n return Positioning.positionWithinBounds(sink, anchor, sandbox, getBounds());\n });\n Representing.setValue(sandbox, Optional.some({\n mode: 'position',\n anchor: anchor,\n getBounds: getBounds\n }));\n };\n var showMenuAt = function (sandbox, anchor, menuSpec) {\n showMenuWithinBounds(sandbox, anchor, menuSpec, function () {\n return Optional.none();\n });\n };\n var showMenuWithinBounds = function (sandbox, anchor, menuSpec, getBounds) {\n var menu = makeMenu(detail, sandbox, anchor, menuSpec, getBounds);\n Sandboxing.open(sandbox, menu);\n Representing.setValue(sandbox, Optional.some({\n mode: 'menu',\n menu: menu\n }));\n };\n var hide = function (sandbox) {\n if (Sandboxing.isOpen(sandbox)) {\n Representing.setValue(sandbox, Optional.none());\n Sandboxing.close(sandbox);\n }\n };\n var getContent = function (sandbox) {\n return Sandboxing.getState(sandbox);\n };\n var reposition = function (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(function (tmenu) {\n tieredMenu.repositionMenus(tmenu);\n });\n break;\n case 'position':\n var sink = detail.lazySink(sandbox).getOrDie();\n Positioning.positionWithinBounds(sink, state.anchor, sandbox, state.getBounds());\n break;\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, [\n Sandboxing.config({\n isPartOf: function (sandbox, data, queryElem) {\n return isPartOf(data, queryElem) || isPartOfRelated(sandbox, queryElem);\n },\n getAttachPoint: function (sandbox) {\n return detail.lazySink(sandbox).getOrDie();\n },\n onOpen: function (sandbox) {\n detail.onShow(sandbox);\n },\n onClose: function (sandbox) {\n detail.onHide(sandbox);\n }\n }),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: Optional.none()\n }\n }),\n Receiving.config({\n channels: __assign(__assign({}, receivingChannel(__assign({ isExtraPart: spec.isExtraPart }, detail.fireDismissalEventInstead.map(function (fe) {\n return { fireEventInstead: { event: fe.event } };\n }).getOr({})))), receivingChannel$1(__assign(__assign({}, detail.fireRepositionEventInstead.map(function (fe) {\n return { fireEventInstead: { event: fe.event } };\n }).getOr({})), { doReposition: reposition })))\n })\n ]),\n eventOrder: detail.eventOrder,\n apis: apis\n };\n };\n var InlineView = single$2({\n name: 'InlineView',\n configFields: [\n strict$1('lazySink'),\n onHandler('onShow'),\n onHandler('onHide'),\n optionFunction('onEscape'),\n field$1('inlineBehaviours', [\n Sandboxing,\n Representing,\n Receiving\n ]),\n optionObjOf('fireDismissalEventInstead', [defaulted$1('event', dismissRequested())]),\n optionObjOf('fireRepositionEventInstead', [defaulted$1('event', repositionRequested())]),\n defaulted$1('getRelated', Optional.none),\n defaulted$1('isExtraPart', never),\n defaulted$1('eventOrder', Optional.none)\n ],\n factory: factory,\n apis: {\n showAt: function (apis, component, anchor, thing) {\n apis.showAt(component, anchor, thing);\n },\n showWithin: function (apis, component, anchor, thing, boxElement) {\n apis.showWithin(component, anchor, thing, boxElement);\n },\n showWithinBounds: function (apis, component, anchor, thing, bounds) {\n apis.showWithinBounds(component, anchor, thing, bounds);\n },\n showMenuAt: function (apis, component, anchor, menuSpec) {\n apis.showMenuAt(component, anchor, menuSpec);\n },\n showMenuWithinBounds: function (apis, component, anchor, menuSpec, bounds) {\n apis.showMenuWithinBounds(component, anchor, menuSpec, bounds);\n },\n hide: function (apis, component) {\n apis.hide(component);\n },\n isOpen: function (apis, component) {\n return apis.isOpen(component);\n },\n getContent: function (apis, component) {\n return apis.getContent(component);\n },\n setContent: function (apis, component, thing) {\n apis.setContent(component, thing);\n },\n reposition: function (apis, component) {\n apis.reposition(component);\n }\n }\n });\n\n var westEdgeX$1 = function (anchor) {\n return anchor.x;\n };\n var middleX$1 = function (anchor, element) {\n return anchor.x + anchor.width / 2 - element.width / 2;\n };\n var eastEdgeX$1 = function (anchor, element) {\n return anchor.x + anchor.width - element.width;\n };\n var northY$2 = function (anchor) {\n return anchor.y;\n };\n var southY$2 = function (anchor, element) {\n return anchor.y + anchor.height - element.height;\n };\n var southeast$3 = function (anchor, element, bubbles) {\n return nu$7(eastEdgeX$1(anchor, element), southY$2(anchor, element), bubbles.innerSoutheast(), northwest(), boundsRestriction(anchor, {\n right: 0,\n bottom: 3\n }), 'layout-inner-se');\n };\n var southwest$3 = function (anchor, element, bubbles) {\n return nu$7(westEdgeX$1(anchor), southY$2(anchor, element), bubbles.innerSouthwest(), northeast(), boundsRestriction(anchor, {\n left: 1,\n bottom: 3\n }), 'layout-inner-sw');\n };\n var northeast$3 = function (anchor, element, bubbles) {\n return nu$7(eastEdgeX$1(anchor, element), northY$2(anchor), bubbles.innerNortheast(), southwest(), boundsRestriction(anchor, {\n right: 0,\n top: 2\n }), 'layout-inner-ne');\n };\n var northwest$3 = function (anchor, element, bubbles) {\n return nu$7(westEdgeX$1(anchor), northY$2(anchor), bubbles.innerNorthwest(), southeast(), boundsRestriction(anchor, {\n left: 1,\n top: 2\n }), 'layout-inner-nw');\n };\n var north$3 = function (anchor, element, bubbles) {\n return nu$7(middleX$1(anchor, element), northY$2(anchor), bubbles.innerNorth(), south(), boundsRestriction(anchor, { top: 2 }), 'layout-inner-n');\n };\n var south$3 = function (anchor, element, bubbles) {\n return nu$7(middleX$1(anchor, element), southY$2(anchor, element), bubbles.innerSouth(), north(), boundsRestriction(anchor, { bottom: 3 }), 'layout-inner-s');\n };\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.util.Delay');\n\n var factory$1 = function (detail) {\n var events = events$7(detail.action);\n var tag = detail.dom.tag;\n var lookupAttr = function (attr) {\n return get$1(detail.dom, 'attributes').bind(function (attrs) {\n return get$1(attrs, attr);\n });\n };\n var getModAttributes = function () {\n if (tag === 'button') {\n var type = lookupAttr('type').getOr('button');\n var roleAttrs = lookupAttr('role').map(function (role) {\n return { role: role };\n }).getOr({});\n return __assign({ type: type }, roleAttrs);\n } else {\n var role = lookupAttr('role').getOr('button');\n return { role: role };\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, [\n Focusing.config({}),\n Keying.config({\n mode: 'execution',\n useSpace: true,\n useEnter: true\n })\n ]),\n domModification: { attributes: getModAttributes() },\n eventOrder: detail.eventOrder\n };\n };\n var Button = single$2({\n name: 'Button',\n factory: factory$1,\n configFields: [\n defaulted$1('uid', undefined),\n strict$1('dom'),\n defaulted$1('components', []),\n SketchBehaviours.field('buttonBehaviours', [\n Focusing,\n Keying\n ]),\n option('action'),\n option('role'),\n defaulted$1('eventOrder', {})\n ]\n });\n\n var record = function (spec) {\n var uid = isSketchSpec(spec) && hasNonNullableKey(spec, 'uid') ? spec.uid : generate$2('memento');\n var get = function (anyInSystem) {\n return anyInSystem.getSystem().getByUid(uid).getOrDie();\n };\n var getOpt = function (anyInSystem) {\n return anyInSystem.getSystem().getByUid(uid).toOptional();\n };\n var asSpec = function () {\n return __assign(__assign({}, spec), { uid: uid });\n };\n return {\n get: get,\n getOpt: getOpt,\n asSpec: asSpec\n };\n };\n\n var defaultIcon = function (icons) {\n return Optional.from(icons()['temporary-placeholder']).getOr('!not found!');\n };\n var get$e = function (name, icons) {\n return Optional.from(icons()[name.toLowerCase()]).getOrThunk(function () {\n return defaultIcon(icons);\n });\n };\n var getOr = function (name, icons, fallback) {\n return Optional.from(icons()[name.toLowerCase()]).or(fallback).getOrThunk(function () {\n return defaultIcon(icons);\n });\n };\n var getFirst$1 = function (names, icons) {\n return findMap(names, function (name) {\n return Optional.from(icons()[name.toLowerCase()]);\n }).getOrThunk(function () {\n return defaultIcon(icons);\n });\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 var factory$2 = function (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 var renderPercentBar = function (percent) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-bar'],\n attributes: { style: 'width: ' + percent + '%' }\n }\n };\n };\n var renderPercentText = function (percent) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-text'],\n innerHtml: percent + '%'\n }\n };\n };\n var memBannerProgress = record({\n dom: {\n tag: 'div',\n classes: detail.progress ? [\n 'tox-progress-bar',\n 'tox-progress-indicator'\n ] : ['tox-progress-bar']\n },\n components: [\n {\n dom: {\n tag: 'div',\n classes: ['tox-bar-container']\n },\n components: [renderPercentBar(0)]\n },\n renderPercentText(0)\n ],\n behaviours: derive$1([Replacing.config({})])\n });\n var updateProgress = function (comp, percent) {\n if (comp.getSystem().isConnected()) {\n memBannerProgress.getOpt(comp).each(function (progress) {\n Replacing.set(progress, [\n {\n dom: {\n tag: 'div',\n classes: ['tox-bar-container']\n },\n components: [renderPercentBar(percent)]\n },\n renderPercentText(percent)\n ]);\n });\n }\n };\n var updateText = function (comp, text$1) {\n if (comp.getSystem().isConnected()) {\n var banner = memBannerText.get(comp);\n Replacing.set(banner, [text(text$1)]);\n }\n };\n var apis = {\n updateProgress: updateProgress,\n updateText: updateText\n };\n var iconChoices = flatten([\n detail.icon.toArray(),\n detail.level.toArray(),\n detail.level.bind(function (level) {\n return Optional.from(notificationIconMap[level]);\n }).toArray()\n ]);\n var memButton = record(Button.sketch({\n dom: {\n tag: 'button',\n classes: [\n 'tox-notification__dismiss',\n 'tox-button',\n 'tox-button--naked',\n 'tox-button--icon'\n ]\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-icon'],\n innerHtml: get$e('close', detail.iconProvider),\n attributes: { 'aria-label': detail.translationProvider('Close') }\n }\n }],\n action: function (comp) {\n detail.onAction(comp);\n }\n }));\n var components = [\n {\n dom: {\n tag: 'div',\n classes: ['tox-notification__icon'],\n innerHtml: getFirst$1(iconChoices, detail.iconProvider)\n }\n },\n {\n dom: {\n tag: 'div',\n classes: ['tox-notification__body']\n },\n components: [memBannerText.asSpec()],\n behaviours: derive$1([Replacing.config({})])\n }\n ];\n return {\n uid: detail.uid,\n dom: {\n tag: 'div',\n attributes: { role: 'alert' },\n classes: detail.level.map(function (level) {\n return [\n 'tox-notification',\n 'tox-notification--in',\n 'tox-notification--' + level\n ];\n }).getOr([\n 'tox-notification',\n 'tox-notification--in'\n ])\n },\n behaviours: derive$1([\n Focusing.config({}),\n config('notification-events', [run(focusin(), function (comp) {\n memButton.getOpt(comp).each(Focusing.focus);\n })])\n ]),\n components: components.concat(detail.progress ? [memBannerProgress.asSpec()] : []).concat(!detail.closeButton ? [] : [memButton.asSpec()]),\n apis: apis\n };\n };\n var Notification = single$2({\n name: 'Notification',\n factory: factory$2,\n configFields: [\n option('level'),\n strict$1('progress'),\n strict$1('icon'),\n strict$1('onAction'),\n strict$1('text'),\n strict$1('iconProvider'),\n strict$1('translationProvider'),\n defaultedBoolean('closeButton', true)\n ],\n apis: {\n updateProgress: function (apis, comp, percent) {\n apis.updateProgress(comp, percent);\n },\n updateText: function (apis, comp, text) {\n apis.updateText(comp, text);\n }\n }\n });\n\n function NotificationManagerImpl (editor, extras, uiMothership) {\n var backstage = extras.backstage;\n var getLayoutDirection = function (rel) {\n switch (rel) {\n case 'bc-bc':\n return south$3;\n case 'tc-tc':\n return north$3;\n case 'tc-bc':\n return north$1;\n case 'bc-tc':\n default:\n return south$1;\n }\n };\n var prePositionNotifications = function (notifications) {\n each(notifications, function (notification) {\n return notification.moveTo(0, 0);\n });\n };\n var positionNotifications = function (notifications) {\n if (notifications.length > 0) {\n head(notifications).each(function (firstItem) {\n return firstItem.moveRel(null, 'banner');\n });\n each(notifications, function (notification, index) {\n if (index > 0) {\n notification.moveRel(notifications[index - 1].getEl(), 'bc-tc');\n }\n });\n }\n };\n var reposition = function (notifications) {\n prePositionNotifications(notifications);\n positionNotifications(notifications);\n };\n var open = function (settings, closeCallback) {\n var hideCloseButton = !settings.closeButton && settings.timeout && (settings.timeout > 0 || settings.timeout < 0);\n var close = function () {\n closeCallback();\n InlineView.hide(notificationWrapper);\n };\n var notification = build$1(Notification.sketch({\n text: settings.text,\n level: contains([\n 'success',\n 'error',\n 'warning',\n 'warn',\n 'info'\n ], settings.type) ? settings.type : undefined,\n progress: settings.progressBar === true,\n icon: Optional.from(settings.icon),\n closeButton: !hideCloseButton,\n onAction: close,\n iconProvider: backstage.shared.providers.icons,\n translationProvider: backstage.shared.providers.translate\n }));\n var notificationWrapper = build$1(InlineView.sketch(__assign({\n dom: {\n tag: 'div',\n classes: ['tox-notifications-container']\n },\n lazySink: extras.backstage.shared.getSink,\n fireDismissalEventInstead: {}\n }, backstage.shared.header.isPositionedAtTop() ? {} : { fireRepositionEventInstead: {} })));\n uiMothership.add(notificationWrapper);\n if (settings.timeout > 0) {\n global$2.setTimeout(function () {\n close();\n }, settings.timeout);\n }\n return {\n close: close,\n moveTo: function (x, y) {\n InlineView.showAt(notificationWrapper, {\n anchor: 'makeshift',\n x: x,\n y: y\n }, premade$1(notification));\n },\n moveRel: function (element, rel) {\n if (rel !== 'banner') {\n var layoutDirection_1 = getLayoutDirection(rel);\n var nodeAnchor = {\n anchor: 'node',\n root: body(),\n node: Optional.some(SugarElement.fromDom(element)),\n layouts: {\n onRtl: function () {\n return [layoutDirection_1];\n },\n onLtr: function () {\n return [layoutDirection_1];\n }\n }\n };\n InlineView.showAt(notificationWrapper, nodeAnchor, premade$1(notification));\n } else {\n InlineView.showAt(notificationWrapper, extras.backstage.shared.anchors.banner(), premade$1(notification));\n }\n },\n text: function (nuText) {\n Notification.updateText(notification, nuText);\n },\n settings: settings,\n getEl: function () {\n return notification.element.dom;\n },\n progressBar: {\n value: function (percent) {\n Notification.updateProgress(notification, percent);\n }\n }\n };\n };\n var close = function (notification) {\n notification.close();\n };\n var getArgs = function (notification) {\n return notification.settings;\n };\n return {\n open: open,\n close: close,\n reposition: reposition,\n getArgs: getArgs\n };\n }\n\n var first = function (fn, rate) {\n var timer = null;\n var cancel = function () {\n if (timer !== null) {\n clearTimeout(timer);\n timer = null;\n }\n };\n var throttle = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (timer === null) {\n timer = setTimeout(function () {\n fn.apply(null, args);\n timer = null;\n }, rate);\n }\n };\n return {\n cancel: cancel,\n throttle: throttle\n };\n };\n var last$2 = function (fn, rate) {\n var timer = null;\n var cancel = function () {\n if (timer !== null) {\n clearTimeout(timer);\n timer = null;\n }\n };\n var throttle = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (timer !== null) {\n clearTimeout(timer);\n }\n timer = setTimeout(function () {\n fn.apply(null, args);\n timer = null;\n }, rate);\n };\n return {\n cancel: cancel,\n throttle: throttle\n };\n };\n\n var global$3 = tinymce.util.Tools.resolve('tinymce.dom.TextSeeker');\n\n var isBoundary = function (dom, node) {\n return dom.isBlock(node) || contains([\n 'BR',\n 'IMG',\n 'HR',\n 'INPUT'\n ], node.nodeName) || dom.getContentEditable(node) === 'false';\n };\n var repeatLeft = function (dom, node, offset, process, rootNode) {\n var search = global$3(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 var create$4 = function (editor, range) {\n return detect$4(SugarElement.fromDom(editor.selection.getNode())).getOrThunk(function () {\n var wrapper = SugarElement.fromHtml('', editor.getDoc());\n append(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 var detect$4 = function (elm) {\n return closest$3(elm, autocompleteSelector);\n };\n\n var isValidTextRange = function (rng) {\n return rng.collapsed && rng.startContainer.nodeType === 3;\n };\n var getText = function (rng) {\n return rng.toString().replace(/\\u00A0/g, ' ').replace(/\\uFEFF/g, '');\n };\n var isWhitespace = function (chr) {\n return chr !== '' && ' \\xA0\\f\\n\\r\\t\\x0B'.indexOf(chr) !== -1;\n };\n\n var stripTriggerChar = function (text, triggerCh) {\n return text.substring(triggerCh.length);\n };\n var findChar = function (text, index, ch) {\n var i;\n for (i = index - 1; i >= 0; i--) {\n var char = text.charAt(i);\n if (isWhitespace(char)) {\n return Optional.none();\n }\n if (char === ch) {\n break;\n }\n }\n return Optional.some(i);\n };\n var findStart = function (dom, initRange, ch, minChars) {\n if (minChars === void 0) {\n minChars = 0;\n }\n if (!isValidTextRange(initRange)) {\n return Optional.none();\n }\n var findTriggerChIndex = function (element, offset, text) {\n return findChar(text, offset, ch).getOr(offset);\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 if (range.collapsed) {\n return Optional.none();\n }\n var text = getText(range);\n var triggerCharIndex = text.lastIndexOf(ch);\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 var getContext = function (dom, initRange, ch, minChars) {\n if (minChars === void 0) {\n minChars = 0;\n }\n return detect$4(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 = function (api, editor) {\n editor.on('keypress compositionend', api.onKeypress.throttle);\n editor.on('remove', api.onKeypress.cancel);\n var redirectKeyToItem = function (item, e) {\n emitWith(item, keydown(), { raw: e });\n };\n editor.on('keydown', function (e) {\n var getItem = function () {\n return api.getView().bind(Highlighting.getHighlighted);\n };\n if (e.which === 8) {\n api.onKeypress.throttle(e);\n }\n if (api.isActive()) {\n if (e.which === 27) {\n api.cancelIfNecessary();\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$4(SugarElement.fromDom(e.element)).isNone()) {\n api.cancelIfNecessary();\n }\n });\n };\n var AutocompleterEditorEvents = { setup: setup };\n\n var global$4 = tinymce.util.Tools.resolve('tinymce.util.Promise');\n\n var point$1 = function (container, offset) {\n return {\n container: container,\n offset: offset\n };\n };\n\n var isText$1 = function (node) {\n return node.nodeType === TEXT;\n };\n var isElement$1 = function (node) {\n return node.nodeType === ELEMENT;\n };\n var toLast = function (node) {\n if (isText$1(node)) {\n return point$1(node, node.data.length);\n } else {\n var children = node.childNodes;\n return children.length > 0 ? toLast(children[children.length - 1]) : point$1(node, children.length);\n }\n };\n var toLeaf = function (node, offset) {\n var children = node.childNodes;\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$1(node, offset);\n }\n };\n\n var isPreviousCharContent = function (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 var isStartOfWord = function (dom) {\n return function (rng) {\n var leaf = toLeaf(rng.startContainer, rng.startOffset);\n return !isPreviousCharContent(dom, leaf);\n };\n };\n var getTriggerContext = function (dom, initRange, database) {\n return findMap(database.triggerChars, function (ch) {\n return getContext(dom, initRange, ch);\n });\n };\n var lookup = function (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 var lookupWithContext = function (editor, getDatabase, context, fetchOptions) {\n if (fetchOptions === void 0) {\n fetchOptions = {};\n }\n var database = getDatabase();\n var rng = editor.selection.getRng();\n var startText = rng.startContainer.nodeValue;\n var autocompleters = filter(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 if (autocompleters.length === 0) {\n return Optional.none();\n }\n var lookupData = global$4.all(map(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([\n strictString('type'),\n optionString('text')\n ]);\n var createSeparatorMenuItem = function (spec) {\n return asRaw('separatormenuitem', separatorMenuItemSchema, spec);\n };\n\n var autocompleterItemSchema = objOf([\n defaulted$1('type', 'autocompleteitem'),\n defaulted$1('active', false),\n defaulted$1('disabled', false),\n defaulted$1('meta', {}),\n strictString('value'),\n optionString('text'),\n optionString('icon')\n ]);\n var autocompleterSchema = objOf([\n strictString('type'),\n strictString('ch'),\n defaultedNumber('minChars', 1),\n defaulted$1('columns', 1),\n defaultedNumber('maxResults', 10),\n optionFunction('matches'),\n strictFunction('fetch'),\n strictFunction('onAction'),\n defaultedArrayOf('highlightOn', [], string)\n ]);\n var createSeparatorItem = function (spec) {\n return asRaw('Autocompleter.Separator', separatorMenuItemSchema, spec);\n };\n var createAutocompleterItem = function (spec) {\n return asRaw('Autocompleter.Item', autocompleterItemSchema, spec);\n };\n var createAutocompleter = function (spec) {\n return asRaw('Autocompleter', autocompleterSchema, spec);\n };\n\n var baseToolbarButtonFields = [\n defaultedBoolean('disabled', false),\n optionString('tooltip'),\n optionString('icon'),\n optionString('text'),\n defaultedFunction('onSetup', function () {\n return noop;\n })\n ];\n var toolbarButtonSchema = objOf([\n strictString('type'),\n strictFunction('onAction')\n ].concat(baseToolbarButtonFields));\n var createToolbarButton = function (spec) {\n return asRaw('toolbarbutton', toolbarButtonSchema, spec);\n };\n\n var baseToolbarToggleButtonFields = [defaultedBoolean('active', false)].concat(baseToolbarButtonFields);\n var toggleButtonSchema = objOf(baseToolbarToggleButtonFields.concat([\n strictString('type'),\n strictFunction('onAction')\n ]));\n var createToggleButton = function (spec) {\n return asRaw('ToggleButton', toggleButtonSchema, spec);\n };\n\n var contextBarFields = [\n defaultedFunction('predicate', never),\n defaultedStringEnum('scope', 'node', [\n 'node',\n 'editor'\n ]),\n defaultedStringEnum('position', 'selection', [\n 'node',\n 'selection',\n 'line'\n ])\n ];\n\n var contextButtonFields = baseToolbarButtonFields.concat([\n defaulted$1('type', 'contextformbutton'),\n defaulted$1('primary', false),\n strictFunction('onAction'),\n state$1('original', identity)\n ]);\n var contextToggleButtonFields = baseToolbarToggleButtonFields.concat([\n defaulted$1('type', 'contextformbutton'),\n defaulted$1('primary', false),\n strictFunction('onAction'),\n state$1('original', identity)\n ]);\n var launchButtonFields = baseToolbarButtonFields.concat([defaulted$1('type', 'contextformbutton')]);\n var launchToggleButtonFields = baseToolbarToggleButtonFields.concat([defaulted$1('type', 'contextformtogglebutton')]);\n var toggleOrNormal = choose$1('type', {\n contextformbutton: contextButtonFields,\n contextformtogglebutton: contextToggleButtonFields\n });\n var contextFormSchema = objOf([\n defaulted$1('type', 'contextform'),\n defaultedFunction('initValue', function () {\n return '';\n }),\n optionString('label'),\n strictArrayOf('commands', toggleOrNormal),\n optionOf('launch', choose$1('type', {\n contextformbutton: launchButtonFields,\n contextformtogglebutton: launchToggleButtonFields\n }))\n ].concat(contextBarFields));\n var createContextForm = function (spec) {\n return asRaw('ContextForm', contextFormSchema, spec);\n };\n\n var contextToolbarSchema = objOf([\n defaulted$1('type', 'contexttoolbar'),\n strictString('items')\n ].concat(contextBarFields));\n var createContextToolbar = function (spec) {\n return asRaw('ContextToolbar', contextToolbarSchema, spec);\n };\n\n var stringArray = function (a) {\n var all = {};\n each(a, function (key) {\n all[key] = {};\n });\n return keys(all);\n };\n\n var register = function (editor) {\n var popups = editor.ui.registry.getAll().popups;\n var dataset = map$2(popups, function (popup) {\n return createAutocompleter(popup).fold(function (err) {\n throw new Error(formatError(err));\n }, function (x) {\n return x;\n });\n });\n var triggerChars = stringArray(mapToArray(dataset, function (v) {\n return v.ch;\n }));\n var datasetValues = values(dataset);\n var lookupByChar = function (ch) {\n return filter(datasetValues, function (dv) {\n return dv.ch === ch;\n });\n };\n return {\n dataset: dataset,\n triggerChars: triggerChars,\n lookupByChar: lookupByChar\n };\n };\n\n var ItemResponse;\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 var ItemResponse$1 = ItemResponse;\n\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 iconClassRtl = 'tox-collection__item-icon-rtl';\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 var classForPreset = function (presets) {\n return get$1(presetClasses, presets).getOr(navClass);\n };\n\n var forMenu = function (presets) {\n if (presets === 'color') {\n return 'tox-swatches';\n } else {\n return 'tox-menu';\n }\n };\n var classes = function (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$1 = function (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 var dom$1 = function (hasIcons, columns, presets) {\n var menuClasses = classes(presets);\n return {\n tag: 'div',\n classes: flatten([\n [\n menuClasses.menu,\n 'tox-menu-' + columns + '-column'\n ],\n hasIcons ? [menuClasses.hasIcons] : []\n ])\n };\n };\n var components$1 = [Menu.parts.items({})];\n var part = function (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$1(presets)\n };\n };\n\n var chunk$1 = function (rowDom, numColumns) {\n return function (items) {\n var chunks = chunk(items, numColumns);\n return map(chunks, function (c) {\n return {\n dom: rowDom,\n components: c\n };\n });\n };\n };\n var forSwatch = function (columns) {\n return {\n dom: {\n tag: 'div',\n classes: [\n 'tox-menu',\n 'tox-swatches-menu'\n ]\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-swatches']\n },\n components: [Menu.parts.items({\n preprocess: columns !== 'auto' ? chunk$1({\n tag: 'div',\n classes: ['tox-swatches__row']\n }, columns) : identity\n })]\n }]\n };\n };\n var forToolbar = function (columns) {\n return {\n dom: {\n tag: 'div',\n classes: [\n 'tox-menu',\n 'tox-collection',\n 'tox-collection--toolbar',\n 'tox-collection--toolbar-lg'\n ]\n },\n components: [Menu.parts.items({\n preprocess: chunk$1({\n tag: 'div',\n classes: ['tox-collection__group']\n }, columns)\n })]\n };\n };\n var preprocessCollection = function (items, isSeparator) {\n var allSplits = [];\n var currentSplit = [];\n each(items, function (item, i) {\n if (isSeparator(item, i)) {\n if (currentSplit.length > 0) {\n allSplits.push(currentSplit);\n }\n currentSplit = [];\n if (has(item.dom, 'innerHtml')) {\n currentSplit.push(item);\n }\n } else {\n currentSplit.push(item);\n }\n });\n if (currentSplit.length > 0) {\n allSplits.push(currentSplit);\n }\n return map(allSplits, function (s) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-collection__group']\n },\n components: s\n };\n });\n };\n var forCollection = function (columns, initItems, _hasIcons) {\n return {\n dom: {\n tag: 'div',\n classes: [\n 'tox-menu',\n 'tox-collection'\n ].concat(columns === 1 ? ['tox-collection--list'] : ['tox-collection--grid'])\n },\n components: [Menu.parts.items({\n preprocess: function (items) {\n if (columns !== 'auto' && columns > 1) {\n return chunk$1({\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 var forHorizontalCollection = function (initItems, _hasIcons) {\n return {\n dom: {\n tag: 'div',\n classes: [\n 'tox-collection',\n 'tox-collection--horizontal'\n ]\n },\n components: [Menu.parts.items({\n preprocess: function (items) {\n return preprocessCollection(items, function (_item, i) {\n return initItems[i].type === 'separator';\n });\n }\n })]\n };\n };\n\n var menuHasIcons = function (xs) {\n return exists(xs, function (item) {\n return 'icon' in item && item.icon !== undefined;\n });\n };\n var handleError = function (error) {\n console.error(formatError(error));\n console.log(error);\n return Optional.none();\n };\n var createHorizontalPartialMenuWithAlloyItems = function (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 var createPartialMenuWithAlloyItems = function (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 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 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 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 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 return {\n value: value,\n dom: dom$1(hasIcons, columns, presets),\n components: components$1,\n items: items\n };\n };\n\n var cardImageFields = [\n strictString('type'),\n strictString('src'),\n optionString('alt'),\n defaultedArrayOf('classes', [], string)\n ];\n var cardImageSchema = objOf(cardImageFields);\n\n var cardTextFields = [\n strictString('type'),\n strictString('text'),\n optionString('name'),\n defaultedArrayOf('classes', ['tox-collection__item-label'], string)\n ];\n var cardTextSchema = objOf(cardTextFields);\n\n var itemSchema$2 = valueThunkOf(function () {\n return chooseProcessor('type', {\n cardimage: cardImageSchema,\n cardtext: cardTextSchema,\n cardcontainer: cardContainerSchema\n });\n });\n var cardContainerSchema = objOf([\n strictString('type'),\n defaultedString('direction', 'horizontal'),\n defaultedString('align', 'left'),\n defaultedString('valign', 'middle'),\n strictArrayOf('items', itemSchema$2)\n ]);\n\n var commonMenuItemFields = [\n defaultedBoolean('disabled', false),\n optionString('text'),\n optionString('shortcut'),\n field('value', 'value', defaultedThunk(function () {\n return generate$1('menuitem-value');\n }), anyValue$1()),\n defaulted$1('meta', {})\n ];\n\n var cardMenuItemSchema = objOf([\n strictString('type'),\n optionString('label'),\n strictArrayOf('items', itemSchema$2),\n defaultedFunction('onSetup', function () {\n return noop;\n }),\n defaultedFunction('onAction', noop)\n ].concat(commonMenuItemFields));\n var createCardMenuItem = function (spec) {\n return asRaw('cardmenuitem', cardMenuItemSchema, spec);\n };\n\n var choiceMenuItemSchema = objOf([\n strictString('type'),\n defaultedBoolean('active', false),\n optionString('icon')\n ].concat(commonMenuItemFields));\n var createChoiceMenuItem = function (spec) {\n return asRaw('choicemenuitem', choiceMenuItemSchema, spec);\n };\n\n var fancyTypes = [\n 'inserttable',\n 'colorswatch'\n ];\n var fancyMenuItemSchema = objOf([\n strictString('type'),\n strictStringEnum('fancytype', fancyTypes),\n defaultedFunction('onAction', noop)\n ]);\n var createFancyMenuItem = function (spec) {\n return asRaw('fancymenuitem', fancyMenuItemSchema, spec);\n };\n\n var menuItemSchema = objOf([\n strictString('type'),\n defaultedFunction('onSetup', function () {\n return noop;\n }),\n defaultedFunction('onAction', noop),\n optionString('icon')\n ].concat(commonMenuItemFields));\n var createMenuItem = function (spec) {\n return asRaw('menuitem', menuItemSchema, spec);\n };\n\n var nestedMenuItemSchema = objOf([\n strictString('type'),\n strictFunction('getSubmenuItems'),\n defaultedFunction('onSetup', function () {\n return noop;\n }),\n optionString('icon')\n ].concat(commonMenuItemFields));\n var createNestedMenuItem = function (spec) {\n return asRaw('nestedmenuitem', nestedMenuItemSchema, spec);\n };\n\n var toggleMenuItemSchema = objOf([\n strictString('type'),\n optionString('icon'),\n defaultedBoolean('active', false),\n defaultedFunction('onSetup', function () {\n return noop;\n }),\n strictFunction('onAction')\n ].concat(commonMenuItemFields));\n var createToggleMenuItem = function (spec) {\n return asRaw('togglemenuitem', toggleMenuItemSchema, spec);\n };\n\n var detectSize = function (comp, margin, selectorClass) {\n var descendants$1 = descendants(comp.element, '.' + selectorClass);\n if (descendants$1.length > 0) {\n var columnLength = findIndex(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 (name, handlers) {\n return derive$1([config(name, handlers)]);\n };\n var unnamedEvents = function (handlers) {\n return namedEvents(generate$1('unnamed-events'), handlers);\n };\n var SimpleBehaviours = {\n namedEvents: namedEvents,\n unnamedEvents: unnamedEvents\n };\n\n var ExclusivityChannel = generate$1('tooltip.exclusive');\n var ShowTooltipEvent = generate$1('tooltip.show');\n var HideTooltipEvent = generate$1('tooltip.hide');\n\n var hideAllExclusive = function (component, _tConfig, _tState) {\n component.getSystem().broadcastOn([ExclusivityChannel], {});\n };\n var setComponents = function (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$8 = function (tooltipConfig, state) {\n var hide = function (comp) {\n state.getTooltip().each(function (p) {\n detach(p);\n tooltipConfig.onHide(comp, p);\n state.clearTooltip();\n });\n state.clearTimer();\n };\n var show = function (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(tooltipConfig.mode === 'normal' ? [\n run(mouseover(), function (_) {\n emit(comp, ShowTooltipEvent);\n }),\n run(mouseout(), function (_) {\n emit(comp, HideTooltipEvent);\n })\n ] : []),\n behaviours: derive$1([Replacing.config({})])\n });\n state.setTooltip(popup);\n attach$1(sink, popup);\n tooltipConfig.onShow(comp, popup);\n Positioning.position(sink, tooltipConfig.anchor(comp), popup);\n }\n };\n return derive(flatten([\n [\n run(ShowTooltipEvent, function (comp) {\n state.resetTimer(function () {\n show(comp);\n }, tooltipConfig.delay);\n }),\n run(HideTooltipEvent, function (comp) {\n state.resetTimer(function () {\n hide(comp);\n }, tooltipConfig.delay);\n }),\n run(receive(), function (comp, message) {\n var receivingData = message;\n if (!receivingData.universal) {\n if (contains(receivingData.channels, ExclusivityChannel)) {\n hide(comp);\n }\n }\n }),\n runOnDetached(function (comp) {\n hide(comp);\n })\n ],\n tooltipConfig.mode === 'normal' ? [\n run(focusin(), function (comp) {\n emit(comp, ShowTooltipEvent);\n }),\n run(postBlur(), function (comp) {\n emit(comp, HideTooltipEvent);\n }),\n run(mouseover(), function (comp) {\n emit(comp, ShowTooltipEvent);\n }),\n run(mouseout(), function (comp) {\n emit(comp, HideTooltipEvent);\n })\n ] : [\n run(highlight(), function (comp, _se) {\n emit(comp, ShowTooltipEvent);\n }),\n run(dehighlight(), function (comp) {\n emit(comp, HideTooltipEvent);\n })\n ]\n ]));\n };\n\n var ActiveTooltipping = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$8\n });\n\n var TooltippingSchema = [\n strict$1('lazySink'),\n strict$1('tooltipDom'),\n defaulted$1('exclusive', true),\n defaulted$1('tooltipComponents', []),\n defaulted$1('delay', 300),\n defaultedStringEnum('mode', 'normal', [\n 'normal',\n 'follow-highlight'\n ]),\n defaulted$1('anchor', function (comp) {\n return {\n anchor: 'hotspot',\n hotspot: comp,\n layouts: {\n onLtr: constant([\n south$1,\n north$1,\n southeast$1,\n northeast$1,\n southwest$1,\n northwest$1\n ]),\n onRtl: constant([\n south$1,\n north$1,\n southeast$1,\n northeast$1,\n southwest$1,\n northwest$1\n ])\n }\n };\n }),\n onHandler('onHide'),\n onHandler('onShow')\n ];\n\n var init$4 = function () {\n var timer = Cell(Optional.none());\n var popup = Cell(Optional.none());\n var getTooltip = function () {\n return popup.get();\n };\n var setTooltip = function (comp) {\n popup.set(Optional.some(comp));\n };\n var clearTooltip = function () {\n popup.set(Optional.none());\n };\n var clearTimer = function () {\n timer.get().each(function (t) {\n clearTimeout(t);\n });\n };\n var resetTimer = function (f, delay) {\n clearTimer();\n timer.set(Optional.some(setTimeout(function () {\n f();\n }, delay)));\n };\n var isShowing = function () {\n return popup.get().isSome();\n };\n var readState = constant('not-implemented');\n return nu$5({\n getTooltip: getTooltip,\n isShowing: isShowing,\n setTooltip: setTooltip,\n clearTooltip: clearTooltip,\n clearTimer: clearTimer,\n resetTimer: resetTimer,\n readState: readState\n });\n };\n\n var TooltippingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$4\n });\n\n var Tooltipping = create$1({\n fields: TooltippingSchema,\n name: 'tooltipping',\n active: ActiveTooltipping,\n state: TooltippingState,\n apis: TooltippingApis\n });\n\n var escape = function (text) {\n return text.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n };\n\n var global$5 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');\n\n var global$6 = tinymce.util.Tools.resolve('tinymce.util.I18n');\n\n var nativeDisabled = [\n 'input',\n 'button',\n 'textarea',\n 'select'\n ];\n var onLoad$5 = function (component, disableConfig, disableState) {\n var f = disableConfig.disabled() ? disable : enable;\n f(component, disableConfig);\n };\n var hasNative = function (component, config) {\n return config.useNative === true && contains(nativeDisabled, name(component.element));\n };\n var nativeIsDisabled = function (component) {\n return has$1(component.element, 'disabled');\n };\n var nativeDisable = function (component) {\n set$1(component.element, 'disabled', 'disabled');\n };\n var nativeEnable = function (component) {\n remove$1(component.element, 'disabled');\n };\n var ariaIsDisabled = function (component) {\n return get$3(component.element, 'aria-disabled') === 'true';\n };\n var ariaDisable = function (component) {\n set$1(component.element, 'aria-disabled', 'true');\n };\n var ariaEnable = function (component) {\n set$1(component.element, 'aria-disabled', 'false');\n };\n var disable = function (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 var enable = function (component, disableConfig, _disableState) {\n disableConfig.disableClass.each(function (disableClass) {\n remove$4(component.element, disableClass);\n });\n var f = hasNative(component, disableConfig) ? nativeEnable : ariaEnable;\n f(component);\n disableConfig.onEnabled(component);\n };\n var isDisabled = function (component, disableConfig) {\n return hasNative(component, disableConfig) ? nativeIsDisabled(component) : ariaIsDisabled(component);\n };\n var set$7 = function (component, disableConfig, disableState, disabled) {\n var f = disabled ? disable : enable;\n f(component, disableConfig);\n };\n\n var DisableApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n enable: enable,\n disable: disable,\n isDisabled: isDisabled,\n onLoad: onLoad$5,\n set: set$7\n });\n\n var exhibit$3 = function (base, disableConfig) {\n return nu$6({ classes: disableConfig.disabled() ? disableConfig.disableClass.toArray() : [] });\n };\n var events$9 = function (disableConfig, disableState) {\n return derive([\n abort(execute(), function (component, _simulatedEvent) {\n return isDisabled(component, disableConfig);\n }),\n loadEvent(disableConfig, disableState, onLoad$5)\n ]);\n };\n\n var ActiveDisable = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit$3,\n events: events$9\n });\n\n var DisableSchema = [\n defaultedFunction('disabled', never),\n defaulted$1('useNative', true),\n option('disableClass'),\n onHandler('onDisabled'),\n onHandler('onEnabled')\n ];\n\n var Disabling = create$1({\n fields: DisableSchema,\n name: 'disabling',\n active: ActiveDisable,\n apis: DisableApis\n });\n\n var global$7 = tinymce.util.Tools.resolve('tinymce.EditorManager');\n\n var getSkinUrl = function (editor) {\n var skin = editor.getParam('skin');\n var skinUrl = editor.getParam('skin_url');\n if (skin !== false) {\n var skinName = skin ? skin : 'oxide';\n if (skinUrl) {\n skinUrl = editor.documentBaseURI.toAbsolute(skinUrl);\n } else {\n skinUrl = global$7.baseURL + '/skins/ui/' + skinName;\n }\n }\n return skinUrl;\n };\n var isReadOnly = function (editor) {\n return editor.getParam('readonly', false, 'boolean');\n };\n var isSkinDisabled = function (editor) {\n return editor.getParam('skin') === false;\n };\n var getHeightSetting = function (editor) {\n return editor.getParam('height', Math.max(editor.getElement().offsetHeight, 200));\n };\n var getWidthSetting = function (editor) {\n return editor.getParam('width', global$5.DOM.getStyle(editor.getElement(), 'width'));\n };\n var getMinWidthSetting = function (editor) {\n return Optional.from(editor.getParam('min_width')).filter(isNumber);\n };\n var getMinHeightSetting = function (editor) {\n return Optional.from(editor.getParam('min_height')).filter(isNumber);\n };\n var getMaxWidthSetting = function (editor) {\n return Optional.from(editor.getParam('max_width')).filter(isNumber);\n };\n var getMaxHeightSetting = function (editor) {\n return Optional.from(editor.getParam('max_height')).filter(isNumber);\n };\n var getUserStyleFormats = function (editor) {\n return Optional.from(editor.getParam('style_formats')).filter(isArray);\n };\n var isMergeStyleFormats = function (editor) {\n return editor.getParam('style_formats_merge', false, 'boolean');\n };\n var getLineHeightFormats = function (editor) {\n return editor.getParam('lineheight_formats', '1 1.1 1.2 1.3 1.4 1.5 2', 'string').split(' ');\n };\n var getRemovedMenuItems = function (editor) {\n return editor.getParam('removed_menuitems', '');\n };\n var isMenubarEnabled = function (editor) {\n return editor.getParam('menubar', true, 'boolean') !== false;\n };\n var isToolbarEnabled = function (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 var getMultipleToolbarsSetting = function (editor) {\n var toolbars = range(9, function (num) {\n return editor.getParam('toolbar' + (num + 1), false, 'string');\n });\n var toolbarArray = filter(toolbars, function (toolbar) {\n return typeof toolbar === 'string';\n });\n return toolbarArray.length > 0 ? Optional.some(toolbarArray) : Optional.none();\n };\n var isMultipleToolbars = function (editor) {\n return getMultipleToolbarsSetting(editor).fold(function () {\n var toolbar = editor.getParam('toolbar', [], 'string[]');\n return toolbar.length > 0;\n }, always);\n };\n var ToolbarMode;\n (function (ToolbarMode) {\n ToolbarMode['default'] = 'wrap';\n ToolbarMode['floating'] = 'floating';\n ToolbarMode['sliding'] = 'sliding';\n ToolbarMode['scrolling'] = 'scrolling';\n }(ToolbarMode || (ToolbarMode = {})));\n var getToolbarMode = function (editor) {\n return editor.getParam('toolbar_mode', '', 'string');\n };\n var ToolbarLocation;\n (function (ToolbarLocation) {\n ToolbarLocation['auto'] = 'auto';\n ToolbarLocation['top'] = 'top';\n ToolbarLocation['bottom'] = 'bottom';\n }(ToolbarLocation || (ToolbarLocation = {})));\n var getToolbarGroups = function (editor) {\n return editor.getParam('toolbar_groups', {}, 'object');\n };\n var getToolbarLocation = function (editor) {\n return editor.getParam('toolbar_location', ToolbarLocation.auto, 'string');\n };\n var isToolbarLocationBottom = function (editor) {\n return getToolbarLocation(editor) === ToolbarLocation.bottom;\n };\n var fixedContainerSelector = function (editor) {\n return editor.getParam('fixed_toolbar_container', '', 'string');\n };\n var isToolbarPersist = function (editor) {\n return editor.getParam('toolbar_persist', false, 'boolean');\n };\n var fixedContainerElement = function (editor) {\n var selector = fixedContainerSelector(editor);\n return selector.length > 0 && editor.inline ? descendant$1(body(), selector) : Optional.none();\n };\n var useFixedContainer = function (editor) {\n return editor.inline && fixedContainerElement(editor).isSome();\n };\n var getUiContainer = function (editor) {\n var fixedContainer = fixedContainerElement(editor);\n return fixedContainer.getOrThunk(function () {\n return getContentContainer(getRootNode(SugarElement.fromDom(editor.getElement())));\n });\n };\n var isDistractionFree = function (editor) {\n return editor.inline && !isMenubarEnabled(editor) && !isToolbarEnabled(editor) && !isMultipleToolbars(editor);\n };\n var isStickyToolbar = function (editor) {\n var isStickyToolbar = editor.getParam('toolbar_sticky', false, 'boolean');\n return (isStickyToolbar || editor.inline) && !useFixedContainer(editor) && !isDistractionFree(editor);\n };\n var isDraggableModal = function (editor) {\n return editor.getParam('draggable_modal', false, 'boolean');\n };\n var getMenus = function (editor) {\n var menu = editor.getParam('menu');\n if (menu) {\n return map$2(menu, function (menu) {\n return __assign(__assign({}, menu), { items: menu.items });\n });\n } else {\n return {};\n }\n };\n var getMenubar = function (editor) {\n return editor.getParam('menubar');\n };\n var getToolbar = function (editor) {\n return editor.getParam('toolbar', true);\n };\n var getFilePickerCallback = function (editor) {\n return editor.getParam('file_picker_callback');\n };\n var getFilePickerTypes = function (editor) {\n return editor.getParam('file_picker_types');\n };\n var getFileBrowserCallbackTypes = function (editor) {\n return editor.getParam('file_browser_callback_types');\n };\n var noTypeaheadUrls = function (editor) {\n return editor.getParam('typeahead_urls') === false;\n };\n var getAnchorTop = function (editor) {\n return editor.getParam('anchor_top', '#top');\n };\n var getAnchorBottom = function (editor) {\n return editor.getParam('anchor_bottom', '#bottom');\n };\n var getFilePickerValidatorHandler = function (editor) {\n var handler = editor.getParam('file_picker_validator_handler', undefined, 'function');\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([strictBoolean('readonly')]);\n var broadcastReadonly = function (uiComponents, readonly) {\n var outerContainer = uiComponents.outerContainer;\n var target = outerContainer.element;\n if (readonly) {\n uiComponents.mothership.broadcastOn([dismissPopups()], { target: target });\n uiComponents.uiMothership.broadcastOn([dismissPopups()], { target: target });\n }\n uiComponents.mothership.broadcastOn([ReadOnlyChannel], { readonly: readonly });\n uiComponents.uiMothership.broadcastOn([ReadOnlyChannel], { readonly: readonly });\n };\n var setupReadonlyModeSwitch = function (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 if (isReadOnly(editor)) {\n editor.setMode('readonly');\n }\n };\n var receivingConfig = function () {\n var _a;\n return Receiving.config({\n channels: (_a = {}, _a[ReadOnlyChannel] = {\n schema: ReadOnlyDataSchema,\n onReceive: function (comp, data) {\n Disabling.set(comp, data.readonly);\n }\n }, _a)\n });\n };\n\n var item = function (disabled) {\n return Disabling.config({\n disabled: disabled,\n disableClass: 'tox-collection__item--state-disabled'\n });\n };\n var button = function (disabled) {\n return Disabling.config({ disabled: disabled });\n };\n var splitButton = function (disabled) {\n return Disabling.config({\n disabled: disabled,\n disableClass: 'tox-tbtn--disabled'\n });\n };\n var toolbarButton = function (disabled) {\n return Disabling.config({\n disabled: disabled,\n disableClass: 'tox-tbtn--disabled',\n useNative: false\n });\n };\n var DisablingConfigs = {\n item: item,\n button: button,\n splitButton: splitButton,\n toolbarButton: toolbarButton\n };\n\n var runWithApi = function (info, comp) {\n var api = info.getApi(comp);\n return function (f) {\n f(api);\n };\n };\n var onControlAttached = function (info, editorOffCell) {\n return runOnAttached(function (comp) {\n var run = runWithApi(info, comp);\n run(function (api) {\n var onDestroy = info.onSetup(api);\n if (isFunction(onDestroy)) {\n editorOffCell.set(onDestroy);\n }\n });\n });\n };\n var onControlDetached = function (getApi, editorOffCell) {\n return runOnDetached(function (comp) {\n return runWithApi(getApi, comp)(editorOffCell.get());\n });\n };\n\n var _a;\n var onMenuItemExecute = function (info, itemResponse) {\n return runOnExecute(function (comp, simulatedEvent) {\n runWithApi(info, comp)(info.onAction);\n if (!info.triggersSubmenu && itemResponse === ItemResponse$1.CLOSE_ON_EXECUTE) {\n if (comp.getSystem().isConnected()) {\n emit(comp, sandboxClose());\n }\n simulatedEvent.stop();\n }\n });\n };\n var menuItemEventOrder = (_a = {}, _a[execute()] = [\n 'disabling',\n 'alloy.base.behaviour',\n 'toggling',\n 'item-events'\n ], _a);\n\n var componentRenderPipeline = function (xs) {\n return bind(xs, function (o) {\n return o.toArray();\n });\n };\n var renderCommonItem = function (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([\n config('item-events', [\n onMenuItemExecute(spec, itemResponse),\n onControlAttached(spec, editorOffCell),\n onControlDetached(spec, editorOffCell)\n ]),\n DisablingConfigs.item(function () {\n return spec.disabled || providersbackstage.isDisabled();\n }),\n receivingConfig(),\n Replacing.config({})\n ].concat(spec.itemBehaviours))\n };\n };\n var buildData = function (source) {\n return {\n value: source.value,\n meta: __assign({ text: source.text.getOr('') }, source.meta)\n };\n };\n\n var global$8 = tinymce.util.Tools.resolve('tinymce.Env');\n\n var convertText = function (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$8.mac ? mac : other;\n var shortcut = source.split('+');\n var updated = map(shortcut, function (segment) {\n var search = segment.toLowerCase().trim();\n return has(replace, search) ? replace[search] : segment;\n });\n return global$8.mac ? updated.join('') : updated.join('+');\n };\n\n var renderIcon = function (iconHtml) {\n return {\n dom: {\n tag: 'div',\n classes: [iconClass],\n innerHtml: iconHtml\n }\n };\n };\n var renderText = function (text$1) {\n return {\n dom: {\n tag: 'div',\n classes: [textClass]\n },\n components: [text(global$6.translate(text$1))]\n };\n };\n var renderHtml = function (html, classes) {\n return {\n dom: {\n tag: 'div',\n classes: classes,\n innerHtml: html\n }\n };\n };\n var renderStyledText = function (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$6.translate(text$1))]\n }]\n };\n };\n var renderShortcut = function (shortcut) {\n return {\n dom: {\n tag: 'div',\n classes: [accessoryClass],\n innerHtml: convertText(shortcut)\n }\n };\n };\n var renderCheckmark = function (icons) {\n return {\n dom: {\n tag: 'div',\n classes: [checkmarkClass],\n innerHtml: get$e('checkmark', icons)\n }\n };\n };\n var renderSubmenuCaret = function (icons) {\n return {\n dom: {\n tag: 'div',\n classes: [caretClass],\n innerHtml: get$e('chevron-right', icons)\n }\n };\n };\n var renderDownwardsCaret = function (icons) {\n return {\n dom: {\n tag: 'div',\n classes: [caretClass],\n innerHtml: get$e('chevron-down', icons)\n }\n };\n };\n var renderContainer = function (container, components) {\n var directionClass = container.direction === 'vertical' ? containerColumnClass : containerRowClass;\n var alignClass = container.align === 'left' ? containerAlignLeftClass : containerAlignRightClass;\n var getValignClass = function () {\n switch (container.valign) {\n case 'top':\n return containerValignTopClass;\n case 'middle':\n return containerValignMiddleClass;\n case 'bottom':\n return containerValignBottomClass;\n }\n };\n return {\n dom: {\n tag: 'div',\n classes: [\n containerClass,\n directionClass,\n alignClass,\n getValignClass()\n ]\n },\n components: components\n };\n };\n var renderImage = function (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 (itemText, itemValue, iconSvg, providerBackstage) {\n var colorPickerCommand = 'custom';\n var removeColorCommand = 'remove';\n var getDom = function () {\n var common = colorClass;\n var icon = iconSvg.getOr('');\n var attributes = itemText.map(function (text) {\n return { title: providerBackstage.translate(text) };\n }).getOr({});\n var baseDom = {\n tag: 'div',\n attributes: attributes,\n classes: [common]\n };\n if (itemValue === colorPickerCommand) {\n return __assign(__assign({}, baseDom), {\n tag: 'button',\n classes: __spreadArrays(baseDom.classes, ['tox-swatches__picker-btn']),\n innerHtml: icon\n });\n } else if (itemValue === removeColorCommand) {\n return __assign(__assign({}, baseDom), {\n classes: __spreadArrays(baseDom.classes, ['tox-swatch--remove']),\n innerHtml: icon\n });\n } else {\n return __assign(__assign({}, baseDom), {\n attributes: __assign(__assign({}, baseDom.attributes), { 'data-mce-color': itemValue }),\n styles: { 'background-color': itemValue }\n });\n }\n };\n return {\n dom: getDom(),\n optComponents: []\n };\n };\n var renderItemDomStructure = function (rtlClass, ariaLabel) {\n var domTitle = ariaLabel.map(function (label) {\n return { attributes: { title: global$6.translate(label) } };\n }).getOr({});\n return __assign({\n tag: 'div',\n classes: [\n navClass,\n selectableClass\n ].concat(rtlClass ? [iconClassRtl] : [])\n }, domTitle);\n };\n var renderNormalItemStructure = function (info, icon, renderIcons, textRender, rtlClass) {\n var leftIcon = renderIcons ? icon.or(Optional.some('')).map(renderIcon) : Optional.none();\n var checkmark = info.checkMark;\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(rtlClass, info.ariaLabel),\n optComponents: [\n leftIcon,\n content,\n info.shortcutContent.map(renderShortcut),\n checkmark,\n info.caret\n ]\n };\n return menuItem;\n };\n var rtlIcon = [\n 'list-num-default',\n 'list-num-lower-alpha',\n 'list-num-lower-greek',\n 'list-num-lower-roman',\n 'list-num-upper-alpha',\n 'list-num-upper-roman'\n ];\n var rtlTransform = [\n 'list-bull-circle',\n 'list-bull-default',\n 'list-bull-square'\n ];\n var renderItemStructure = function (info, providersBackstage, renderIcons, fallbackIcon) {\n if (fallbackIcon === void 0) {\n fallbackIcon = Optional.none();\n }\n var getIconName = function (iconName) {\n return iconName.map(function (name) {\n return global$6.isRtl() && contains(rtlIcon, name) ? name + '-rtl' : name;\n });\n };\n var needRtlClass = global$6.isRtl() && info.iconContent.exists(function (name) {\n return contains(rtlTransform, name);\n });\n var icon = getIconName(info.iconContent).map(function (iconName) {\n return getOr(iconName, providersBackstage.icons, fallbackIcon);\n });\n var textRender = Optional.from(info.meta).fold(function () {\n return renderText;\n }, function (meta) {\n return has(meta, 'style') ? curry(renderStyledText, meta.style) : renderText;\n });\n if (info.presets === 'color') {\n return renderColorStructure(info.ariaLabel, info.value, icon, providersBackstage);\n } else {\n return renderNormalItemStructure(info, icon, renderIcons, textRender, needRtlClass);\n }\n };\n\n var tooltipBehaviour = function (meta, sharedBackstage) {\n return get$1(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 (comp) {\n return {\n anchor: 'submenu',\n item: comp,\n overrides: { maxHeightFunction: expandable }\n };\n },\n mode: 'follow-highlight',\n onShow: function (component, _tooltip) {\n tooltipWorker(function (elm) {\n Tooltipping.setComponents(component, [external({ element: SugarElement.fromDom(elm) })]);\n });\n }\n })];\n }).getOr([]);\n };\n var encodeText = function (text) {\n return global$5.DOM.encode(text);\n };\n var replaceText = function (text, matchText) {\n var translated = global$6.translate(text);\n var encoded = encodeText(translated);\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 var renderAutocompleteItem = function (spec, matchText, useText, presets, onItemValueHandler, itemResponse, sharedBackstage, renderIcons) {\n if (renderIcons === void 0) {\n renderIcons = true;\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({}),\n onAction: function (_api) {\n return onItemValueHandler(spec.value, spec.meta);\n },\n onSetup: constant(noop),\n triggersSubmenu: false,\n itemBehaviours: tooltipBehaviour(spec.meta, sharedBackstage)\n }, structure, itemResponse, sharedBackstage.providers);\n };\n\n var render = function (items, extras) {\n return map(items, function (item) {\n switch (item.type) {\n case 'cardcontainer':\n return renderContainer(item, render(item.items, extras));\n case 'cardimage':\n return renderImage(item.src, item.classes, item.alt);\n case 'cardtext':\n var shouldHighlight = item.name.exists(function (name) {\n return contains(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 var renderCardMenuItem = function (spec, itemResponse, sharedBackstage, extras) {\n var getApi = function (component) {\n return {\n isDisabled: function () {\n return Disabling.isDisabled(component);\n },\n setDisabled: function (state) {\n Disabling.set(component, state);\n each(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 var structure = {\n dom: renderItemDomStructure(false, spec.label),\n optComponents: [Optional.some({\n dom: {\n tag: 'div',\n classes: [\n containerClass,\n containerRowClass\n ]\n },\n components: render(spec.items, extras)\n })]\n };\n return renderCommonItem({\n data: buildData(__assign({ text: Optional.none() }, 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 (spec, useText, presets, onItemValueHandler, isSelected, itemResponse, providersBackstage, renderIcons) {\n if (renderIcons === void 0) {\n renderIcons = true;\n }\n var getApi = function (component) {\n return {\n setActive: function (state) {\n Toggling.set(component, state);\n },\n isActive: function () {\n return Toggling.isOn(component);\n },\n isDisabled: function () {\n return Disabling.isDisabled(component);\n },\n setDisabled: function (state) {\n return Disabling.set(component, state);\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 (_api) {\n return onItemValueHandler(spec.value);\n },\n onSetup: function (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$2 = generate$4(owner$2(), parts());\n\n var hexColour = function (value) {\n return { value: value };\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 var isHexString = function (hex) {\n return shorthandRegex.test(hex) || longformRegex.test(hex);\n };\n var getLongForm = function (hex) {\n var hexString = hex.value.replace(shorthandRegex, function (m, r, g, b) {\n return r + r + g + g + b + b;\n });\n return { value: hexString };\n };\n var extractValues = function (hex) {\n var longForm = getLongForm(hex);\n var splitForm = longformRegex.exec(longForm.value);\n return splitForm === null ? [\n 'FFFFFF',\n 'FF',\n 'FF',\n 'FF'\n ] : splitForm;\n };\n var toHex = function (component) {\n var hex = component.toString(16);\n return hex.length === 1 ? '0' + hex : hex;\n };\n var fromRgba = function (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 = Math.round;\n var rgbRegex = /^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)/;\n var rgbaRegex = /^rgba\\((\\d+),\\s*(\\d+),\\s*(\\d+),\\s*(\\d?(?:\\.\\d+)?)\\)/;\n var rgbaColour = function (red, green, blue, alpha) {\n return {\n red: red,\n green: green,\n blue: blue,\n alpha: alpha\n };\n };\n var isRgbaComponent = function (value) {\n var num = parseInt(value, 10);\n return num.toString() === value && num >= 0 && num <= 255;\n };\n var fromHsv = function (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 if (saturation === 0) {\n r = g = b = round(255 * brightness);\n return rgbaColour(r, g, b, 1);\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 switch (Math.floor(side)) {\n case 0:\n r = chroma;\n g = x;\n b = 0;\n break;\n case 1:\n r = x;\n g = chroma;\n b = 0;\n break;\n case 2:\n r = 0;\n g = chroma;\n b = x;\n break;\n case 3:\n r = 0;\n g = x;\n b = chroma;\n break;\n case 4:\n r = x;\n g = 0;\n b = chroma;\n break;\n case 5:\n r = chroma;\n g = 0;\n b = x;\n break;\n default:\n r = g = b = 0;\n }\n r = round(255 * (r + match));\n g = round(255 * (g + match));\n b = round(255 * (b + match));\n return rgbaColour(r, g, b, 1);\n };\n var fromHex = function (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 var fromStringValues = function (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 var fromString = function (rgbaString) {\n if (rgbaString === 'transparent') {\n return Optional.some(rgbaColour(0, 0, 0, 0));\n }\n var rgbMatch = rgbRegex.exec(rgbaString);\n if (rgbMatch !== null) {\n return Optional.some(fromStringValues(rgbMatch[1], rgbMatch[2], rgbMatch[3], '1'));\n }\n var rgbaMatch = rgbaRegex.exec(rgbaString);\n if (rgbaMatch !== null) {\n return Optional.some(fromStringValues(rgbaMatch[1], rgbaMatch[2], rgbaMatch[3], rgbaMatch[4]));\n }\n return Optional.none();\n };\n var toString = function (rgba) {\n return 'rgba(' + rgba.red + ',' + rgba.green + ',' + rgba.blue + ',' + rgba.alpha + ')';\n };\n var red = rgbaColour(255, 0, 0, 1);\n\n var fireSkinLoaded = function (editor) {\n return editor.fire('SkinLoaded');\n };\n var fireSkinLoadError = function (editor, error) {\n return editor.fire('SkinLoadError', error);\n };\n var fireResizeEditor = function (editor) {\n return editor.fire('ResizeEditor');\n };\n var fireResizeContent = function (editor, e) {\n return editor.fire('ResizeContent', e);\n };\n var fireScrollContent = function (editor, e) {\n return editor.fire('ScrollContent', e);\n };\n var fireTextColorChange = function (editor, data) {\n return editor.fire('TextColorChange', data);\n };\n\n var global$9 = tinymce.util.Tools.resolve('tinymce.util.LocalStorage');\n\n var storageName = 'tinymce-custom-colors';\n function ColorCache (max) {\n if (max === void 0) {\n max = 10;\n }\n var storageString = global$9.getItem(storageName);\n var localstorage = isString(storageString) ? JSON.parse(storageString) : [];\n var prune = function (list) {\n var diff = max - list.length;\n return diff < 0 ? list.slice(0, max) : list;\n };\n var cache = prune(localstorage);\n var add = function (key) {\n indexOf(cache, key).each(remove);\n cache.unshift(key);\n if (cache.length > max) {\n cache.pop();\n }\n global$9.setItem(storageName, JSON.stringify(cache));\n };\n var remove = function (idx) {\n cache.splice(idx, 1);\n };\n var state = function () {\n return cache.slice(0);\n };\n return {\n add: add,\n state: state\n };\n }\n\n var choiceItem = 'choiceitem';\n var defaultColors = [\n {\n type: choiceItem,\n text: 'Light Green',\n value: '#BFEDD2'\n },\n {\n type: choiceItem,\n text: 'Light Yellow',\n value: '#FBEEB8'\n },\n {\n type: choiceItem,\n text: 'Light Red',\n value: '#F8CAC6'\n },\n {\n type: choiceItem,\n text: 'Light Purple',\n value: '#ECCAFA'\n },\n {\n type: choiceItem,\n text: 'Light Blue',\n value: '#C2E0F4'\n },\n {\n type: choiceItem,\n text: 'Green',\n value: '#2DC26B'\n },\n {\n type: choiceItem,\n text: 'Yellow',\n value: '#F1C40F'\n },\n {\n type: choiceItem,\n text: 'Red',\n value: '#E03E2D'\n },\n {\n type: choiceItem,\n text: 'Purple',\n value: '#B96AD9'\n },\n {\n type: choiceItem,\n text: 'Blue',\n value: '#3598DB'\n },\n {\n type: choiceItem,\n text: 'Dark Turquoise',\n value: '#169179'\n },\n {\n type: choiceItem,\n text: 'Orange',\n value: '#E67E23'\n },\n {\n type: choiceItem,\n text: 'Dark Red',\n value: '#BA372A'\n },\n {\n type: choiceItem,\n text: 'Dark Purple',\n value: '#843FA1'\n },\n {\n type: choiceItem,\n text: 'Dark Blue',\n value: '#236FA1'\n },\n {\n type: choiceItem,\n text: 'Light Gray',\n value: '#ECF0F1'\n },\n {\n type: choiceItem,\n text: 'Medium Gray',\n value: '#CED4D9'\n },\n {\n type: choiceItem,\n text: 'Gray',\n value: '#95A5A6'\n },\n {\n type: choiceItem,\n text: 'Dark Gray',\n value: '#7E8C8D'\n },\n {\n type: choiceItem,\n text: 'Navy Blue',\n value: '#34495E'\n },\n {\n type: choiceItem,\n text: 'Black',\n value: '#000000'\n },\n {\n type: choiceItem,\n text: 'White',\n value: '#ffffff'\n }\n ];\n var colorCache = ColorCache(10);\n var mapColors = function (colorMap) {\n var colors = [];\n var canvas = document.createElement('canvas');\n canvas.height = 1;\n canvas.width = 1;\n var ctx = canvas.getContext('2d');\n var byteAsHex = function (colorByte, alphaByte) {\n var bg = 255;\n var alpha = alphaByte / 255;\n var colorByteWithWhiteBg = Math.round(colorByte * alpha + bg * (1 - alpha));\n return ('0' + colorByteWithWhiteBg.toString(16)).slice(-2).toUpperCase();\n };\n var asHexColor = function (color) {\n if (/^[0-9A-Fa-f]{6}$/.test(color)) {\n return '#' + color.toUpperCase();\n }\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.fillStyle = '#FFFFFF';\n ctx.fillStyle = color;\n ctx.fillRect(0, 0, 1, 1);\n var rgba = ctx.getImageData(0, 0, 1, 1).data;\n var r = rgba[0], g = rgba[1], b = rgba[2], a = rgba[3];\n return '#' + byteAsHex(r, a) + byteAsHex(g, a) + byteAsHex(b, a);\n };\n for (var i = 0; i < colorMap.length; i += 2) {\n colors.push({\n text: colorMap[i + 1],\n value: asHexColor(colorMap[i]),\n type: 'choiceitem'\n });\n }\n return colors;\n };\n var getColorCols = function (editor, defaultCols) {\n return editor.getParam('color_cols', defaultCols, 'number');\n };\n var hasCustomColors = function (editor) {\n return editor.getParam('custom_colors') !== false;\n };\n var getColorMap = function (editor) {\n return editor.getParam('color_map');\n };\n var getColors = function (editor) {\n var unmapped = getColorMap(editor);\n return unmapped !== undefined ? mapColors(unmapped) : defaultColors;\n };\n var getCurrentColors = function () {\n return map(colorCache.state(), function (color) {\n return {\n type: choiceItem,\n text: color,\n value: color\n };\n });\n };\n var addColor = function (color) {\n colorCache.add(color);\n };\n\n var getCurrentColor = function (editor, format) {\n var color;\n editor.dom.getParents(editor.selection.getStart(), function (elm) {\n var value;\n if (value = elm.style[format === 'forecolor' ? 'color' : 'background-color']) {\n color = color ? color : value;\n }\n });\n return color;\n };\n var applyFormat = function (editor, format, value) {\n editor.undoManager.transact(function () {\n editor.focus();\n editor.formatter.apply(format, { value: value });\n editor.nodeChanged();\n });\n };\n var removeFormat = function (editor, format) {\n editor.undoManager.transact(function () {\n editor.focus();\n editor.formatter.remove(format, { value: null }, null, true);\n editor.nodeChanged();\n });\n };\n var registerCommands = function (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 var calcCols = function (colors) {\n return Math.max(5, Math.ceil(Math.sqrt(colors)));\n };\n var getColorCols$1 = function (editor) {\n var colors = getColors(editor);\n var defaultCols = calcCols(colors.length);\n return getColorCols(editor, defaultCols);\n };\n var getAdditionalColors = function (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 ? [\n remove,\n custom\n ] : [remove];\n };\n var applyColor = function (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 }, '#000000');\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 var getColors$1 = function (colors, hasCustom) {\n return colors.concat(getCurrentColors().concat(getAdditionalColors(hasCustom)));\n };\n var getFetch = function (colors, hasCustom) {\n return function (callback) {\n callback(getColors$1(colors, hasCustom));\n };\n };\n var setIconColor = function (splitButtonApi, name, newColor) {\n var setIconFillAndStroke = function (pathId, color) {\n splitButtonApi.setIconFill(pathId, color);\n splitButtonApi.setIconStroke(pathId, color);\n };\n var id = name === 'forecolor' ? 'tox-icon-text-color__color' : 'tox-icon-highlight-bg-color__color';\n setIconFillAndStroke(id, newColor);\n };\n var registerTextColorButton = function (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 (value) {\n var optCurrentRgb = Optional.from(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(getColors(editor), hasCustomColors(editor)),\n onAction: function (_splitButtonApi) {\n if (lastColor.get() !== null) {\n applyColor(editor, format, lastColor.get(), noop);\n }\n },\n onItemAction: function (_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 (splitButtonApi) {\n if (lastColor.get() !== null) {\n setIconColor(splitButtonApi, name, lastColor.get());\n }\n var handler = function (e) {\n if (e.name === name) {\n setIconColor(splitButtonApi, e.name, e.color);\n }\n };\n editor.on('TextColorChange', handler);\n return function () {\n editor.off('TextColorChange', handler);\n };\n }\n });\n };\n var registerTextColorMenuItem = function (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 () {\n return [{\n type: 'fancymenuitem',\n fancytype: 'colorswatch',\n onAction: function (data) {\n applyColor(editor, format, data.value, noop);\n }\n }];\n }\n });\n };\n var colorPickerDialog = function (editor) {\n return function (callback, value) {\n var getOnSubmit = function (callback) {\n return function (api) {\n var data = api.getData();\n callback(Optional.from(data.colorpicker));\n api.close();\n };\n };\n var onAction = function (api, details) {\n if (details.name === 'hex-valid') {\n if (details.value) {\n api.enable('ok');\n } else {\n api.disable('ok');\n }\n }\n };\n var initialData = { colorpicker: value };\n var submit = getOnSubmit(callback);\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 {\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n },\n {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }\n ],\n initialData: initialData,\n onAction: onAction,\n onSubmit: submit,\n onClose: noop,\n onCancel: function () {\n callback(Optional.none());\n }\n });\n };\n };\n var register$1 = function (editor) {\n registerCommands(editor);\n var lastForeColor = Cell(null);\n var lastBackColor = Cell(null);\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 (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 var createChoiceItems = function (items, onItemValueHandler, columns, itemPresets, itemResponse, select, providersBackstage) {\n return cat(map(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 (columns, presets) {\n var menuMarkers = markers$1(presets);\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 var deriveCollectionMovement = function (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 (spec, backstage) {\n var items = getColors$1(backstage.colorinput.getColors(), backstage.colorinput.hasCustomColors());\n var columns = backstage.colorinput.getColorCols();\n var presets = 'color';\n var menuSpec = createPartialChoiceMenu(generate$1('menu-value'), items, function (value) {\n spec.onAction({ value: value });\n }, columns, presets, ItemResponse$1.CLOSE_ON_EXECUTE, never, backstage.shared.providers);\n var widgetSpec = __assign(__assign({}, menuSpec), {\n markers: markers$1(presets),\n movement: deriveMenuMovement(columns, presets)\n });\n return {\n type: 'widget',\n data: { value: generate$1('widget-id') },\n dom: {\n tag: 'div',\n classes: ['tox-fancymenuitem']\n },\n autofocus: true,\n components: [parts$2.widget(Menu.sketch(widgetSpec))]\n };\n };\n\n var cellOverEvent = generate$1('cell-over');\n var cellExecuteEvent = generate$1('cell-execute');\n var makeCell = function (row, col, labelId) {\n var _a;\n var emitCellOver = function (c) {\n return emitWith(c, cellOverEvent, {\n row: row,\n col: col\n });\n };\n var emitExecute = function (c) {\n return emitWith(c, cellExecuteEvent, {\n row: row,\n col: col\n });\n };\n var onClick = function (c, se) {\n se.stop();\n emitExecute(c);\n };\n return build$1({\n dom: {\n tag: 'div',\n attributes: (_a = { role: 'button' }, _a['aria-labelledby'] = labelId, _a)\n },\n behaviours: derive$1([\n config('insert-table-picker-cell', [\n run(mouseover(), Focusing.focus),\n run(execute(), emitExecute),\n run(click(), onClick),\n run(tap(), onClick)\n ]),\n Toggling.config({\n toggleClass: 'tox-insert-table-picker__selected',\n toggleOnExecute: false\n }),\n Focusing.config({ onFocus: emitCellOver })\n ])\n });\n };\n var makeCells = function (labelId, numRows, numCols) {\n var cells = [];\n for (var i = 0; i < numRows; i++) {\n var row = [];\n for (var j = 0; j < numCols; j++) {\n row.push(makeCell(i, j, labelId));\n }\n cells.push(row);\n }\n return cells;\n };\n var selectCells = function (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 var makeComponents = function (cells) {\n return bind(cells, function (cellRow) {\n return map(cellRow, premade$1);\n });\n };\n var makeLabelText = function (row, col) {\n return text(col + 1 + 'x' + (row + 1));\n };\n var renderInsertTableMenuItem = function (spec) {\n var numRows = 10;\n var numColumns = 10;\n var sizeLabelId = generate$1('size-label');\n var cells = makeCells(sizeLabelId, numRows, numColumns);\n var memLabel = record({\n dom: {\n tag: 'span',\n classes: ['tox-insert-table-picker__label'],\n attributes: { id: sizeLabelId }\n },\n components: [text('0x0')],\n behaviours: derive$1([Replacing.config({})])\n });\n return {\n type: 'widget',\n data: { value: generate$1('widget-id') },\n dom: {\n tag: 'div',\n classes: ['tox-fancymenuitem']\n },\n autofocus: true,\n components: [parts$2.widget({\n dom: {\n tag: 'div',\n classes: ['tox-insert-table-picker']\n },\n components: makeComponents(cells).concat(memLabel.asSpec()),\n behaviours: derive$1([\n config('insert-table-picker', [\n runWithTarget(cellOverEvent, function (c, t, e) {\n var row = e.event.row;\n var col = e.event.col;\n selectCells(cells, row, col, numRows, numColumns);\n Replacing.set(memLabel.get(c), [makeLabelText(row, col)]);\n }),\n runWithTarget(cellExecuteEvent, function (c, _, e) {\n spec.onAction({\n numRows: e.event.row + 1,\n numColumns: e.event.col + 1\n });\n emit(c, sandboxClose());\n })\n ]),\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\n var fancyMenuItems = {\n inserttable: renderInsertTableMenuItem,\n colorswatch: renderColorSwatchItem\n };\n var valueOpt = function (obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key) ? Optional.some(obj[key]) : Optional.none();\n };\n var renderFancyMenuItem = function (spec, backstage) {\n return valueOpt(fancyMenuItems, spec.fancytype).map(function (render) {\n return render(spec, backstage);\n });\n };\n\n var renderNestedItem = function (spec, itemResponse, providersBackstage, renderIcons, downwardsCaret) {\n if (renderIcons === void 0) {\n renderIcons = true;\n }\n if (downwardsCaret === void 0) {\n downwardsCaret = false;\n }\n var caret = downwardsCaret ? renderDownwardsCaret(providersBackstage.icons) : renderSubmenuCaret(providersBackstage.icons);\n var getApi = function (component) {\n return {\n isDisabled: function () {\n return Disabling.isDisabled(component);\n },\n setDisabled: function (state) {\n return Disabling.set(component, state);\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 (spec, itemResponse, providersBackstage, renderIcons) {\n if (renderIcons === void 0) {\n renderIcons = true;\n }\n var getApi = function (component) {\n return {\n isDisabled: function () {\n return Disabling.isDisabled(component);\n },\n setDisabled: function (state) {\n return Disabling.set(component, state);\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 (spec) {\n var innerHtml = spec.text.fold(function () {\n return {};\n }, function (text) {\n return { innerHtml: text };\n });\n return {\n type: 'separator',\n dom: __assign({\n tag: 'div',\n classes: [\n selectableClass,\n groupHeadingClass\n ]\n }, innerHtml),\n components: []\n };\n };\n\n var renderToggleMenuItem = function (spec, itemResponse, providersBackstage, renderIcons) {\n if (renderIcons === void 0) {\n renderIcons = true;\n }\n var getApi = function (component) {\n return {\n setActive: function (state) {\n Toggling.set(component, state);\n },\n isActive: function () {\n return Toggling.isOn(component);\n },\n isDisabled: function () {\n return Disabling.isDisabled(component);\n },\n setDisabled: function (state) {\n return Disabling.set(component, state);\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 = renderSeparatorItem;\n var normal = renderNormalItem;\n var nested = renderNestedItem;\n var toggle$1 = renderToggleMenuItem;\n var fancy = renderFancyMenuItem;\n var card = renderCardMenuItem;\n\n var FocusMode;\n (function (FocusMode) {\n FocusMode[FocusMode['ContentFocus'] = 0] = 'ContentFocus';\n FocusMode[FocusMode['UiFocus'] = 1] = 'UiFocus';\n }(FocusMode || (FocusMode = {})));\n var createMenuItemFromBridge = function (item, itemResponse, backstage, menuHasIcons, isHorizontalMenu) {\n var providersBackstage = backstage.shared.providers;\n var parseForHorizontalMenu = function (menuitem) {\n return !isHorizontalMenu ? menuitem : __assign(__assign({}, menuitem), {\n shortcut: Optional.none(),\n icon: menuitem.text.isSome() ? Optional.none() : menuitem.icon\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 case 'nestedmenuitem':\n return createNestedMenuItem(item).fold(handleError, function (d) {\n return Optional.some(nested(parseForHorizontalMenu(d), itemResponse, providersBackstage, menuHasIcons, isHorizontalMenu));\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 case 'separator':\n return createSeparatorMenuItem(item).fold(handleError, function (d) {\n return Optional.some(separator(d));\n });\n case 'fancymenuitem':\n return createFancyMenuItem(item).fold(handleError, function (d) {\n return fancy(parseForHorizontalMenu(d), backstage);\n });\n default: {\n console.error('Unknown item in general menu', item);\n return Optional.none();\n }\n }\n };\n var createAutocompleteItems = function (items, matchText, onItemValueHandler, columns, itemResponse, sharedBackstage, highlightOn) {\n var renderText = columns === 1;\n var renderIcons = !renderText || menuHasIcons(items);\n return cat(map(items, function (item) {\n switch (item.type) {\n case 'separator':\n return createSeparatorItem(item).fold(handleError, function (d) {\n return Optional.some(separator(d));\n });\n case 'cardmenuitem':\n return createCardMenuItem(item).fold(handleError, function (d) {\n return Optional.some(card(__assign(__assign({}, d), {\n onAction: function (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 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 var createPartialMenu = function (value, items, itemResponse, backstage, isHorizontalMenu) {\n var hasIcons = menuHasIcons(items);\n var alloyItems = cat(map(items, function (item) {\n var itemHasIcon = function (i) {\n return isHorizontalMenu ? !i.hasOwnProperty('text') : hasIcons;\n };\n var createItem = function (i) {\n return createMenuItemFromBridge(i, itemResponse, backstage, itemHasIcon(i), isHorizontalMenu);\n };\n if (item.type === 'nestedmenuitem' && item.getSubmenuItems().length <= 0) {\n return createItem(__assign(__assign({}, item), { disabled: true }));\n } else {\n return createItem(item);\n }\n }));\n var createPartial = isHorizontalMenu ? createHorizontalPartialMenuWithAlloyItems : createPartialMenuWithAlloyItems;\n return createPartial(value, hasIcons, alloyItems, 1, 'normal');\n };\n var createTieredDataFrom = function (partialMenu) {\n return tieredMenu.singleData(partialMenu.value, partialMenu);\n };\n var createMenuFrom = function (partialMenu, columns, focusMode, presets) {\n var focusManager = focusMode === FocusMode.ContentFocus ? highlights() : dom();\n var movement = deriveMenuMovement(columns, presets);\n var menuMarkers = markers$1(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, numRows = _a.numRows;\n Keying.setGridSize(comp, numRows, numColumns);\n });\n })])\n };\n };\n\n var register$2 = function (editor, sharedBackstage) {\n var activeAutocompleter = Cell(Optional.none());\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(dismissRequested(), function () {\n return cancelIfNecessary();\n })])]),\n lazySink: sharedBackstage.getSink\n }));\n var isMenuOpen = function () {\n return InlineView.isOpen(autocompleter);\n };\n var isActive = function () {\n return activeAutocompleter.get().isSome();\n };\n var hideIfNecessary = function () {\n if (isActive()) {\n InlineView.hide(autocompleter);\n }\n };\n var cancelIfNecessary = function () {\n if (isActive()) {\n var lastElement = activeAutocompleter.get().map(function (ac) {\n return ac.element;\n });\n detect$4(lastElement.getOr(SugarElement.fromDom(editor.selection.getNode()))).each(unwrap);\n hideIfNecessary();\n activeAutocompleter.set(Optional.none());\n processingAction.set(false);\n }\n };\n var getAutocompleters = cached(function () {\n return register(editor);\n });\n var getCombinedItems = function (triggerChar, matches) {\n var columns = findMap(matches, function (m) {\n return Optional.from(m.columns);\n }).getOr(1);\n return bind(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 () {\n cancelIfNecessary();\n },\n reload: function (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 var commenceIfNecessary = function (context) {\n if (!isActive()) {\n var wrapper = create$4(editor, context.range);\n activeAutocompleter.set(Optional.some({\n triggerChar: context.triggerChar,\n element: wrapper,\n matchLength: context.text.length\n }));\n processingAction.set(false);\n }\n };\n var display = function (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, {\n anchor: 'node',\n root: SugarElement.fromDom(editor.getBody()),\n node: Optional.from(ac.element)\n }, Menu.sketch(createMenuFrom(createPartialMenuWithAlloyItems('autocompleter-value', true, items, columns, 'normal'), columns, FocusMode.ContentFocus, 'normal')));\n InlineView.getContent(autocompleter).each(Highlighting.highlightFirst);\n };\n var doLookup = function (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(editor, getAutocompleters);\n });\n };\n var load = function (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 if (ac.triggerChar === context.triggerChar) {\n var combinedItems = getCombinedItems(context.triggerChar, lookupData);\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 var onKeypress = last$2(function (e) {\n if (e.which === 27) {\n return;\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 () {\n return InlineView.getContent(autocompleter);\n }\n };\n if (editor.hasPlugin('rtc') === false) {\n AutocompleterEditorEvents.setup(autocompleterUiApi, editor);\n }\n };\n var Autocompleter = { register: register$2 };\n\n var filter$2 = always;\n var bind$3 = function (element, event, handler) {\n return bind$2(element, event, filter$2, handler);\n };\n var capture$1 = function (element, event, handler) {\n return capture(element, event, filter$2, handler);\n };\n var fromRawEvent$1 = fromRawEvent;\n\n var closest$4 = function (scope, selector, isRoot) {\n return closest$3(scope, selector, isRoot).isSome();\n };\n\n var DelayedFunction = function (fun, delay) {\n var ref = null;\n var schedule = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n ref = setTimeout(function () {\n fun.apply(null, args);\n ref = null;\n }, delay);\n };\n var cancel = function () {\n if (ref !== null) {\n clearTimeout(ref);\n ref = null;\n }\n };\n return {\n cancel: cancel,\n schedule: schedule\n };\n };\n\n var SIGNIFICANT_MOVE = 5;\n var LONGPRESS_DELAY = 400;\n var getTouch = function (event) {\n var raw = event.raw;\n if (raw.touches === undefined || raw.touches.length !== 1) {\n return Optional.none();\n }\n return Optional.some(raw.touches[0]);\n };\n var isFarEnough = function (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 var monitor = function (settings) {\n var startData = Cell(Optional.none());\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 var handleTouchstart = function (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(Optional.some(data));\n });\n return Optional.none();\n };\n var handleTouchmove = function (event) {\n longpress$1.cancel();\n getTouch(event).each(function (touch) {\n startData.get().each(function (data) {\n if (isFarEnough(touch, data)) {\n startData.set(Optional.none());\n }\n });\n });\n return Optional.none();\n };\n var handleTouchend = function (event) {\n longpress$1.cancel();\n var isSame = function (data) {\n return eq$1(data.target, event.target);\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 var handlers = wrapAll$1([\n {\n key: touchstart(),\n value: handleTouchstart\n },\n {\n key: touchmove(),\n value: handleTouchmove\n },\n {\n key: touchend(),\n value: handleTouchend\n }\n ]);\n var fireIfReady = function (event, type) {\n return get$1(handlers, type).bind(function (handler) {\n return handler(event);\n });\n };\n return { fireIfReady: fireIfReady };\n };\n\n var isDangerous = function (event) {\n var keyEv = event.raw;\n return keyEv.which === BACKSPACE[0] && !contains([\n 'input',\n 'textarea'\n ], name(event.target)) && !closest$4(event.target, '[contenteditable=\"true\"]');\n };\n var isFirefox = function () {\n return detect$3().browser.isFirefox();\n };\n var settingsSchema = objOfOnly([\n strictFunction('triggerEvent'),\n defaulted$1('stopBackspace', true)\n ]);\n var bindFocus = function (container, handler) {\n if (isFirefox()) {\n return capture$1(container, 'focus', handler);\n } else {\n return bind$3(container, 'focusin', handler);\n }\n };\n var bindBlur = function (container, handler) {\n if (isFirefox()) {\n return capture$1(container, 'blur', handler);\n } else {\n return bind$3(container, 'focusout', handler);\n }\n };\n var setup$1 = function (container, rawSettings) {\n var settings = asRawOrDie('Getting GUI events settings', settingsSchema, rawSettings);\n var pointerEvents = [\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'gesturestart',\n 'mousedown',\n 'mouseup',\n 'mouseover',\n 'mousemove',\n 'mouseout',\n 'click'\n ];\n var tapEvent = monitor(settings);\n var simpleEvents = map(pointerEvents.concat([\n 'selectstart',\n 'input',\n 'contextmenu',\n 'change',\n 'transitionend',\n 'drag',\n 'dragstart',\n 'dragend',\n 'dragenter',\n 'dragleave',\n 'dragover',\n 'drop',\n 'keyup'\n ]), function (type) {\n return bind$3(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 if (stopped) {\n event.kill();\n }\n });\n });\n var pasteTimeout = Cell(Optional.none());\n var onPaste = bind$3(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 if (stopped) {\n event.kill();\n }\n pasteTimeout.set(Optional.some(setTimeout(function () {\n settings.triggerEvent(postPaste(), event);\n }, 0)));\n });\n var onKeydown = bind$3(container, 'keydown', function (event) {\n var stopped = settings.triggerEvent('keydown', event);\n if (stopped) {\n event.kill();\n } else if (settings.stopBackspace === true && isDangerous(event)) {\n event.prevent();\n }\n });\n var onFocusIn = bindFocus(container, function (event) {\n var stopped = settings.triggerEvent('focusin', event);\n if (stopped) {\n event.kill();\n }\n });\n var focusoutTimeout = Cell(Optional.none());\n var onFocusOut = bindBlur(container, function (event) {\n var stopped = settings.triggerEvent('focusout', event);\n if (stopped) {\n event.kill();\n }\n focusoutTimeout.set(Optional.some(setTimeout(function () {\n settings.triggerEvent(postBlur(), event);\n }, 0)));\n });\n var unbind = function () {\n each(simpleEvents, function (e) {\n e.unbind();\n });\n onKeydown.unbind();\n onFocusIn.unbind();\n onFocusOut.unbind();\n onPaste.unbind();\n pasteTimeout.get().each(clearTimeout);\n focusoutTimeout.get().each(clearTimeout);\n };\n return { unbind: unbind };\n };\n\n var derive$2 = function (rawEvent, rawTarget) {\n var source = get$1(rawEvent, 'target').getOr(rawTarget);\n return Cell(source);\n };\n\n var fromSource = function (event, source) {\n var stopper = Cell(false);\n var cutter = Cell(false);\n var stop = function () {\n stopper.set(true);\n };\n var cut = function () {\n cutter.set(true);\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 var fromExternal = function (event) {\n var stopper = Cell(false);\n var stop = function () {\n stopper.set(true);\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$b = Adt.generate([\n { stopped: [] },\n { resume: ['element'] },\n { complete: [] }\n ]);\n var doTriggerHandler = function (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$b.complete();\n }, function (handlerInfo) {\n var descHandler = handlerInfo.descHandler;\n var eventHandler = getCurried(descHandler);\n eventHandler(simulatedEvent);\n if (simulatedEvent.isStopped()) {\n logger.logEventStopped(eventType, handlerInfo.element, descHandler.purpose);\n return adt$b.stopped();\n } else if (simulatedEvent.isCut()) {\n logger.logEventCut(eventType, handlerInfo.element, descHandler.purpose);\n return adt$b.complete();\n } else {\n return parent(handlerInfo.element).fold(function () {\n logger.logNoParent(eventType, handlerInfo.element, descHandler.purpose);\n return adt$b.complete();\n }, function (parent) {\n logger.logEventResponse(eventType, handlerInfo.element, descHandler.purpose);\n return adt$b.resume(parent);\n });\n }\n });\n };\n var doTriggerOnUntilStopped = function (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 var triggerHandler = function (lookup, eventType, rawEvent, target, logger) {\n var source = derive$2(rawEvent, target);\n return doTriggerHandler(lookup, eventType, rawEvent, target, source, logger);\n };\n var broadcast = function (listeners, rawEvent, _logger) {\n var simulatedEvent = fromExternal(rawEvent);\n each(listeners, function (listener) {\n var descHandler = listener.descHandler;\n var handler = getCurried(descHandler);\n handler(simulatedEvent);\n });\n return simulatedEvent.isStopped();\n };\n var triggerUntilStopped = function (lookup, eventType, rawEvent, logger) {\n return triggerOnUntilStopped(lookup, eventType, rawEvent, rawEvent.target, logger);\n };\n var triggerOnUntilStopped = function (lookup, eventType, rawEvent, rawTarget, logger) {\n var source = derive$2(rawEvent, rawTarget);\n return doTriggerOnUntilStopped(lookup, eventType, rawEvent, rawTarget, source, logger);\n };\n\n var eventHandler = function (element, descHandler) {\n return {\n element: element,\n descHandler: descHandler\n };\n };\n var broadcastHandler = function (id, handler) {\n return {\n id: id,\n descHandler: handler\n };\n };\n var EventRegistry = function () {\n var registry = {};\n var registerId = function (extraArgs, id, events) {\n each$1(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 var findHandler = function (handlers, elem) {\n return read$1(elem).fold(function () {\n return Optional.none();\n }, function (id) {\n return handlers.bind(function (h) {\n return get$1(h, id);\n }).map(function (descHandler) {\n return eventHandler(elem, descHandler);\n });\n });\n };\n var filterByType = function (type) {\n return get$1(registry, type).map(function (handlers) {\n return mapToArray(handlers, function (f, id) {\n return broadcastHandler(id, f);\n });\n }).getOr([]);\n };\n var find = function (isAboveRoot, type, target) {\n var handlers = get$1(registry, type);\n return closest(target, function (elem) {\n return findHandler(handlers, elem);\n }, isAboveRoot);\n };\n var unregisterId = function (id) {\n each$1(registry, function (handlersById, _eventName) {\n if (handlersById.hasOwnProperty(id)) {\n delete handlersById[id];\n }\n });\n };\n return {\n registerId: registerId,\n unregisterId: unregisterId,\n filterByType: filterByType,\n find: find\n };\n };\n\n var Registry = function () {\n var events = EventRegistry();\n var components = {};\n var readOrTag = function (component) {\n var elem = component.element;\n return read$1(elem).fold(function () {\n return write('uid-', component.element);\n }, function (uid) {\n return uid;\n });\n };\n var failOnDuplicate = function (component, tagId) {\n var conflict = components[tagId];\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 var register = function (component) {\n var tagId = readOrTag(component);\n if (hasNonNullableKey(components, tagId)) {\n failOnDuplicate(component, tagId);\n }\n var extraArgs = [component];\n events.registerId(extraArgs, tagId, component.events);\n components[tagId] = component;\n };\n var unregister = function (component) {\n read$1(component.element).each(function (tagId) {\n delete components[tagId];\n events.unregisterId(tagId);\n });\n };\n var filter = function (type) {\n return events.filterByType(type);\n };\n var find = function (isAboveRoot, type, target) {\n return events.find(isAboveRoot, type, target);\n };\n var getById = function (id) {\n return get$1(components, id);\n };\n return {\n find: find,\n filter: filter,\n register: register,\n unregister: unregister,\n getById: getById\n };\n };\n\n var factory$3 = function (detail) {\n var _a = detail.dom, attributes = _a.attributes, domWithoutAttributes = __rest(_a, ['attributes']);\n return {\n uid: detail.uid,\n dom: __assign({\n tag: 'div',\n attributes: __assign({ role: 'presentation' }, attributes)\n }, domWithoutAttributes),\n components: detail.components,\n behaviours: get$d(detail.containerBehaviours),\n events: detail.events,\n domModification: detail.domModification,\n eventOrder: detail.eventOrder\n };\n };\n var Container = single$2({\n name: 'Container',\n factory: factory$3,\n configFields: [\n defaulted$1('components', []),\n field$1('containerBehaviours', []),\n defaulted$1('events', {}),\n defaulted$1('domModification', {}),\n defaulted$1('eventOrder', {})\n ]\n });\n\n var takeover = function (root) {\n var isAboveRoot = function (el) {\n return parent(root.element).fold(always, function (parent) {\n return eq$1(el, parent);\n });\n };\n var registry = Registry();\n var lookup = function (eventName, target) {\n return registry.find(isAboveRoot, eventName, target);\n };\n var domEvents = setup$1(root.element, {\n triggerEvent: function (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('real'),\n triggerEvent: function (eventName, target, data) {\n monitorEvent(eventName, target, function (logger) {\n return triggerOnUntilStopped(lookup, eventName, data, target, logger);\n });\n },\n triggerFocus: function (target, originator) {\n read$1(target).fold(function () {\n focus$1(target);\n }, function (_alloyId) {\n monitorEvent(focus(), target, function (logger) {\n triggerHandler(lookup, focus(), {\n originator: originator,\n kill: noop,\n prevent: noop,\n target: target\n }, target, logger);\n return false;\n });\n });\n },\n triggerEscape: function (comp, simulatedEvent) {\n systemApi.triggerEvent('keydown', comp.element, simulatedEvent.event);\n },\n getByUid: function (uid) {\n return getByUid(uid);\n },\n getByDom: function (elem) {\n return getByDom(elem);\n },\n build: build$1,\n addToGui: function (c) {\n add(c);\n },\n removeFromGui: function (c) {\n remove$1(c);\n },\n addToWorld: function (c) {\n addToWorld(c);\n },\n removeFromWorld: function (c) {\n removeFromWorld(c);\n },\n broadcast: function (message) {\n broadcast$1(message);\n },\n broadcastOn: function (channels, message) {\n broadcastOn(channels, message);\n },\n broadcastEvent: function (eventName, event) {\n broadcastEvent(eventName, event);\n },\n isConnected: always\n };\n var addToWorld = function (component) {\n component.connect(systemApi);\n if (!isText(component.element)) {\n registry.register(component);\n each(component.components(), addToWorld);\n systemApi.triggerEvent(systemInit(), component.element, { target: component.element });\n }\n };\n var removeFromWorld = function (component) {\n if (!isText(component.element)) {\n each(component.components(), removeFromWorld);\n registry.unregister(component);\n }\n component.disconnect();\n };\n var add = function (component) {\n attach$1(root, component);\n };\n var remove$1 = function (component) {\n detach(component);\n };\n var destroy = function () {\n domEvents.unbind();\n remove(root.element);\n };\n var broadcastData = function (data) {\n var receivers = registry.filter(receive());\n each(receivers, function (receiver) {\n var descHandler = receiver.descHandler;\n var handler = getCurried(descHandler);\n handler(data);\n });\n };\n var broadcast$1 = function (message) {\n broadcastData({\n universal: true,\n data: message\n });\n };\n var broadcastOn = function (channels, message) {\n broadcastData({\n universal: false,\n channels: channels,\n data: message\n });\n };\n var broadcastEvent = function (eventName, event) {\n var listeners = registry.filter(eventName);\n return broadcast(listeners, event);\n };\n var getByUid = function (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 var getByDom = function (elem) {\n var uid = read$1(elem).getOr('not found');\n return getByUid(uid);\n };\n addToWorld(root);\n return {\n root: root,\n element: root.element,\n destroy: destroy,\n add: add,\n remove: remove$1,\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 (spec, backstage) {\n return {\n dom: {\n tag: 'div',\n classes: [\n 'tox-bar',\n 'tox-form__controls-h-stack'\n ]\n },\n components: map(spec.items, backstage.interpreter)\n };\n };\n\n var schema$e = constant([\n defaulted$1('prefix', 'form-field'),\n field$1('fieldBehaviours', [\n Composing,\n Representing\n ])\n ]);\n var parts$3 = constant([\n optional({\n schema: [strict$1('dom')],\n name: 'label'\n }),\n optional({\n factory: {\n sketch: function (spec) {\n return {\n uid: spec.uid,\n dom: {\n tag: 'span',\n styles: { display: 'none' },\n attributes: { 'aria-hidden': 'true' },\n innerHtml: spec.text\n }\n };\n }\n },\n schema: [strict$1('text')],\n name: 'aria-descriptor'\n }),\n required({\n factory: {\n sketch: function (spec) {\n var excludeFactory = exclude$1(spec, ['factory']);\n return spec.factory.sketch(excludeFactory);\n }\n },\n schema: [strict$1('factory')],\n name: 'field'\n })\n ]);\n\n var factory$4 = function (detail, components, _spec, _externals) {\n var behaviours = augment(detail.fieldBehaviours, [\n Composing.config({\n find: function (container) {\n return getPart(container, detail, 'field');\n }\n }),\n Representing.config({\n store: {\n mode: 'manual',\n getValue: function (field) {\n return Composing.getCurrent(field).bind(Representing.getValue);\n },\n setValue: function (field, value) {\n Composing.getCurrent(field).each(function (current) {\n Representing.setValue(current, value);\n });\n }\n }\n })\n ]);\n var events = derive([runOnAttached(function (component, _simulatedEvent) {\n var ps = getParts(component, detail, [\n 'label',\n 'field',\n 'aria-descriptor'\n ]);\n ps.field().each(function (field) {\n var id = generate$1(detail.prefix);\n ps.label().each(function (label) {\n set$1(label.element, 'for', id);\n set$1(field.element, 'id', id);\n });\n ps['aria-descriptor']().each(function (descriptor) {\n var descriptorId = generate$1(detail.prefix);\n set$1(descriptor.element, 'id', descriptorId);\n set$1(field.element, 'aria-describedby', descriptorId);\n });\n });\n })]);\n var apis = {\n getField: function (container) {\n return getPart(container, detail, 'field');\n },\n getLabel: function (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 var FormField = composite$1({\n name: 'FormField',\n configFields: schema$e(),\n partFields: parts$3(),\n factory: factory$4,\n apis: {\n getField: function (apis, comp) {\n return apis.getField(comp);\n },\n getLabel: function (apis, comp) {\n return apis.getLabel(comp);\n }\n }\n });\n\n var exhibit$4 = function (base, tabConfig) {\n return nu$6({\n attributes: wrapAll$1([{\n key: tabConfig.tabAttr,\n value: 'true'\n }])\n });\n };\n\n var ActiveTabstopping = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit$4\n });\n\n var TabstopSchema = [defaulted$1('tabAttr', 'data-alloy-tabstop')];\n\n var Tabstopping = create$1({\n fields: TabstopSchema,\n name: 'tabstopping',\n active: ActiveTabstopping\n });\n\n var global$a = tinymce.util.Tools.resolve('tinymce.html.Entities');\n\n var renderFormFieldWith = function (pLabel, pField, extraClasses, extraBehaviours) {\n var spec = renderFormFieldSpecWith(pLabel, pField, extraClasses, extraBehaviours);\n return FormField.sketch(spec);\n };\n var renderFormField = function (pLabel, pField) {\n return renderFormFieldWith(pLabel, pField, [], []);\n };\n var renderFormFieldSpecWith = function (pLabel, pField, extraClasses, extraBehaviours) {\n return {\n dom: renderFormFieldDomWith(extraClasses),\n components: pLabel.toArray().concat([pField]),\n fieldBehaviours: derive$1(extraBehaviours)\n };\n };\n var renderFormFieldDom = function () {\n return renderFormFieldDomWith([]);\n };\n var renderFormFieldDomWith = function (extraClasses) {\n return {\n tag: 'div',\n classes: ['tox-form__group'].concat(extraClasses)\n };\n };\n var renderLabel = function (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$1('form-component-change');\n var formCloseEvent = generate$1('form-close');\n var formCancelEvent = generate$1('form-cancel');\n var formActionEvent = generate$1('form-action');\n var formSubmitEvent = generate$1('form-submit');\n var formBlockEvent = generate$1('form-block');\n var formUnblockEvent = generate$1('form-unblock');\n var formTabChangeEvent = generate$1('form-tabchange');\n var formResizeEvent = generate$1('form-resize');\n\n var renderCollection = function (spec, providersBackstage) {\n var _a;\n var pLabel = spec.label.map(function (label) {\n return renderLabel(label, providersBackstage);\n });\n var runOnItem = function (f) {\n return function (comp, se) {\n closest$3(se.event.target, '[data-collection-item-value]').each(function (target) {\n f(comp, se, target, get$3(target, 'data-collection-item-value'));\n });\n };\n };\n var setContents = function (comp, items) {\n var htmlLines = map(items, function (item) {\n var itemText = global$6.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(htmlLines, spec.columns) : [htmlLines];\n var html = map(chunks, function (ch) {\n return '
' + ch.join('') + '
';\n });\n set(comp.element, html.join(''));\n };\n var onClick = runOnItem(function (comp, se, tgt, itemValue) {\n se.stop();\n if (!providersBackstage.isDisabled()) {\n emitWith(comp, formActionEvent, {\n name: spec.name,\n value: itemValue\n });\n }\n });\n var collectionEvents = [\n run(mouseover(), runOnItem(function (comp, se, tgt) {\n focus$1(tgt);\n })),\n run(click(), onClick),\n run(tap(), onClick),\n run(focusin(), runOnItem(function (comp, se, tgt) {\n descendant$1(comp.element, '.' + activeClass).each(function (currentActive) {\n remove$4(currentActive, activeClass);\n });\n add$2(tgt, activeClass);\n })),\n run(focusout(), runOnItem(function (comp) {\n descendant$1(comp.element, '.' + activeClass).each(function (currentActive) {\n remove$4(currentActive, activeClass);\n });\n })),\n runOnExecute(runOnItem(function (comp, se, tgt, itemValue) {\n emitWith(comp, formActionEvent, {\n name: spec.name,\n value: itemValue\n });\n }))\n ];\n var iterCollectionItems = function (comp, applyAttributes) {\n return map(descendants(comp.element, '.tox-collection__item'), applyAttributes);\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: { sketch: identity },\n behaviours: derive$1([\n Disabling.config({\n disabled: providersBackstage.isDisabled,\n onDisabled: function (comp) {\n iterCollectionItems(comp, function (childElm) {\n add$2(childElm, 'tox-collection__item--state-disabled');\n set$1(childElm, 'aria-disabled', true);\n });\n },\n onEnabled: function (comp) {\n iterCollectionItems(comp, function (childElm) {\n remove$4(childElm, 'tox-collection__item--state-disabled');\n remove$1(childElm, 'aria-disabled');\n });\n }\n }),\n receivingConfig(),\n Replacing.config({}),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: []\n },\n onSetValue: function (comp, items) {\n setContents(comp, items);\n if (spec.columns === 'auto') {\n detectSize(comp, 5, 'tox-collection__item').each(function (_a) {\n var numRows = _a.numRows, numColumns = _a.numColumns;\n Keying.setGridSize(comp, numRows, numColumns);\n });\n }\n emit(comp, formResizeEvent);\n }\n }),\n Tabstopping.config({}),\n Keying.config(deriveCollectionMovement(spec.columns, 'normal')),\n config('collection-events', collectionEvents)\n ]),\n eventOrder: (_a = {}, _a[execute()] = [\n 'disabling',\n 'alloy.base.behaviour',\n 'collection-events'\n ], _a)\n });\n var extraClasses = ['tox-form__group--collection'];\n return renderFormFieldWith(pLabel, pField, extraClasses, []);\n };\n\n var schema$f = constant([\n option('data'),\n defaulted$1('inputAttributes', {}),\n defaulted$1('inputStyles', {}),\n defaulted$1('tag', 'input'),\n defaulted$1('inputClasses', []),\n onHandler('onSetValue'),\n defaulted$1('styles', {}),\n defaulted$1('eventOrder', {}),\n field$1('inputBehaviours', [\n Representing,\n Focusing\n ]),\n defaulted$1('selectOnFocus', true)\n ]);\n var focusBehaviours = function (detail) {\n return derive$1([Focusing.config({\n onFocus: !detail.selectOnFocus ? noop : function (component) {\n var input = component.element;\n var value = get$6(input);\n input.dom.setSelectionRange(0, value.length);\n }\n })]);\n };\n var behaviours = function (detail) {\n return __assign(__assign({}, focusBehaviours(detail)), augment(detail.inputBehaviours, [Representing.config({\n store: __assign(__assign({ mode: 'manual' }, detail.data.map(function (data) {\n return { initialValue: data };\n }).getOr({})), {\n getValue: function (input) {\n return get$6(input.element);\n },\n setValue: function (input, data) {\n var current = get$6(input.element);\n if (current !== data) {\n set$3(input.element, data);\n }\n }\n }),\n onSetValue: detail.onSetValue\n })]));\n };\n var dom$2 = function (detail) {\n return {\n tag: detail.tag,\n attributes: __assign({ type: 'text' }, detail.inputAttributes),\n styles: detail.inputStyles,\n classes: detail.inputClasses\n };\n };\n\n var factory$5 = function (detail, _spec) {\n return {\n uid: detail.uid,\n dom: dom$2(detail),\n components: [],\n behaviours: behaviours(detail),\n eventOrder: detail.eventOrder\n };\n };\n var Input = single$2({\n name: 'Input',\n configFields: schema$f(),\n factory: factory$5\n });\n\n var exports$1 = {}, module = { exports: exports$1 };\n (function (define, exports, module, require) {\n (function (f) {\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n module.exports = f();\n } else if (typeof define === 'function' && define.amd) {\n define([], f);\n } else {\n var g;\n if (typeof window !== 'undefined') {\n g = window;\n } else if (typeof global !== 'undefined') {\n g = global;\n } else if (typeof self !== 'undefined') {\n g = self;\n } else {\n g = this;\n }\n g.EphoxContactWrapper = f();\n }\n }(function () {\n return function () {\n function r(e, n, t) {\n function o(i, f) {\n if (!n[i]) {\n if (!e[i]) {\n var c = 'function' == typeof require && require;\n if (!f && c)\n return c(i, !0);\n if (u)\n return u(i, !0);\n var a = new Error('Cannot find module \\'' + i + '\\'');\n throw a.code = 'MODULE_NOT_FOUND', a;\n }\n var p = n[i] = { exports: {} };\n e[i][0].call(p.exports, function (r) {\n var n = e[i][1][r];\n return o(n || r);\n }, p, p.exports, r, e, n, t);\n }\n return n[i].exports;\n }\n for (var u = 'function' == typeof require && require, i = 0; i < t.length; i++)\n o(t[i]);\n return o;\n }\n return r;\n }()({\n 1: [\n function (require, module, exports) {\n var process = module.exports = {};\n var cachedSetTimeout;\n var cachedClearTimeout;\n function defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n }\n function defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n }\n (function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n }());\n function runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n return setTimeout(fun, 0);\n }\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n }\n function runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n return clearTimeout(marker);\n }\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n return cachedClearTimeout.call(this, marker);\n }\n }\n }\n var queue = [];\n var draining = false;\n var currentQueue;\n var queueIndex = -1;\n function cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n }\n function drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n while (len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n }\n process.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n };\n function Item(fun, array) {\n this.fun = fun;\n this.array = array;\n }\n Item.prototype.run = function () {\n this.fun.apply(null, this.array);\n };\n process.title = 'browser';\n process.browser = true;\n process.env = {};\n process.argv = [];\n process.version = '';\n process.versions = {};\n function noop() {\n }\n process.on = noop;\n process.addListener = noop;\n process.once = noop;\n process.off = noop;\n process.removeListener = noop;\n process.removeAllListeners = noop;\n process.emit = noop;\n process.prependListener = noop;\n process.prependOnceListener = noop;\n process.listeners = function (name) {\n return [];\n };\n process.binding = function (name) {\n throw new Error('process.binding is not supported');\n };\n process.cwd = function () {\n return '/';\n };\n process.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n };\n process.umask = function () {\n return 0;\n };\n },\n {}\n ],\n 2: [\n function (require, module, exports) {\n (function (setImmediate) {\n (function (root) {\n var setTimeoutFunc = setTimeout;\n function noop() {\n }\n function bind(fn, thisArg) {\n return function () {\n fn.apply(thisArg, arguments);\n };\n }\n function Promise(fn) {\n if (typeof this !== 'object')\n throw new TypeError('Promises must be constructed via new');\n if (typeof fn !== 'function')\n 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 function handle(self, deferred) {\n while (self._state === 3) {\n self = self._value;\n }\n if (self._state === 0) {\n self._deferreds.push(deferred);\n return;\n }\n self._handled = true;\n Promise._immediateFn(function () {\n var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n return;\n }\n var ret;\n try {\n ret = cb(self._value);\n } catch (e) {\n reject(deferred.promise, e);\n return;\n }\n resolve(deferred.promise, ret);\n });\n }\n function resolve(self, newValue) {\n try {\n if (newValue === self)\n throw new TypeError('A promise cannot be resolved with itself.');\n if (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) {\n var then = newValue.then;\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 self._state = 1;\n self._value = newValue;\n finale(self);\n } catch (e) {\n reject(self, e);\n }\n }\n function reject(self, newValue) {\n self._state = 2;\n self._value = newValue;\n finale(self);\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 for (var i = 0, len = self._deferreds.length; i < len; i++) {\n handle(self, self._deferreds[i]);\n }\n self._deferreds = null;\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 function doResolve(fn, self) {\n var done = false;\n try {\n fn(function (value) {\n if (done)\n return;\n done = true;\n resolve(self, value);\n }, function (reason) {\n if (done)\n return;\n done = true;\n reject(self, reason);\n });\n } catch (ex) {\n if (done)\n return;\n done = true;\n reject(self, ex);\n }\n }\n Promise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\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 Promise.all = function (arr) {\n var args = Array.prototype.slice.call(arr);\n return new Promise(function (resolve, reject) {\n if (args.length === 0)\n return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n try {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(val, function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n } catch (ex) {\n reject(ex);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n };\n Promise.resolve = function (value) {\n if (value && typeof value === 'object' && value.constructor === Promise) {\n return value;\n }\n return new Promise(function (resolve) {\n resolve(value);\n });\n };\n Promise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\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 Promise._immediateFn = typeof setImmediate === 'function' ? function (fn) {\n setImmediate(fn);\n } : function (fn) {\n setTimeoutFunc(fn, 0);\n };\n Promise._unhandledRejectionFn = function _unhandledRejectionFn(err) {\n if (typeof console !== 'undefined' && console) {\n console.warn('Possible Unhandled Promise Rejection:', err);\n }\n };\n Promise._setImmediateFn = function _setImmediateFn(fn) {\n Promise._immediateFn = fn;\n };\n Promise._setUnhandledRejectionFn = function _setUnhandledRejectionFn(fn) {\n Promise._unhandledRejectionFn = fn;\n };\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = Promise;\n } else if (!root.Promise) {\n root.Promise = Promise;\n }\n }(this));\n }.call(this, require('timers').setImmediate));\n },\n { 'timers': 3 }\n ],\n 3: [\n function (require, module, exports) {\n (function (setImmediate, clearImmediate) {\n var nextTick = require('process/browser.js').nextTick;\n var apply = Function.prototype.apply;\n var slice = Array.prototype.slice;\n var immediateIds = {};\n var nextImmediateId = 0;\n exports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);\n };\n exports.setInterval = function () {\n return new Timeout(apply.call(setInterval, window, arguments), clearInterval);\n };\n exports.clearTimeout = exports.clearInterval = function (timeout) {\n timeout.close();\n };\n function Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n }\n Timeout.prototype.unref = Timeout.prototype.ref = function () {\n };\n Timeout.prototype.close = function () {\n this._clearFn.call(window, this._id);\n };\n exports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n };\n exports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n };\n exports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n };\n exports.setImmediate = typeof setImmediate === 'function' ? setImmediate : function (fn) {\n var id = nextImmediateId++;\n var args = arguments.length < 2 ? false : slice.call(arguments, 1);\n immediateIds[id] = true;\n nextTick(function onNextTick() {\n if (immediateIds[id]) {\n if (args) {\n fn.apply(null, args);\n } else {\n fn.call(null);\n }\n exports.clearImmediate(id);\n }\n });\n return id;\n };\n exports.clearImmediate = typeof clearImmediate === 'function' ? clearImmediate : function (id) {\n delete immediateIds[id];\n };\n }.call(this, require('timers').setImmediate, require('timers').clearImmediate));\n },\n {\n 'process/browser.js': 1,\n 'timers': 3\n }\n ],\n 4: [\n function (require, module, exports) {\n var promisePolyfill = require('promise-polyfill');\n var Global = function () {\n if (typeof window !== 'undefined') {\n return window;\n } else {\n return Function('return this;')();\n }\n }();\n module.exports = { boltExport: Global.Promise || promisePolyfill };\n },\n { 'promise-polyfill': 2 }\n ]\n }, {}, [4])(4);\n }));\n }(undefined, exports$1, module, undefined));\n var Promise = module.exports.boltExport;\n\n var nu$a = function (baseFn) {\n var data = Optional.none();\n var callbacks = [];\n var map = function (f) {\n return nu$a(function (nCallback) {\n get(function (data) {\n nCallback(f(data));\n });\n });\n };\n var get = function (nCallback) {\n if (isReady()) {\n call(nCallback);\n } else {\n callbacks.push(nCallback);\n }\n };\n var set = function (x) {\n if (!isReady()) {\n data = Optional.some(x);\n run(callbacks);\n callbacks = [];\n }\n };\n var isReady = function () {\n return data.isSome();\n };\n var run = function (cbs) {\n each(cbs, call);\n };\n var call = function (cb) {\n data.each(function (x) {\n setTimeout(function () {\n cb(x);\n }, 0);\n });\n };\n baseFn(set);\n return {\n get: get,\n map: map,\n isReady: isReady\n };\n };\n var pure = function (a) {\n return nu$a(function (callback) {\n callback(a);\n });\n };\n var LazyValue = {\n nu: nu$a,\n pure: pure\n };\n\n var errorReporter = function (err) {\n setTimeout(function () {\n throw err;\n }, 0);\n };\n var make$3 = function (run) {\n var get = function (callback) {\n run().then(callback, errorReporter);\n };\n var map = function (fab) {\n return make$3(function () {\n return run().then(fab);\n });\n };\n var bind = function (aFutureB) {\n return make$3(function () {\n return run().then(function (v) {\n return aFutureB(v).toPromise();\n });\n });\n };\n var anonBind = function (futureB) {\n return make$3(function () {\n return run().then(function () {\n return futureB.toPromise();\n });\n });\n };\n var toLazy = function () {\n return LazyValue.nu(get);\n };\n var toCached = function () {\n var cache = null;\n return make$3(function () {\n if (cache === null) {\n cache = run();\n }\n return cache;\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 var nu$b = function (baseFn) {\n return make$3(function () {\n return new Promise(baseFn);\n });\n };\n var pure$1 = function (a) {\n return make$3(function () {\n return Promise.resolve(a);\n });\n };\n var Future = {\n nu: nu$b,\n pure: pure$1\n };\n\n var ariaElements = [\n 'input',\n 'textarea'\n ];\n var isAriaElement = function (elem) {\n var name$1 = name(elem);\n return contains(ariaElements, name$1);\n };\n var markValid = function (component, invalidConfig) {\n var elem = invalidConfig.getRoot(component).getOr(component.element);\n remove$4(elem, invalidConfig.invalidClass);\n invalidConfig.notify.each(function (notifyInfo) {\n if (isAriaElement(component.element)) {\n set$1(component.element, 'aria-invalid', false);\n }\n notifyInfo.getContainer(component).each(function (container) {\n set(container, notifyInfo.validHtml);\n });\n notifyInfo.onValid(component);\n });\n };\n var markInvalid = function (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$1(component.element, 'aria-invalid', true);\n }\n notifyInfo.getContainer(component).each(function (container) {\n set(container, text);\n });\n notifyInfo.onInvalid(component, text);\n });\n };\n var query = function (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 var run$1 = function (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 var isInvalid = function (component, invalidConfig) {\n var elem = invalidConfig.getRoot(component).getOr(component.element);\n return has$2(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$1,\n isInvalid: isInvalid\n });\n\n var events$a = function (invalidConfig, invalidState) {\n return invalidConfig.validator.map(function (validatorInfo) {\n return derive([run(validatorInfo.onEvent, function (component) {\n run$1(component, invalidConfig, invalidState).get(identity);\n })].concat(validatorInfo.validateOnLoad ? [runOnAttached(function (component) {\n run$1(component, invalidConfig, invalidState).get(noop);\n })] : []));\n }).getOr({});\n };\n\n var ActiveInvalidate = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$a\n });\n\n var InvalidateSchema = [\n strict$1('invalidClass'),\n defaulted$1('getRoot', Optional.none),\n optionObjOf('notify', [\n defaulted$1('aria', 'alert'),\n defaulted$1('getContainer', Optional.none),\n defaulted$1('validHtml', ''),\n onHandler('onValid'),\n onHandler('onInvalid'),\n onHandler('onValidate')\n ]),\n optionObjOf('validator', [\n strict$1('validate'),\n defaulted$1('onEvent', 'input'),\n defaulted$1('validateOnLoad', true)\n ])\n ];\n\n var Invalidating = create$1({\n fields: InvalidateSchema,\n name: 'invalidating',\n active: ActiveInvalidate,\n apis: InvalidateApis,\n extra: {\n validation: function (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 (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\n var CouplingSchema = [strictOf('others', setOf$1(Result.value, anyValue$1()))];\n\n var init$5 = function () {\n var coupled = {};\n var getOrCreate = function (component, coupleConfig, name) {\n var available = keys(coupleConfig.others);\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$1(coupled, name).getOrThunk(function () {\n var builder = get$1(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 var readState = constant({});\n return nu$5({\n readState: readState,\n getOrCreate: getOrCreate\n });\n };\n\n var CouplingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$5\n });\n\n var Coupling = create$1({\n fields: CouplingSchema,\n name: 'coupling',\n apis: CouplingApis,\n state: CouplingState\n });\n\n var suffix = constant('sink');\n var partType = constant(optional({\n name: suffix(),\n overrides: constant({\n dom: { tag: 'div' },\n behaviours: derive$1([Positioning.config({ useFixed: always })]),\n events: derive([\n cutter(keydown()),\n cutter(mousedown()),\n cutter(click())\n ])\n })\n }));\n\n var HighlightOnOpen;\n (function (HighlightOnOpen) {\n HighlightOnOpen[HighlightOnOpen['HighlightFirst'] = 0] = 'HighlightFirst';\n HighlightOnOpen[HighlightOnOpen['HighlightNone'] = 1] = 'HighlightNone';\n }(HighlightOnOpen || (HighlightOnOpen = {})));\n var getAnchor = function (detail, component) {\n var hotspot = detail.getHotspot(component).getOr(component);\n var anchor = 'hotspot';\n var overrides = detail.getAnchorOverrides();\n return detail.layouts.fold(function () {\n return {\n anchor: anchor,\n hotspot: hotspot,\n overrides: overrides\n };\n }, function (layouts) {\n return {\n anchor: anchor,\n hotspot: hotspot,\n overrides: overrides,\n layouts: layouts\n };\n });\n };\n var fetch = function (detail, mapFetch, component) {\n var fetcher = detail.fetch;\n return fetcher(component).map(mapFetch);\n };\n var openF = function (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$2(''),\n data: data,\n highlightImmediately: highlightOnOpen === HighlightOnOpen.HighlightFirst,\n onOpenMenu: function (tmenu, menu) {\n var sink = getLazySink().getOrDie();\n Positioning.position(sink, anchor, menu);\n Sandboxing.decloak(sandbox);\n },\n onOpenSubmenu: function (tmenu, item, submenu) {\n var sink = getLazySink().getOrDie();\n Positioning.position(sink, {\n anchor: 'submenu',\n item: item\n }, submenu);\n Sandboxing.decloak(sandbox);\n },\n onRepositionMenu: function (tmenu, primaryMenu, submenuTriggers) {\n var sink = getLazySink().getOrDie();\n Positioning.position(sink, anchor, primaryMenu);\n each(submenuTriggers, function (st) {\n Positioning.position(sink, {\n anchor: 'submenu',\n item: st.triggeringItem\n }, st.triggeredMenu);\n });\n },\n onEscape: function () {\n Focusing.focus(component);\n Sandboxing.close(sandbox);\n return Optional.some(true);\n }\n })));\n });\n });\n };\n var open$1 = function (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 var close$1 = function (detail, mapFetch, component, sandbox, _externals, _onOpenSync, _highlightOnOpen) {\n Sandboxing.close(sandbox);\n return Future.pure(sandbox);\n };\n var togglePopup = function (detail, mapFetch, hotspot, externals, onOpenSync, highlightOnOpen) {\n var sandbox = Coupling.getCoupled(hotspot, 'sandbox');\n var showing = Sandboxing.isOpen(sandbox);\n var action = showing ? close$1 : open$1;\n return action(detail, mapFetch, hotspot, sandbox, externals, onOpenSync, highlightOnOpen);\n };\n var matchWidth = function (hotspot, container, useMinWidth) {\n var menu = Composing.getCurrent(container).getOr(container);\n var buttonWidth = get$8(hotspot.element);\n if (useMinWidth) {\n set$2(menu.element, 'min-width', buttonWidth + 'px');\n } else {\n set$4(menu.element, buttonWidth);\n }\n };\n var getSink = function (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 var doRepositionMenus = function (sandbox) {\n Sandboxing.getState(sandbox).each(function (tmenu) {\n tieredMenu.repositionMenus(tmenu);\n });\n };\n var makeSandbox = function (detail, hotspot, extras) {\n var ariaOwner = manager();\n var onOpen = function (component, menu) {\n var anchor = getAnchor(detail, hotspot);\n ariaOwner.link(hotspot.element);\n if (detail.matchWidth) {\n matchWidth(anchor.hotspot, menu, detail.useMinWidth);\n }\n detail.onOpen(anchor, component, menu);\n if (extras !== undefined && extras.onOpen !== undefined) {\n extras.onOpen(component, menu);\n }\n };\n var onClose = function (component, menu) {\n ariaOwner.unlink(hotspot.element);\n if (extras !== undefined && extras.onClose !== undefined) {\n extras.onClose(component, menu);\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, [\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: hotspot\n }\n }),\n Sandboxing.config({\n onOpen: onOpen,\n onClose: onClose,\n isPartOf: function (container, data, queryElem) {\n return isPartOf(data, queryElem) || isPartOf(hotspot, queryElem);\n },\n getAttachPoint: function () {\n return lazySink().getOrDie();\n }\n }),\n Composing.config({\n find: function (sandbox) {\n return Sandboxing.getState(sandbox).bind(function (menu) {\n return Composing.getCurrent(menu);\n });\n }\n }),\n Receiving.config({ channels: __assign(__assign({}, receivingChannel({ isExtraPart: never })), receivingChannel$1({ doReposition: doRepositionMenus })) })\n ])\n };\n };\n var repositionMenus = function (comp) {\n var sandbox = Coupling.getCoupled(comp, 'sandbox');\n doRepositionMenus(sandbox);\n };\n\n var sandboxFields = function () {\n return [\n defaulted$1('sandboxClasses', []),\n SketchBehaviours.field('sandboxBehaviours', [\n Composing,\n Receiving,\n Sandboxing,\n Representing\n ])\n ];\n };\n\n var schema$g = constant([\n strict$1('dom'),\n strict$1('fetch'),\n onHandler('onOpen'),\n onKeyboardHandler('onExecute'),\n defaulted$1('getHotspot', Optional.some),\n defaulted$1('getAnchorOverrides', constant({})),\n schema$1(),\n field$1('dropdownBehaviours', [\n Toggling,\n Coupling,\n Keying,\n Focusing\n ]),\n strict$1('toggleClass'),\n defaulted$1('eventOrder', {}),\n option('lazySink'),\n defaulted$1('matchWidth', false),\n defaulted$1('useMinWidth', false),\n option('role')\n ].concat(sandboxFields()));\n var parts$4 = constant([\n external$1({\n schema: [tieredMenuMarkers()],\n name: 'menu',\n defaults: function (detail) {\n return { onExecute: detail.onExecute };\n }\n }),\n partType()\n ]);\n\n var factory$6 = function (detail, components, _spec, externals) {\n var _a;\n var lookupAttr = function (attr) {\n return get$1(detail.dom, 'attributes').bind(function (attrs) {\n return get$1(attrs, attr);\n });\n };\n var switchToMenu = function (sandbox) {\n Sandboxing.getState(sandbox).each(function (tmenu) {\n tieredMenu.highlightPrimary(tmenu);\n });\n };\n var action = function (component) {\n var onOpenSync = switchToMenu;\n togglePopup(detail, function (x) {\n return x;\n }, component, externals, onOpenSync, HighlightOnOpen.HighlightFirst).get(noop);\n };\n var apis = {\n expand: function (comp) {\n if (!Toggling.isOn(comp)) {\n togglePopup(detail, function (x) {\n return x;\n }, comp, externals, noop, HighlightOnOpen.HighlightNone).get(noop);\n }\n },\n open: function (comp) {\n if (!Toggling.isOn(comp)) {\n togglePopup(detail, function (x) {\n return x;\n }, comp, externals, noop, HighlightOnOpen.HighlightFirst).get(noop);\n }\n },\n isOpen: Toggling.isOn,\n close: function (comp) {\n if (Toggling.isOn(comp)) {\n togglePopup(detail, function (x) {\n return x;\n }, comp, externals, noop, HighlightOnOpen.HighlightFirst).get(noop);\n }\n },\n repositionMenus: function (comp) {\n if (Toggling.isOn(comp)) {\n repositionMenus(comp);\n }\n }\n };\n var triggerExecute = function (comp, _se) {\n emitExecute(comp);\n return Optional.some(true);\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: augment(detail.dropdownBehaviours, [\n Toggling.config({\n toggleClass: detail.toggleClass,\n aria: { mode: 'expanded' }\n }),\n Coupling.config({\n others: {\n sandbox: function (hotspot) {\n return makeSandbox(detail, hotspot, {\n onOpen: function () {\n return Toggling.on(hotspot);\n },\n onClose: function () {\n return Toggling.off(hotspot);\n }\n });\n }\n }\n }),\n Keying.config({\n mode: 'special',\n onSpace: triggerExecute,\n onEnter: triggerExecute,\n onDown: function (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 return Optional.some(true);\n },\n onEscape: function (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 }),\n Focusing.config({})\n ]),\n events: events$7(Optional.some(action)),\n eventOrder: __assign(__assign({}, detail.eventOrder), (_a = {}, _a[execute()] = [\n 'disabling',\n 'toggling',\n 'alloy.base.behaviour'\n ], _a)),\n apis: apis,\n domModification: {\n attributes: __assign(__assign({ 'aria-haspopup': 'true' }, detail.role.fold(function () {\n return {};\n }, function (role) {\n return { role: role };\n })), detail.dom.tag === 'button' ? { type: lookupAttr('type').getOr('button') } : {})\n }\n };\n };\n var Dropdown = composite$1({\n name: 'Dropdown',\n configFields: schema$g(),\n partFields: parts$4(),\n factory: factory$6,\n apis: {\n open: function (apis, comp) {\n return apis.open(comp);\n },\n expand: function (apis, comp) {\n return apis.expand(comp);\n },\n close: function (apis, comp) {\n return apis.close(comp);\n },\n isOpen: function (apis, comp) {\n return apis.isOpen(comp);\n },\n repositionMenus: function (apis, comp) {\n return apis.repositionMenus(comp);\n }\n }\n });\n\n var exhibit$5 = function () {\n return nu$6({\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: { unselectable: 'on' }\n });\n };\n var events$b = function () {\n return derive([abort(selectstart(), always)]);\n };\n\n var ActiveUnselecting = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$b,\n exhibit: exhibit$5\n });\n\n var Unselecting = create$1({\n fields: [],\n name: 'unselecting',\n active: ActiveUnselecting\n });\n\n var renderPanelButton = function (spec, sharedBackstage) {\n return Dropdown.sketch({\n dom: spec.dom,\n components: spec.components,\n toggleClass: 'mce-active',\n dropdownBehaviours: derive$1([\n DisablingConfigs.button(sharedBackstage.providers.isDisabled),\n receivingConfig(),\n Unselecting.config({}),\n Tabstopping.config({})\n ]),\n layouts: spec.layouts,\n sandboxClasses: ['tox-dialog__popups'],\n lazySink: sharedBackstage.getSink,\n fetch: 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$1('menu-value'), items, function (value) {\n spec.onItemAction(comp, value);\n }, spec.columns, spec.presets, ItemResponse$1.CLOSE_ON_EXECUTE, never, sharedBackstage.providers), { movement: deriveMenuMovement(spec.columns, spec.presets) })));\n });\n },\n parts: { menu: part(false, 1, spec.presets) }\n });\n };\n\n var colorInputChangeEvent = generate$1('color-input-change');\n var colorSwatchChangeEvent = generate$1('color-swatch-change');\n var colorPickerCancelEvent = generate$1('color-picker-cancel');\n var renderColorInput = function (spec, sharedBackstage, colorInputBackstage) {\n var pField = FormField.parts.field({\n factory: Input,\n inputClasses: ['tox-textfield'],\n onSetValue: function (c) {\n return Invalidating.run(c).get(noop);\n },\n inputBehaviours: derive$1([\n Disabling.config({ disabled: sharedBackstage.providers.isDisabled }),\n receivingConfig(),\n Tabstopping.config({}),\n Invalidating.config({\n invalidClass: 'tox-textbox-field-invalid',\n getRoot: function (comp) {\n return parent(comp.element);\n },\n notify: {\n onValid: function (comp) {\n var val = Representing.getValue(comp);\n emitWith(comp, colorInputChangeEvent, { color: val });\n }\n },\n validator: {\n validateOnLoad: false,\n validate: function (input) {\n var inputValue = Representing.getValue(input);\n if (inputValue.length === 0) {\n return Future.pure(Result.value(true));\n } else {\n var span = SugarElement.fromTag('span');\n set$2(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 ]),\n selectOnFocus: false\n });\n var pLabel = spec.label.map(function (label) {\n return renderLabel(label, sharedBackstage.providers);\n });\n var emitSwatchChange = function (colorBit, value) {\n emitWith(colorBit, colorSwatchChangeEvent, { value: value });\n };\n var onItemAction = function (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 var memColorButton = record(renderPanelButton({\n dom: {\n tag: 'span',\n attributes: { 'aria-label': sharedBackstage.providers.translate('Color swatch') }\n },\n layouts: {\n onRtl: function () {\n return [\n southwest$1,\n southeast$1,\n south$1\n ];\n },\n onLtr: function () {\n return [\n southeast$1,\n southwest$1,\n south$1\n ];\n }\n },\n components: [],\n fetch: getFetch(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: [\n pField,\n memColorButton.asSpec()\n ]\n }]),\n fieldBehaviours: derive$1([config('form-field-events', [\n run(colorInputChangeEvent, function (comp, se) {\n memColorButton.getOpt(comp).each(function (colorButton) {\n set$2(colorButton.element, 'background-color', se.event.color);\n });\n emitWith(comp, formChangeEvent, { name: spec.name });\n }),\n run(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 }),\n run(colorPickerCancelEvent, function (comp, _se) {\n FormField.getField(comp).each(function (_field) {\n Composing.getCurrent(comp).each(Focusing.focus);\n });\n })\n ])])\n });\n };\n\n var hsvColour = function (hue, saturation, value) {\n return {\n hue: hue,\n saturation: saturation,\n value: value\n };\n };\n var fromRgb = function (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 if (minRGB === maxRGB) {\n v = minRGB;\n return hsvColour(0, 0, v * 100);\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 calcHex = function (value) {\n var hue = (100 - value) / 100 * 360;\n var hsv = hsvColour(hue, 100, 100);\n var rgb = fromHsv(hsv);\n return fromRgba(rgb);\n };\n\n var fieldsUpdate = generate$1('rgb-hex-update');\n var sliderUpdate = generate$1('slider-update');\n var paletteUpdate = generate$1('palette-update');\n\n var labelPart = optional({\n schema: [strict$1('dom')],\n name: 'label'\n });\n var edgePart = function (name) {\n return optional({\n name: '' + name + '-edge',\n overrides: function (detail) {\n var action = detail.model.manager.edgeActions[name];\n return action.fold(function () {\n return {};\n }, function (a) {\n return {\n events: derive([\n runActionExtra(touchstart(), function (comp, se, d) {\n return a(comp, d);\n }, [detail]),\n runActionExtra(mousedown(), function (comp, se, d) {\n return a(comp, d);\n }, [detail]),\n 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({ dom: { styles: { position: 'absolute' } } }),\n overrides: function (detail) {\n return {\n events: derive([\n redirectToPart(touchstart(), detail, 'spectrum'),\n redirectToPart(touchmove(), detail, 'spectrum'),\n redirectToPart(touchend(), detail, 'spectrum'),\n redirectToPart(mousedown(), detail, 'spectrum'),\n redirectToPart(mousemove(), detail, 'spectrum'),\n redirectToPart(mouseup(), detail, 'spectrum')\n ])\n };\n }\n });\n var spectrumPart = required({\n schema: [state$1('mouseIsDown', function () {\n return Cell(false);\n })],\n name: 'spectrum',\n overrides: function (detail) {\n var modelDetail = detail.model;\n var model = modelDetail.manager;\n var setValueFrom = function (component, simulatedEvent) {\n return model.getValueFromEvent(simulatedEvent).map(function (value) {\n return model.setValueFrom(component, detail, value);\n });\n };\n return {\n behaviours: derive$1([\n Keying.config({\n mode: 'special',\n onLeft: function (spectrum) {\n return model.onLeft(spectrum, detail);\n },\n onRight: function (spectrum) {\n return model.onRight(spectrum, detail);\n },\n onUp: function (spectrum) {\n return model.onUp(spectrum, detail);\n },\n onDown: function (spectrum) {\n return model.onDown(spectrum, detail);\n }\n }),\n Focusing.config({})\n ]),\n events: derive([\n run(touchstart(), setValueFrom),\n run(touchmove(), setValueFrom),\n run(mousedown(), setValueFrom),\n run(mousemove(), function (spectrum, se) {\n if (detail.mouseIsDown.get()) {\n setValueFrom(spectrum, se);\n }\n })\n ])\n };\n }\n });\n var SliderParts = [\n labelPart,\n ledgePart,\n redgePart,\n tedgePart,\n bedgePart,\n tlEdgePart,\n trEdgePart,\n blEdgePart,\n brEdgePart,\n thumbPart,\n spectrumPart\n ];\n\n var _sliderChangeEvent = 'slider.change.value';\n var sliderChangeEvent = constant(_sliderChangeEvent);\n var isTouchEvent = function (evt) {\n return evt.type.indexOf('touch') !== -1;\n };\n var getEventSource = function (simulatedEvent) {\n var evt = simulatedEvent.event.raw;\n if (isTouchEvent(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', r$1 = 'right', b = 'bottom', l = 'left';\n var minX = function (detail) {\n return detail.model.minX;\n };\n var minY = function (detail) {\n return detail.model.minY;\n };\n var min1X = function (detail) {\n return detail.model.minX - 1;\n };\n var min1Y = function (detail) {\n return detail.model.minY - 1;\n };\n var maxX = function (detail) {\n return detail.model.maxX;\n };\n var maxY = function (detail) {\n return detail.model.maxY;\n };\n var max1X = function (detail) {\n return detail.model.maxX + 1;\n };\n var max1Y = function (detail) {\n return detail.model.maxY + 1;\n };\n var range$2 = function (detail, max, min) {\n return max(detail) - min(detail);\n };\n var xRange = function (detail) {\n return range$2(detail, maxX, minX);\n };\n var yRange = function (detail) {\n return range$2(detail, maxY, minY);\n };\n var halfX = function (detail) {\n return xRange(detail) / 2;\n };\n var halfY = function (detail) {\n return yRange(detail) / 2;\n };\n var step = function (detail) {\n return detail.stepSize;\n };\n var snap = function (detail) {\n return detail.snapToGrid;\n };\n var snapStart = function (detail) {\n return detail.snapStart;\n };\n var rounded = function (detail) {\n return detail.rounded;\n };\n var hasEdge = function (detail, edgeName) {\n return detail[edgeName + '-edge'] !== undefined;\n };\n var hasLEdge = function (detail) {\n return hasEdge(detail, l);\n };\n var hasREdge = function (detail) {\n return hasEdge(detail, r$1);\n };\n var hasTEdge = function (detail) {\n return hasEdge(detail, t);\n };\n var hasBEdge = function (detail) {\n return hasEdge(detail, b);\n };\n var currentValue = function (detail) {\n return detail.model.value.get();\n };\n\n var xValue = function (x) {\n return { x: x };\n };\n var yValue = function (y) {\n return { y: y };\n };\n var xyValue = function (x, y) {\n return {\n x: x,\n y: y\n };\n };\n var fireSliderChange = function (component, value) {\n emitWith(component, sliderChangeEvent(), { value: value });\n };\n var setToTLEdgeXY = function (edge, detail) {\n fireSliderChange(edge, xyValue(min1X(detail), min1Y(detail)));\n };\n var setToTEdge = function (edge, detail) {\n fireSliderChange(edge, yValue(min1Y(detail)));\n };\n var setToTEdgeXY = function (edge, detail) {\n fireSliderChange(edge, xyValue(halfX(detail), min1Y(detail)));\n };\n var setToTREdgeXY = function (edge, detail) {\n fireSliderChange(edge, xyValue(max1X(detail), min1Y(detail)));\n };\n var setToREdge = function (edge, detail) {\n fireSliderChange(edge, xValue(max1X(detail)));\n };\n var setToREdgeXY = function (edge, detail) {\n fireSliderChange(edge, xyValue(max1X(detail), halfY(detail)));\n };\n var setToBREdgeXY = function (edge, detail) {\n fireSliderChange(edge, xyValue(max1X(detail), max1Y(detail)));\n };\n var setToBEdge = function (edge, detail) {\n fireSliderChange(edge, yValue(max1Y(detail)));\n };\n var setToBEdgeXY = function (edge, detail) {\n fireSliderChange(edge, xyValue(halfX(detail), max1Y(detail)));\n };\n var setToBLEdgeXY = function (edge, detail) {\n fireSliderChange(edge, xyValue(min1X(detail), max1Y(detail)));\n };\n var setToLEdge = function (edge, detail) {\n fireSliderChange(edge, xValue(min1X(detail)));\n };\n var setToLEdgeXY = function (edge, detail) {\n fireSliderChange(edge, xyValue(min1X(detail), halfY(detail)));\n };\n\n var reduceBy = function (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 var increaseBy = function (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 var capValue = function (value, min, max) {\n return Math.max(min, Math.min(max, value));\n };\n var snapValueOf = function (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 var findOffsetOf = function (value, min, max) {\n return Math.min(max, Math.max(value, min)) - min;\n };\n var findValueOf = function (args) {\n var min = args.min, max = args.max, range = args.range, value = args.value, step = args.step, snap = args.snap, snapStart = args.snapStart, rounded = args.rounded, hasMinEdge = args.hasMinEdge, hasMaxEdge = args.hasMaxEdge, minBound = args.minBound, maxBound = args.maxBound, screenRange = args.screenRange;\n var capMin = hasMinEdge ? min - 1 : min;\n var capMax = hasMaxEdge ? max + 1 : max;\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 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 var findOffsetOfValue = function (args) {\n var min = args.min, max = args.max, range = args.range, value = args.value, hasMinEdge = args.hasMinEdge, hasMaxEdge = args.hasMaxEdge, maxBound = args.maxBound, maxOffset = args.maxOffset, centerMinEdge = args.centerMinEdge, centerMaxEdge = args.centerMaxEdge;\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', right = 'right', bottom = 'bottom', left = 'left', width = 'width', height = 'height';\n var getBounds$1 = function (component) {\n return component.element.dom.getBoundingClientRect();\n };\n var getBoundsProperty = function (bounds, property) {\n return bounds[property];\n };\n var getMinXBounds = function (component) {\n var bounds = getBounds$1(component);\n return getBoundsProperty(bounds, left);\n };\n var getMaxXBounds = function (component) {\n var bounds = getBounds$1(component);\n return getBoundsProperty(bounds, right);\n };\n var getMinYBounds = function (component) {\n var bounds = getBounds$1(component);\n return getBoundsProperty(bounds, top);\n };\n var getMaxYBounds = function (component) {\n var bounds = getBounds$1(component);\n return getBoundsProperty(bounds, bottom);\n };\n var getXScreenRange = function (component) {\n var bounds = getBounds$1(component);\n return getBoundsProperty(bounds, width);\n };\n var getYScreenRange = function (component) {\n var bounds = getBounds$1(component);\n return getBoundsProperty(bounds, height);\n };\n var getCenterOffsetOf = function (componentMinEdge, componentMaxEdge, spectrumMinEdge) {\n return (componentMinEdge + componentMaxEdge) / 2 - spectrumMinEdge;\n };\n var getXCenterOffSetOf = function (component, spectrum) {\n var componentBounds = getBounds$1(component);\n var spectrumBounds = getBounds$1(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 var getYCenterOffSetOf = function (component, spectrum) {\n var componentBounds = getBounds$1(component);\n var spectrumBounds = getBounds$1(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$1 = function (spectrum, value) {\n emitWith(spectrum, sliderChangeEvent(), { value: value });\n };\n var sliderValue = function (x) {\n return { x: x };\n };\n var findValueOfOffset = function (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 var setValueFrom = function (spectrum, detail, value) {\n var xValue = findValueOfOffset(spectrum, detail, value);\n var sliderVal = sliderValue(xValue);\n fireSliderChange$1(spectrum, sliderVal);\n return xValue;\n };\n var setToMin = function (spectrum, detail) {\n var min = minX(detail);\n fireSliderChange$1(spectrum, sliderValue(min));\n };\n var setToMax = function (spectrum, detail) {\n var max = maxX(detail);\n fireSliderChange$1(spectrum, sliderValue(max));\n };\n var moveBy = function (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$1(spectrum, sliderValue(xValue));\n return Optional.some(xValue);\n };\n var handleMovement = function (direction) {\n return function (spectrum, detail) {\n return moveBy(direction, spectrum, detail).map(always);\n };\n };\n var getValueFromEvent = function (simulatedEvent) {\n var pos = getEventSource(simulatedEvent);\n return pos.map(function (p) {\n return p.left;\n });\n };\n var findOffsetOfValue$1 = function (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(args);\n };\n var findPositionOfValue = function (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 var setPositionFromValue = function (slider, thumb, detail, edges) {\n var value = currentValue(detail);\n var pos = findPositionOfValue(slider, edges.getSpectrum(slider), value.x, edges.getLeftEdge(slider), edges.getRightEdge(slider), detail);\n var thumbRadius = get$8(thumb.element) / 2;\n set$2(thumb.element, 'left', pos - thumbRadius + 'px');\n };\n var onLeft = handleMovement(-1);\n var onRight = handleMovement(1);\n var onUp = Optional.none;\n var onDown = Optional.none;\n var edgeActions = {\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\n var HorizontalModel = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setValueFrom: setValueFrom,\n setToMin: setToMin,\n setToMax: setToMax,\n findValueOfOffset: findValueOfOffset,\n getValueFromEvent: getValueFromEvent,\n findPositionOfValue: findPositionOfValue,\n setPositionFromValue: setPositionFromValue,\n onLeft: onLeft,\n onRight: onRight,\n onUp: onUp,\n onDown: onDown,\n edgeActions: edgeActions\n });\n\n var fireSliderChange$2 = function (spectrum, value) {\n emitWith(spectrum, sliderChangeEvent(), { value: value });\n };\n var sliderValue$1 = function (y) {\n return { y: y };\n };\n var findValueOfOffset$1 = function (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 var setValueFrom$1 = function (spectrum, detail, value) {\n var yValue = findValueOfOffset$1(spectrum, detail, value);\n var sliderVal = sliderValue$1(yValue);\n fireSliderChange$2(spectrum, sliderVal);\n return yValue;\n };\n var setToMin$1 = function (spectrum, detail) {\n var min = minY(detail);\n fireSliderChange$2(spectrum, sliderValue$1(min));\n };\n var setToMax$1 = function (spectrum, detail) {\n var max = maxY(detail);\n fireSliderChange$2(spectrum, sliderValue$1(max));\n };\n var moveBy$1 = function (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$2(spectrum, sliderValue$1(yValue));\n return Optional.some(yValue);\n };\n var handleMovement$1 = function (direction) {\n return function (spectrum, detail) {\n return moveBy$1(direction, spectrum, detail).map(always);\n };\n };\n var getValueFromEvent$1 = function (simulatedEvent) {\n var pos = getEventSource(simulatedEvent);\n return pos.map(function (p) {\n return p.top;\n });\n };\n var findOffsetOfValue$2 = function (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(args);\n };\n var findPositionOfValue$1 = function (slider, spectrum, value, minEdge, maxEdge, detail) {\n var offset = findOffsetOfValue$2(spectrum, detail, value, minEdge, maxEdge);\n return getMinYBounds(spectrum) - getMinYBounds(slider) + offset;\n };\n var setPositionFromValue$1 = function (slider, thumb, detail, edges) {\n var value = currentValue(detail);\n var pos = findPositionOfValue$1(slider, edges.getSpectrum(slider), value.y, edges.getTopEdge(slider), edges.getBottomEdge(slider), detail);\n var thumbRadius = get$7(thumb.element) / 2;\n set$2(thumb.element, 'top', pos - thumbRadius + 'px');\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\n var VerticalModel = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setValueFrom: setValueFrom$1,\n setToMin: setToMin$1,\n setToMax: setToMax$1,\n findValueOfOffset: findValueOfOffset$1,\n getValueFromEvent: getValueFromEvent$1,\n findPositionOfValue: findPositionOfValue$1,\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$3 = function (spectrum, value) {\n emitWith(spectrum, sliderChangeEvent(), { value: value });\n };\n var sliderValue$2 = function (x, y) {\n return {\n x: x,\n y: y\n };\n };\n var setValueFrom$2 = function (spectrum, detail, value) {\n var xValue = findValueOfOffset(spectrum, detail, value.left);\n var yValue = findValueOfOffset$1(spectrum, detail, value.top);\n var val = sliderValue$2(xValue, yValue);\n fireSliderChange$3(spectrum, val);\n return val;\n };\n var moveBy$2 = function (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$3(spectrum, sliderValue$2(xValue, yValue));\n return Optional.some(xValue);\n };\n var handleMovement$2 = function (direction, isVerticalMovement) {\n return function (spectrum, detail) {\n return moveBy$2(direction, isVerticalMovement, spectrum, detail).map(always);\n };\n };\n var setToMin$2 = function (spectrum, detail) {\n var mX = minX(detail);\n var mY = minY(detail);\n fireSliderChange$3(spectrum, sliderValue$2(mX, mY));\n };\n var setToMax$2 = function (spectrum, detail) {\n var mX = maxX(detail);\n var mY = maxY(detail);\n fireSliderChange$3(spectrum, sliderValue$2(mX, mY));\n };\n var getValueFromEvent$2 = function (simulatedEvent) {\n return getEventSource(simulatedEvent);\n };\n var setPositionFromValue$2 = function (slider, thumb, detail, edges) {\n var value = currentValue(detail);\n var xPos = findPositionOfValue(slider, edges.getSpectrum(slider), value.x, edges.getLeftEdge(slider), edges.getRightEdge(slider), detail);\n var yPos = findPositionOfValue$1(slider, edges.getSpectrum(slider), value.y, edges.getTopEdge(slider), edges.getBottomEdge(slider), detail);\n var thumbXRadius = get$8(thumb.element) / 2;\n var thumbYRadius = get$7(thumb.element) / 2;\n set$2(thumb.element, 'left', xPos - thumbXRadius + 'px');\n set$2(thumb.element, 'top', yPos - thumbYRadius + 'px');\n };\n var onLeft$2 = handleMovement$2(-1, false);\n var onRight$2 = handleMovement$2(1, false);\n var onUp$2 = handleMovement$2(-1, true);\n var onDown$2 = handleMovement$2(1, true);\n var edgeActions$2 = {\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\n var TwoDModel = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setValueFrom: setValueFrom$2,\n setToMin: setToMin$2,\n setToMax: setToMax$2,\n getValueFromEvent: getValueFromEvent$2,\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 SliderSchema = [\n defaulted$1('stepSize', 1),\n defaulted$1('onChange', noop),\n defaulted$1('onChoose', noop),\n defaulted$1('onInit', noop),\n defaulted$1('onDragStart', noop),\n defaulted$1('onDragEnd', noop),\n defaulted$1('snapToGrid', false),\n defaulted$1('rounded', true),\n option('snapStart'),\n strictOf('model', choose$1('mode', {\n x: [\n defaulted$1('minX', 0),\n defaulted$1('maxX', 100),\n state$1('value', function (spec) {\n return Cell(spec.mode.minX);\n }),\n strict$1('getInitialValue'),\n output('manager', HorizontalModel)\n ],\n y: [\n defaulted$1('minY', 0),\n defaulted$1('maxY', 100),\n state$1('value', function (spec) {\n return Cell(spec.mode.minY);\n }),\n strict$1('getInitialValue'),\n output('manager', VerticalModel)\n ],\n xy: [\n defaulted$1('minX', 0),\n defaulted$1('maxX', 100),\n defaulted$1('minY', 0),\n defaulted$1('maxY', 100),\n state$1('value', function (spec) {\n return Cell({\n x: spec.mode.minX,\n y: spec.mode.minY\n });\n }),\n strict$1('getInitialValue'),\n output('manager', TwoDModel)\n ]\n })),\n field$1('sliderBehaviours', [\n Keying,\n Representing\n ]),\n state$1('mouseIsDown', function () {\n return Cell(false);\n })\n ];\n\n var sketch = function (detail, components, _spec, _externals) {\n var _a;\n var getThumb = function (component) {\n return getPartOrDie(component, detail, 'thumb');\n };\n var getSpectrum = function (component) {\n return getPartOrDie(component, detail, 'spectrum');\n };\n var getLeftEdge = function (component) {\n return getPart(component, detail, 'left-edge');\n };\n var getRightEdge = function (component) {\n return getPart(component, detail, 'right-edge');\n };\n var getTopEdge = function (component) {\n return getPart(component, detail, 'top-edge');\n };\n var getBottomEdge = function (component) {\n return getPart(component, detail, 'bottom-edge');\n };\n var modelDetail = detail.model;\n var model = modelDetail.manager;\n var refresh = function (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 var changeValue = function (slider, newValue) {\n modelDetail.value.set(newValue);\n var thumb = getThumb(slider);\n refresh(slider, thumb);\n detail.onChange(slider, thumb, newValue);\n return Optional.some(true);\n };\n var resetToMin = function (slider) {\n model.setToMin(slider, detail);\n };\n var resetToMax = function (slider) {\n model.setToMax(slider, detail);\n };\n var choose = function (slider) {\n var fireOnChoose = function () {\n getPart(slider, detail, 'thumb').each(function (thumb) {\n var value = modelDetail.value.get();\n detail.onChoose(slider, thumb, value);\n });\n };\n var wasDown = detail.mouseIsDown.get();\n detail.mouseIsDown.set(false);\n if (wasDown) {\n fireOnChoose();\n }\n };\n var onDragStart = function (slider, simulatedEvent) {\n simulatedEvent.stop();\n detail.mouseIsDown.set(true);\n detail.onDragStart(slider, getThumb(slider));\n };\n var onDragEnd = function (slider, simulatedEvent) {\n simulatedEvent.stop();\n detail.onDragEnd(slider, getThumb(slider));\n choose(slider);\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: augment(detail.sliderBehaviours, [\n Keying.config({\n mode: 'special',\n focusIn: function (slider) {\n return getPart(slider, detail, 'spectrum').map(Keying.focusIn).map(always);\n }\n }),\n Representing.config({\n store: {\n mode: 'manual',\n getValue: function (_) {\n return modelDetail.value.get();\n }\n }\n }),\n Receiving.config({ channels: (_a = {}, _a[mouseReleased()] = { onReceive: choose }, _a) })\n ]),\n events: derive([\n run(sliderChangeEvent(), function (slider, simulatedEvent) {\n changeValue(slider, simulatedEvent.event.value);\n }),\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 }),\n run(touchstart(), onDragStart),\n run(touchend(), onDragEnd),\n run(mousedown(), onDragStart),\n run(mouseup(), onDragEnd)\n ]),\n apis: {\n resetToMin: resetToMin,\n resetToMax: resetToMax,\n changeValue: changeValue,\n refresh: refresh\n },\n domModification: { styles: { position: 'relative' } }\n };\n };\n\n var Slider = composite$1({\n name: 'Slider',\n configFields: SliderSchema,\n partFields: SliderParts,\n factory: sketch,\n apis: {\n resetToMin: function (apis, slider) {\n apis.resetToMin(slider);\n },\n resetToMax: function (apis, slider) {\n apis.resetToMax(slider);\n },\n refresh: function (apis, slider) {\n apis.refresh(slider);\n }\n }\n });\n\n var sliderFactory = function (translate, getClass) {\n var spectrum = Slider.parts.spectrum({\n dom: {\n tag: 'div',\n classes: [getClass('hue-slider-spectrum')],\n attributes: { role: 'presentation' }\n }\n });\n var thumb = Slider.parts.thumb({\n dom: {\n tag: 'div',\n classes: [getClass('hue-slider-thumb')],\n attributes: { role: 'presentation' }\n }\n });\n return Slider.sketch({\n dom: {\n tag: 'div',\n classes: [getClass('hue-slider')],\n attributes: { role: 'presentation' }\n },\n rounded: false,\n model: {\n mode: 'y',\n getInitialValue: constant({ y: 0 })\n },\n components: [\n spectrum,\n thumb\n ],\n sliderBehaviours: derive$1([Focusing.config({})]),\n onChange: function (slider, _thumb, value) {\n emitWith(slider, sliderUpdate, { value: value });\n }\n });\n };\n\n var owner$3 = 'form';\n var schema$h = [field$1('formBehaviours', [Representing])];\n var getPartName = function (name) {\n return '';\n };\n var sketch$1 = function (fSpec) {\n var parts = function () {\n var record = [];\n var field = function (name, config) {\n record.push(name);\n return generateOne(owner$3, getPartName(name), config);\n };\n return {\n field: field,\n record: function () {\n return record;\n }\n };\n }();\n var spec = fSpec(parts);\n var partNames = parts.record();\n var fieldParts = map(partNames, function (n) {\n return required({\n name: n,\n pname: getPartName(n)\n });\n });\n return composite(owner$3, schema$h, fieldParts, make$4, spec);\n };\n var toResult$1 = function (o, e) {\n return o.fold(function () {\n return Result.error(e);\n }, Result.value);\n };\n var make$4 = function (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 (form) {\n var resPs = getAllParts(form, detail);\n return map$2(resPs, function (resPThunk, pName) {\n return resPThunk().bind(function (v) {\n var opt = Composing.getCurrent(v);\n return toResult$1(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 (form, values) {\n each$1(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 (form, key) {\n return getPart(form, detail, key).bind(Composing.getCurrent);\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\n var validInput = generate$1('valid-input');\n var invalidInput = generate$1('invalid-input');\n var validatingInput = generate$1('validating-input');\n var translatePrefix = 'colorcustom.rgb.';\n var rgbFormFactory = function (translate, getClass, onValidHexx, onInvalidHexx) {\n var invalidation = function (label, isValid) {\n return Invalidating.config({\n invalidClass: getClass('invalid'),\n notify: {\n onValidate: function (comp) {\n emitWith(comp, validatingInput, { type: label });\n },\n onValid: function (comp) {\n emitWith(comp, validInput, {\n type: label,\n value: Representing.getValue(comp)\n });\n },\n onInvalid: function (comp) {\n emitWith(comp, invalidInput, {\n type: label,\n value: Representing.getValue(comp)\n });\n }\n },\n validator: {\n validate: function (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 var renderTextField = function (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: { 'aria-label': description }\n }\n });\n var pField = FormField.parts.field({\n data: data,\n factory: Input,\n inputAttributes: __assign({ type: 'text' }, name === 'hex' ? { 'aria-live': 'polite' } : {}),\n inputClasses: [getClass('textfield')],\n inputBehaviours: derive$1([\n invalidation(name, isValid),\n Tabstopping.config({})\n ]),\n onSetValue: function (input) {\n if (Invalidating.isInvalid(input)) {\n var run = Invalidating.run(input);\n run.get(noop);\n }\n }\n });\n var comps = [\n pLabel,\n pField\n ];\n var concats = name !== 'hex' ? [FormField.parts['aria-descriptor']({ text: helptext })] : [];\n var components = comps.concat(concats);\n return {\n dom: {\n tag: 'div',\n attributes: { role: 'presentation' }\n },\n components: components\n };\n };\n var copyRgbToHex = function (form, rgba) {\n var hex = fromRgba(rgba);\n Form.getField(form, 'hex').each(function (hexField) {\n if (!Focusing.isFocused(hexField)) {\n Representing.setValue(form, { hex: hex.value });\n }\n });\n return hex;\n };\n var copyRgbToForm = function (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 var memPreview = record({\n dom: {\n tag: 'div',\n classes: [getClass('rgba-preview')],\n styles: { 'background-color': 'white' },\n attributes: { role: 'presentation' }\n }\n });\n var updatePreview = function (anyInSystem, hex) {\n memPreview.getOpt(anyInSystem).each(function (preview) {\n set$2(preview.element, 'background-color', '#' + hex.value);\n });\n };\n var factory = function () {\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 var copyHexToRgb = function (form, hex) {\n var rgb = fromHex(hex);\n copyRgbToForm(form, rgb);\n setValueRgb(rgb);\n };\n var get = function (prop) {\n return state[prop].get();\n };\n var set = function (prop, value) {\n state[prop].set(value);\n };\n var getValueRgb = function () {\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 var setValueRgb = function (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 var onInvalidInput = function (form, simulatedEvent) {\n var data = simulatedEvent.event;\n if (data.type !== 'hex') {\n set(data.type, Optional.none());\n } else {\n onInvalidHexx(form);\n }\n };\n var onValidHex = function (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, { hex: hex });\n updatePreview(form, hex);\n };\n var onValidRgb = function (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 updatePreview(form, hex);\n });\n };\n var isHexInputEvent = function (data) {\n return data.type === 'hex';\n };\n var onValidInput = function (form, simulatedEvent) {\n var data = simulatedEvent.event;\n if (isHexInputEvent(data)) {\n onValidHex(form, data.value);\n } else {\n onValidRgb(form, data.type, data.value);\n }\n };\n var formPartStrings = function (key) {\n return {\n label: translate(translatePrefix + key + '.label'),\n description: translate(translatePrefix + key + '.description')\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: { 'aria-label': translate('aria.color.picker') }\n },\n components: [\n parts.field('red', FormField.sketch(renderTextField(isRgbaComponent, 'red', redStrings.label, redStrings.description, 255))),\n parts.field('green', FormField.sketch(renderTextField(isRgbaComponent, 'green', greenStrings.label, greenStrings.description, 255))),\n parts.field('blue', FormField.sketch(renderTextField(isRgbaComponent, 'blue', blueStrings.label, blueStrings.description, 255))),\n parts.field('hex', FormField.sketch(renderTextField(isHexString, 'hex', hexStrings.label, hexStrings.description, 'ffffff'))),\n memPreview.asSpec()\n ],\n formBehaviours: derive$1([\n Invalidating.config({ invalidClass: getClass('form-invalid') }),\n config('rgb-form-events', [\n run(validInput, onValidInput),\n run(invalidInput, onInvalidInput),\n run(validatingInput, onInvalidInput)\n ])\n ])\n };\n }), {\n apis: {\n updateHex: function (form, hex) {\n Representing.setValue(form, { hex: hex.value });\n copyHexToRgb(form, hex);\n updatePreview(form, hex);\n }\n }\n });\n };\n var rgbFormSketcher = single$2({\n factory: factory,\n name: 'RgbForm',\n configFields: [],\n apis: {\n updateHex: function (apis, form, hex) {\n apis.updateHex(form, hex);\n }\n },\n extraApis: {}\n });\n return rgbFormSketcher;\n };\n\n var paletteFactory = function (_translate, getClass) {\n var spectrumPart = Slider.parts.spectrum({\n dom: {\n tag: 'canvas',\n attributes: { role: 'presentation' },\n classes: [getClass('sv-palette-spectrum')]\n }\n });\n var thumbPart = Slider.parts.thumb({\n dom: {\n tag: 'div',\n attributes: { role: 'presentation' },\n classes: [getClass('sv-palette-thumb')],\n innerHtml: '
'\n }\n });\n var setColour = function (canvas, rgba) {\n var width = canvas.width, height = canvas.height;\n var ctx = canvas.getContext('2d');\n if (ctx === null) {\n return;\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 var setSliderColour = function (slider, rgba) {\n var canvas = slider.components()[0].element.dom;\n setColour(canvas, toString(rgba));\n };\n var factory = function (_detail) {\n var getInitialValue = constant({\n x: 0,\n y: 0\n });\n var onChange = function (slider, _thumb, value) {\n emitWith(slider, paletteUpdate, { value: value });\n };\n var onInit = function (_slider, _thumb, spectrum, _value) {\n setColour(spectrum.element.dom, toString(red));\n };\n var sliderBehaviours = derive$1([\n Composing.config({ find: Optional.some }),\n Focusing.config({})\n ]);\n return Slider.sketch({\n dom: {\n tag: 'div',\n attributes: { role: 'presentation' },\n classes: [getClass('sv-palette')]\n },\n model: {\n mode: 'xy',\n getInitialValue: getInitialValue\n },\n rounded: false,\n components: [\n spectrumPart,\n thumbPart\n ],\n onChange: onChange,\n onInit: onInit,\n sliderBehaviours: sliderBehaviours\n });\n };\n var saturationBrightnessPaletteSketcher = single$2({\n factory: factory,\n name: 'SaturationBrightnessPalette',\n configFields: [],\n apis: {\n setRgba: function (_apis, slider, rgba) {\n setSliderColour(slider, rgba);\n }\n },\n extraApis: {}\n });\n return saturationBrightnessPaletteSketcher;\n };\n\n var makeFactory = function (translate, getClass) {\n var factory = function (detail) {\n var rgbForm = rgbFormFactory(translate, getClass, detail.onValidHex, detail.onInvalidHex);\n var sbPalette = paletteFactory(translate, getClass);\n var state = { paletteRgba: Cell(red) };\n var memPalette = record(sbPalette.sketch({}));\n var memRgb = record(rgbForm.sketch({}));\n var updatePalette = function (anyInSystem, hex) {\n memPalette.getOpt(anyInSystem).each(function (palette) {\n var rgba = fromHex(hex);\n state.paletteRgba.set(rgba);\n sbPalette.setRgba(palette, rgba);\n });\n };\n var updateFields = function (anyInSystem, hex) {\n memRgb.getOpt(anyInSystem).each(function (form) {\n rgbForm.updateHex(form, hex);\n });\n };\n var runUpdates = function (anyInSystem, hex, updates) {\n each(updates, function (update) {\n update(anyInSystem, hex);\n });\n };\n var paletteUpdates = function () {\n var updates = [updateFields];\n return function (form, simulatedEvent) {\n var value = simulatedEvent.event.value;\n var oldRgb = state.paletteRgba.get();\n var hsvColour$1 = fromRgb(oldRgb);\n var newHsvColour = hsvColour(hsvColour$1.hue, value.x, 100 - value.y);\n var rgb = fromHsv(newHsvColour);\n var nuHex = fromRgba(rgb);\n runUpdates(form, nuHex, updates);\n };\n };\n var sliderUpdates = function () {\n var updates = [\n updatePalette,\n updateFields\n ];\n return function (form, simulatedEvent) {\n var value = simulatedEvent.event.value;\n var hex = calcHex(value.y);\n runUpdates(form, hex, updates);\n };\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: [\n memPalette.asSpec(),\n sliderFactory(translate, getClass),\n memRgb.asSpec()\n ],\n behaviours: derive$1([\n config('colour-picker-events', [\n run(paletteUpdate, paletteUpdates()),\n run(sliderUpdate, sliderUpdates())\n ]),\n Composing.config({\n find: function (comp) {\n return memRgb.getOpt(comp);\n }\n }),\n Keying.config({ mode: 'acyclic' })\n ])\n };\n };\n var colourPickerSketcher = single$2({\n name: 'ColourPicker',\n configFields: [\n strict$1('dom'),\n defaulted$1('onValidHex', noop),\n defaulted$1('onInvalidHex', noop)\n ],\n factory: factory\n });\n return colourPickerSketcher;\n };\n\n var self$1 = function () {\n return Composing.config({ find: Optional.some });\n };\n var memento = function (mem) {\n return Composing.config({ find: mem.getOpt });\n };\n var childAt = function (index) {\n return Composing.config({\n find: function (comp) {\n return child(comp.element, index).bind(function (element) {\n return comp.getSystem().getByDom(element).toOptional();\n });\n }\n });\n };\n var ComposingConfigs = {\n self: self$1,\n memento: memento,\n childAt: childAt\n };\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 var getEnglishText = function (key) {\n return english[key];\n };\n var translate$1 = function (key) {\n return getEnglishText(key);\n };\n var renderColorPicker = function (_spec) {\n var getClass = function (key) {\n return 'tox-' + key;\n };\n var colourPickerFactory = makeFactory(translate$1, getClass);\n var onValidHex = function (form) {\n emitWith(form, formActionEvent, {\n name: 'hex-valid',\n value: true\n });\n };\n var onInvalidHex = function (form) {\n emitWith(form, formActionEvent, {\n name: 'hex-valid',\n value: false\n });\n };\n var memPicker = record(colourPickerFactory.sketch({\n dom: {\n tag: 'div',\n classes: [getClass('color-picker-container')],\n attributes: { role: 'presentation' }\n },\n onValidHex: onValidHex,\n onInvalidHex: onInvalidHex\n }));\n return {\n dom: { tag: 'div' },\n components: [memPicker.asSpec()],\n behaviours: derive$1([\n Representing.config({\n store: {\n mode: 'manual',\n getValue: function (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 (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, { hex: Optional.from(m[1]).getOr('') });\n Form.getField(rgbForm, 'hex').each(function (hexField) {\n emit(hexField, input());\n });\n });\n }\n }\n }),\n ComposingConfigs.self()\n ])\n };\n };\n\n var global$b = tinymce.util.Tools.resolve('tinymce.Resource');\n\n var isOldCustomEditor = function (spec) {\n return Object.prototype.hasOwnProperty.call(spec, 'init');\n };\n var renderCustomEditor = function (spec) {\n var editorApi = Cell(Optional.none());\n var memReplaced = record({ dom: { tag: spec.tag } });\n var initialValue = Cell(Optional.none());\n return {\n dom: {\n tag: 'div',\n classes: ['tox-custom-editor']\n },\n behaviours: derive$1([\n config('custom-editor-events', [runOnAttached(function (component) {\n memReplaced.getOpt(component).each(function (ta) {\n (isOldCustomEditor(spec) ? spec.init(ta.element.dom) : global$b.load(spec.scriptId, spec.scriptUrl).then(function (init) {\n return init(ta.element.dom, spec.settings);\n })).then(function (ea) {\n initialValue.get().each(function (cvalue) {\n ea.setValue(cvalue);\n });\n initialValue.set(Optional.none());\n editorApi.set(Optional.some(ea));\n });\n });\n })]),\n Representing.config({\n store: {\n mode: 'manual',\n getValue: function () {\n return editorApi.get().fold(function () {\n return initialValue.get().getOr('');\n }, function (ed) {\n return ed.getValue();\n });\n },\n setValue: function (component, value) {\n editorApi.get().fold(function () {\n initialValue.set(Optional.some(value));\n }, function (ed) {\n return ed.setValue(value);\n });\n }\n }\n }),\n ComposingConfigs.self()\n ]),\n components: [memReplaced.asSpec()]\n };\n };\n\n var global$c = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n var processors = objOf([\n defaulted$1('preprocess', identity),\n defaulted$1('postprocess', identity)\n ]);\n var memento$1 = function (mem, rawProcessors) {\n var ps = asRawOrDie('RepresentingConfigs.memento processors', processors, rawProcessors);\n return Representing.config({\n store: {\n mode: 'manual',\n getValue: function (comp) {\n var other = mem.get(comp);\n var rawValue = Representing.getValue(other);\n return ps.postprocess(rawValue);\n },\n setValue: function (comp, rawValue) {\n var newValue = ps.preprocess(rawValue);\n var other = mem.get(comp);\n Representing.setValue(other, newValue);\n }\n }\n });\n };\n var withComp = function (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 { store: { initialValue: initialValue } };\n }).getOr({})));\n };\n var withElement = function (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 var domValue = function (optInitialValue) {\n return withElement(optInitialValue, get$6, set$3);\n };\n var domHtml = function (optInitialValue) {\n return withElement(optInitialValue, get$2, set);\n };\n var memory$1 = function (initialValue) {\n return Representing.config({\n store: {\n mode: 'memory',\n initialValue: initialValue\n }\n });\n };\n var RepresentingConfigs = {\n memento: memento$1,\n withElement: withElement,\n withComp: withComp,\n domValue: domValue,\n domHtml: domHtml,\n memory: memory$1\n };\n\n var defaultImageFileTypes = 'jpeg,jpg,jpe,jfi,jif,jfif,png,gif,bmp,webp';\n var filterByExtension = function (files, providersBackstage) {\n var allowedImageFileTypes = global$c.explode(providersBackstage.getSetting('images_file_types', defaultImageFileTypes, 'string'));\n var isFileInAllowedTypes = function (file) {\n return exists(allowedImageFileTypes, function (type) {\n return endsWith(file.name.toLowerCase(), '.' + type.toLowerCase());\n });\n };\n return filter(from$1(files), isFileInAllowedTypes);\n };\n var renderDropZone = function (spec, providersBackstage) {\n var stopper = function (_, se) {\n se.stop();\n };\n var sequence = function (actions) {\n return function (comp, se) {\n each(actions, function (a) {\n a(comp, se);\n });\n };\n };\n var onDrop = function (comp, se) {\n if (!Disabling.isDisabled(comp)) {\n var transferEvent = se.event.raw;\n handleFiles(comp, transferEvent.dataTransfer.files);\n }\n };\n var onSelect = function (component, simulatedEvent) {\n var input = simulatedEvent.event.raw.target;\n handleFiles(component, input.files);\n };\n var handleFiles = function (component, files) {\n Representing.setValue(component, filterByExtension(files, providersBackstage));\n emitWith(component, formChangeEvent, { name: spec.name });\n };\n var memInput = record({\n dom: {\n tag: 'input',\n attributes: {\n type: 'file',\n accept: 'image/*'\n },\n styles: { display: 'none' }\n },\n behaviours: derive$1([config('input-file-events', [\n cutter(click()),\n cutter(tap())\n ])])\n });\n var renderField = function (s) {\n return {\n uid: s.uid,\n dom: {\n tag: 'div',\n classes: ['tox-dropzone-container']\n },\n behaviours: derive$1([\n RepresentingConfigs.memory([]),\n ComposingConfigs.self(),\n Disabling.config({}),\n Toggling.config({\n toggleClass: 'dragenter',\n toggleOnExecute: false\n }),\n config('dropzone-events', [\n run('dragenter', sequence([\n stopper,\n Toggling.toggle\n ])),\n run('dragleave', sequence([\n stopper,\n Toggling.toggle\n ])),\n run('dragover', stopper),\n run('drop', sequence([\n stopper,\n onDrop\n ])),\n run(change(), onSelect)\n ])\n ]),\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-dropzone'],\n styles: {}\n },\n components: [\n {\n dom: {\n tag: 'p',\n innerHtml: providersBackstage.translate('Drop an image here')\n }\n },\n Button.sketch({\n dom: {\n tag: 'button',\n innerHtml: providersBackstage.translate('Browse for an image'),\n styles: { position: 'relative' },\n classes: [\n 'tox-button',\n 'tox-button--secondary'\n ]\n },\n components: [memInput.asSpec()],\n action: function (comp) {\n var inputComp = memInput.get(comp);\n inputComp.element.dom.click();\n },\n buttonBehaviours: derive$1([\n Tabstopping.config({}),\n DisablingConfigs.button(providersBackstage.isDisabled),\n receivingConfig()\n ])\n })\n ]\n }]\n };\n };\n var pLabel = spec.label.map(function (label) {\n return renderLabel(label, providersBackstage);\n });\n var pField = FormField.parts.field({ factory: { sketch: renderField } });\n return renderFormFieldWith(pLabel, pField, ['tox-form__group--stretched'], []);\n };\n\n var renderGrid = function (spec, backstage) {\n return {\n dom: {\n tag: 'div',\n classes: [\n 'tox-form__grid',\n 'tox-form__grid--' + spec.columns + 'col'\n ]\n },\n components: map(spec.items, backstage.interpreter)\n };\n };\n\n var beforeObject = generate$1('alloy-fake-before-tabstop');\n var afterObject = generate$1('alloy-fake-after-tabstop');\n var craftWithClasses = function (classes) {\n return {\n dom: {\n tag: 'div',\n styles: {\n width: '1px',\n height: '1px',\n outline: 'none'\n },\n attributes: { tabindex: '0' },\n classes: classes\n },\n behaviours: derive$1([\n Focusing.config({ ignore: true }),\n Tabstopping.config({})\n ])\n };\n };\n var craft = function (spec) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-navobj']\n },\n components: [\n craftWithClasses([beforeObject]),\n spec,\n craftWithClasses([afterObject])\n ],\n behaviours: derive$1([ComposingConfigs.childAt(1)])\n };\n };\n var triggerTab = function (placeholder, shiftKey) {\n emitWith(placeholder, keydown(), {\n raw: {\n which: 9,\n shiftKey: shiftKey\n }\n });\n };\n var onFocus$1 = function (container, targetComp) {\n var target = targetComp.element;\n if (has$2(target, beforeObject)) {\n triggerTab(container, true);\n } else if (has$2(target, afterObject)) {\n triggerTab(container, false);\n }\n };\n var isPseudoStop = function (element) {\n return closest$4(element, [\n '.' + beforeObject,\n '.' + afterObject\n ].join(','), never);\n };\n\n var platformNeedsSandboxing = !(detect$3().browser.isIE() || detect$3().browser.isEdge());\n var getDynamicSource = function (isSandbox) {\n var cachedValue = Cell('');\n return {\n getValue: function (_frameComponent) {\n return cachedValue.get();\n },\n setValue: function (frameComponent, html) {\n if (!isSandbox) {\n set$1(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$1(frameComponent.element, 'srcdoc', html);\n }\n cachedValue.set(html);\n }\n };\n };\n var renderIFrame = function (spec, providersBackstage) {\n var isSandbox = platformNeedsSandboxing && spec.sandboxed;\n var attributes = __assign(__assign({}, spec.label.map(function (title) {\n return { title: title };\n }).getOr({})), isSandbox ? { sandbox: 'allow-scripts allow-same-origin' } : {});\n var sourcing = getDynamicSource(isSandbox);\n var pLabel = spec.label.map(function (label) {\n return renderLabel(label, providersBackstage);\n });\n var factory = function (newSpec) {\n return craft({\n uid: newSpec.uid,\n dom: {\n tag: 'iframe',\n attributes: attributes\n },\n behaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({}),\n RepresentingConfigs.withComp(Optional.none(), sourcing.getValue, sourcing.setValue)\n ])\n });\n };\n var pField = FormField.parts.field({ factory: { sketch: factory } });\n return renderFormFieldWith(pLabel, pField, ['tox-form__group--stretched'], []);\n };\n\n var create$5 = function (width, height) {\n return resize(document.createElement('canvas'), width, height);\n };\n var clone$1 = function (canvas) {\n var tCanvas = create$5(canvas.width, canvas.height);\n var ctx = get2dContext(tCanvas);\n ctx.drawImage(canvas, 0, 0);\n return tCanvas;\n };\n var get2dContext = function (canvas) {\n return canvas.getContext('2d');\n };\n var resize = function (canvas, width, height) {\n canvas.width = width;\n canvas.height = height;\n return canvas;\n };\n\n var getWidth = function (image) {\n return image.naturalWidth || image.width;\n };\n var getHeight = function (image) {\n return image.naturalHeight || image.height;\n };\n\n var promise = function () {\n var Promise = function (fn) {\n if (typeof this !== 'object') {\n throw new TypeError('Promises must be constructed via new');\n }\n if (typeof fn !== 'function') {\n throw new TypeError('not a function');\n }\n this._state = null;\n this._value = null;\n this._deferreds = [];\n doResolve(fn, bind(resolve, this), bind(reject, this));\n };\n var anyWindow = window;\n var asap = Promise.immediateFn || typeof anyWindow.setImmediate === 'function' && anyWindow.setImmediate || function (fn) {\n return setTimeout(fn, 1);\n };\n var bind = function (fn, thisArg) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return fn.apply(thisArg, args);\n };\n };\n var isArray = Array.isArray || function (value) {\n return Object.prototype.toString.call(value) === '[object Array]';\n };\n function handle(deferred) {\n var me = this;\n if (this._state === null) {\n this._deferreds.push(deferred);\n return;\n }\n asap(function () {\n var cb = me._state ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n (me._state ? deferred.resolve : deferred.reject)(me._value);\n return;\n }\n var ret;\n try {\n ret = cb(me._value);\n } catch (e) {\n deferred.reject(e);\n return;\n }\n deferred.resolve(ret);\n });\n }\n function resolve(newValue) {\n try {\n if (newValue === this) {\n 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 if (typeof then === 'function') {\n doResolve(bind(then, newValue), bind(resolve, this), bind(reject, this));\n return;\n }\n }\n this._state = true;\n this._value = newValue;\n finale.call(this);\n } catch (e) {\n reject.call(this, e);\n }\n }\n function reject(newValue) {\n this._state = false;\n this._value = newValue;\n finale.call(this);\n }\n function finale() {\n for (var _i = 0, _a = this._deferreds; _i < _a.length; _i++) {\n var deferred = _a[_i];\n handle.call(this, deferred);\n }\n this._deferreds = [];\n }\n function Handler(onFulfilled, onRejected, resolve, reject) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.resolve = resolve;\n this.reject = reject;\n }\n var doResolve = function (fn, onFulfilled, onRejected) {\n var done = false;\n try {\n fn(function (value) {\n if (done) {\n return;\n }\n done = true;\n onFulfilled(value);\n }, function (reason) {\n if (done) {\n return;\n }\n done = true;\n onRejected(reason);\n });\n } catch (ex) {\n if (done) {\n return;\n }\n done = true;\n onRejected(ex);\n }\n };\n Promise.prototype.catch = function (onRejected) {\n return this.then(null, onRejected);\n };\n Promise.prototype.then = function (onFulfilled, onRejected) {\n var me = this;\n return new Promise(function (resolve, reject) {\n handle.call(me, new Handler(onFulfilled, onRejected, resolve, reject));\n });\n };\n Promise.all = function () {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n var args = Array.prototype.slice.call(values.length === 1 && isArray(values[0]) ? values[0] : values);\n return new Promise(function (resolve, reject) {\n if (args.length === 0) {\n return resolve([]);\n }\n var remaining = args.length;\n var res = function (i, val) {\n try {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(val, function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n } catch (ex) {\n reject(ex);\n }\n };\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n };\n Promise.resolve = function (value) {\n if (value && typeof value === 'object' && value.constructor === Promise) {\n return value;\n }\n return new Promise(function (resolve) {\n resolve(value);\n });\n };\n Promise.reject = function (reason) {\n return new Promise(function (resolve, reject) {\n reject(reason);\n });\n };\n Promise.race = function (values) {\n return new Promise(function (resolve, reject) {\n for (var _i = 0, values_1 = values; _i < values_1.length; _i++) {\n var value = values_1[_i];\n value.then(resolve, reject);\n }\n });\n };\n return Promise;\n };\n var Promise$1 = window.Promise ? window.Promise : promise();\n\n var blobToImage = function (blob) {\n return new Promise$1(function (resolve, reject) {\n var blobUrl = URL.createObjectURL(blob);\n var image = new Image();\n var removeListeners = function () {\n image.removeEventListener('load', loaded);\n image.removeEventListener('error', error);\n };\n var loaded = function () {\n removeListeners();\n resolve(image);\n };\n var error = function () {\n removeListeners();\n reject('Unable to load data of type ' + blob.type + ': ' + blobUrl);\n };\n image.addEventListener('load', loaded);\n image.addEventListener('error', error);\n image.src = blobUrl;\n if (image.complete) {\n setTimeout(loaded, 0);\n }\n });\n };\n var dataUriToBlobSync = function (uri) {\n var data = uri.split(',');\n var matches = /data:([^;]+)/.exec(data[0]);\n if (!matches) {\n return Optional.none();\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 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 for (var offset = begin, i = 0; offset < end; ++i, ++offset) {\n bytes[i] = byteCharacters[offset].charCodeAt(0);\n }\n byteArrays[sliceIndex] = new Uint8Array(bytes);\n }\n return Optional.some(new Blob(byteArrays, { type: mimetype }));\n };\n var dataUriToBlob = function (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 var canvasToBlob = function (canvas, type, quality) {\n type = type || 'image/png';\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 var canvasToDataURL = function (canvas, type, quality) {\n type = type || 'image/png';\n return canvas.toDataURL(type, quality);\n };\n var blobToCanvas = function (blob) {\n return blobToImage(blob).then(function (image) {\n revokeImageUrl(image);\n var canvas = create$5(getWidth(image), getHeight(image));\n var context = get2dContext(canvas);\n context.drawImage(image, 0, 0);\n return canvas;\n });\n };\n var blobToDataUri = function (blob) {\n return new Promise$1(function (resolve) {\n var reader = new FileReader();\n reader.onloadend = function () {\n resolve(reader.result);\n };\n reader.readAsDataURL(blob);\n });\n };\n var revokeImageUrl = function (image) {\n URL.revokeObjectURL(image.src);\n };\n\n var create$6 = function (getCanvas, blob, uri) {\n var initialType = blob.type;\n var getType = constant(initialType);\n var toBlob = function () {\n return Promise$1.resolve(blob);\n };\n var toDataURL = constant(uri);\n var toBase64 = function () {\n return uri.split(',')[1];\n };\n var toAdjustedBlob = function (type, quality) {\n return getCanvas.then(function (canvas) {\n return canvasToBlob(canvas, type, quality);\n });\n };\n var toAdjustedDataURL = function (type, quality) {\n return getCanvas.then(function (canvas) {\n return canvasToDataURL(canvas, type, quality);\n });\n };\n var toAdjustedBase64 = function (type, quality) {\n return toAdjustedDataURL(type, quality).then(function (dataurl) {\n return dataurl.split(',')[1];\n });\n };\n var toCanvas = function () {\n return getCanvas.then(clone$1);\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 var fromBlob = function (blob) {\n return blobToDataUri(blob).then(function (uri) {\n return create$6(blobToCanvas(blob), blob, uri);\n });\n };\n var fromCanvas = function (canvas, type) {\n return canvasToBlob(canvas, type).then(function (blob) {\n return create$6(Promise$1.resolve(canvas), blob, canvas.toDataURL());\n });\n };\n\n var blobToImageResult = function (blob) {\n return fromBlob(blob);\n };\n\n var clamp$1 = function (value, min, max) {\n var parsedValue = typeof value === 'string' ? parseFloat(value) : value;\n if (parsedValue > max) {\n parsedValue = max;\n } else if (parsedValue < min) {\n parsedValue = min;\n }\n return parsedValue;\n };\n var identity$1 = function () {\n return [\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1\n ];\n };\n var DELTA_INDEX = [\n 0,\n 0.01,\n 0.02,\n 0.04,\n 0.05,\n 0.06,\n 0.07,\n 0.08,\n 0.1,\n 0.11,\n 0.12,\n 0.14,\n 0.15,\n 0.16,\n 0.17,\n 0.18,\n 0.2,\n 0.21,\n 0.22,\n 0.24,\n 0.25,\n 0.27,\n 0.28,\n 0.3,\n 0.32,\n 0.34,\n 0.36,\n 0.38,\n 0.4,\n 0.42,\n 0.44,\n 0.46,\n 0.48,\n 0.5,\n 0.53,\n 0.56,\n 0.59,\n 0.62,\n 0.65,\n 0.68,\n 0.71,\n 0.74,\n 0.77,\n 0.8,\n 0.83,\n 0.86,\n 0.89,\n 0.92,\n 0.95,\n 0.98,\n 1,\n 1.06,\n 1.12,\n 1.18,\n 1.24,\n 1.3,\n 1.36,\n 1.42,\n 1.48,\n 1.54,\n 1.6,\n 1.66,\n 1.72,\n 1.78,\n 1.84,\n 1.9,\n 1.96,\n 2,\n 2.12,\n 2.25,\n 2.37,\n 2.5,\n 2.62,\n 2.75,\n 2.87,\n 3,\n 3.2,\n 3.4,\n 3.6,\n 3.8,\n 4,\n 4.3,\n 4.7,\n 4.9,\n 5,\n 5.5,\n 6,\n 6.5,\n 6.8,\n 7,\n 7.3,\n 7.5,\n 7.8,\n 8,\n 8.4,\n 8.7,\n 9,\n 9.4,\n 9.6,\n 9.8,\n 10\n ];\n var multiply = function (matrix1, matrix2) {\n var col = [];\n var out = new Array(25);\n var val;\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 for (var j = 0; j < 5; j++) {\n val = 0;\n for (var k = 0; k < 5; k++) {\n val += matrix1[j + k * 5] * col[k];\n }\n out[j + i * 5] = val;\n }\n }\n return out;\n };\n var adjustContrast = function (matrix, value) {\n var x;\n value = clamp$1(value, -1, 1);\n value *= 100;\n if (value < 0) {\n x = 127 + value / 100 * 127;\n } else {\n x = value % 1;\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 x = x * 127 + 127;\n }\n return multiply(matrix, [\n x / 127,\n 0,\n 0,\n 0,\n 0.5 * (127 - x),\n 0,\n x / 127,\n 0,\n 0,\n 0.5 * (127 - x),\n 0,\n 0,\n x / 127,\n 0,\n 0.5 * (127 - x),\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1\n ]);\n };\n var adjustBrightness = function (matrix, value) {\n value = clamp$1(255 * value, -255, 255);\n return multiply(matrix, [\n 1,\n 0,\n 0,\n 0,\n value,\n 0,\n 1,\n 0,\n 0,\n value,\n 0,\n 0,\n 1,\n 0,\n value,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1\n ]);\n };\n var adjustColors = function (matrix, adjustR, adjustG, adjustB) {\n adjustR = clamp$1(adjustR, 0, 2);\n adjustG = clamp$1(adjustG, 0, 2);\n adjustB = clamp$1(adjustB, 0, 2);\n return multiply(matrix, [\n adjustR,\n 0,\n 0,\n 0,\n 0,\n 0,\n adjustG,\n 0,\n 0,\n 0,\n 0,\n 0,\n adjustB,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1\n ]);\n };\n\n var colorFilter = function (ir, matrix) {\n return ir.toCanvas().then(function (canvas) {\n return applyColorFilter(canvas, ir.getType(), matrix);\n });\n };\n var applyColorFilter = function (canvas, type, matrix) {\n var context = get2dContext(canvas);\n var applyMatrix = function (pixelsData, m) {\n var r, g, b, a;\n var data = pixelsData.data, m0 = m[0], m1 = m[1], m2 = m[2], m3 = m[3], m4 = m[4], m5 = m[5], m6 = m[6], m7 = m[7], m8 = m[8], m9 = m[9], m10 = m[10], m11 = m[11], m12 = m[12], m13 = m[13], m14 = m[14], m15 = m[15], m16 = m[16], m17 = m[17], m18 = m[18], m19 = m[19];\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 return pixelsData;\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 var convoluteFilter = function (ir, matrix) {\n return ir.toCanvas().then(function (canvas) {\n return applyConvoluteFilter(canvas, ir.getType(), matrix);\n });\n };\n var applyConvoluteFilter = function (canvas, type, matrix) {\n var context = get2dContext(canvas);\n var applyMatrix = function (pIn, pOut, aMatrix) {\n var clamp = function (value, min, max) {\n if (value > max) {\n value = max;\n } else if (value < min) {\n value = min;\n }\n return value;\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 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 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 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 return pOut;\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 var functionColorFilter = function (colorFn) {\n var filterImpl = function (canvas, type, value) {\n var context = get2dContext(canvas);\n var lookup = new Array(256);\n var applyLookup = function (pixelsData, lookupData) {\n var data = pixelsData.data;\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 return pixelsData;\n };\n for (var i = 0; i < lookup.length; i++) {\n lookup[i] = colorFn(i, value);\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 return function (ir, value) {\n return ir.toCanvas().then(function (canvas) {\n return filterImpl(canvas, ir.getType(), value);\n });\n };\n };\n var complexAdjustableColorFilter = function (matrixAdjustFn) {\n return function (ir, adjust) {\n return colorFilter(ir, matrixAdjustFn(identity$1(), adjust));\n };\n };\n var basicColorFilter = function (matrix) {\n return function (ir) {\n return colorFilter(ir, matrix);\n };\n };\n var basicConvolutionFilter = function (kernel) {\n return function (ir) {\n return convoluteFilter(ir, kernel);\n };\n };\n var invert = basicColorFilter([\n -1,\n 0,\n 0,\n 0,\n 255,\n 0,\n -1,\n 0,\n 0,\n 255,\n 0,\n 0,\n -1,\n 0,\n 255,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1\n ]);\n var brightness = complexAdjustableColorFilter(adjustBrightness);\n var contrast = complexAdjustableColorFilter(adjustContrast);\n var colorize = function (ir, adjustR, adjustG, adjustB) {\n return colorFilter(ir, adjustColors(identity$1(), adjustR, adjustG, adjustB));\n };\n var sharpen = basicConvolutionFilter([\n 0,\n -1,\n 0,\n -1,\n 5,\n -1,\n 0,\n -1,\n 0\n ]);\n var gamma = functionColorFilter(function (color, value) {\n return Math.pow(color / 255, 1 - value) * 255;\n });\n\n var scale = function (image, dW, dH) {\n var sW = getWidth(image);\n var sH = getHeight(image);\n var wRatio = dW / sW;\n var hRatio = dH / sH;\n var scaleCapped = false;\n if (wRatio < 0.5 || wRatio > 2) {\n wRatio = wRatio < 0.5 ? 0.5 : 2;\n scaleCapped = true;\n }\n if (hRatio < 0.5 || hRatio > 2) {\n hRatio = hRatio < 0.5 ? 0.5 : 2;\n scaleCapped = true;\n }\n var scaled = _scale(image, wRatio, hRatio);\n return !scaleCapped ? scaled : scaled.then(function (tCanvas) {\n return scale(tCanvas, dW, dH);\n });\n };\n var _scale = function (image, wRatio, hRatio) {\n return new Promise$1(function (resolve) {\n var sW = getWidth(image);\n var sH = getHeight(image);\n var dW = Math.floor(sW * wRatio);\n var dH = Math.floor(sH * hRatio);\n var canvas = create$5(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 rotate = function (ir, angle) {\n return ir.toCanvas().then(function (canvas) {\n return applyRotate(canvas, ir.getType(), angle);\n });\n };\n var applyRotate = function (image, type, angle) {\n var canvas = create$5(image.width, image.height);\n var context = get2dContext(canvas);\n var translateX = 0;\n var translateY = 0;\n angle = angle < 0 ? 360 + angle : angle;\n if (angle === 90 || angle === 270) {\n resize(canvas, canvas.height, canvas.width);\n }\n if (angle === 90 || angle === 180) {\n translateX = canvas.width;\n }\n if (angle === 270 || angle === 180) {\n translateY = canvas.height;\n }\n context.translate(translateX, translateY);\n context.rotate(angle * Math.PI / 180);\n context.drawImage(image, 0, 0);\n return fromCanvas(canvas, type);\n };\n var flip = function (ir, axis) {\n return ir.toCanvas().then(function (canvas) {\n return applyFlip(canvas, ir.getType(), axis);\n });\n };\n var applyFlip = function (image, type, axis) {\n var canvas = create$5(image.width, image.height);\n var context = get2dContext(canvas);\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 return fromCanvas(canvas, type);\n };\n var crop = function (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 var applyCrop = function (image, type, x, y, w, h) {\n var canvas = create$5(w, h);\n var context = get2dContext(canvas);\n context.drawImage(image, -x, -y);\n return fromCanvas(canvas, type);\n };\n var resize$1 = function (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$1 = function (ir) {\n return invert(ir);\n };\n var sharpen$1 = function (ir) {\n return sharpen(ir);\n };\n var gamma$1 = function (ir, value) {\n return gamma(ir, value);\n };\n var colorize$1 = function (ir, adjustR, adjustG, adjustB) {\n return colorize(ir, adjustR, adjustG, adjustB);\n };\n var brightness$1 = function (ir, adjust) {\n return brightness(ir, adjust);\n };\n var contrast$1 = function (ir, adjust) {\n return contrast(ir, adjust);\n };\n var flip$1 = function (ir, axis) {\n return flip(ir, axis);\n };\n var crop$1 = function (ir, x, y, w, h) {\n return crop(ir, x, y, w, h);\n };\n var resize$2 = function (ir, w, h) {\n return resize$1(ir, w, h);\n };\n var rotate$1 = function (ir, angle) {\n return rotate(ir, angle);\n };\n\n var renderIcon$1 = function (iconHtml, behaviours) {\n return __assign({\n dom: {\n tag: 'span',\n innerHtml: iconHtml,\n classes: [\n 'tox-icon',\n 'tox-tbtn__icon-wrap'\n ]\n }\n }, behaviours);\n };\n var renderIconFromPack = function (iconName, iconsProvider) {\n return renderIcon$1(get$e(iconName, iconsProvider), {});\n };\n var renderReplacableIconFromPack = function (iconName, iconsProvider) {\n return renderIcon$1(get$e(iconName, iconsProvider), { behaviours: derive$1([Replacing.config({})]) });\n };\n var renderLabel$1 = function (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$1;\n var internalToolbarButtonExecute = generate$1('toolbar.button.execute');\n var onToolbarButtonExecute = function (info) {\n return runOnExecute(function (comp, _simulatedEvent) {\n runWithApi(info, comp)(function (itemApi) {\n emitWith(comp, internalToolbarButtonExecute, { buttonApi: itemApi });\n info.onAction(itemApi);\n });\n });\n };\n var toolbarButtonEventOrder = (_a$1 = {}, _a$1[execute()] = [\n 'disabling',\n 'alloy.base.behaviour',\n 'toggling',\n 'toolbar-button-events'\n ], _a$1);\n\n var updateMenuText = generate$1('update-menu-text');\n var updateMenuIcon = generate$1('update-menu-icon');\n var renderCommonDropdown = function (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 var onLeftOrRightInMenu = function (comp, se) {\n var dropdown = Representing.getValue(comp);\n Focusing.focus(dropdown);\n emitWith(dropdown, 'keydown', { raw: se.event.raw });\n Dropdown.close(dropdown);\n return Optional.some(true);\n };\n var role = spec.role.fold(function () {\n return {};\n }, function (role) {\n return { role: role };\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 memDropdown = record(Dropdown.sketch(__assign(__assign(__assign({}, spec.uid ? { uid: spec.uid } : {}), role), {\n dom: {\n tag: 'button',\n classes: [\n prefix,\n prefix + '--select'\n ].concat(map(spec.classes, function (c) {\n return prefix + '--' + c;\n })),\n attributes: __assign({}, tooltipAttributes)\n },\n components: componentRenderPipeline([\n optMemDisplayIcon.map(function (mem) {\n return mem.asSpec();\n }),\n optMemDisplayText.map(function (mem) {\n return mem.asSpec();\n }),\n Optional.some({\n dom: {\n tag: 'div',\n classes: [prefix + '__select-chevron'],\n innerHtml: get$e('chevron-down', sharedBackstage.providers.icons)\n }\n })\n ]),\n matchWidth: true,\n useMinWidth: true,\n dropdownBehaviours: derive$1(__spreadArrays(spec.dropdownBehaviours, [\n DisablingConfigs.button(function () {\n return spec.disabled || sharedBackstage.providers.isDisabled();\n }),\n receivingConfig(),\n Unselecting.config({}),\n Replacing.config({}),\n config('dropdown-events', [\n onControlAttached(spec, editorOffCell),\n onControlDetached(spec, editorOffCell)\n ]),\n config('menubutton-update-display-text', [\n run(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 }),\n run(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 })\n ])\n ])),\n eventOrder: deepMerge(toolbarButtonEventOrder, {\n mousedown: [\n 'focusing',\n 'alloy.base.behaviour',\n 'item-type-events',\n 'normal-dropdown-events'\n ]\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: { menu: part(false, spec.columns, spec.presets) },\n fetch: function (comp) {\n return Future.nu(curry(spec.fetch, comp));\n }\n })));\n return memDropdown.asSpec();\n };\n\n var isMenuItemReference = function (item) {\n return isString(item);\n };\n var isSeparator = function (item) {\n return item.type === 'separator';\n };\n var isExpandingMenuItem = function (item) {\n return has(item, 'getSubmenuItems');\n };\n var separator$1 = { type: 'separator' };\n var unwrapReferences = function (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(acc[acc.length - 1]) ? acc.concat([separator$1]) : acc;\n } else if (has(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 if (realItems.length > 0 && isSeparator(realItems[realItems.length - 1])) {\n realItems.pop();\n }\n return realItems;\n };\n var getFromExpandingItem = function (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 var getFromItem = function (item, menuItems) {\n return isExpandingMenuItem(item) ? getFromExpandingItem(item, menuItems) : {\n item: item,\n menus: {},\n expansions: {}\n };\n };\n var generateValueIfRequired = function (item) {\n if (isSeparator(item)) {\n return item;\n } else {\n var itemValue = get$1(item, 'value').getOrThunk(function () {\n return generate$1('generated-menu-item');\n });\n return deepMerge({ value: itemValue }, item);\n }\n };\n var expand = function (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$2 = function (items, itemResponse, backstage, isHorizontalMenu) {\n var primary = generate$1('primary-menu');\n var data = expand(items, backstage.shared.providers.menuItems());\n if (data.items.length === 0) {\n return Optional.none();\n }\n var mainMenu = createPartialMenu(primary, data.items, itemResponse, backstage, isHorizontalMenu);\n var submenus = map$2(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 (component) {\n return {\n isDisabled: function () {\n return Disabling.isDisabled(component);\n },\n setDisabled: function (state) {\n return Disabling.set(component, state);\n },\n setActive: function (state) {\n var elm = component.element;\n if (state) {\n add$2(elm, 'tox-tbtn--enabled');\n set$1(elm, 'aria-pressed', true);\n } else {\n remove$4(elm, 'tox-tbtn--enabled');\n remove$1(elm, 'aria-pressed');\n }\n },\n isActive: function () {\n return has$2(component.element, 'tox-tbtn--enabled');\n }\n };\n };\n var renderMenuButton = function (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 (_comp, callback) {\n spec.fetch(function (items) {\n callback(build$2(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 var getFetch$1 = function (items, getButton, backstage) {\n var getMenuItemAction = function (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$1(orig.element);\n emitWith(orig, formActionEvent, {\n name: item.name,\n value: item.storage.get()\n });\n });\n });\n };\n };\n var getMenuItemSetup = function (item) {\n return function (api) {\n api.setActive(item.storage.get());\n };\n };\n return function (success) {\n success(map(items, function (item) {\n var text = item.text.fold(function () {\n return {};\n }, function (text) {\n return { text: text };\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 (spec, actionOpt, extraBehaviours, dom, components, providersBackstage) {\n if (extraBehaviours === void 0) {\n extraBehaviours = [];\n }\n var action = actionOpt.fold(function () {\n return {};\n }, function (action) {\n return { action: action };\n });\n var common = __assign({\n buttonBehaviours: derive$1([\n DisablingConfigs.button(function () {\n return spec.disabled || providersBackstage.isDisabled();\n }),\n receivingConfig(),\n Tabstopping.config({}),\n config('button press', [\n preventDefault('click'),\n preventDefault('mousedown')\n ])\n ].concat(extraBehaviours)),\n eventOrder: {\n click: [\n 'button press',\n 'alloy.base.behaviour'\n ],\n mousedown: [\n 'button press',\n 'alloy.base.behaviour'\n ]\n }\n }, action);\n var domFinal = deepMerge(common, { dom: dom });\n return deepMerge(domFinal, { components: components });\n };\n var renderIconButtonSpec = function (spec, action, providersBackstage, extraBehaviours) {\n if (extraBehaviours === void 0) {\n extraBehaviours = [];\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 var renderIconButton = function (spec, action, providersBackstage, extraBehaviours) {\n if (extraBehaviours === void 0) {\n extraBehaviours = [];\n }\n var iconButtonSpec = renderIconButtonSpec(spec, Optional.some(action), providersBackstage, extraBehaviours);\n return Button.sketch(iconButtonSpec);\n };\n var renderButtonSpec = function (spec, action, providersBackstage, extraBehaviours, extraClasses) {\n if (extraBehaviours === void 0) {\n extraBehaviours = [];\n }\n if (extraClasses === void 0) {\n extraClasses = [];\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() ? {} : { innerHtml: translatedText };\n var classes = __spreadArrays(!spec.primary && !spec.borderless ? [\n 'tox-button',\n 'tox-button--secondary'\n ] : ['tox-button'], icon.isSome() ? ['tox-button--icon'] : [], spec.borderless ? ['tox-button--naked'] : [], extraClasses);\n var dom = __assign(__assign({\n tag: 'button',\n classes: classes\n }, innerHtml), { attributes: { title: translatedText } });\n return renderCommonSpec(spec, action, extraBehaviours, dom, components, providersBackstage);\n };\n var renderButton = function (spec, action, providersBackstage, extraBehaviours, extraClasses) {\n if (extraBehaviours === void 0) {\n extraBehaviours = [];\n }\n if (extraClasses === void 0) {\n extraClasses = [];\n }\n var buttonSpec = renderButtonSpec(spec, Optional.some(action), providersBackstage, extraBehaviours, extraClasses);\n return Button.sketch(buttonSpec);\n };\n var getAction = function (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 var isMenuFooterButtonSpec = function (spec, buttonType) {\n return buttonType === 'menu';\n };\n var isNormalFooterButtonSpec = function (spec, buttonType) {\n return buttonType === 'custom' || buttonType === 'cancel' || buttonType === 'submit';\n };\n var renderFooterButton = function (spec, buttonType, backstage) {\n if (isMenuFooterButtonSpec(spec, buttonType)) {\n var getButton = function () {\n return memButton_1;\n };\n var menuButtonSpec = spec;\n var fixedSpec = __assign(__assign({}, spec), {\n onSetup: function (api) {\n api.setDisabled(spec.disabled);\n return noop;\n },\n fetch: getFetch$1(menuButtonSpec.items, getButton, backstage)\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 var buttonSpec = __assign(__assign({}, spec), { borderless: false });\n return renderButton(buttonSpec, action, backstage.shared.providers, []);\n } else {\n console.error('Unknown footer button type: ', buttonType);\n }\n };\n var renderDialogButton = function (spec, providersBackstage) {\n var action = getAction(spec.name, 'custom');\n return renderFormField(Optional.none(), FormField.parts.field(__assign({ factory: Button }, renderButtonSpec(spec, Optional.some(action), providersBackstage, [\n RepresentingConfigs.memory(''),\n ComposingConfigs.self()\n ]))));\n };\n\n var schema$i = constant([\n defaulted$1('field1Name', 'field1'),\n defaulted$1('field2Name', 'field2'),\n onStrictHandler('onLockedChange'),\n markers(['lockClass']),\n defaulted$1('locked', false),\n SketchBehaviours.field('coupledFieldBehaviours', [\n Composing,\n Representing\n ])\n ]);\n var getField = function (comp, detail, partName) {\n return getPart(comp, detail, partName).bind(Composing.getCurrent);\n };\n var coupledPart = function (selfName, otherName) {\n return required({\n factory: FormField,\n name: selfName,\n overrides: function (detail) {\n return {\n fieldBehaviours: derive$1([config('coupled-input-behaviour', [run(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 var parts$5 = constant([\n coupledPart('field1', 'field2'),\n coupledPart('field2', 'field1'),\n required({\n factory: Button,\n schema: [strict$1('dom')],\n name: 'lock',\n overrides: function (detail) {\n return {\n buttonBehaviours: derive$1([Toggling.config({\n selected: detail.locked,\n toggleClass: detail.markers.lockClass,\n aria: { mode: 'pressed' }\n })])\n };\n }\n })\n ]);\n\n var factory$7 = function (detail, components, _spec, _externals) {\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: SketchBehaviours.augment(detail.coupledFieldBehaviours, [\n Composing.config({ find: Optional.some }),\n Representing.config({\n store: {\n mode: 'manual',\n getValue: function (comp) {\n var _a;\n var parts = getPartsOrDie(comp, detail, [\n 'field1',\n 'field2'\n ]);\n return _a = {}, _a[detail.field1Name] = Representing.getValue(parts.field1()), _a[detail.field2Name] = Representing.getValue(parts.field2()), _a;\n },\n setValue: function (comp, value) {\n var parts = getPartsOrDie(comp, detail, [\n 'field1',\n 'field2'\n ]);\n if (hasNonNullableKey(value, detail.field1Name)) {\n Representing.setValue(parts.field1(), value[detail.field1Name]);\n }\n if (hasNonNullableKey(value, detail.field2Name)) {\n Representing.setValue(parts.field2(), value[detail.field2Name]);\n }\n }\n }\n })\n ]),\n apis: {\n getField1: function (component) {\n return getPart(component, detail, 'field1');\n },\n getField2: function (component) {\n return getPart(component, detail, 'field2');\n },\n getLock: function (component) {\n return getPart(component, detail, 'lock');\n }\n }\n };\n };\n var FormCoupledInputs = composite$1({\n name: 'FormCoupledInputs',\n configFields: schema$i(),\n partFields: parts$5(),\n factory: factory$7,\n apis: {\n getField1: function (apis, component) {\n return apis.getField1(component);\n },\n getField2: function (apis, component) {\n return apis.getField2(component);\n },\n getLock: function (apis, component) {\n return apis.getLock(component);\n }\n }\n });\n\n var formatSize = function (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 var maxDecimal = function (unit) {\n return unit in unitDec ? unitDec[unit] : 1;\n };\n var numText = size.value.toFixed(maxDecimal(size.unit));\n if (numText.indexOf('.') !== -1) {\n numText = numText.replace(/\\.?0*$/, '');\n }\n return numText + size.unit;\n };\n var parseSize = function (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 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 var convertUnit = function (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 var supported = function (u) {\n return Object.prototype.hasOwnProperty.call(inInch, u);\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 var noSizeConversion = function (_input) {\n return Optional.none();\n };\n var ratioSizeConversion = function (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 var makeRatioConverter = function (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 (spec, providersBackstage) {\n var converter = noSizeConversion;\n var ratioEvent = generate$1('ratio-event');\n var pLock = FormCoupledInputs.parts.lock({\n dom: {\n tag: 'button',\n classes: [\n 'tox-lock',\n 'tox-button',\n 'tox-button--naked',\n 'tox-button--icon'\n ],\n attributes: { title: providersBackstage.translate(spec.label.getOr('Constrain proportions')) }\n },\n components: [\n {\n dom: {\n tag: 'span',\n classes: [\n 'tox-icon',\n 'tox-lock-icon__lock'\n ],\n innerHtml: get$e('lock', providersBackstage.icons)\n }\n },\n {\n dom: {\n tag: 'span',\n classes: [\n 'tox-icon',\n 'tox-lock-icon__unlock'\n ],\n innerHtml: get$e('unlock', providersBackstage.icons)\n }\n }\n ],\n buttonBehaviours: derive$1([\n Disabling.config({\n disabled: function () {\n return spec.disabled || providersBackstage.isDisabled();\n }\n }),\n receivingConfig(),\n Tabstopping.config({})\n ])\n });\n var formGroup = function (components) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: components\n };\n };\n var getFieldPart = function (isField1) {\n return FormField.parts.field({\n factory: Input,\n inputClasses: ['tox-textfield'],\n inputBehaviours: derive$1([\n Disabling.config({\n disabled: function () {\n return spec.disabled || providersBackstage.isDisabled();\n }\n }),\n receivingConfig(),\n Tabstopping.config({}),\n config('size-input-events', [\n run(focusin(), function (component, _simulatedEvent) {\n emitWith(component, ratioEvent, { isField1: isField1 });\n }),\n run(change(), function (component, _simulatedEvent) {\n emitWith(component, formChangeEvent, { name: spec.name });\n })\n ])\n ]),\n selectOnFocus: false\n });\n };\n var getLabel = function (label) {\n return {\n dom: {\n tag: 'label',\n classes: ['tox-label'],\n innerHtml: providersBackstage.translate(label)\n }\n };\n };\n var widthField = FormCoupledInputs.parts.field1(formGroup([\n FormField.parts.label(getLabel('Width')),\n getFieldPart(true)\n ]));\n var heightField = FormCoupledInputs.parts.field2(formGroup([\n FormField.parts.label(getLabel('Height')),\n getFieldPart(false)\n ]));\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: [\n widthField,\n heightField,\n formGroup([\n getLabel(' '),\n pLock\n ])\n ]\n }],\n field1Name: 'width',\n field2Name: 'height',\n locked: true,\n markers: { lockClass: 'tox-locked' },\n onLockedChange: function (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([\n Disabling.config({\n disabled: function () {\n return spec.disabled || providersBackstage.isDisabled();\n },\n onDisabled: function (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 (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 }),\n receivingConfig(),\n config('size-input-events2', [run(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\n var undo = constant(generate$1('undo'));\n var redo = constant(generate$1('redo'));\n var zoom = constant(generate$1('zoom'));\n var back = constant(generate$1('back'));\n var apply = constant(generate$1('apply'));\n var swap = constant(generate$1('swap'));\n var transform = constant(generate$1('transform'));\n var tempTransform = constant(generate$1('temp-transform'));\n var transformApply = constant(generate$1('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,\n tempTransform: tempTransform,\n transformApply: transformApply\n };\n var saveState = constant('save-state');\n var disable$1 = constant('disable');\n var enable$1 = constant('enable');\n var external$2 = {\n formActionEvent: formActionEvent,\n saveState: saveState,\n disable: disable$1,\n enable: enable$1\n };\n\n var renderEditPanel = function (imagePanel, providersBackstage) {\n var createButton = function (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 var createIconButton = function (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 var disableAllComponents = function (comps, eventcomp) {\n comps.map(function (mem) {\n var component = mem.get(eventcomp);\n if (component.hasConfigured(Disabling)) {\n Disabling.disable(component);\n }\n });\n };\n var enableAllComponents = function (comps, eventcomp) {\n comps.map(function (mem) {\n var component = mem.get(eventcomp);\n if (component.hasConfigured(Disabling)) {\n Disabling.enable(component);\n }\n });\n };\n var panelDom = {\n tag: 'div',\n classes: [\n 'tox-image-tools__toolbar',\n 'tox-image-tools-edit-panel'\n ]\n };\n var noop$1 = noop;\n var emit$1 = function (comp, event, data) {\n emitWith(comp, event, data);\n };\n var emitDisable = function (component) {\n return emit(component, external$2.disable());\n };\n var emitEnable = function (component) {\n return emit(component, external$2.enable());\n };\n var emitTransform = function (comp, transform) {\n emitDisable(comp);\n emit$1(comp, internal.transform(), { transform: transform });\n emitEnable(comp);\n };\n var emitTempTransform = function (comp, transform) {\n emitDisable(comp);\n emit$1(comp, internal.tempTransform(), { transform: transform });\n emitEnable(comp);\n };\n var getBackSwap = function (anyInSystem) {\n return function () {\n memContainer.getOpt(anyInSystem).each(function (container) {\n Replacing.set(container, [ButtonPanel]);\n });\n };\n };\n var emitTransformApply = function (comp, transform) {\n emitDisable(comp);\n emit$1(comp, internal.transformApply(), {\n transform: transform,\n swap: getBackSwap(comp)\n });\n emitEnable(comp);\n };\n var createBackButton = function () {\n return createButton('Back', function (button) {\n return emit$1(button, internal.back(), { swap: getBackSwap(button) });\n }, false, false);\n };\n var createSpacer = function () {\n return record({\n dom: {\n tag: 'div',\n classes: ['tox-spacer']\n },\n behaviours: derive$1([Disabling.config({})])\n });\n };\n var createApplyButton = function () {\n return createButton('Apply', function (button) {\n return emit$1(button, internal.apply(), { swap: getBackSwap(button) });\n }, true, true);\n };\n var makeCropTransform = function () {\n return function (ir) {\n var rect = imagePanel.getRect();\n return crop$1(ir, rect.x, rect.y, rect.w, rect.h);\n };\n };\n var cropPanelComponents = [\n createBackButton(),\n createSpacer(),\n createButton('Apply', function (button) {\n var transform = makeCropTransform();\n emitTransformApply(button, transform);\n imagePanel.hideCrop();\n }, false, true)\n ];\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', [\n run(external$2.disable(), function (comp, _se) {\n disableAllComponents(cropPanelComponents, comp);\n }),\n run(external$2.enable(), function (comp, _se) {\n enableAllComponents(cropPanelComponents, comp);\n })\n ])])\n });\n var memSize = record(renderSizeInput({\n name: 'size',\n label: Optional.none(),\n constrain: true,\n disabled: false\n }, providersBackstage));\n var makeResizeTransform = function (width, height) {\n return function (ir) {\n return resize$2(ir, width, height);\n };\n };\n var resizePanelComponents = [\n createBackButton(),\n createSpacer(),\n memSize,\n createSpacer(),\n 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 ];\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', [\n run(external$2.disable(), function (comp, _se) {\n disableAllComponents(resizePanelComponents, comp);\n }),\n run(external$2.enable(), function (comp, _se) {\n enableAllComponents(resizePanelComponents, comp);\n })\n ])])\n });\n var makeValueTransform = function (transform, value) {\n return function (ir) {\n return transform(ir, value);\n };\n };\n var horizontalFlip = makeValueTransform(flip$1, 'h');\n var verticalFlip = makeValueTransform(flip$1, 'v');\n var counterclockwiseRotate = makeValueTransform(rotate$1, -90);\n var clockwiseRotate = makeValueTransform(rotate$1, 90);\n var flipRotateOnAction = function (comp, operation) {\n emitTempTransform(comp, operation);\n };\n var flipRotateComponents = [\n createBackButton(),\n createSpacer(),\n createIconButton('flip-horizontally', 'Flip horizontally', function (button) {\n flipRotateOnAction(button, horizontalFlip);\n }, false),\n createIconButton('flip-vertically', 'Flip vertically', function (button) {\n flipRotateOnAction(button, verticalFlip);\n }, false),\n createIconButton('rotate-left', 'Rotate counterclockwise', function (button) {\n flipRotateOnAction(button, counterclockwiseRotate);\n }, false),\n createIconButton('rotate-right', 'Rotate clockwise', function (button) {\n flipRotateOnAction(button, clockwiseRotate);\n }, false),\n createSpacer(),\n createApplyButton()\n ];\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', [\n run(external$2.disable(), function (comp, _se) {\n disableAllComponents(flipRotateComponents, comp);\n }),\n run(external$2.enable(), function (comp, _se) {\n enableAllComponents(flipRotateComponents, comp);\n })\n ])])\n });\n var makeSlider = function (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: { role: 'presentation' }\n }\n });\n var thumb = Slider.parts.thumb({\n dom: {\n tag: 'div',\n classes: ['tox-slider__handle'],\n attributes: { role: 'presentation' }\n }\n });\n return record(Slider.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-slider'],\n attributes: { role: 'presentation' }\n },\n model: {\n mode: 'x',\n minX: min,\n maxX: max,\n getInitialValue: constant({ x: value })\n },\n components: [\n labelPart,\n spectrum,\n thumb\n ],\n sliderBehaviours: derive$1([Focusing.config({})]),\n onChoose: onChoose\n }));\n };\n var makeVariableSlider = function (label, transform, min, value, max) {\n var onChoose = function (slider, _thumb, value) {\n var valTransform = makeValueTransform(transform, value.x / 100);\n emitTransform(slider, valTransform);\n };\n return makeSlider(label, onChoose, min, value, max);\n };\n var variableFilterPanelComponents = function (label, transform, min, value, max) {\n return [\n createBackButton(),\n makeVariableSlider(label, transform, min, value, max),\n createApplyButton()\n ];\n };\n var createVariableFilterPanel = function (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', [\n run(external$2.disable(), function (comp, _se) {\n disableAllComponents(filterPanelComponents, comp);\n }),\n run(external$2.enable(), function (comp, _se) {\n enableAllComponents(filterPanelComponents, comp);\n })\n ])])\n });\n };\n var filterPanelComponents = [\n createBackButton(),\n createSpacer(),\n createApplyButton()\n ];\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$1, -100, 0, 100);\n var ContrastPanel = createVariableFilterPanel('Contrast', contrast$1, -100, 0, 100);\n var GammaPanel = createVariableFilterPanel('Gamma', gamma$1, -100, 0, 100);\n var makeColorTransform = function (red, green, blue) {\n return function (ir) {\n return colorize$1(ir, red, green, blue);\n };\n };\n var makeColorSlider = function (label) {\n var onChoose = function (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 return makeSlider(label, onChoose, 0, 100, 200);\n };\n var memRed = makeColorSlider('R');\n var memGreen = makeColorSlider('G');\n var memBlue = makeColorSlider('B');\n var colorizePanelComponents = [\n createBackButton(),\n memRed,\n memGreen,\n memBlue,\n createApplyButton()\n ];\n var ColorizePanel = Container.sketch({\n dom: panelDom,\n components: colorizePanelComponents.map(function (mem) {\n return mem.asSpec();\n })\n });\n var getTransformPanelEvent = function (panel, transform, update) {\n return function (button) {\n var swap = function () {\n memContainer.getOpt(button).each(function (container) {\n Replacing.set(container, [panel]);\n update(container);\n });\n };\n emit$1(button, internal.swap(), {\n transform: transform,\n swap: swap\n });\n };\n };\n var cropPanelUpdate = function (_anyInSystem) {\n imagePanel.showCrop();\n };\n var resizePanelUpdate = function (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 var sharpenTransform = Optional.some(sharpen$1);\n var invertTransform = Optional.some(invert$1);\n var buttonPanelComponents = [\n createIconButton('crop', 'Crop', getTransformPanelEvent(CropPanel, Optional.none(), cropPanelUpdate), false),\n createIconButton('resize', 'Resize', getTransformPanelEvent(ResizePanel, Optional.none(), resizePanelUpdate), false),\n createIconButton('orientation', 'Orientation', getTransformPanelEvent(FlipRotatePanel, Optional.none(), noop$1), false),\n createIconButton('brightness', 'Brightness', getTransformPanelEvent(BrightnessPanel, Optional.none(), noop$1), false),\n createIconButton('sharpen', 'Sharpen', getTransformPanelEvent(FilterPanel, sharpenTransform, noop$1), false),\n createIconButton('contrast', 'Contrast', getTransformPanelEvent(ContrastPanel, Optional.none(), noop$1), false),\n createIconButton('color-levels', 'Color levels', getTransformPanelEvent(ColorizePanel, Optional.none(), noop$1), false),\n createIconButton('gamma', 'Gamma', getTransformPanelEvent(GammaPanel, Optional.none(), noop$1), false),\n createIconButton('invert', 'Invert', getTransformPanelEvent(FilterPanel, invertTransform, noop$1), false)\n ];\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: { tag: 'div' },\n components: [ButtonPanel],\n containerBehaviours: derive$1([Replacing.config({})])\n });\n var memContainer = record(container);\n var getApplyButton = function (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 return {\n memContainer: memContainer,\n getApplyButton: getApplyButton\n };\n };\n\n var global$d = tinymce.util.Tools.resolve('tinymce.geom.Rect');\n\n var global$e = tinymce.util.Tools.resolve('tinymce.dom.DomQuery');\n\n var global$f = tinymce.util.Tools.resolve('tinymce.util.Observable');\n\n var global$g = tinymce.util.Tools.resolve('tinymce.util.VK');\n\n var getDocumentSize = function (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 var updateWithTouchData = function (e) {\n var keys, i;\n if (e.changedTouches) {\n keys = 'screenX screenY pageX pageY clientX clientY'.split(' ');\n for (i = 0; i < keys.length; i++) {\n e[keys[i]] = e.changedTouches[0][keys[i]];\n }\n }\n };\n function DragHelper (id, settings) {\n var $eventOverlay;\n var doc = settings.document || document;\n var downButton;\n var startX, startY;\n var handleElement = doc.getElementById(settings.handle || id);\n var start = function (e) {\n var docSize = getDocumentSize(doc);\n var cursor;\n updateWithTouchData(e);\n e.preventDefault();\n downButton = e.button;\n var handleElm = handleElement;\n startX = e.screenX;\n startY = e.screenY;\n if (window.getComputedStyle) {\n cursor = window.getComputedStyle(handleElm, null).getPropertyValue('cursor');\n } else {\n cursor = handleElm.runtimeStyle.cursor;\n }\n $eventOverlay = global$e('
').css({\n position: 'absolute',\n top: 0,\n left: 0,\n width: docSize.width,\n height: docSize.height,\n zIndex: 2147483647,\n opacity: 0.0001,\n cursor: cursor\n }).appendTo(doc.body);\n global$e(doc).on('mousemove touchmove', drag).on('mouseup touchend', stop);\n settings.start(e);\n };\n var drag = function (e) {\n updateWithTouchData(e);\n if (e.button !== downButton) {\n return stop(e);\n }\n e.deltaX = e.screenX - startX;\n e.deltaY = e.screenY - startY;\n e.preventDefault();\n settings.drag(e);\n };\n var stop = function (e) {\n updateWithTouchData(e);\n global$e(doc).off('mousemove touchmove', drag).off('mouseup touchend', stop);\n $eventOverlay.remove();\n if (settings.stop) {\n settings.stop(e);\n }\n };\n var destroy = function () {\n global$e(handleElement).off();\n };\n global$e(handleElement).on('mousedown touchstart', start);\n return { destroy: destroy };\n }\n\n var count = 0;\n var create$7 = function (currentRect, viewPortRect, clampRect, containerElm, action) {\n var dragHelpers;\n var prefix = 'tox-';\n var id = prefix + 'crid-' + count++;\n var handles = [\n {\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 {\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 {\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 {\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 {\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 ];\n var blockers = [\n 'top',\n 'right',\n 'bottom',\n 'left'\n ];\n var getAbsoluteRect = function (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 var getRelativeRect = function (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 var getInnerRect = function () {\n return getRelativeRect(clampRect, currentRect);\n };\n var moveRect = function (handle, startRect, deltaX, deltaY) {\n var x, y, w, h, rect;\n x = startRect.x;\n y = startRect.y;\n w = startRect.w;\n h = startRect.h;\n x += deltaX * handle.deltaX;\n y += deltaY * handle.deltaY;\n w += deltaX * handle.deltaW;\n h += deltaY * handle.deltaH;\n if (w < 20) {\n w = 20;\n }\n if (h < 20) {\n h = 20;\n }\n rect = currentRect = global$d.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', { rect: rect });\n setInnerRect(rect);\n };\n var render = function () {\n var createDragHelper = function (handle) {\n var startRect;\n return DragHelper(id, {\n document: containerElm.ownerDocument,\n handle: id + '-' + handle.name,\n start: function () {\n startRect = currentRect;\n },\n drag: function (e) {\n moveRect(handle, startRect, e.deltaX, e.deltaY);\n }\n });\n };\n global$e('
').appendTo(containerElm);\n global$c.each(blockers, function (blocker) {\n global$e('#' + id, containerElm).append('
');\n });\n global$c.each(handles, function (handle) {\n global$e('#' + id, containerElm).append('
');\n });\n dragHelpers = global$c.map(handles, createDragHelper);\n repaint(currentRect);\n global$e(containerElm).on('focusin focusout', function (e) {\n global$e(e.target).attr('aria-grabbed', e.type === 'focus' ? 'true' : 'false');\n });\n global$e(containerElm).on('keydown', function (e) {\n var activeHandle;\n global$c.each(handles, function (handle) {\n if (e.target.id === id + '-' + handle.name) {\n activeHandle = handle;\n return false;\n }\n });\n var moveAndBlock = function (evt, handle, startRect, deltaX, deltaY) {\n evt.stopPropagation();\n evt.preventDefault();\n moveRect(activeHandle, startRect, deltaX, deltaY);\n };\n switch (e.keyCode) {\n case global$g.LEFT:\n moveAndBlock(e, activeHandle, currentRect, -10, 0);\n break;\n case global$g.RIGHT:\n moveAndBlock(e, activeHandle, currentRect, 10, 0);\n break;\n case global$g.UP:\n moveAndBlock(e, activeHandle, currentRect, 0, -10);\n break;\n case global$g.DOWN:\n moveAndBlock(e, activeHandle, currentRect, 0, 10);\n break;\n case global$g.ENTER:\n case global$g.SPACEBAR:\n e.preventDefault();\n action();\n break;\n }\n });\n };\n var toggleVisibility = function (state) {\n var selectors = global$c.map(handles, function (handle) {\n return '#' + id + '-' + handle.name;\n }).concat(global$c.map(blockers, function (blocker) {\n return '#' + id + '-' + blocker;\n })).join(',');\n if (state) {\n global$e(selectors, containerElm).show();\n } else {\n global$e(selectors, containerElm).hide();\n }\n };\n var repaint = function (rect) {\n var updateElementRect = function (name, rect) {\n if (rect.h < 0) {\n rect.h = 0;\n }\n if (rect.w < 0) {\n rect.w = 0;\n }\n global$e('#' + id + '-' + name, containerElm).css({\n left: rect.x,\n top: rect.y,\n width: rect.w,\n height: rect.h\n });\n };\n global$c.each(handles, function (handle) {\n global$e('#' + id + '-' + handle.name, containerElm).css({\n left: rect.w * handle.xMul + rect.x,\n top: rect.h * handle.yMul + rect.y\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 var setRect = function (rect) {\n currentRect = rect;\n repaint(currentRect);\n };\n var setViewPortRect = function (rect) {\n viewPortRect = rect;\n repaint(currentRect);\n };\n var setInnerRect = function (rect) {\n setRect(getAbsoluteRect(clampRect, rect));\n };\n var setClampRect = function (rect) {\n clampRect = rect;\n repaint(currentRect);\n };\n var destroy = function () {\n global$c.each(dragHelpers, function (helper) {\n helper.destroy();\n });\n dragHelpers = [];\n };\n render();\n var instance = global$c.extend({\n toggleVisibility: toggleVisibility,\n setClampRect: setClampRect,\n setRect: setRect,\n getInnerRect: getInnerRect,\n setInnerRect: setInnerRect,\n setViewPortRect: setViewPortRect,\n destroy: destroy\n }, global$f);\n return instance;\n };\n var CropRect = { create: create$7 };\n\n var loadImage = function (image) {\n return new global$4(function (resolve) {\n var loaded = function () {\n image.removeEventListener('load', loaded);\n resolve(image);\n };\n if (image.complete) {\n resolve(image);\n } else {\n image.addEventListener('load', loaded);\n }\n });\n };\n var renderImagePanel = function (initialUrl) {\n var memBg = record({\n dom: {\n tag: 'div',\n classes: ['tox-image-tools__image-bg'],\n attributes: { role: 'presentation' }\n }\n });\n var zoomState = Cell(1);\n var cropRect = Cell(Optional.none());\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 var repaintImg = function (anyInSystem, img) {\n memContainer.getOpt(anyInSystem).each(function (panel) {\n var zoom = zoomState.get();\n var panelW = get$8(panel.element);\n var panelH = get$7(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$1(img, css);\n memBg.getOpt(panel).each(function (bg) {\n setAll$1(bg.element, css);\n });\n cropRect.get().each(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 var zoomFit = function (anyInSystem, img) {\n memContainer.getOpt(anyInSystem).each(function (panel) {\n var panelW = get$8(panel.element);\n var panelH = get$7(panel.element);\n var width = img.dom.naturalWidth;\n var height = img.dom.naturalHeight;\n var zoom = Math.min(panelW / width, panelH / height);\n if (zoom >= 1) {\n zoomState.set(1);\n } else {\n zoomState.set(zoom);\n }\n });\n };\n var updateSrc = function (anyInSystem, url) {\n var img = SugarElement.fromTag('img');\n set$1(img, 'src', url);\n return loadImage(img.dom).then(function () {\n return memContainer.getOpt(anyInSystem).map(function (panel) {\n var aImg = external({ element: img });\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$d.inflate(viewRect, -20, -20);\n rectState.set(rect);\n if (lastViewRect.w !== viewRect.w || lastViewRect.h !== viewRect.h) {\n zoomFit(panel, img);\n }\n repaintImg(panel, img);\n return img;\n });\n });\n };\n var zoom = function (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 var showCrop = function () {\n cropRect.get().each(function (cRect) {\n cRect.toggleVisibility(true);\n });\n };\n var hideCrop = function () {\n cropRect.get().each(function (cRect) {\n cRect.toggleVisibility(false);\n });\n };\n var getRect = function () {\n return rectState.get();\n };\n var container = Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-image-tools__image']\n },\n components: [\n memBg.asSpec(),\n {\n dom: {\n tag: 'img',\n attributes: { src: initialUrl }\n }\n },\n {\n dom: { tag: 'div' },\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(Optional.some(cRect));\n });\n })])])\n }\n ],\n containerBehaviours: derive$1([\n Replacing.config({}),\n config('image-panel-events', [runOnAttached(function (comp) {\n updateSrc(comp, initialUrl);\n })])\n ])\n });\n var memContainer = record(container);\n var getMeasurements = function () {\n var viewRect = viewRectState.get();\n return {\n width: viewRect.w,\n height: viewRect.h\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 (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 var setButtonEnabled = function (button, enabled) {\n if (enabled) {\n Disabling.enable(button);\n } else {\n Disabling.disable(button);\n }\n };\n var renderSideBar = function (providersBackstage) {\n var updateButtonUndoStates = function (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 var memUndo = record(createButton('Undo', 'undo', true, function (button) {\n emitWith(button, internal.undo(), { direction: 1 });\n }, providersBackstage));\n var memRedo = record(createButton('Redo', 'redo', true, function (button) {\n emitWith(button, internal.redo(), { direction: 1 });\n }, providersBackstage));\n var container = Container.sketch({\n dom: {\n tag: 'div',\n classes: [\n 'tox-image-tools__toolbar',\n 'tox-image-tools__sidebar'\n ]\n },\n components: [\n memUndo.asSpec(),\n memRedo.asSpec(),\n createButton('Zoom in', 'zoom-in', false, function (button) {\n emitWith(button, internal.zoom(), { direction: 1 });\n }, providersBackstage),\n createButton('Zoom out', 'zoom-out', false, function (button) {\n emitWith(button, internal.zoom(), { direction: -1 });\n }, providersBackstage)\n ]\n });\n return {\n container: container,\n updateButtonUndoStates: updateButtonUndoStates\n };\n };\n\n function UndoStack () {\n var data = [];\n var index = -1;\n var add = function (state) {\n var removed = data.splice(++index);\n data.push(state);\n return {\n state: state,\n removed: removed\n };\n };\n var undo = function () {\n if (canUndo()) {\n return data[--index];\n }\n };\n var redo = function () {\n if (canRedo()) {\n return data[++index];\n }\n };\n var canUndo = function () {\n return index > 0;\n };\n var canRedo = function () {\n return index !== -1 && index < data.length - 1;\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 (initialState) {\n var blobState = Cell(initialState);\n var tempState = Cell(Optional.none());\n var undoStack = UndoStack();\n undoStack.add(initialState);\n var getBlobState = function () {\n return blobState.get();\n };\n var setBlobState = function (state) {\n blobState.set(state);\n };\n var getTempState = function () {\n return tempState.get().fold(function () {\n return blobState.get();\n }, function (temp) {\n return temp;\n });\n };\n var updateTempState = function (blob) {\n var newTempState = createState(blob);\n destroyTempState();\n tempState.set(Optional.some(newTempState));\n return newTempState.url;\n };\n var createState = function (blob) {\n return {\n blob: blob,\n url: URL.createObjectURL(blob)\n };\n };\n var destroyState = function (state) {\n URL.revokeObjectURL(state.url);\n };\n var destroyStates = function (states) {\n global$c.each(states, destroyState);\n };\n var destroyTempState = function () {\n tempState.get().each(destroyState);\n tempState.set(Optional.none());\n };\n var addBlobState = function (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 var addTempState = function (blob) {\n var newState = createState(blob);\n tempState.set(Optional.some(newState));\n return newState.url;\n };\n var applyTempState = function (postApply) {\n return tempState.get().fold(noop, function (temp) {\n addBlobState(temp.blob);\n postApply();\n });\n };\n var undo = function () {\n var currentState = undoStack.undo();\n setBlobState(currentState);\n return currentState.url;\n };\n var redo = function () {\n var currentState = undoStack.redo();\n setBlobState(currentState);\n return currentState.url;\n };\n var getHistoryStates = function () {\n var undoEnabled = undoStack.canUndo();\n var redoEnabled = undoStack.canRedo();\n return {\n undoEnabled: undoEnabled,\n redoEnabled: redoEnabled\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 (detail, providersBackstage) {\n var state = makeState(detail.currentState);\n var zoom = function (anyInSystem, simulatedEvent) {\n var direction = simulatedEvent.event.direction;\n imagePanel.zoom(anyInSystem, direction);\n };\n var updateButtonUndoStates = function (anyInSystem) {\n var historyStates = state.getHistoryStates();\n sideBar.updateButtonUndoStates(anyInSystem, historyStates.undoEnabled, historyStates.redoEnabled);\n emitWith(anyInSystem, external$2.formActionEvent, {\n name: external$2.saveState(),\n value: historyStates.undoEnabled\n });\n };\n var disableUndoRedo = function (anyInSystem) {\n sideBar.updateButtonUndoStates(anyInSystem, false, false);\n };\n var undo = function (anyInSystem, _simulatedEvent) {\n var url = state.undo();\n updateSrc(anyInSystem, url).then(function (_oImg) {\n unblock(anyInSystem);\n updateButtonUndoStates(anyInSystem);\n });\n };\n var redo = function (anyInSystem, _simulatedEvent) {\n var url = state.redo();\n updateSrc(anyInSystem, url).then(function (_oImg) {\n unblock(anyInSystem);\n updateButtonUndoStates(anyInSystem);\n });\n };\n var imageResultToBlob = function (ir) {\n return ir.toBlob();\n };\n var block = function (anyInSystem) {\n emitWith(anyInSystem, external$2.formActionEvent, {\n name: external$2.disable(),\n value: {}\n });\n };\n var unblock = function (anyInSystem) {\n editPanel.getApplyButton(anyInSystem).each(function (applyButton) {\n Disabling.enable(applyButton);\n });\n emitWith(anyInSystem, external$2.formActionEvent, {\n name: external$2.enable(),\n value: {}\n });\n };\n var updateSrc = function (anyInSystem, src) {\n block(anyInSystem);\n return imagePanel.updateSrc(anyInSystem, src);\n };\n var blobManipulate = function (anyInSystem, blob, filter, action, swap) {\n block(anyInSystem);\n return blobToImageResult(blob).then(filter).then(imageResultToBlob).then(action).then(function (url) {\n return updateSrc(anyInSystem, url).then(function (oImg) {\n updateButtonUndoStates(anyInSystem);\n swap();\n unblock(anyInSystem);\n return oImg;\n });\n }).catch(function (err) {\n console.log(err);\n unblock(anyInSystem);\n return err;\n });\n };\n var manipulate = function (anyInSystem, filter, swap) {\n var blob = state.getBlobState().blob;\n var action = function (blob) {\n return state.updateTempState(blob);\n };\n blobManipulate(anyInSystem, blob, filter, action, swap);\n };\n var tempManipulate = function (anyInSystem, filter) {\n var blob = state.getTempState().blob;\n var action = function (blob) {\n return state.addTempState(blob);\n };\n blobManipulate(anyInSystem, blob, filter, action, noop);\n };\n var manipulateApply = function (anyInSystem, filter, swap) {\n var blob = state.getBlobState().blob;\n var action = function (blob) {\n var url = state.addBlobState(blob);\n destroyTempState(anyInSystem);\n return url;\n };\n blobManipulate(anyInSystem, blob, filter, action, swap);\n };\n var apply = function (anyInSystem, simulatedEvent) {\n var postApply = function () {\n destroyTempState(anyInSystem);\n var swap = simulatedEvent.event.swap;\n swap();\n };\n state.applyTempState(postApply);\n };\n var destroyTempState = function (anyInSystem) {\n var currentUrl = state.getBlobState().url;\n state.destroyTempState();\n updateButtonUndoStates(anyInSystem);\n return currentUrl;\n };\n var cancel = function (anyInSystem) {\n var currentUrl = destroyTempState(anyInSystem);\n updateSrc(anyInSystem, currentUrl).then(function (_oImg) {\n unblock(anyInSystem);\n });\n };\n var back = function (anyInSystem, simulatedEvent) {\n cancel(anyInSystem);\n var swap = simulatedEvent.event.swap;\n swap();\n imagePanel.hideCrop();\n };\n var transform = function (anyInSystem, simulatedEvent) {\n return manipulate(anyInSystem, simulatedEvent.event.transform, noop);\n };\n var tempTransform = function (anyInSystem, simulatedEvent) {\n return tempManipulate(anyInSystem, simulatedEvent.event.transform);\n };\n var transformApply = function (anyInSystem, simulatedEvent) {\n return manipulateApply(anyInSystem, simulatedEvent.event.transform, simulatedEvent.event.swap);\n };\n var imagePanel = renderImagePanel(detail.currentState.url);\n var sideBar = renderSideBar(providersBackstage);\n var editPanel = renderEditPanel(imagePanel, providersBackstage);\n var swap = function (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 return {\n dom: {\n tag: 'div',\n attributes: { role: 'presentation' }\n },\n components: [\n editPanel.memContainer.asSpec(),\n imagePanel.memContainer.asSpec(),\n sideBar.container\n ],\n behaviours: derive$1([\n Representing.config({\n store: {\n mode: 'manual',\n getValue: function () {\n return state.getBlobState();\n }\n }\n }),\n config('image-tools-events', [\n run(internal.undo(), undo),\n run(internal.redo(), redo),\n run(internal.zoom(), zoom),\n run(internal.back(), back),\n run(internal.apply(), apply),\n run(internal.transform(), transform),\n run(internal.tempTransform(), tempTransform),\n run(internal.transformApply(), transformApply),\n run(internal.swap(), swap)\n ]),\n ComposingConfigs.self()\n ])\n };\n };\n\n var renderLabel$2 = function (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(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([\n ComposingConfigs.self(),\n Replacing.config({}),\n RepresentingConfigs.domHtml(Optional.none()),\n Keying.config({ mode: 'acyclic' })\n ])\n };\n };\n\n var isSingleListItem = function (item) {\n return !has(item, 'items');\n };\n var dataAttribute = 'data-value';\n var fetchItems = function (dropdownComp, name, items, selectedValue) {\n return map(items, function (item) {\n if (!isSingleListItem(item)) {\n return {\n type: 'nestedmenuitem',\n text: item.text,\n getSubmenuItems: function () {\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 () {\n Representing.setValue(dropdownComp, item.value);\n emitWith(dropdownComp, formChangeEvent, { name: name });\n Focusing.focus(dropdownComp);\n }\n };\n }\n });\n };\n var findItemByValue = function (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 var renderListBox = function (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(label, providersBackstage);\n });\n var pField = FormField.parts.field({\n dom: {},\n factory: {\n sketch: function (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 (comp, callback) {\n var items = fetchItems(comp, spec.name, spec.items, Representing.getValue(comp));\n callback(build$2(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, false));\n },\n onSetup: constant(noop),\n getApi: constant({}),\n columns: 1,\n presets: 'normal',\n classes: [],\n dropdownBehaviours: [\n Tabstopping.config({}),\n Representing.config({\n store: {\n mode: 'manual',\n initialValue: initialItem.map(function (item) {\n return item.value;\n }).getOr(''),\n getValue: function (comp) {\n return get$3(comp.element, dataAttribute);\n },\n setValue: function (comp, data) {\n findItemByValue(spec.items, data).each(function (item) {\n set$1(comp.element, dataAttribute, item.value);\n emitWith(comp, updateMenuText, { 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([\n pLabel.toArray(),\n [listBoxWrap]\n ]),\n fieldBehaviours: derive$1([Disabling.config({\n disabled: constant(spec.disabled),\n onDisabled: function (comp) {\n FormField.getField(comp).each(Disabling.disable);\n },\n onEnabled: function (comp) {\n FormField.getField(comp).each(Disabling.enable);\n }\n })])\n });\n };\n\n var renderPanel = function (spec, backstage) {\n return {\n dom: {\n tag: 'div',\n classes: spec.classes\n },\n components: map(spec.items, backstage.shared.interpreter)\n };\n };\n\n var factory$8 = function (detail, _spec) {\n var options = map(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, [\n Focusing.config({}),\n Representing.config({\n store: __assign({\n mode: 'manual',\n getValue: function (select) {\n return get$6(select.element);\n },\n setValue: function (select, newValue) {\n var found = find(detail.options, function (opt) {\n return opt.value === newValue;\n });\n if (found.isSome()) {\n set$3(select.element, newValue);\n }\n }\n }, initialValues)\n })\n ])\n };\n };\n var HtmlSelect = single$2({\n name: 'HtmlSelect',\n configFields: [\n strict$1('options'),\n field$1('selectBehaviours', [\n Focusing,\n Representing\n ]),\n defaulted$1('selectClasses', []),\n defaulted$1('selectAttributes', {}),\n option('data')\n ],\n factory: factory$8\n });\n\n var renderSelectBox = function (spec, providersBackstage) {\n var translatedOptions = map(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(label, providersBackstage);\n });\n var pField = FormField.parts.field({\n dom: {},\n selectAttributes: { size: spec.size },\n options: translatedOptions,\n factory: HtmlSelect,\n selectBehaviours: derive$1([\n Disabling.config({\n disabled: function () {\n return spec.disabled || providersBackstage.isDisabled();\n }\n }),\n Tabstopping.config({}),\n config('selectbox-change', [run(change(), function (component, _) {\n emitWith(component, formChangeEvent, { name: spec.name });\n })])\n ])\n });\n var chevron = spec.size > 1 ? Optional.none() : Optional.some({\n dom: {\n tag: 'div',\n classes: ['tox-selectfield__icon-js'],\n innerHtml: get$e('chevron-down', providersBackstage.icons)\n }\n });\n var selectWrap = {\n dom: {\n tag: 'div',\n classes: ['tox-selectfield']\n },\n components: flatten([\n [pField],\n chevron.toArray()\n ])\n };\n return FormField.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: flatten([\n pLabel.toArray(),\n [selectWrap]\n ]),\n fieldBehaviours: derive$1([\n Disabling.config({\n disabled: function () {\n return spec.disabled || providersBackstage.isDisabled();\n },\n onDisabled: function (comp) {\n FormField.getField(comp).each(Disabling.disable);\n },\n onEnabled: function (comp) {\n FormField.getField(comp).each(Disabling.enable);\n }\n }),\n receivingConfig()\n ])\n });\n };\n\n var renderTable = function (spec, providersBackstage) {\n var renderTh = function (text) {\n return {\n dom: {\n tag: 'th',\n innerHtml: providersBackstage.translate(text)\n }\n };\n };\n var renderHeader = function (header) {\n return {\n dom: { tag: 'thead' },\n components: [{\n dom: { tag: 'tr' },\n components: map(header, renderTh)\n }]\n };\n };\n var renderTd = function (text) {\n return {\n dom: {\n tag: 'td',\n innerHtml: providersBackstage.translate(text)\n }\n };\n };\n var renderTr = function (row) {\n return {\n dom: { tag: 'tr' },\n components: map(row, renderTd)\n };\n };\n var renderRows = function (rows) {\n return {\n dom: { tag: 'tbody' },\n components: map(rows, renderTr)\n };\n };\n return {\n dom: {\n tag: 'table',\n classes: ['tox-dialog__table']\n },\n components: [\n renderHeader(spec.header),\n renderRows(spec.cells)\n ],\n behaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({})\n ])\n };\n };\n\n var renderTextField = function (spec, providersBackstage) {\n var pLabel = spec.label.map(function (label) {\n return renderLabel(label, providersBackstage);\n });\n var baseInputBehaviours = [\n Disabling.config({\n disabled: function () {\n return spec.disabled || providersBackstage.isDisabled();\n }\n }),\n receivingConfig(),\n Keying.config({\n mode: 'execution',\n useEnter: spec.multiline !== true,\n useControlEnter: spec.multiline === true,\n execute: function (comp) {\n emit(comp, formSubmitEvent);\n return Optional.some(true);\n }\n }),\n config('textfield-change', [\n run(input(), function (component, _) {\n emitWith(component, formChangeEvent, { name: spec.name });\n }),\n run(postPaste(), function (component, _) {\n emitWith(component, formChangeEvent, { name: spec.name });\n })\n ]),\n Tabstopping.config({})\n ];\n var validatingBehaviours = spec.validation.map(function (vl) {\n return Invalidating.config({\n getRoot: function (input) {\n return parent(input.element);\n },\n invalidClass: 'tox-invalid',\n validator: {\n validate: function (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({}), function (p) {\n return { placeholder: providersBackstage.translate(p) };\n });\n var inputMode = spec.inputMode.fold(constant({}), function (mode) {\n return { inputmode: mode };\n });\n var inputAttributes = __assign(__assign({}, placeholder), inputMode);\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([\n baseInputBehaviours,\n validatingBehaviours\n ])),\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 = [\n Disabling.config({\n disabled: function () {\n return spec.disabled || providersBackstage.isDisabled();\n },\n onDisabled: function (comp) {\n FormField.getField(comp).each(Disabling.disable);\n },\n onEnabled: function (comp) {\n FormField.getField(comp).each(Disabling.enable);\n }\n }),\n receivingConfig()\n ];\n return renderFormFieldWith(pLabel, pField, extraClasses2, extraBehaviours);\n };\n var renderInput = function (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 var renderTextarea = function (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$c = function (streamConfig, streamState) {\n var streams = streamConfig.stream.streams;\n var processor = streams.setup(streamConfig, streamState);\n return derive([\n run(streamConfig.event, processor),\n runOnDetached(function () {\n return streamState.cancel();\n })\n ].concat(streamConfig.cancelEvent.map(function (e) {\n return [run(e, function () {\n return streamState.cancel();\n })];\n }).getOr([])));\n };\n\n var ActiveStreaming = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$c\n });\n\n var throttle = function (_config) {\n var state = Cell(null);\n var readState = function () {\n return { timer: state.get() !== null ? 'set' : 'unset' };\n };\n var setTimer = function (t) {\n state.set(t);\n };\n var cancel = function () {\n var t = state.get();\n if (t !== null) {\n t.cancel();\n }\n };\n return nu$5({\n readState: readState,\n setTimer: setTimer,\n cancel: cancel\n });\n };\n var init$6 = function (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$6\n });\n\n var setup$2 = function (streamInfo, streamState) {\n var sInfo = streamInfo.stream;\n var throttler = last$2(streamInfo.onStream, sInfo.delay);\n streamState.setTimer(throttler);\n return function (component, simulatedEvent) {\n throttler.throttle(component, simulatedEvent);\n if (sInfo.stopEvent) {\n simulatedEvent.stop();\n }\n };\n };\n var StreamingSchema = [\n strictOf('stream', choose$1('mode', {\n throttle: [\n strict$1('delay'),\n defaulted$1('stopEvent', true),\n output('streams', {\n setup: setup$2,\n state: throttle\n })\n ]\n })),\n defaulted$1('event', 'input'),\n option('cancelEvent'),\n onStrictHandler('onStream')\n ];\n\n var Streaming = create$1({\n fields: StreamingSchema,\n name: 'streaming',\n active: ActiveStreaming,\n state: StreamingState\n });\n\n var setValueFromItem = function (model, input, item) {\n var itemData = Representing.getValue(item);\n Representing.setValue(input, itemData);\n setCursorAtEnd(input);\n };\n var setSelectionOn = function (input, f) {\n var el = input.element;\n var value = get$6(el);\n var node = el.dom;\n if (get$3(el, 'type') !== 'number') {\n f(node, value);\n }\n };\n var setCursorAtEnd = function (input) {\n setSelectionOn(input, function (node, value) {\n return node.setSelectionRange(value.length, value.length);\n });\n };\n var setSelectionToEnd = function (input, startOffset) {\n setSelectionOn(input, function (node, value) {\n return node.setSelectionRange(startOffset, value.length);\n });\n };\n var attemptSelectOver = function (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('alloy.typeahead.itemexecute');\n\n var make$5 = function (detail, components, spec, externals) {\n var navigateList = function (comp, simulatedEvent, highlighter) {\n detail.previewing.set(false);\n var sandbox = Coupling.getCoupled(comp, 'sandbox');\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 (sandbox) {\n Composing.getCurrent(sandbox).each(highlighter);\n };\n open$1(detail, mapFetch(comp), comp, sandbox, externals, onOpenSync, HighlightOnOpen.HighlightFirst).get(noop);\n }\n };\n var focusBehaviours$1 = focusBehaviours(detail);\n var mapFetch = function (comp) {\n return function (tdata) {\n return tdata.map(function (data) {\n var menus = values(data.menus);\n var items = bind(menus, function (menu) {\n return filter(menu.items, function (item) {\n return item.type === 'item';\n });\n });\n var repState = Representing.getState(comp);\n repState.update(map(items, function (item) {\n return item.data;\n }));\n return data;\n });\n };\n };\n var behaviours = [\n Focusing.config({}),\n Representing.config({\n onSetValue: detail.onSetValue,\n store: __assign({\n mode: 'dataset',\n getDataKey: function (comp) {\n return get$6(comp.element);\n },\n getFallbackEntry: function (itemString) {\n return {\n value: itemString,\n meta: {}\n };\n },\n setValue: function (comp, data) {\n set$3(comp.element, detail.model.getDisplayText(data));\n }\n }, detail.initialData.map(function (d) {\n return wrap$1('initialValue', d);\n }).getOr({}))\n }),\n Streaming.config({\n stream: {\n mode: 'throttle',\n delay: detail.responseTime,\n stopEvent: false\n },\n onStream: function (component, _simulatedEvent) {\n var sandbox = Coupling.getCoupled(component, 'sandbox');\n var focusInInput = Focusing.isFocused(component);\n if (focusInInput) {\n if (get$6(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 var onOpenSync = function (_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 open$1(detail, mapFetch(component), component, sandbox, externals, onOpenSync, HighlightOnOpen.HighlightFirst).get(noop);\n }\n }\n },\n cancelEvent: typeaheadCancel()\n }),\n Keying.config({\n mode: 'special',\n onDown: function (comp, simulatedEvent) {\n navigateList(comp, simulatedEvent, Highlighting.highlightFirst);\n return Optional.some(true);\n },\n onEscape: function (comp) {\n var sandbox = Coupling.getCoupled(comp, 'sandbox');\n if (Sandboxing.isOpen(sandbox)) {\n Sandboxing.close(sandbox);\n return Optional.some(true);\n }\n return Optional.none();\n },\n onUp: function (comp, simulatedEvent) {\n navigateList(comp, simulatedEvent, Highlighting.highlightLast);\n return Optional.some(true);\n },\n onEnter: function (comp) {\n var sandbox = Coupling.getCoupled(comp, 'sandbox');\n var sandboxIsOpen = Sandboxing.isOpen(sandbox);\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(), { item: item });\n return true;\n });\n } else {\n var currentValue = Representing.getValue(comp);\n emit(comp, typeaheadCancel());\n detail.onExecute(sandbox, comp, currentValue);\n if (sandboxIsOpen) {\n Sandboxing.close(sandbox);\n }\n return Optional.some(true);\n }\n }\n }),\n Toggling.config({\n toggleClass: detail.markers.openClass,\n aria: { mode: 'expanded' }\n }),\n Coupling.config({\n others: {\n sandbox: function (hotspot) {\n return makeSandbox(detail, hotspot, {\n onOpen: function () {\n return Toggling.on(hotspot);\n },\n onClose: function () {\n return Toggling.off(hotspot);\n }\n });\n }\n }\n }),\n config('typeaheadevents', [\n runOnExecute(function (comp) {\n var onOpenSync = noop;\n togglePopup(detail, mapFetch(comp), comp, externals, onOpenSync, HighlightOnOpen.HighlightFirst).get(noop);\n }),\n run(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 })\n ].concat(detail.dismissOnBlur ? [run(postBlur(), function (typeahead) {\n var sandbox = Coupling.getCoupled(typeahead, 'sandbox');\n if (search(sandbox.element).isNone()) {\n Sandboxing.close(sandbox);\n }\n })] : []))\n ];\n return {\n uid: detail.uid,\n dom: dom$2(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$j = constant([\n option('lazySink'),\n strict$1('fetch'),\n defaulted$1('minChars', 5),\n defaulted$1('responseTime', 1000),\n onHandler('onOpen'),\n defaulted$1('getHotspot', Optional.some),\n defaulted$1('getAnchorOverrides', constant({})),\n defaulted$1('layouts', Optional.none()),\n defaulted$1('eventOrder', {}),\n defaultedObjOf('model', {}, [\n defaulted$1('getDisplayText', function (itemData) {\n return itemData.meta !== undefined && itemData.meta.text !== undefined ? itemData.meta.text : itemData.value;\n }),\n defaulted$1('selectsOver', true),\n defaulted$1('populateFromBrowse', true)\n ]),\n onHandler('onSetValue'),\n onKeyboardHandler('onExecute'),\n onHandler('onItemExecute'),\n defaulted$1('inputClasses', []),\n defaulted$1('inputAttributes', {}),\n defaulted$1('inputStyles', {}),\n defaulted$1('matchWidth', true),\n defaulted$1('useMinWidth', false),\n defaulted$1('dismissOnBlur', true),\n markers(['openClass']),\n option('initialData'),\n field$1('typeaheadBehaviours', [\n Focusing,\n Representing,\n Streaming,\n Keying,\n Toggling,\n Coupling\n ]),\n state$1('previewing', function () {\n return Cell(true);\n })\n ].concat(schema$f()).concat(sandboxFields()));\n var parts$6 = constant([external$1({\n schema: [tieredMenuMarkers()],\n name: 'menu',\n overrides: function (detail) {\n return {\n fakeFocus: true,\n onHighlight: function (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 detail.previewing.set(false);\n },\n onExecute: function (menu, item) {\n return menu.getSystem().getByUid(detail.uid).toOptional().map(function (typeahead) {\n emitWith(typeahead, itemExecute(), { item: item });\n return true;\n });\n },\n onHover: function (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\n var Typeahead = composite$1({\n name: 'Typeahead',\n configFields: schema$j(),\n partFields: parts$6(),\n factory: make$5\n });\n\n var wrap$2 = function (delegate) {\n var toCached = function () {\n return wrap$2(delegate.toCached());\n };\n var bindFuture = function (f) {\n return wrap$2(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 var bindResult = function (f) {\n return wrap$2(delegate.map(function (resA) {\n return resA.bind(f);\n }));\n };\n var mapResult = function (f) {\n return wrap$2(delegate.map(function (resA) {\n return resA.map(f);\n }));\n };\n var mapError = function (f) {\n return wrap$2(delegate.map(function (resA) {\n return resA.mapError(f);\n }));\n };\n var foldResult = function (whenError, whenValue) {\n return delegate.map(function (res) {\n return res.fold(whenError, whenValue);\n });\n };\n var withTimeout = function (timeout, errorThunk) {\n return wrap$2(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 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 var nu$c = function (worker) {\n return wrap$2(Future.nu(worker));\n };\n var value$2 = function (value) {\n return wrap$2(Future.pure(Result.value(value)));\n };\n var error$1 = function (error) {\n return wrap$2(Future.pure(Result.error(error)));\n };\n var fromResult$1 = function (result) {\n return wrap$2(Future.pure(result));\n };\n var fromFuture = function (future) {\n return wrap$2(future.map(Result.value));\n };\n var fromPromise = function (promise) {\n return nu$c(function (completer) {\n promise.then(function (value) {\n completer(Result.value(value));\n }, function (error) {\n completer(Result.error(error));\n });\n });\n };\n var FutureResult = {\n nu: nu$c,\n wrap: wrap$2,\n pure: value$2,\n value: value$2,\n error: error$1,\n fromResult: fromResult$1,\n fromFuture: fromFuture,\n fromPromise: fromPromise\n };\n\n var separator$2 = { type: 'separator' };\n var toMenuItem = function (target) {\n return {\n type: 'menuitem',\n value: target.url,\n text: target.title,\n meta: { attach: target.attach },\n onAction: noop\n };\n };\n var staticMenuItem = function (title, url) {\n return {\n type: 'menuitem',\n value: url,\n text: title,\n meta: { attach: undefined },\n onAction: noop\n };\n };\n var toMenuItems = function (targets) {\n return map(targets, toMenuItem);\n };\n var filterLinkTargets = function (type, targets) {\n return filter(targets, function (target) {\n return target.type === type;\n });\n };\n var filteredTargets = function (type, targets) {\n return toMenuItems(filterLinkTargets(type, targets));\n };\n var headerTargets = function (linkInfo) {\n return filteredTargets('header', linkInfo.targets);\n };\n var anchorTargets = function (linkInfo) {\n return filteredTargets('anchor', linkInfo.targets);\n };\n var anchorTargetTop = function (linkInfo) {\n return Optional.from(linkInfo.anchorTop).map(function (url) {\n return staticMenuItem('', url);\n }).toArray();\n };\n var anchorTargetBottom = function (linkInfo) {\n return Optional.from(linkInfo.anchorBottom).map(function (url) {\n return staticMenuItem('', url);\n }).toArray();\n };\n var historyTargets = function (history) {\n return map(history, function (url) {\n return staticMenuItem(url, url);\n });\n };\n var joinMenuLists = function (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$2, b);\n }, []);\n };\n var filterByQuery = function (term, menuItems) {\n var lowerCaseTerm = term.toLowerCase();\n return filter(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 (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([\n history,\n filterByQuery(term, headerTargets(linkInfo)),\n filterByQuery(term, flatten([\n anchorTargetTop(linkInfo),\n anchorTargets(linkInfo),\n anchorTargetBottom(linkInfo)\n ]))\n ]) : history;\n });\n };\n var errorId = generate$1('aria-invalid');\n var renderUrlInput = function (spec, backstage, urlBackstage) {\n var _a;\n var providersBackstage = backstage.shared.providers;\n var updateHistory = function (component) {\n var urlEntry = Representing.getValue(component);\n urlBackstage.addToHistory(urlEntry.value, spec.filetype);\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 (input) {\n var items = getItems(spec.filetype, input, urlBackstage);\n var tdata = build$2(items, ItemResponse$1.BUBBLE_TO_SANDBOX, backstage, false);\n return Future.pure(tdata);\n },\n getHotspot: function (comp) {\n return memUrlBox.getOpt(comp);\n },\n onSetValue: function (comp, _newValue) {\n if (comp.hasConfigured(Invalidating)) {\n Invalidating.run(comp).get(noop);\n }\n },\n typeaheadBehaviours: derive$1(flatten([\n urlBackstage.getValidationHandler().map(function (handler) {\n return Invalidating.config({\n getRoot: function (comp) {\n return parent(comp.element);\n },\n invalidClass: 'tox-control-wrap--status-invalid',\n notify: {\n onInvalid: function (comp, err) {\n memInvalidIcon.getOpt(comp).each(function (invalidComp) {\n set$1(invalidComp.element, 'title', providersBackstage.translate(err));\n });\n }\n },\n validator: {\n validate: function (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(),\n [\n Disabling.config({\n disabled: function () {\n return spec.disabled || providersBackstage.isDisabled();\n }\n }),\n Tabstopping.config({}),\n config('urlinput-events', flatten([\n spec.filetype === 'file' ? [run(input(), function (comp) {\n emitWith(comp, formChangeEvent, { name: spec.name });\n })] : [],\n [\n run(change(), function (comp) {\n emitWith(comp, formChangeEvent, { name: spec.name });\n updateHistory(comp);\n }),\n run(postPaste(), function (comp) {\n emitWith(comp, formChangeEvent, { name: spec.name });\n updateHistory(comp);\n })\n ]\n ]))\n ]\n ])),\n eventOrder: (_a = {}, _a[input()] = [\n 'streaming',\n 'urlinput-events',\n 'invalidating'\n ], _a),\n model: {\n getDisplayText: function (itemData) {\n return itemData.value;\n },\n selectsOver: false,\n populateFromBrowse: false\n },\n markers: { openClass: 'tox-textfield--popup-open' },\n lazySink: backstage.shared.getSink,\n parts: { menu: part(false, 1, 'normal') },\n onExecute: function (_menu, component, _entry) {\n emitWith(component, formSubmitEvent, {});\n },\n onItemExecute: function (typeahead, _sandbox, _item, _value) {\n updateHistory(typeahead);\n emitWith(typeahead, formChangeEvent, { name: spec.name });\n }\n });\n var pLabel = spec.label.map(function (label) {\n return renderLabel(label, providersBackstage);\n });\n var makeIcon = function (name, errId, icon, label) {\n if (icon === void 0) {\n icon = name;\n }\n if (label === void 0) {\n label = name;\n }\n return {\n dom: {\n tag: 'div',\n classes: [\n 'tox-icon',\n 'tox-control-wrap__status-icon-' + name\n ],\n innerHtml: get$e(icon, providersBackstage.icons),\n attributes: __assign({\n 'title': providersBackstage.translate(label),\n 'aria-live': 'polite'\n }, errId.fold(function () {\n return {};\n }, function (id) {\n return { id: id };\n }))\n }\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$1('browser.url.event');\n var memUrlBox = record({\n dom: {\n tag: 'div',\n classes: ['tox-control-wrap']\n },\n components: [\n pField,\n memStatus.asSpec()\n ],\n behaviours: derive$1([Disabling.config({\n disabled: function () {\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 var controlHWrapper = function () {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-form__controls-h-stack']\n },\n components: flatten([\n [memUrlBox.asSpec()],\n optUrlPicker.map(function () {\n return memUrlPickerButton.asSpec();\n }).toArray()\n ])\n };\n };\n var openUrlPicker = function (comp) {\n Composing.getCurrent(comp).each(function (field) {\n var componentData = Representing.getValue(field);\n var urlData = __assign({ fieldname: spec.name }, componentData);\n optUrlPicker.each(function (picker) {\n picker(urlData).get(function (chosenData) {\n Representing.setValue(field, chosenData);\n emitWith(comp, formChangeEvent, { name: spec.name });\n });\n });\n });\n };\n return FormField.sketch({\n dom: renderFormFieldDom(),\n components: pLabel.toArray().concat([controlHWrapper()]),\n fieldBehaviours: derive$1([\n Disabling.config({\n disabled: function () {\n return spec.disabled || providersBackstage.isDisabled();\n },\n onDisabled: function (comp) {\n FormField.getField(comp).each(Disabling.disable);\n memUrlPickerButton.getOpt(comp).each(Disabling.disable);\n },\n onEnabled: function (comp) {\n FormField.getField(comp).each(Disabling.enable);\n memUrlPickerButton.getOpt(comp).each(Disabling.enable);\n }\n }),\n receivingConfig(),\n config('url-input-events', [run(browseUrlEvent, openUrlPicker)])\n ])\n });\n };\n\n var renderAlertBanner = function (spec, providersBackstage) {\n return Container.sketch({\n dom: {\n tag: 'div',\n attributes: { role: 'alert' },\n classes: [\n 'tox-notification',\n 'tox-notification--in',\n 'tox-notification--' + spec.level\n ]\n },\n components: [\n {\n dom: {\n tag: 'div',\n classes: ['tox-notification__icon']\n },\n components: [Button.sketch({\n dom: {\n tag: 'button',\n classes: [\n 'tox-button',\n 'tox-button--naked',\n 'tox-button--icon'\n ],\n innerHtml: get$e(spec.icon, providersBackstage.icons),\n attributes: { title: providersBackstage.translate(spec.iconTooltip) }\n },\n action: function (comp) {\n emitWith(comp, formActionEvent, {\n name: 'alert-banner',\n value: spec.url\n });\n }\n })]\n },\n {\n dom: {\n tag: 'div',\n classes: ['tox-notification__body'],\n innerHtml: providersBackstage.translate(spec.text)\n }\n }\n ]\n });\n };\n\n var renderCheckbox = function (spec, providerBackstage) {\n var repBehaviour = Representing.config({\n store: {\n mode: 'manual',\n getValue: function (comp) {\n var el = comp.element.dom;\n return el.checked;\n },\n setValue: function (comp, value) {\n var el = comp.element.dom;\n el.checked = value;\n }\n }\n });\n var toggleCheckboxHandler = function (comp) {\n comp.element.dom.click();\n return Optional.some(true);\n };\n var pField = FormField.parts.field({\n factory: { sketch: identity },\n dom: {\n tag: 'input',\n classes: ['tox-checkbox__input'],\n attributes: { type: 'checkbox' }\n },\n behaviours: derive$1([\n ComposingConfigs.self(),\n Disabling.config({\n disabled: function () {\n return spec.disabled || providerBackstage.isDisabled();\n }\n }),\n Tabstopping.config({}),\n Focusing.config({}),\n repBehaviour,\n Keying.config({\n mode: 'special',\n onEnter: toggleCheckboxHandler,\n onSpace: toggleCheckboxHandler,\n stopSpaceKeyup: true\n }),\n config('checkbox-events', [run(change(), function (component, _) {\n emitWith(component, formChangeEvent, { 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 var makeIcon = function (className) {\n var iconName = className === 'checked' ? 'selected' : 'unselected';\n return {\n dom: {\n tag: 'span',\n classes: [\n 'tox-icon',\n 'tox-checkbox-icon__' + className\n ],\n innerHtml: get$e(iconName, providerBackstage.icons)\n }\n };\n };\n var memIcons = record({\n dom: {\n tag: 'div',\n classes: ['tox-checkbox__icons']\n },\n components: [\n makeIcon('checked'),\n makeIcon('unchecked')\n ]\n });\n return FormField.sketch({\n dom: {\n tag: 'label',\n classes: ['tox-checkbox']\n },\n components: [\n pField,\n memIcons.asSpec(),\n pLabel\n ],\n fieldBehaviours: derive$1([\n Disabling.config({\n disabled: function () {\n return spec.disabled || providerBackstage.isDisabled();\n },\n disableClass: 'tox-checkbox--disabled',\n onDisabled: function (comp) {\n FormField.getField(comp).each(Disabling.disable);\n },\n onEnabled: function (comp) {\n FormField.getField(comp).each(Disabling.enable);\n }\n }),\n receivingConfig()\n ])\n });\n };\n\n var renderHtmlPanel = function (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: { role: 'document' }\n },\n containerBehaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({})\n ])\n });\n }\n };\n\n var make$6 = function (render) {\n return function (parts, spec, backstage) {\n return get$1(spec, 'name').fold(function () {\n return render(spec, backstage);\n }, function (fieldName) {\n return parts.field(fieldName, render(spec, backstage));\n });\n };\n };\n var makeIframe = function (render) {\n return function (parts, spec, backstage) {\n var iframeSpec = deepMerge(spec, { source: 'dynamic' });\n return make$6(render)(parts, iframeSpec, backstage);\n };\n };\n var factories = {\n bar: make$6(function (spec, backstage) {\n return renderBar(spec, backstage.shared);\n }),\n collection: make$6(function (spec, backstage) {\n return renderCollection(spec, backstage.shared.providers);\n }),\n alertbanner: make$6(function (spec, backstage) {\n return renderAlertBanner(spec, backstage.shared.providers);\n }),\n input: make$6(function (spec, backstage) {\n return renderInput(spec, backstage.shared.providers);\n }),\n textarea: make$6(function (spec, backstage) {\n return renderTextarea(spec, backstage.shared.providers);\n }),\n label: make$6(function (spec, backstage) {\n return renderLabel$2(spec, backstage.shared);\n }),\n iframe: makeIframe(function (spec, backstage) {\n return renderIFrame(spec, backstage.shared.providers);\n }),\n button: make$6(function (spec, backstage) {\n return renderDialogButton(spec, backstage.shared.providers);\n }),\n checkbox: make$6(function (spec, backstage) {\n return renderCheckbox(spec, backstage.shared.providers);\n }),\n colorinput: make$6(function (spec, backstage) {\n return renderColorInput(spec, backstage.shared, backstage.colorinput);\n }),\n colorpicker: make$6(renderColorPicker),\n dropzone: make$6(function (spec, backstage) {\n return renderDropZone(spec, backstage.shared.providers);\n }),\n grid: make$6(function (spec, backstage) {\n return renderGrid(spec, backstage.shared);\n }),\n listbox: make$6(function (spec, backstage) {\n return renderListBox(spec, backstage);\n }),\n selectbox: make$6(function (spec, backstage) {\n return renderSelectBox(spec, backstage.shared.providers);\n }),\n sizeinput: make$6(function (spec, backstage) {\n return renderSizeInput(spec, backstage.shared.providers);\n }),\n urlinput: make$6(function (spec, backstage) {\n return renderUrlInput(spec, backstage, backstage.urlinput);\n }),\n customeditor: make$6(renderCustomEditor),\n htmlpanel: make$6(renderHtmlPanel),\n imagetools: make$6(function (spec, backstage) {\n return renderImageTools(spec, backstage.shared.providers);\n }),\n table: make$6(function (spec, backstage) {\n return renderTable(spec, backstage.shared.providers);\n }),\n panel: make$6(function (spec, backstage) {\n return renderPanel(spec, backstage);\n })\n };\n var noFormParts = {\n field: function (_name, spec) {\n return spec;\n }\n };\n var interpretInForm = function (parts, spec, oldBackstage) {\n var newBackstage = deepMerge(oldBackstage, {\n shared: {\n interpreter: function (childSpec) {\n return interpretParts(parts, childSpec, newBackstage);\n }\n }\n });\n return interpretParts(parts, spec, newBackstage);\n };\n var interpretParts = function (parts, spec, backstage) {\n return get$1(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 var interpretWithoutForm = function (spec, backstage) {\n var parts = noFormParts;\n return interpretParts(parts, spec, backstage);\n };\n\n var bubbleAlignments = {\n valignCentre: [],\n alignCentre: [],\n alignLeft: [],\n alignRight: [],\n right: [],\n left: [],\n bottom: [],\n top: []\n };\n var getInlineDialogAnchor = function (contentAreaElement, lazyAnchorbar, lazyUseEditableAreaAnchor) {\n var bubble = nu$8(-12, 12, bubbleAlignments);\n var overrides = { maxHeightFunction: expandable() };\n var editableAreaAnchor = function () {\n return {\n anchor: 'node',\n root: getContentContainer(contentAreaElement()),\n node: Optional.from(contentAreaElement()),\n bubble: bubble,\n layouts: {\n onRtl: function () {\n return [northwest$3];\n },\n onLtr: function () {\n return [northeast$3];\n }\n },\n overrides: overrides\n };\n };\n var standardAnchor = function () {\n return {\n anchor: 'hotspot',\n hotspot: lazyAnchorbar(),\n bubble: bubble,\n layouts: {\n onRtl: function () {\n return [southeast$1];\n },\n onLtr: function () {\n return [southwest$1];\n }\n },\n overrides: overrides\n };\n };\n return function () {\n return lazyUseEditableAreaAnchor() ? editableAreaAnchor() : standardAnchor();\n };\n };\n var getBannerAnchor = function (contentAreaElement, lazyAnchorbar, lazyUseEditableAreaAnchor) {\n var editableAreaAnchor = function () {\n return {\n anchor: 'node',\n root: getContentContainer(contentAreaElement()),\n node: Optional.from(contentAreaElement()),\n layouts: {\n onRtl: function () {\n return [north$3];\n },\n onLtr: function () {\n return [north$3];\n }\n }\n };\n };\n var standardAnchor = function () {\n return {\n anchor: 'hotspot',\n hotspot: lazyAnchorbar(),\n layouts: {\n onRtl: function () {\n return [south$1];\n },\n onLtr: function () {\n return [south$1];\n }\n }\n };\n };\n return function () {\n return lazyUseEditableAreaAnchor() ? editableAreaAnchor() : standardAnchor();\n };\n };\n var getCursorAnchor = function (editor, bodyElement) {\n return function () {\n return {\n anchor: 'selection',\n root: bodyElement(),\n getSelection: function () {\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 var getNodeAnchor = function (bodyElement) {\n return function (element) {\n return {\n anchor: 'node',\n root: bodyElement(),\n node: element\n };\n };\n };\n var getAnchors = function (editor, lazyAnchorbar, isToolbarTop) {\n var useFixedToolbarContainer = useFixedContainer(editor);\n var bodyElement = function () {\n return SugarElement.fromDom(editor.getBody());\n };\n var contentAreaElement = function () {\n return SugarElement.fromDom(editor.getContentAreaContainer());\n };\n var lazyUseEditableAreaAnchor = function () {\n return useFixedToolbarContainer || !isToolbarTop();\n };\n return {\n inlineDialog: getInlineDialogAnchor(contentAreaElement, lazyAnchorbar, lazyUseEditableAreaAnchor),\n banner: getBannerAnchor(contentAreaElement, lazyAnchorbar, lazyUseEditableAreaAnchor),\n cursor: getCursorAnchor(editor, bodyElement),\n node: getNodeAnchor(bodyElement)\n };\n };\n\n var colorPicker = function (editor) {\n return function (callback, value) {\n var dialog = colorPickerDialog(editor);\n dialog(callback, value);\n };\n };\n var hasCustomColors$1 = function (editor) {\n return function () {\n return hasCustomColors(editor);\n };\n };\n var getColors$2 = function (editor) {\n return function () {\n return getColors(editor);\n };\n };\n var getColorCols$2 = function (editor) {\n return function () {\n return getColorCols$1(editor);\n };\n };\n var ColorInputBackstage = function (editor) {\n return {\n colorPicker: colorPicker(editor),\n hasCustomColors: hasCustomColors$1(editor),\n getColors: getColors$2(editor),\n getColorCols: getColorCols$2(editor)\n };\n };\n\n var isDraggableModal$1 = function (editor) {\n return function () {\n return isDraggableModal(editor);\n };\n };\n var DialogBackstage = function (editor) {\n return { isDraggableModal: isDraggableModal$1(editor) };\n };\n\n var HeaderBackstage = function (editor) {\n var mode = Cell(isToolbarLocationBottom(editor) ? 'bottom' : 'top');\n return {\n isPositionedAtTop: function () {\n return mode.get() === 'top';\n },\n getDockingMode: mode.get,\n setDockingMode: mode.set\n };\n };\n\n var defaultStyleFormats = [\n {\n title: 'Headings',\n items: [\n {\n title: 'Heading 1',\n format: 'h1'\n },\n {\n title: 'Heading 2',\n format: 'h2'\n },\n {\n title: 'Heading 3',\n format: 'h3'\n },\n {\n title: 'Heading 4',\n format: 'h4'\n },\n {\n title: 'Heading 5',\n format: 'h5'\n },\n {\n title: 'Heading 6',\n format: 'h6'\n }\n ]\n },\n {\n title: 'Inline',\n items: [\n {\n title: 'Bold',\n format: 'bold'\n },\n {\n title: 'Italic',\n format: 'italic'\n },\n {\n title: 'Underline',\n format: 'underline'\n },\n {\n title: 'Strikethrough',\n format: 'strikethrough'\n },\n {\n title: 'Superscript',\n format: 'superscript'\n },\n {\n title: 'Subscript',\n format: 'subscript'\n },\n {\n title: 'Code',\n format: 'code'\n }\n ]\n },\n {\n title: 'Blocks',\n items: [\n {\n title: 'Paragraph',\n format: 'p'\n },\n {\n title: 'Blockquote',\n format: 'blockquote'\n },\n {\n title: 'Div',\n format: 'div'\n },\n {\n title: 'Pre',\n format: 'pre'\n }\n ]\n },\n {\n title: 'Align',\n items: [\n {\n title: 'Left',\n format: 'alignleft'\n },\n {\n title: 'Center',\n format: 'aligncenter'\n },\n {\n title: 'Right',\n format: 'alignright'\n },\n {\n title: 'Justify',\n format: 'alignjustify'\n }\n ]\n }\n ];\n var isNestedFormat = function (format) {\n return has(format, 'items');\n };\n var isBlockFormat = function (format) {\n return has(format, 'block');\n };\n var isInlineFormat = function (format) {\n return has(format, 'inline');\n };\n var isSelectorFormat = function (format) {\n return has(format, 'selector');\n };\n var mapFormats = function (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), { formats: acc.formats.concat(fmt) });\n }\n }, {\n customFormats: [],\n formats: []\n });\n };\n var registerCustomFormats = function (editor, userFormats) {\n var result = mapFormats(userFormats);\n var registerFormats = function (customFormats) {\n each(customFormats, function (fmt) {\n if (!editor.formatter.has(fmt.name)) {\n editor.formatter.register(fmt.name, fmt.format);\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 return result.formats;\n };\n var getStyleFormats = function (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 (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 var register$3 = function (editor, formats, isSelectedFor, getPreviewFor) {\n var enrichSupported = function (item) {\n return processBasic(item, isSelectedFor, getPreviewFor);\n };\n var enrichMenu = function (item) {\n var submenuSpec = { type: 'submenu' };\n return deepMerge(item, submenuSpec);\n };\n var enrichCustom = function (item) {\n var formatName = isString(item.name) ? item.name : generate$1(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 var doEnrich = function (items) {\n return map(items, function (item) {\n var keys$1 = keys(item);\n if (hasNonNullableKey(item, 'items')) {\n var newItems_1 = doEnrich(item.items);\n return deepMerge(enrichMenu(item), {\n getStyleItems: function () {\n return newItems_1;\n }\n });\n } else if (hasNonNullableKey(item, 'format')) {\n return enrichSupported(item);\n } else if (keys$1.length === 1 && contains(keys$1, 'title')) {\n return deepMerge(item, { type: 'separator' });\n } else {\n return enrichCustom(item);\n }\n });\n };\n return doEnrich(formats);\n };\n\n var init$7 = function (editor) {\n var isSelectedFor = function (format) {\n return function () {\n return editor.formatter.match(format);\n };\n };\n var getPreviewFor = function (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 var flatten = function (fmt) {\n var subs = fmt.items;\n return subs !== undefined && subs.length > 0 ? bind(subs, flatten) : [fmt.format];\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$3(editor, formats, isSelectedFor, getPreviewFor);\n settingsFormats.set(enriched);\n settingsFlattenedFormats.set(bind(enriched, flatten));\n });\n editor.on('addStyleModifications', function (e) {\n var modifications = register$3(editor, e.items, isSelectedFor, getPreviewFor);\n eventsFormats.set(modifications);\n replaceSettings.set(e.replace);\n eventsFlattenedFormats.set(bind(modifications, flatten));\n });\n var getData = function () {\n var fromSettings = replaceSettings.get() ? [] : settingsFormats.get();\n var fromEvents = eventsFormats.get();\n return fromSettings.concat(fromEvents);\n };\n var getFlattenedKeys = function () {\n var fromSettings = replaceSettings.get() ? [] : settingsFlattenedFormats.get();\n var fromEvents = eventsFlattenedFormats.get();\n return fromSettings.concat(fromEvents);\n };\n return {\n getData: getData,\n getFlattenedKeys: getFlattenedKeys\n };\n };\n\n var isElement$2 = function (node) {\n return isNonNullable(node) && node.nodeType === 1;\n };\n var trim$1 = global$c.trim;\n var hasContentEditableState = function (value) {\n return function (node) {\n if (isElement$2(node)) {\n if (node.contentEditable === value) {\n return true;\n }\n if (node.getAttribute('data-mce-contenteditable') === value) {\n return true;\n }\n }\n return false;\n };\n };\n var isContentEditableTrue = hasContentEditableState('true');\n var isContentEditableFalse = hasContentEditableState('false');\n var create$8 = function (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 var isChildOfContentEditableTrue = function (node) {\n while (node = node.parentNode) {\n var value = node.contentEditable;\n if (value && value !== 'inherit') {\n return isContentEditableTrue(node);\n }\n }\n return false;\n };\n var select = function (selector, root) {\n return map(descendants(SugarElement.fromDom(root), selector), function (element) {\n return element.dom;\n });\n };\n var getElementText = function (elm) {\n return elm.innerText || elm.textContent;\n };\n var getOrGenerateId = function (elm) {\n return elm.id ? elm.id : generate$1('h');\n };\n var isAnchor = function (elm) {\n return elm && elm.nodeName === 'A' && (elm.id || elm.name) !== undefined;\n };\n var isValidAnchor = function (elm) {\n return isAnchor(elm) && isEditable(elm);\n };\n var isHeader = function (elm) {\n return elm && /^(H[1-6])$/.test(elm.nodeName);\n };\n var isEditable = function (elm) {\n return isChildOfContentEditableTrue(elm) && !isContentEditableFalse(elm);\n };\n var isValidHeader = function (elm) {\n return isHeader(elm) && isEditable(elm);\n };\n var getLevel = function (elm) {\n return isHeader(elm) ? parseInt(elm.nodeName.substr(1), 10) : 0;\n };\n var headerTarget = function (elm) {\n var headerId = getOrGenerateId(elm);\n var attach = function () {\n elm.id = headerId;\n };\n return create$8('header', getElementText(elm), '#' + headerId, getLevel(elm), attach);\n };\n var anchorTarget = function (elm) {\n var anchorId = elm.id || elm.name;\n var anchorText = getElementText(elm);\n return create$8('anchor', anchorText ? anchorText : '#' + anchorId, '#' + anchorId, 0, noop);\n };\n var getHeaderTargets = function (elms) {\n return map(filter(elms, isValidHeader), headerTarget);\n };\n var getAnchorTargets = function (elms) {\n return map(filter(elms, isValidAnchor), anchorTarget);\n };\n var getTargetElements = function (elm) {\n var elms = select('h1,h2,h3,h4,h5,h6,a:not([href])', elm);\n return elms;\n };\n var hasTitle = function (target) {\n return trim$1(target.title).length > 0;\n };\n var find$5 = function (elm) {\n var elms = getTargetElements(elm);\n return filter(getHeaderTargets(elms).concat(getAnchorTargets(elms)), hasTitle);\n };\n var LinkTargets = { find: find$5 };\n\n var STORAGE_KEY = 'tinymce-url-history';\n var HISTORY_LENGTH = 5;\n var isHttpUrl = function (url) {\n return isString(url) && /^https?/.test(url);\n };\n var isArrayOfUrl = function (a) {\n return isArray(a) && a.length <= HISTORY_LENGTH && forall(a, isHttpUrl);\n };\n var isRecordOfUrlArray = function (r) {\n return isObject(r) && find$1(r, function (value) {\n return !isArrayOfUrl(value);\n }).isNone();\n };\n var getAllHistory = function () {\n var unparsedHistory = global$9.getItem(STORAGE_KEY);\n if (unparsedHistory === null) {\n return {};\n }\n var history;\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 throw e;\n }\n if (!isRecordOfUrlArray(history)) {\n console.log('Local storage ' + STORAGE_KEY + ' was not valid format', history);\n return {};\n }\n return history;\n };\n var setAllHistory = function (history) {\n if (!isRecordOfUrlArray(history)) {\n throw new Error('Bad format for history:\\n' + JSON.stringify(history));\n }\n global$9.setItem(STORAGE_KEY, JSON.stringify(history));\n };\n var getHistory = function (fileType) {\n var history = getAllHistory();\n return Object.prototype.hasOwnProperty.call(history, fileType) ? history[fileType] : [];\n };\n var addToHistory = function (url, fileType) {\n if (!isHttpUrl(url)) {\n return;\n }\n var history = getAllHistory();\n var items = Object.prototype.hasOwnProperty.call(history, fileType) ? history[fileType] : [];\n var itemsWithoutUrl = filter(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 (value) {\n return !!value;\n };\n var makeMap = function (value) {\n return map$2(global$c.makeMap(value, /[, ]/), isTruthy);\n };\n var getPicker = function (editor) {\n return Optional.from(getFilePickerCallback(editor)).filter(isFunction);\n };\n var getPickerTypes = function (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 var getPickerSetting = function (editor, filetype) {\n var pickerTypes = getPickerTypes(editor);\n if (isBoolean(pickerTypes)) {\n return pickerTypes ? getPicker(editor) : Optional.none();\n } else {\n return pickerTypes[filetype] ? getPicker(editor) : Optional.none();\n }\n };\n var getUrlPicker = function (editor, filetype) {\n return getPickerSetting(editor, filetype).map(function (picker) {\n return function (entry) {\n return Future.nu(function (completer) {\n var handler = function (value, meta) {\n if (!isString(value)) {\n throw new Error('Expected value to be string');\n }\n if (meta !== undefined && !isObject(meta)) {\n throw new Error('Expected meta to be a object');\n }\n var r = {\n value: value,\n meta: meta\n };\n completer(r);\n };\n var meta = __assign({\n filetype: filetype,\n fieldname: entry.fieldname\n }, Optional.from(entry.meta).getOr({}));\n picker.call(editor, handler, entry.value, meta);\n });\n };\n });\n };\n var getTextSetting = function (value) {\n return Optional.from(value).filter(isString).getOrUndefined();\n };\n var getLinkInformation = function (editor) {\n if (noTypeaheadUrls(editor)) {\n return Optional.none();\n }\n return Optional.some({\n targets: LinkTargets.find(editor.getBody()),\n anchorTop: getTextSetting(getAnchorTop(editor)),\n anchorBottom: getTextSetting(getAnchorBottom(editor))\n });\n };\n var getValidationHandler = function (editor) {\n return Optional.from(getFilePickerValidatorHandler(editor));\n };\n var UrlInputBackstage = function (editor) {\n return {\n getHistory: getHistory,\n addToHistory: addToHistory,\n getLinkInformation: function () {\n return getLinkInformation(editor);\n },\n getValidationHandler: function () {\n return getValidationHandler(editor);\n },\n getUrlPicker: function (filetype) {\n return getUrlPicker(editor, filetype);\n }\n };\n };\n\n var init$8 = function (sink, editor, lazyAnchorbar) {\n var contextMenuState = Cell(false);\n var toolbar = HeaderBackstage(editor);\n var backstage = {\n shared: {\n providers: {\n icons: function () {\n return editor.ui.registry.getAll().icons;\n },\n menuItems: function () {\n return editor.ui.registry.getAll().menuItems;\n },\n translate: global$6.translate,\n isDisabled: function () {\n return editor.mode.isReadOnly() || editor.ui.isDisabled();\n },\n getSetting: editor.getParam.bind(editor)\n },\n interpreter: function (s) {\n return interpretWithoutForm(s, backstage);\n },\n anchors: getAnchors(editor, lazyAnchorbar, toolbar.isPositionedAtTop),\n header: toolbar,\n getSink: function () {\n return Result.value(sink);\n }\n },\n urlinput: UrlInputBackstage(editor),\n styleselect: init$7(editor),\n colorinput: ColorInputBackstage(editor),\n dialog: DialogBackstage(editor),\n isContextMenuOpen: function () {\n return contextMenuState.get();\n },\n setContextMenuState: function (state) {\n return contextMenuState.set(state);\n }\n };\n return backstage;\n };\n\n var expandable$1 = constant(function (element, available) {\n setMax$1(element, Math.floor(available));\n });\n\n var showContextToolbarEvent = 'contexttoolbar-show';\n var hideContextToolbarEvent = 'contexttoolbar-hide';\n\n var schema$k = constant([\n strict$1('dom'),\n defaulted$1('shell', true),\n field$1('toolbarBehaviours', [Replacing])\n ]);\n var enhanceGroups = function () {\n return { behaviours: derive$1([Replacing.config({})]) };\n };\n var parts$7 = constant([optional({\n name: 'groups',\n overrides: enhanceGroups\n })]);\n\n var factory$9 = function (detail, components, _spec, _externals) {\n var setGroups = function (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 var getGroupContainer = function (component) {\n return detail.shell ? Optional.some(component) : getPart(component, detail, 'groups');\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: { setGroups: setGroups },\n domModification: { attributes: { role: 'group' } }\n };\n };\n var Toolbar = composite$1({\n name: 'Toolbar',\n configFields: schema$k(),\n partFields: parts$7(),\n factory: factory$9,\n apis: {\n setGroups: function (apis, toolbar, groups) {\n apis.setGroups(toolbar, groups);\n }\n }\n });\n\n var generate$6 = function (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(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$1 = function (within, extra, withinWidth) {\n return {\n within: within,\n extra: extra,\n withinWidth: withinWidth\n };\n };\n var apportion = function (units, total, len) {\n var parray = generate$6(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(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 var toUnit = function (parray) {\n return map(parray, function (unit) {\n return unit.element;\n });\n };\n var fitLast = function (within, extra, withinWidth) {\n var fits = toUnit(within.concat(extra));\n return output$1(fits, [], withinWidth);\n };\n var overflow = function (within, extra, overflower, withinWidth) {\n var fits = toUnit(within).concat([overflower]);\n return output$1(fits, toUnit(extra), withinWidth);\n };\n var fitAll = function (within, extra, withinWidth) {\n return output$1(toUnit(within), [], withinWidth);\n };\n var tryFit = function (total, units, len) {\n var divide = apportion(units, total, len);\n return divide.extra.length === 0 ? Optional.some(divide) : Optional.none();\n };\n var partition$3 = function (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 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 = function (toolbar, storedGroups) {\n var bGroups = map(storedGroups, function (g) {\n return premade$1(g);\n });\n Toolbar.setGroups(toolbar, bGroups);\n };\n var findFocusedComp = function (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 var refresh = function (toolbar, detail, setOverflow) {\n var primary = getPartOrDie(toolbar, detail, 'primary');\n var overflowGroup = Coupling.getCoupled(toolbar, 'overflowGroup');\n set$2(primary.element, 'visibility', 'hidden');\n var groups = detail.builtGroups.get().concat([overflowGroup]);\n var focusedComp = findFocusedComp(groups);\n setOverflow([]);\n setGroups(primary, groups);\n var availableWidth = get$8(primary.element);\n var overflows = partition$3(availableWidth, detail.builtGroups.get(), function (comp) {\n return get$8(comp.element);\n }, overflowGroup);\n if (overflows.extra.length === 0) {\n Replacing.remove(primary, overflowGroup);\n setOverflow([]);\n } else {\n setGroups(primary, overflows.within);\n setOverflow(overflows.extra);\n }\n remove$6(primary.element, 'visibility');\n reflow(primary.element);\n focusedComp.each(Focusing.focus);\n };\n\n var schema$l = constant([\n field$1('splitToolbarBehaviours', [Coupling]),\n state$1('builtGroups', function () {\n return Cell([]);\n })\n ]);\n\n var schema$m = constant([\n markers(['overflowToggledClass']),\n optionFunction('getOverflowBounds'),\n strict$1('lazySink'),\n state$1('overflowGroups', function () {\n return Cell([]);\n })\n ].concat(schema$l()));\n var parts$8 = constant([\n required({\n factory: Toolbar,\n schema: schema$k(),\n name: 'primary'\n }),\n external$1({\n schema: schema$k(),\n name: 'overflow'\n }),\n external$1({ name: 'overflow-button' }),\n external$1({ name: 'overflow-group' })\n ]);\n\n var schema$n = constant([\n markers(['toggledClass']),\n strict$1('lazySink'),\n strictFunction('fetch'),\n optionFunction('getBounds'),\n optionObjOf('fireDismissalEventInstead', [defaulted$1('event', dismissRequested())]),\n schema$1()\n ]);\n var parts$9 = constant([\n external$1({\n name: 'button',\n overrides: function (detail) {\n return {\n dom: { attributes: { 'aria-haspopup': 'true' } },\n buttonBehaviours: derive$1([Toggling.config({\n toggleClass: detail.markers.toggledClass,\n aria: { mode: 'expanded' },\n toggleOnExecute: false\n })])\n };\n }\n }),\n external$1({\n factory: Toolbar,\n schema: schema$k(),\n name: 'toolbar',\n overrides: function (detail) {\n return {\n toolbarBehaviours: derive$1([Keying.config({\n mode: 'cyclic',\n onEscape: function (comp) {\n getPart(comp, detail, 'button').each(Focusing.focus);\n return Optional.none();\n }\n })])\n };\n }\n })\n ]);\n\n var toggle$2 = function (button, externals) {\n var toolbarSandbox = Coupling.getCoupled(button, 'toolbarSandbox');\n if (Sandboxing.isOpen(toolbarSandbox)) {\n Sandboxing.close(toolbarSandbox);\n } else {\n Sandboxing.open(toolbarSandbox, externals.toolbar());\n }\n };\n var position$2 = function (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, {\n anchor: 'hotspot',\n hotspot: button,\n layouts: layouts,\n overrides: { maxWidthFunction: expandable$1() }\n }, toolbar, bounds);\n };\n var setGroups$1 = function (button, toolbar, detail, layouts, groups) {\n Toolbar.setGroups(toolbar, groups);\n position$2(button, toolbar, detail, layouts);\n Toggling.on(button);\n };\n var makeSandbox$1 = function (button, spec, detail) {\n var ariaOwner = manager();\n var onOpen = function (sandbox, toolbar) {\n detail.fetch().get(function (groups) {\n setGroups$1(button, toolbar, detail, spec.layouts, groups);\n ariaOwner.link(button.element);\n Keying.focusIn(toolbar);\n });\n };\n var onClose = function () {\n Toggling.off(button);\n Focusing.focus(button);\n ariaOwner.unlink(button.element);\n };\n return {\n dom: {\n tag: 'div',\n attributes: { id: ariaOwner.id }\n },\n behaviours: derive$1([\n Keying.config({\n mode: 'special',\n onEscape: function (comp) {\n Sandboxing.close(comp);\n return Optional.some(true);\n }\n }),\n Sandboxing.config({\n onOpen: onOpen,\n onClose: onClose,\n isPartOf: function (container, data, queryElem) {\n return isPartOf(data, queryElem) || isPartOf(button, queryElem);\n },\n getAttachPoint: function () {\n return detail.lazySink(button).getOrDie();\n }\n }),\n Receiving.config({\n channels: __assign(__assign({}, receivingChannel(__assign({ isExtraPart: never }, detail.fireDismissalEventInstead.map(function (fe) {\n return { fireEventInstead: { event: fe.event } };\n }).getOr({})))), receivingChannel$1({\n doReposition: function () {\n Sandboxing.getState(Coupling.getCoupled(button, 'toolbarSandbox')).each(function (toolbar) {\n position$2(button, toolbar, detail, spec.layouts);\n });\n }\n }))\n })\n ])\n };\n };\n var factory$a = function (detail, components, spec, externals) {\n return __assign(__assign({}, Button.sketch(__assign(__assign({}, externals.button()), {\n action: function (button) {\n toggle$2(button, externals);\n },\n buttonBehaviours: SketchBehaviours.augment({ dump: externals.button().buttonBehaviours }, [Coupling.config({\n others: {\n toolbarSandbox: function (button) {\n return makeSandbox$1(button, spec, detail);\n }\n }\n })])\n }))), {\n apis: {\n setGroups: function (button, groups) {\n Sandboxing.getState(Coupling.getCoupled(button, 'toolbarSandbox')).each(function (toolbar) {\n setGroups$1(button, toolbar, detail, spec.layouts, groups);\n });\n },\n reposition: function (button) {\n Sandboxing.getState(Coupling.getCoupled(button, 'toolbarSandbox')).each(function (toolbar) {\n position$2(button, toolbar, detail, spec.layouts);\n });\n },\n toggle: function (button) {\n toggle$2(button, externals);\n },\n getToolbar: function (button) {\n return Sandboxing.getState(Coupling.getCoupled(button, 'toolbarSandbox'));\n },\n isOpen: function (button) {\n return Sandboxing.isOpen(Coupling.getCoupled(button, 'toolbarSandbox'));\n }\n }\n });\n };\n var FloatingToolbarButton = composite$1({\n name: 'FloatingToolbarButton',\n factory: factory$a,\n configFields: schema$n(),\n partFields: parts$9(),\n apis: {\n setGroups: function (apis, button, groups) {\n apis.setGroups(button, groups);\n },\n reposition: function (apis, button) {\n apis.reposition(button);\n },\n toggle: function (apis, button) {\n apis.toggle(button);\n },\n getToolbar: function (apis, button) {\n return apis.getToolbar(button);\n },\n isOpen: function (apis, button) {\n return apis.isOpen(button);\n }\n }\n });\n\n var schema$o = constant([\n strict$1('items'),\n markers(['itemSelector']),\n field$1('tgroupBehaviours', [Keying])\n ]);\n var parts$a = constant([group({\n name: 'items',\n unit: 'item'\n })]);\n\n var factory$b = function (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: { attributes: { role: 'toolbar' } }\n };\n };\n var ToolbarGroup = composite$1({\n name: 'ToolbarGroup',\n configFields: schema$o(),\n partFields: parts$a(),\n factory: factory$b\n });\n\n var buildGroups = function (comps) {\n return map(comps, function (g) {\n return premade$1(g);\n });\n };\n var refresh$1 = function (toolbar, memFloatingToolbarButton, detail) {\n refresh(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 var factory$c = function (detail, components, spec, externals) {\n var memFloatingToolbarButton = record(FloatingToolbarButton.sketch({\n fetch: function () {\n return Future.nu(function (resolve) {\n resolve(buildGroups(detail.overflowGroups.get()));\n });\n },\n layouts: {\n onLtr: function () {\n return [\n southwest$1,\n southeast$1\n ];\n },\n onRtl: function () {\n return [\n southeast$1,\n southwest$1\n ];\n },\n onBottomLtr: function () {\n return [\n northwest$1,\n northeast$1\n ];\n },\n onBottomRtl: function () {\n return [\n northeast$1,\n northwest$1\n ];\n }\n },\n getBounds: spec.getOverflowBounds,\n lazySink: detail.lazySink,\n fireDismissalEventInstead: {},\n markers: { toggledClass: detail.markers.overflowToggledClass },\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 () {\n return ToolbarGroup.sketch(__assign(__assign({}, externals['overflow-group']()), { items: [memFloatingToolbarButton.asSpec()] }));\n }\n }\n })]),\n apis: {\n setGroups: function (toolbar, groups) {\n detail.builtGroups.set(map(groups, toolbar.getSystem().build));\n refresh$1(toolbar, memFloatingToolbarButton, detail);\n },\n refresh: function (toolbar) {\n return refresh$1(toolbar, memFloatingToolbarButton, detail);\n },\n toggle: function (toolbar) {\n memFloatingToolbarButton.getOpt(toolbar).each(function (floatingToolbarButton) {\n FloatingToolbarButton.toggle(floatingToolbarButton);\n });\n },\n isOpen: function (toolbar) {\n return memFloatingToolbarButton.getOpt(toolbar).map(FloatingToolbarButton.isOpen).getOr(false);\n },\n reposition: function (toolbar) {\n memFloatingToolbarButton.getOpt(toolbar).each(function (floatingToolbarButton) {\n FloatingToolbarButton.reposition(floatingToolbarButton);\n });\n },\n getOverflow: function (toolbar) {\n return memFloatingToolbarButton.getOpt(toolbar).bind(FloatingToolbarButton.getToolbar);\n }\n },\n domModification: { attributes: { role: 'group' } }\n };\n };\n var SplitFloatingToolbar = composite$1({\n name: 'SplitFloatingToolbar',\n configFields: schema$m(),\n partFields: parts$8(),\n factory: factory$c,\n apis: {\n setGroups: function (apis, toolbar, groups) {\n apis.setGroups(toolbar, groups);\n },\n refresh: function (apis, toolbar) {\n apis.refresh(toolbar);\n },\n reposition: function (apis, toolbar) {\n apis.reposition(toolbar);\n },\n toggle: function (apis, toolbar) {\n apis.toggle(toolbar);\n },\n isOpen: function (apis, toolbar) {\n return apis.isOpen(toolbar);\n },\n getOverflow: function (apis, toolbar) {\n return apis.getOverflow(toolbar);\n }\n }\n });\n\n var getAnimationRoot = function (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 (slideConfig) {\n return slideConfig.dimension.property;\n };\n var getDimension = function (slideConfig, elem) {\n return slideConfig.dimension.getDimension(elem);\n };\n var disableTransitions = function (component, slideConfig) {\n var root = getAnimationRoot(component, slideConfig);\n remove$5(root, [\n slideConfig.shrinkingClass,\n slideConfig.growingClass\n ]);\n };\n var setShrunk = function (component, slideConfig) {\n remove$4(component.element, slideConfig.openClass);\n add$2(component.element, slideConfig.closedClass);\n set$2(component.element, getDimensionProperty(slideConfig), '0px');\n reflow(component.element);\n };\n var setGrown = function (component, slideConfig) {\n remove$4(component.element, slideConfig.closedClass);\n add$2(component.element, slideConfig.openClass);\n remove$6(component.element, getDimensionProperty(slideConfig));\n };\n var doImmediateShrink = function (component, slideConfig, slideState, _calculatedSize) {\n slideState.setCollapsed();\n set$2(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 var doStartShrink = function (component, slideConfig, slideState, calculatedSize) {\n var size = calculatedSize.getOrThunk(function () {\n return getDimension(slideConfig, component.element);\n });\n slideState.setCollapsed();\n set$2(component.element, getDimensionProperty(slideConfig), size);\n reflow(component.element);\n var root = getAnimationRoot(component, slideConfig);\n remove$4(root, slideConfig.growingClass);\n add$2(root, slideConfig.shrinkingClass);\n setShrunk(component, slideConfig);\n slideConfig.onStartShrink(component);\n };\n var doStartSmartShrink = function (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 var doStartGrow = function (component, slideConfig, slideState) {\n var root = getAnimationRoot(component, slideConfig);\n var wasShrinking = has$2(root, slideConfig.shrinkingClass);\n var beforeSize = getDimension(slideConfig, component.element);\n setGrown(component, slideConfig);\n var fullSize = getDimension(slideConfig, component.element);\n var startPartialGrow = function () {\n set$2(component.element, getDimensionProperty(slideConfig), beforeSize);\n reflow(component.element);\n };\n var startCompleteGrow = function () {\n setShrunk(component, slideConfig);\n };\n var setStartSize = wasShrinking ? startPartialGrow : startCompleteGrow;\n setStartSize();\n remove$4(root, slideConfig.shrinkingClass);\n add$2(root, slideConfig.growingClass);\n setGrown(component, slideConfig);\n set$2(component.element, getDimensionProperty(slideConfig), fullSize);\n slideState.setExpanded();\n slideConfig.onStartGrow(component);\n };\n var refresh$2 = function (component, slideConfig, slideState) {\n if (slideState.isExpanded()) {\n remove$6(component.element, getDimensionProperty(slideConfig));\n var fullSize = getDimension(slideConfig, component.element);\n set$2(component.element, getDimensionProperty(slideConfig), fullSize);\n }\n };\n var grow = function (component, slideConfig, slideState) {\n if (!slideState.isExpanded()) {\n doStartGrow(component, slideConfig, slideState);\n }\n };\n var shrink = function (component, slideConfig, slideState) {\n if (slideState.isExpanded()) {\n doStartSmartShrink(component, slideConfig, slideState);\n }\n };\n var immediateShrink = function (component, slideConfig, slideState) {\n if (slideState.isExpanded()) {\n doImmediateShrink(component, slideConfig, slideState, Optional.none());\n }\n };\n var hasGrown = function (component, slideConfig, slideState) {\n return slideState.isExpanded();\n };\n var hasShrunk = function (component, slideConfig, slideState) {\n return slideState.isCollapsed();\n };\n var isGrowing = function (component, slideConfig, _slideState) {\n var root = getAnimationRoot(component, slideConfig);\n return has$2(root, slideConfig.growingClass) === true;\n };\n var isShrinking = function (component, slideConfig, _slideState) {\n var root = getAnimationRoot(component, slideConfig);\n return has$2(root, slideConfig.shrinkingClass) === true;\n };\n var isTransitioning = function (component, slideConfig, slideState) {\n return isGrowing(component, slideConfig) || isShrinking(component, slideConfig);\n };\n var toggleGrow = function (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$2,\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$6 = function (base, slideConfig, _slideState) {\n var expanded = slideConfig.expanded;\n return expanded ? nu$6({\n classes: [slideConfig.openClass],\n styles: {}\n }) : nu$6({\n classes: [slideConfig.closedClass],\n styles: wrap$1(slideConfig.dimension.property, '0px')\n });\n };\n var events$d = function (slideConfig, slideState) {\n return derive([runOnSource(transitionend(), function (component, simulatedEvent) {\n var raw = simulatedEvent.event.raw;\n if (raw.propertyName === slideConfig.dimension.property) {\n disableTransitions(component, slideConfig);\n if (slideState.isExpanded()) {\n remove$6(component.element, slideConfig.dimension.property);\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$6,\n events: events$d\n });\n\n var SlidingSchema = [\n strict$1('closedClass'),\n strict$1('openClass'),\n strict$1('shrinkingClass'),\n strict$1('growingClass'),\n option('getAnimationRoot'),\n onHandler('onShrunk'),\n onHandler('onStartShrink'),\n onHandler('onGrown'),\n onHandler('onStartGrow'),\n defaulted$1('expanded', false),\n strictOf('dimension', choose$1('property', {\n width: [\n output('property', 'width'),\n output('getDimension', function (elem) {\n return get$8(elem) + 'px';\n })\n ],\n height: [\n output('property', 'height'),\n output('getDimension', function (elem) {\n return get$7(elem) + 'px';\n })\n ]\n }))\n ];\n\n var init$9 = function (spec) {\n var state = Cell(spec.expanded);\n var readState = function () {\n return 'expanded: ' + state.get();\n };\n return nu$5({\n isExpanded: function () {\n return state.get() === true;\n },\n isCollapsed: function () {\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$9\n });\n\n var Sliding = create$1({\n fields: SlidingSchema,\n name: 'sliding',\n active: ActiveSliding,\n apis: SlidingApis,\n state: SlidingState\n });\n\n var schema$p = constant([\n markers([\n 'closedClass',\n 'openClass',\n 'shrinkingClass',\n 'growingClass',\n 'overflowToggledClass'\n ]),\n onHandler('onOpened'),\n onHandler('onClosed')\n ].concat(schema$l()));\n var parts$b = constant([\n required({\n factory: Toolbar,\n schema: schema$k(),\n name: 'primary'\n }),\n required({\n factory: Toolbar,\n schema: schema$k(),\n name: 'overflow',\n overrides: function (detail) {\n return {\n toolbarBehaviours: derive$1([\n Sliding.config({\n dimension: { property: 'height' },\n closedClass: detail.markers.closedClass,\n openClass: detail.markers.openClass,\n shrinkingClass: detail.markers.shrinkingClass,\n growingClass: detail.markers.growingClass,\n onShrunk: function (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 (comp) {\n Keying.focusIn(comp);\n detail.onOpened(comp);\n },\n onStartGrow: function (comp) {\n getPart(comp, detail, 'overflow-button').each(Toggling.on);\n }\n }),\n Keying.config({\n mode: 'acyclic',\n onEscape: function (comp) {\n getPart(comp, detail, 'overflow-button').each(Focusing.focus);\n return Optional.some(true);\n }\n })\n ])\n };\n }\n }),\n external$1({\n name: 'overflow-button',\n overrides: function (detail) {\n return {\n buttonBehaviours: derive$1([Toggling.config({\n toggleClass: detail.markers.overflowToggledClass,\n aria: { mode: 'pressed' },\n toggleOnExecute: false\n })])\n };\n }\n }),\n external$1({ name: 'overflow-group' })\n ]);\n\n var isOpen$1 = function (toolbar, detail) {\n return getPart(toolbar, detail, 'overflow').map(Sliding.hasGrown).getOr(false);\n };\n var toggleToolbar = function (toolbar, detail) {\n getPart(toolbar, detail, 'overflow-button').bind(function () {\n return getPart(toolbar, detail, 'overflow');\n }).each(function (overf) {\n refresh$3(toolbar, detail);\n Sliding.toggleGrow(overf);\n });\n };\n var refresh$3 = function (toolbar, detail) {\n getPart(toolbar, detail, 'overflow').each(function (overflow) {\n refresh(toolbar, detail, function (groups) {\n var builtGroups = map(groups, function (g) {\n return premade$1(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 var factory$d = function (detail, components, spec, externals) {\n var toolbarToggleEvent = 'alloy.toolbar.toggle';\n var doSetGroups = function (toolbar, groups) {\n var built = map(groups, toolbar.getSystem().build);\n detail.builtGroups.set(built);\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: augment(detail.splitToolbarBehaviours, [\n Coupling.config({\n others: {\n overflowGroup: function (toolbar) {\n return ToolbarGroup.sketch(__assign(__assign({}, externals['overflow-group']()), {\n items: [Button.sketch(__assign(__assign({}, externals['overflow-button']()), {\n action: function (_button) {\n emit(toolbar, toolbarToggleEvent);\n }\n }))]\n }));\n }\n }\n }),\n config('toolbar-toggle-events', [run(toolbarToggleEvent, function (toolbar) {\n toggleToolbar(toolbar, detail);\n })])\n ]),\n apis: {\n setGroups: function (toolbar, groups) {\n doSetGroups(toolbar, groups);\n refresh$3(toolbar, detail);\n },\n refresh: function (toolbar) {\n return refresh$3(toolbar, detail);\n },\n toggle: function (toolbar) {\n return toggleToolbar(toolbar, detail);\n },\n isOpen: function (toolbar) {\n return isOpen$1(toolbar, detail);\n }\n },\n domModification: { attributes: { role: 'group' } }\n };\n };\n var SplitSlidingToolbar = composite$1({\n name: 'SplitSlidingToolbar',\n configFields: schema$p(),\n partFields: parts$b(),\n factory: factory$d,\n apis: {\n setGroups: function (apis, toolbar, groups) {\n apis.setGroups(toolbar, groups);\n },\n refresh: function (apis, toolbar) {\n apis.refresh(toolbar);\n },\n toggle: function (apis, toolbar) {\n apis.toggle(toolbar);\n },\n isOpen: function (apis, toolbar) {\n return apis.isOpen(toolbar);\n }\n }\n });\n\n var toolbarHeightChange = constant(generate$1('toolbar-height-change'));\n\n var renderToolbarGroupCommon = function (toolbarGroup) {\n var attributes = toolbarGroup.title.fold(function () {\n return {};\n }, function (title) {\n return { attributes: { title: title } };\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: { itemSelector: '*:not(.tox-split-button) > .tox-tbtn:not([disabled]), ' + '.tox-split-button:not([disabled]), ' + '.tox-toolbar-nav-js:not([disabled])' },\n tgroupBehaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({})\n ])\n };\n };\n var renderToolbarGroup = function (toolbarGroup) {\n return ToolbarGroup.sketch(renderToolbarGroupCommon(toolbarGroup));\n };\n var getToolbarbehaviours = function (toolbarSpec, modeName) {\n var onAttached = runOnAttached(function (component) {\n var groups = map(toolbarSpec.initGroups, renderToolbarGroup);\n Toolbar.setGroups(component, groups);\n });\n return derive$1([\n DisablingConfigs.toolbarButton(toolbarSpec.providers.isDisabled),\n receivingConfig(),\n Keying.config({\n mode: modeName,\n onEscape: toolbarSpec.onEscape,\n selector: '.tox-toolbar__group'\n }),\n config('toolbar-events', [onAttached])\n ]);\n };\n var renderMoreToolbarCommon = function (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 var renderFloatingMoreToolbar = function (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 () {\n var headerElem = toolbarSpec.moreDrawerData.lazyHeader().element;\n var headerBounds = absolute$1(headerElem);\n var docElem = documentElement(headerElem);\n var docBounds = absolute$1(docElem);\n var height = Math.max(docElem.dom.scrollHeight, docBounds.height);\n return bounds$1(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: { overflowToggledClass: 'tox-tbtn--enabled' }\n }));\n };\n var renderSlidingMoreToolbar = function (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: [\n primary,\n overflow\n ],\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 (comp) {\n comp.getSystem().broadcastOn([toolbarHeightChange()], { type: 'opened' });\n },\n onClosed: function (comp) {\n comp.getSystem().broadcastOn([toolbarHeightChange()], { type: 'closed' });\n }\n }));\n };\n var renderToolbar = function (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 groupToolbarButtonSchema = objOf([\n strictString('type'),\n strictOf('items', oneOf([\n arrOfObj$1([\n strictString('name'),\n strictArrayOf('items', string)\n ]),\n string\n ]))\n ].concat(baseToolbarButtonFields));\n var createGroupToolbarButton = function (spec) {\n return asRaw('GroupToolbarButton', groupToolbarButtonSchema, spec);\n };\n\n var baseMenuButtonFields = [\n optionString('text'),\n optionString('tooltip'),\n optionString('icon'),\n strictFunction('fetch'),\n defaultedFunction('onSetup', function () {\n return noop;\n })\n ];\n\n var MenuButtonSchema = objOf(__spreadArrays([strictString('type')], baseMenuButtonFields));\n var createMenuButton = function (spec) {\n return asRaw('menubutton', MenuButtonSchema, spec);\n };\n\n var splitButtonSchema = objOf([\n strictString('type'),\n optionString('tooltip'),\n optionString('icon'),\n optionString('text'),\n optionFunction('select'),\n strictFunction('fetch'),\n defaultedFunction('onSetup', function () {\n return noop;\n }),\n defaultedStringEnum('presets', 'normal', [\n 'normal',\n 'color',\n 'listpreview'\n ]),\n defaulted$1('columns', 1),\n strictFunction('onAction'),\n strictFunction('onItemAction')\n ]);\n var createSplitButton = function (spec) {\n return asRaw('SplitButton', splitButtonSchema, spec);\n };\n\n var events$e = function (reflectingConfig, reflectingState) {\n var update = function (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(newComponents, component.getSystem().build);\n replaceChildren(component, newChildren);\n });\n };\n return derive([\n run(receive(), function (component, message) {\n var receivingData = message;\n if (!receivingData.universal) {\n var channel = reflectingConfig.channel;\n if (contains(receivingData.channels, channel)) {\n update(component, receivingData.data);\n }\n }\n }),\n runOnAttached(function (comp, _se) {\n reflectingConfig.initialData.each(function (rawData) {\n update(comp, rawData);\n });\n })\n ]);\n };\n\n var ActiveReflecting = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$e\n });\n\n var getState$2 = function (component, replaceConfig, reflectState) {\n return reflectState;\n };\n\n var ReflectingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getState: getState$2\n });\n\n var ReflectingSchema = [\n strict$1('channel'),\n option('renderComponents'),\n option('updateState'),\n option('initialData')\n ];\n\n var init$a = function () {\n var cell = Cell(Optional.none());\n var set = function (optS) {\n return cell.set(optS);\n };\n var clear = function () {\n return cell.set(Optional.none());\n };\n var get = function () {\n return cell.get();\n };\n var readState = function () {\n return cell.get().fold(function () {\n return 'none';\n }, function (x) {\n return x;\n });\n };\n return {\n readState: readState,\n get: get,\n set: set,\n clear: clear\n };\n };\n\n var ReflectingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$a\n });\n\n var Reflecting = create$1({\n fields: ReflectingSchema,\n name: 'reflecting',\n active: ActiveReflecting,\n apis: ReflectingApis,\n state: ReflectingState\n });\n\n var schema$q = constant([\n strict$1('toggleClass'),\n strict$1('fetch'),\n onStrictHandler('onExecute'),\n defaulted$1('getHotspot', Optional.some),\n defaulted$1('getAnchorOverrides', constant({})),\n schema$1(),\n onStrictHandler('onItemExecute'),\n option('lazySink'),\n strict$1('dom'),\n onHandler('onOpen'),\n field$1('splitDropdownBehaviours', [\n Coupling,\n Keying,\n Focusing\n ]),\n defaulted$1('matchWidth', false),\n defaulted$1('useMinWidth', false),\n defaulted$1('eventOrder', {}),\n option('role')\n ].concat(sandboxFields()));\n var arrowPart = required({\n factory: Button,\n schema: [strict$1('dom')],\n name: 'arrow',\n defaults: function () {\n return { buttonBehaviours: derive$1([Focusing.revoke()]) };\n },\n overrides: function (detail) {\n return {\n dom: {\n tag: 'span',\n attributes: { role: 'presentation' }\n },\n action: function (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: [strict$1('dom')],\n name: 'button',\n defaults: function () {\n return { buttonBehaviours: derive$1([Focusing.revoke()]) };\n },\n overrides: function (detail) {\n return {\n dom: {\n tag: 'span',\n attributes: { role: 'presentation' }\n },\n action: function (btn) {\n btn.getSystem().getByUid(detail.uid).each(function (splitDropdown) {\n detail.onExecute(splitDropdown, btn);\n });\n }\n };\n }\n });\n var parts$c = constant([\n arrowPart,\n buttonPart,\n optional({\n factory: {\n sketch: function (spec) {\n return {\n uid: spec.uid,\n dom: {\n tag: 'span',\n styles: { display: 'none' },\n attributes: { 'aria-hidden': 'true' },\n innerHtml: spec.text\n }\n };\n }\n },\n schema: [strict$1('text')],\n name: 'aria-descriptor'\n }),\n external$1({\n schema: [tieredMenuMarkers()],\n name: 'menu',\n defaults: function (detail) {\n return {\n onExecute: function (tmenu, item) {\n tmenu.getSystem().getByUid(detail.uid).each(function (splitDropdown) {\n detail.onItemExecute(splitDropdown, tmenu, item);\n });\n }\n };\n }\n }),\n partType()\n ]);\n\n var factory$e = function (detail, components, spec, externals) {\n var _a;\n var switchToMenu = function (sandbox) {\n Composing.getCurrent(sandbox).each(function (current) {\n Highlighting.highlightFirst(current);\n Keying.focusIn(current);\n });\n };\n var action = function (component) {\n var onOpenSync = switchToMenu;\n togglePopup(detail, function (x) {\n return x;\n }, component, externals, onOpenSync, HighlightOnOpen.HighlightFirst).get(noop);\n };\n var openMenu = function (comp) {\n action(comp);\n return Optional.some(true);\n };\n var executeOnButton = function (comp) {\n var button = getPartOrDie(comp, detail, 'button');\n emitExecute(button);\n return Optional.some(true);\n };\n var buttonEvents = __assign(__assign({}, derive([runOnAttached(function (component, _simulatedEvent) {\n var ariaDescriptor = getPart(component, detail, 'aria-descriptor');\n ariaDescriptor.each(function (descriptor) {\n var descriptorId = generate$1('aria');\n set$1(descriptor.element, 'id', descriptorId);\n set$1(component.element, 'aria-describedby', descriptorId);\n });\n })])), events$7(Optional.some(action)));\n var apis = {\n repositionMenus: function (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()] = [\n 'disabling',\n 'toggling',\n 'alloy.base.behaviour'\n ], _a)),\n events: buttonEvents,\n behaviours: augment(detail.splitDropdownBehaviours, [\n Coupling.config({\n others: {\n sandbox: function (hotspot) {\n var arrow = getPartOrDie(hotspot, detail, 'arrow');\n var extras = {\n onOpen: function () {\n Toggling.on(arrow);\n Toggling.on(hotspot);\n },\n onClose: function () {\n Toggling.off(arrow);\n Toggling.off(hotspot);\n }\n };\n return makeSandbox(detail, hotspot, extras);\n }\n }\n }),\n Keying.config({\n mode: 'special',\n onSpace: executeOnButton,\n onEnter: executeOnButton,\n onDown: openMenu\n }),\n Focusing.config({}),\n Toggling.config({\n toggleOnExecute: false,\n aria: { mode: 'expanded' }\n })\n ]),\n domModification: {\n attributes: {\n 'role': detail.role.getOr('button'),\n 'aria-haspopup': true\n }\n }\n };\n };\n var SplitDropdown = composite$1({\n name: 'SplitDropdown',\n configFields: schema$q(),\n partFields: parts$c(),\n factory: factory$e,\n apis: {\n repositionMenus: function (apis, comp) {\n return apis.repositionMenus(comp);\n }\n }\n });\n\n var getButtonApi = function (component) {\n return {\n isDisabled: function () {\n return Disabling.isDisabled(component);\n },\n setDisabled: function (state) {\n return Disabling.set(component, state);\n }\n };\n };\n var getToggleApi = function (component) {\n return {\n setActive: function (state) {\n Toggling.set(component, state);\n },\n isActive: function () {\n return Toggling.isOn(component);\n },\n isDisabled: function () {\n return Disabling.isDisabled(component);\n },\n setDisabled: function (state) {\n return Disabling.set(component, state);\n }\n };\n };\n var getTooltipAttributes = function (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 var focusButtonEvent = generate$1('focus-button');\n var rtlIcon$1 = [\n 'checklist',\n 'ordered-list'\n ];\n var rtlTransform$1 = [\n 'indent',\n 'outdent',\n 'table-insert-column-after',\n 'table-insert-column-before',\n 'unordered-list'\n ];\n var renderCommonStructure = function (icon, text, tooltip, receiver, behaviours, providersBackstage) {\n var _d;\n var getIconName = function (iconName) {\n return global$6.isRtl() && contains(rtlIcon$1, iconName) ? iconName + '-rtl' : iconName;\n };\n var needsRtlClass = global$6.isRtl() && icon.exists(function (name) {\n return contains(rtlTransform$1, name);\n });\n return {\n dom: {\n tag: 'button',\n classes: ['tox-tbtn'].concat(text.isSome() ? ['tox-tbtn--select'] : []).concat(needsRtlClass ? ['tox-tbtn__icon-rtl'] : []),\n attributes: getTooltipAttributes(tooltip, providersBackstage)\n },\n components: componentRenderPipeline([\n icon.map(function (iconName) {\n return renderIconFromPack(getIconName(iconName), providersBackstage.icons);\n }),\n text.map(function (text) {\n return renderLabel$1(text, 'tox-tbtn', providersBackstage);\n })\n ]),\n eventOrder: (_d = {}, _d[mousedown()] = [\n 'focusing',\n 'alloy.base.behaviour',\n 'common-button-display-events'\n ], _d),\n buttonBehaviours: derive$1([\n DisablingConfigs.toolbarButton(providersBackstage.isDisabled),\n receivingConfig(),\n config('common-button-display-events', [run(mousedown(), function (button, se) {\n se.event.prevent();\n emit(button, focusButtonEvent);\n })])\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 (data, _state) {\n return componentRenderPipeline([\n data.icon.map(function (iconName) {\n return renderIconFromPack(getIconName(iconName), providersBackstage.icons);\n }),\n data.text.map(function (text) {\n return renderLabel$1(text, 'tox-tbtn', providersBackstage);\n })\n ]);\n }\n });\n }).toArray()).concat(behaviours.getOr([])))\n };\n };\n var renderFloatingToolbarButton = function (spec, backstage, identifyButtons, attributes) {\n var sharedBackstage = backstage.shared;\n return FloatingToolbarButton.sketch({\n lazySink: sharedBackstage.getSink,\n fetch: function () {\n return Future.nu(function (resolve) {\n resolve(map(identifyButtons(spec.items), renderToolbarGroup));\n });\n },\n markers: { toggledClass: 'tox-tbtn--enabled' },\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 var renderCommonToolbarButton = function (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([\n config('toolbar-button-events', [\n onToolbarButtonExecute({\n onAction: spec.onAction,\n getApi: specialisation.getApi\n }),\n onControlAttached(specialisation, editorOffCell),\n onControlDetached(specialisation, editorOffCell)\n ]),\n DisablingConfigs.toolbarButton(function () {\n return spec.disabled || providersBackstage.isDisabled();\n }),\n receivingConfig()\n ].concat(specialisation.toolbarButtonBehaviours))\n });\n };\n var renderToolbarButton = function (spec, providersBackstage) {\n return renderToolbarButtonWith(spec, providersBackstage, []);\n };\n var renderToolbarButtonWith = function (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 var renderToolbarToggleButton = function (spec, providersBackstage) {\n return renderToolbarToggleButtonWith(spec, providersBackstage, []);\n };\n var renderToolbarToggleButtonWith = function (spec, providersBackstage, bonusEvents) {\n return deepMerge(renderCommonToolbarButton(spec, {\n toolbarButtonBehaviours: [\n Replacing.config({}),\n Toggling.config({\n toggleClass: 'tox-tbtn--enabled',\n aria: { mode: 'pressed' },\n toggleOnExecute: false\n })\n ].concat(bonusEvents.length > 0 ? [config('toolbarToggleButtonWith', bonusEvents)] : []),\n getApi: getToggleApi,\n onSetup: spec.onSetup\n }, providersBackstage));\n };\n var fetchChoices = function (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$1('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, numColumns = _d.numColumns;\n Keying.setGridSize(comp, numRows, numColumns);\n });\n })])\n })));\n });\n };\n };\n var renderSplitButton = function (spec, sharedBackstage) {\n var _d;\n var displayChannel = generate$1('channel-update-split-dropdown-display');\n var getApi = function (comp) {\n return {\n isDisabled: function () {\n return Disabling.isDisabled(comp);\n },\n setDisabled: function (state) {\n return Disabling.set(comp, state);\n },\n setIconFill: function (id, value) {\n descendant$1(comp.element, 'svg path[id=\"' + id + '\"], rect[id=\"' + id + '\"]').each(function (underlinePath) {\n set$1(underlinePath, 'fill', value);\n });\n },\n setIconStroke: function (id, value) {\n descendant$1(comp.element, 'svg path[id=\"' + id + '\"], rect[id=\"' + id + '\"]').each(function (underlinePath) {\n set$1(underlinePath, 'stroke', value);\n });\n },\n setActive: function (state) {\n set$1(comp.element, 'aria-pressed', state);\n descendant$1(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 () {\n return descendant$1(comp.element, 'span').exists(function (button) {\n return comp.getSystem().getByDom(button).exists(Toggling.isOn);\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({ 'aria-pressed': false }, getTooltipAttributes(spec.tooltip, sharedBackstage.providers))\n },\n onExecute: function (button) {\n spec.onAction(getApi(button));\n },\n onItemExecute: function (_a, _b, _c) {\n },\n splitDropdownBehaviours: derive$1([\n DisablingConfigs.splitButton(sharedBackstage.providers.isDisabled),\n receivingConfig(),\n config('split-dropdown-events', [\n run(focusButtonEvent, Focusing.focus),\n onControlAttached(specialisation, editorOffCell),\n onControlDetached(specialisation, editorOffCell)\n ]),\n Unselecting.config({})\n ]),\n eventOrder: (_d = {}, _d[attachedToDom()] = [\n 'alloy.base.behaviour',\n 'split-dropdown-events'\n ], _d),\n toggleClass: 'tox-tbtn--enabled',\n lazySink: sharedBackstage.getSink,\n fetch: fetchChoices(getApi, spec, sharedBackstage.providers),\n parts: { menu: part(false, spec.columns, spec.presets) },\n components: [\n 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)),\n SplitDropdown.parts.arrow({\n dom: {\n tag: 'button',\n classes: [\n 'tox-tbtn',\n 'tox-split-button__chevron'\n ],\n innerHtml: get$e('chevron-down', sharedBackstage.providers.icons)\n },\n buttonBehaviours: derive$1([\n DisablingConfigs.splitButton(sharedBackstage.providers.isDisabled),\n receivingConfig()\n ])\n }),\n SplitDropdown.parts['aria-descriptor']({ text: sharedBackstage.providers.translate('To open the popup, press Shift+Enter') })\n ]\n });\n };\n\n var getFormApi = function (input) {\n return {\n hide: function () {\n return emit(input, sandboxClose());\n },\n getValue: function () {\n return Representing.getValue(input);\n }\n };\n };\n var runOnExecute$1 = function (memInput, original) {\n return run(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 var renderContextButton = function (memInput, button, extras) {\n var _a = button.original, primary = _a.primary, rest = __rest(_a, ['primary']);\n var bridged = getOrDie(createToolbarButton(__assign(__assign({}, rest), {\n type: 'button',\n onAction: noop\n })));\n return renderToolbarButtonWith(bridged, extras.backstage.shared.providers, [runOnExecute$1(memInput, button)]);\n };\n var renderContextToggleButton = function (memInput, button, extras) {\n var _a = button.original, primary = _a.primary, rest = __rest(_a, ['primary']);\n var bridged = getOrDie(createToggleButton(__assign(__assign({}, rest), {\n type: 'togglebutton',\n onAction: noop\n })));\n return renderToolbarToggleButtonWith(bridged, extras.backstage.shared.providers, [runOnExecute$1(memInput, button)]);\n };\n var generateOne$1 = function (memInput, button, providersBackstage) {\n var extras = { backstage: { shared: { providers: providersBackstage } } };\n if (button.type === 'contextformtogglebutton') {\n return renderContextToggleButton(memInput, button, extras);\n } else {\n return renderContextButton(memInput, button, extras);\n }\n };\n var generate$7 = function (memInput, buttons, providersBackstage) {\n var mementos = map(buttons, function (button) {\n return record(generateOne$1(memInput, button, providersBackstage));\n });\n var asSpecs = function () {\n return map(mementos, function (mem) {\n return mem.asSpec();\n });\n };\n var findPrimary = function (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 return {\n asSpecs: asSpecs,\n findPrimary: findPrimary\n };\n };\n\n var buildInitGroups = function (ctx, providers) {\n var inputAttributes = ctx.label.fold(function () {\n return {};\n }, function (label) {\n return { 'aria-label': label };\n });\n var memInput = record(Input.sketch({\n inputClasses: [\n 'tox-toolbar-textfield',\n 'tox-toolbar-nav-js'\n ],\n data: ctx.initValue(),\n inputAttributes: inputAttributes,\n selectOnFocus: true,\n inputBehaviours: derive$1([Keying.config({\n mode: 'special',\n onEnter: function (input) {\n return commands.findPrimary(input).map(function (primary) {\n emitExecute(primary);\n return true;\n });\n },\n onLeft: function (comp, se) {\n se.cut();\n return Optional.none();\n },\n onRight: function (comp, se) {\n se.cut();\n return Optional.none();\n }\n })])\n }));\n var commands = generate$7(memInput, ctx.commands, providers);\n return [\n {\n title: Optional.none(),\n items: [memInput.asSpec()]\n },\n {\n title: Optional.none(),\n items: commands.asSpecs()\n }\n ];\n };\n var renderContextForm = function (toolbarType, ctx, providers) {\n return renderToolbar({\n type: toolbarType,\n uid: generate$1('context-toolbar'),\n initGroups: buildInitGroups(ctx, providers),\n onEscape: Optional.none,\n cyclicKeying: true,\n providers: providers\n });\n };\n var ContextForm = {\n renderContextForm: renderContextForm,\n buildInitGroups: buildInitGroups\n };\n\n var getHorizontalBounds = function (contentAreaBox, viewportBounds) {\n var x = Math.max(viewportBounds.x, contentAreaBox.x);\n var contentBoxWidth = contentAreaBox.right - x;\n var maxViewportWidth = viewportBounds.width - (x - viewportBounds.x);\n var width = Math.min(contentBoxWidth, maxViewportWidth);\n return {\n x: x,\n width: width\n };\n };\n var getVerticalBounds = function (editor, contentAreaBox, viewportBounds, isToolbarLocationTop) {\n var container = SugarElement.fromDom(editor.getContainer());\n var header = descendant$1(container, '.tox-editor-header').getOr(container);\n var headerBox = box(header);\n var isToolbarBelowContentArea = headerBox.y >= contentAreaBox.bottom;\n var isToolbarAbove = isToolbarLocationTop && !isToolbarBelowContentArea;\n if (editor.inline && isToolbarAbove) {\n return {\n y: Math.max(headerBox.bottom, viewportBounds.y),\n bottom: viewportBounds.bottom\n };\n }\n if (editor.inline && !isToolbarAbove) {\n return {\n y: viewportBounds.y,\n bottom: Math.min(headerBox.y, viewportBounds.bottom)\n };\n }\n var containerBounds = box(container);\n if (isToolbarAbove) {\n return {\n y: Math.max(headerBox.bottom, viewportBounds.y),\n bottom: Math.min(containerBounds.bottom, viewportBounds.bottom)\n };\n }\n return {\n y: Math.max(containerBounds.y, viewportBounds.y),\n bottom: Math.min(headerBox.y, viewportBounds.bottom)\n };\n };\n var getContextToolbarBounds = function (editor, sharedBackstage) {\n var viewportBounds = getBounds(window);\n var contentAreaBox = box(SugarElement.fromDom(editor.getContentAreaContainer()));\n var toolbarOrMenubarEnabled = isMenubarEnabled(editor) || isToolbarEnabled(editor) || isMultipleToolbars(editor);\n var _a = getHorizontalBounds(contentAreaBox, viewportBounds), x = _a.x, width = _a.width;\n if (editor.inline && !toolbarOrMenubarEnabled) {\n return bounds$1(x, viewportBounds.y, width, viewportBounds.height);\n } else {\n var isToolbarTop = sharedBackstage.header.isPositionedAtTop();\n var _b = getVerticalBounds(editor, contentAreaBox, viewportBounds, isToolbarTop), y = _b.y, bottom = _b.bottom;\n return bounds$1(x, y, width, bottom - y);\n }\n };\n\n var matchTargetWith = function (elem, candidates) {\n var ctxs = filter(candidates, function (toolbarApi) {\n return toolbarApi.predicate(elem.dom);\n });\n var _a = partition(ctxs, function (t) {\n return t.type === 'contexttoolbar';\n }), pass = _a.pass, fail = _a.fail;\n return {\n contextToolbars: pass,\n contextForms: fail\n };\n };\n var filterByPositionForStartNode = function (toolbars) {\n if (toolbars.length <= 1) {\n return toolbars;\n } else {\n var doesPositionExist = function (value) {\n return exists(toolbars, function (t) {\n return t.position === value;\n });\n };\n var filterToolbarsByPosition = function (value) {\n return filter(toolbars, function (t) {\n return t.position === value;\n });\n };\n var hasSelectionToolbars = doesPositionExist('selection');\n var hasNodeToolbars = doesPositionExist('node');\n if (hasSelectionToolbars || hasNodeToolbars) {\n if (hasNodeToolbars && hasSelectionToolbars) {\n var nodeToolbars = filterToolbarsByPosition('node');\n var selectionToolbars = map(filterToolbarsByPosition('selection'), function (t) {\n return __assign(__assign({}, t), { position: 'node' });\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 var filterByPositionForAncestorNode = function (toolbars) {\n if (toolbars.length <= 1) {\n return toolbars;\n } else {\n var findPosition_1 = function (value) {\n return find(toolbars, function (t) {\n return t.position === value;\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(toolbars, function (t) {\n return t.position === pos;\n });\n });\n }\n };\n var matchStartNode = function (elem, nodeCandidates, editorCandidates) {\n var nodeMatches = matchTargetWith(elem, nodeCandidates);\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 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 var matchAncestor = function (isRoot, startNode, scopes) {\n if (isRoot(startNode)) {\n return Optional.none();\n } else {\n return ancestor(startNode, function (ancestorElem) {\n var _a = matchTargetWith(ancestorElem, scopes.inNodeScope), contextToolbars = _a.contextToolbars, contextForms = _a.contextForms;\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 }, isRoot);\n }\n };\n var lookup$1 = function (scopes, editor) {\n var rootElem = SugarElement.fromDom(editor.getBody());\n var isRoot = function (elem) {\n return eq$1(elem, rootElem);\n };\n var isOutsideRoot = function (startNode) {\n return !isRoot(startNode) && !contains$2(rootElem, startNode);\n };\n var startNode = SugarElement.fromDom(editor.selection.getNode());\n if (isOutsideRoot(startNode)) {\n return Optional.none();\n }\n return matchStartNode(startNode, scopes.inNodeScope, scopes.inEditorScope).orThunk(function () {\n return matchAncestor(isRoot, startNode, scopes);\n });\n };\n\n var categorise = function (contextToolbars, navigate) {\n var forms = {};\n var inNodeScope = [];\n var inEditorScope = [];\n var formNavigators = {};\n var lookupTable = {};\n var registerForm = function (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 () {\n navigate(contextForm);\n }\n });\n });\n if (contextForm.scope === 'editor') {\n inEditorScope.push(contextForm);\n } else {\n inNodeScope.push(contextForm);\n }\n lookupTable[key] = contextForm;\n };\n var registerToolbar = function (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 lookupTable[key] = contextToolbar;\n });\n };\n var keys$1 = keys(contextToolbars);\n each(keys$1, function (key) {\n var toolbarApi = contextToolbars[key];\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$1('forward-slide');\n var backSlideEvent = generate$1('backward-slide');\n var changeSlideEvent = generate$1('change-slide-event');\n var resizingClass = 'tox-pop--resizing';\n var renderContextToolbar = function (spec) {\n var stack = Cell([]);\n return InlineView.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-pop']\n },\n fireDismissalEventInstead: { event: 'doNotDismissYet' },\n onShow: function (comp) {\n stack.set([]);\n InlineView.getContent(comp).each(function (c) {\n remove$6(c.element, 'visibility');\n });\n remove$4(comp.element, resizingClass);\n remove$6(comp.element, 'width');\n },\n inlineBehaviours: derive$1([\n config('context-toolbar-events', [\n runOnSource(transitionend(), function (comp, _se) {\n remove$4(comp.element, resizingClass);\n remove$6(comp.element, 'width');\n }),\n run(changeSlideEvent, function (comp, se) {\n var elem = comp.element;\n remove$6(elem, 'width');\n var currentWidth = get$8(elem);\n InlineView.setContent(comp, se.event.contents);\n add$2(elem, resizingClass);\n var newWidth = get$8(elem);\n set$2(elem, 'width', currentWidth + 'px');\n InlineView.getContent(comp).each(function (newContents) {\n se.event.focus.bind(function (f) {\n focus$1(f);\n return search(elem);\n }).orThunk(function () {\n Keying.focusIn(newContents);\n return active(getRootNode(elem));\n });\n });\n global$2.setTimeout(function () {\n set$2(comp.element, 'width', newWidth + 'px');\n }, 0);\n }),\n run(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 }),\n run(backSlideEvent, function (comp, _se) {\n last(stack.get()).each(function (last) {\n stack.set(stack.get().slice(0, stack.get().length - 1));\n emitWith(comp, changeSlideEvent, {\n contents: premade$1(last.bar),\n focus: last.focus\n });\n });\n })\n ]),\n Keying.config({\n mode: 'special',\n onEscape: function (comp) {\n return last(stack.get()).fold(function () {\n return spec.onEscape();\n }, function (_) {\n emit(comp, backSlideEvent);\n return Optional.some(true);\n });\n }\n })\n ]),\n lazySink: function () {\n return Result.value(spec.sink);\n }\n });\n };\n\n var generateSelectItems = function (_editor, backstage, spec) {\n var generateItem = function (rawItem, response, disabled, value) {\n var translatedText = backstage.shared.providers.translate(rawItem.title);\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(rawItem.getStyleItems(), function (si) {\n return validate(si, response, value);\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 () {\n return bind(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 { meta: { style: preview } };\n })));\n }\n };\n var validate = function (item, response, value) {\n var invalid = item.type === 'formatter' && spec.isInvalid(item);\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 var validateItems = function (preItems) {\n var value = spec.getCurrentValue();\n var response = spec.shouldHide ? 0 : 1;\n return bind(preItems, function (item) {\n return validate(item, response, value);\n });\n };\n var getFetch = function (backstage, getStyleItems) {\n return function (comp, callback) {\n var preItems = getStyleItems();\n var items = validateItems(preItems);\n var menu = build$2(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, false);\n callback(menu);\n };\n };\n return {\n validateItems: validateItems,\n getFetch: getFetch\n };\n };\n var createMenuItems = function (editor, backstage, spec) {\n var dataset = spec.dataset;\n var getStyleItems = dataset.type === 'basic' ? function () {\n return map(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 var createSelectButton = function (editor, backstage, spec) {\n var _a = createMenuItems(editor, backstage, spec), items = _a.items, getStyleItems = _a.getStyleItems;\n var getApi = function (comp) {\n return {\n getComponent: function () {\n return comp;\n }\n };\n };\n var onSetup = function (api) {\n spec.setInitialValue.each(function (f) {\n return f(api.getComponent());\n });\n return spec.nodeChangeHandler.map(function (f) {\n var handler = f(api.getComponent());\n editor.on('NodeChange', handler);\n return function () {\n editor.off('NodeChange', handler);\n };\n }).getOr(noop);\n };\n return renderCommonDropdown({\n text: spec.icon.isSome() ? Optional.none() : Optional.some(''),\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 (rawFormats) {\n return map(rawFormats, function (item) {\n var title = item, format = item;\n var values = item.split('=');\n if (values.length > 1) {\n title = values[0];\n format = values[1];\n }\n return {\n title: title,\n format: format\n };\n });\n };\n var buildBasicStaticDataset = function (data) {\n return {\n type: 'basic',\n data: data\n };\n };\n var Delimiter;\n (function (Delimiter) {\n Delimiter[Delimiter['SemiColon'] = 0] = 'SemiColon';\n Delimiter[Delimiter['Space'] = 1] = 'Space';\n }(Delimiter || (Delimiter = {})));\n var split = function (rawFormats, delimiter) {\n if (delimiter === Delimiter.SemiColon) {\n return rawFormats.replace(/;$/, '').split(';');\n } else {\n return rawFormats.split(' ');\n }\n };\n var buildBasicSettingsDataset = function (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 {\n title: 'Left',\n icon: 'align-left',\n format: 'alignleft',\n command: 'JustifyLeft'\n },\n {\n title: 'Center',\n icon: 'align-center',\n format: 'aligncenter',\n command: 'JustifyCenter'\n },\n {\n title: 'Right',\n icon: 'align-right',\n format: 'alignright',\n command: 'JustifyRight'\n },\n {\n title: 'Justify',\n icon: 'align-justify',\n format: 'alignjustify',\n command: 'JustifyFull'\n }\n ];\n var getSpec = function (editor) {\n var getMatchingValue = function () {\n return find(alignMenuItems, function (item) {\n return editor.formatter.match(item.format);\n });\n };\n var isSelectedFor = function (format) {\n return function () {\n return editor.formatter.match(format);\n };\n };\n var getPreviewFor = function (_format) {\n return function () {\n return Optional.none();\n };\n };\n var updateSelectMenuIcon = function (comp) {\n var match = getMatchingValue();\n var alignment = match.fold(function () {\n return 'left';\n }, function (item) {\n return item.title.toLowerCase();\n });\n emitWith(comp, updateMenuIcon, { icon: 'align-' + alignment });\n };\n var nodeChangeHandler = Optional.some(function (comp) {\n return function () {\n return updateSelectMenuIcon(comp);\n };\n });\n var setInitialValue = Optional.some(function (comp) {\n return updateSelectMenuIcon(comp);\n });\n var dataset = buildBasicStaticDataset(alignMenuItems);\n var onAction = function (rawItem) {\n return function () {\n return find(alignMenuItems, function (item) {\n return item.format === rawItem.format;\n }).each(function (item) {\n return editor.execCommand(item.command);\n });\n };\n };\n return {\n tooltip: 'Align',\n icon: Optional.some('align-left'),\n isSelectedFor: isSelectedFor,\n getCurrentValue: Optional.none,\n getPreviewFor: getPreviewFor,\n onAction: onAction,\n setInitialValue: setInitialValue,\n nodeChangeHandler: nodeChangeHandler,\n dataset: dataset,\n shouldHide: false,\n isInvalid: function (item) {\n return !editor.formatter.canApply(item.format);\n }\n };\n };\n var createAlignSelect = function (editor, backstage) {\n return createSelectButton(editor, backstage, getSpec(editor));\n };\n var alignSelectMenu = function (editor, backstage) {\n var menuItems = createMenuItems(editor, backstage, getSpec(editor));\n editor.ui.registry.addNestedMenuItem('align', {\n text: backstage.shared.providers.translate('Align'),\n getSubmenuItems: function () {\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 = [\n '-apple-system',\n 'Segoe UI',\n 'Roboto',\n 'Helvetica Neue',\n 'sans-serif'\n ];\n var splitFonts = function (fontFamily) {\n var fonts = fontFamily.split(/\\s*,\\s*/);\n return map(fonts, function (font) {\n return font.replace(/^['\"]+|['\"]+$/g, '');\n });\n };\n var isSystemFontStack = function (fontFamily) {\n var matchesSystemStack = function () {\n var fonts = splitFonts(fontFamily.toLowerCase());\n return forall(systemStackFonts, function (font) {\n return fonts.indexOf(font.toLowerCase()) > -1;\n });\n };\n return fontFamily.indexOf('-apple-system') === 0 && matchesSystemStack();\n };\n var getSpec$1 = function (editor) {\n var getMatchingValue = function () {\n var getFirstFont = function (fontFamily) {\n return fontFamily ? splitFonts(fontFamily)[0] : '';\n };\n var fontFamily = editor.queryCommandValue('FontName');\n var items = dataset.data;\n var font = fontFamily ? fontFamily.toLowerCase() : '';\n var matchOpt = find(items, function (item) {\n var format = item.format;\n return format.toLowerCase() === font || getFirstFont(format).toLowerCase() === getFirstFont(font).toLowerCase();\n }).orThunk(function () {\n if (isSystemFontStack(font)) {\n return Optional.from({\n title: 'System Font',\n format: font\n });\n } else {\n return Optional.none();\n }\n });\n return {\n matchOpt: matchOpt,\n font: fontFamily\n };\n };\n var isSelectedFor = function (item) {\n return function (valueOpt) {\n return valueOpt.exists(function (value) {\n return value.format === item;\n });\n };\n };\n var getCurrentValue = function () {\n var matchOpt = getMatchingValue().matchOpt;\n return matchOpt;\n };\n var getPreviewFor = function (item) {\n return function () {\n return Optional.some({\n tag: 'div',\n styles: item.indexOf('dings') === -1 ? { 'font-family': item } : {}\n });\n };\n };\n var onAction = function (rawItem) {\n return function () {\n editor.undoManager.transact(function () {\n editor.focus();\n editor.execCommand('FontName', false, rawItem.format);\n });\n };\n };\n var updateSelectMenuText = function (comp) {\n var _a = getMatchingValue(), matchOpt = _a.matchOpt, font = _a.font;\n var text = matchOpt.fold(function () {\n return font;\n }, function (item) {\n return item.title;\n });\n emitWith(comp, updateMenuText, { text: text });\n };\n var nodeChangeHandler = Optional.some(function (comp) {\n return function () {\n return updateSelectMenuText(comp);\n };\n });\n var setInitialValue = Optional.some(function (comp) {\n return updateSelectMenuText(comp);\n });\n var dataset = buildBasicSettingsDataset(editor, 'font_formats', defaultFontsFormats, Delimiter.SemiColon);\n return {\n tooltip: 'Fonts',\n icon: Optional.none(),\n isSelectedFor: isSelectedFor,\n getCurrentValue: getCurrentValue,\n getPreviewFor: getPreviewFor,\n onAction: onAction,\n setInitialValue: setInitialValue,\n nodeChangeHandler: nodeChangeHandler,\n dataset: dataset,\n shouldHide: false,\n isInvalid: never\n };\n };\n var createFontSelect = function (editor, backstage) {\n return createSelectButton(editor, backstage, getSpec$1(editor));\n };\n var fontSelectMenu = function (editor, backstage) {\n var menuItems = createMenuItems(editor, backstage, getSpec$1(editor));\n editor.ui.registry.addNestedMenuItem('fontformats', {\n text: backstage.shared.providers.translate('Fonts'),\n getSubmenuItems: function () {\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 var round$1 = function (number, precision) {\n var factor = Math.pow(10, precision);\n return Math.round(number * factor) / factor;\n };\n var toPt = function (fontSize, precision) {\n if (/[0-9.]+px$/.test(fontSize)) {\n return round$1(parseInt(fontSize, 10) * 72 / 96, precision || 0) + 'pt';\n } else {\n return get$1(keywordFontSizes, fontSize).getOr(fontSize);\n }\n };\n var toLegacy = function (fontSize) {\n return get$1(legacyFontSizes, fontSize).getOr('');\n };\n var getSpec$2 = function (editor) {\n var getMatchingValue = function () {\n var matchOpt = Optional.none();\n var items = dataset.data;\n var fontSize = editor.queryCommandValue('FontSize');\n if (fontSize) {\n var _loop_1 = function (precision) {\n var pt = toPt(fontSize, precision);\n var legacy = toLegacy(pt);\n matchOpt = find(items, function (item) {\n return item.format === fontSize || item.format === pt || item.format === legacy;\n });\n };\n for (var precision = 3; matchOpt.isNone() && precision >= 0; precision--) {\n _loop_1(precision);\n }\n }\n return {\n matchOpt: matchOpt,\n size: fontSize\n };\n };\n var isSelectedFor = function (item) {\n return function (valueOpt) {\n return valueOpt.exists(function (value) {\n return value.format === item;\n });\n };\n };\n var getCurrentValue = function () {\n var matchOpt = getMatchingValue().matchOpt;\n return matchOpt;\n };\n var getPreviewFor = constant(Optional.none);\n var onAction = function (rawItem) {\n return function () {\n editor.undoManager.transact(function () {\n editor.focus();\n editor.execCommand('FontSize', false, rawItem.format);\n });\n };\n };\n var updateSelectMenuText = function (comp) {\n var _a = getMatchingValue(), matchOpt = _a.matchOpt, size = _a.size;\n var text = matchOpt.fold(function () {\n return size;\n }, function (match) {\n return match.title;\n });\n emitWith(comp, updateMenuText, { text: text });\n };\n var nodeChangeHandler = Optional.some(function (comp) {\n return function () {\n return updateSelectMenuText(comp);\n };\n });\n var setInitialValue = Optional.some(function (comp) {\n return updateSelectMenuText(comp);\n });\n var dataset = buildBasicSettingsDataset(editor, 'fontsize_formats', defaultFontsizeFormats, Delimiter.Space);\n return {\n tooltip: 'Font sizes',\n icon: Optional.none(),\n isSelectedFor: isSelectedFor,\n getPreviewFor: getPreviewFor,\n getCurrentValue: getCurrentValue,\n onAction: onAction,\n setInitialValue: setInitialValue,\n nodeChangeHandler: nodeChangeHandler,\n dataset: dataset,\n shouldHide: false,\n isInvalid: never\n };\n };\n var createFontsizeSelect = function (editor, backstage) {\n return createSelectButton(editor, backstage, getSpec$2(editor));\n };\n var fontsizeSelectMenu = function (editor, backstage) {\n var menuItems = createMenuItems(editor, backstage, getSpec$2(editor));\n editor.ui.registry.addNestedMenuItem('fontsizes', {\n text: 'Font sizes',\n getSubmenuItems: function () {\n return menuItems.items.validateItems(menuItems.getStyleItems());\n }\n });\n };\n\n var findNearest = function (editor, getStyles) {\n var styles = getStyles();\n var formats = map(styles, function (style) {\n return style.format;\n });\n return Optional.from(editor.formatter.closest(formats)).bind(function (fmt) {\n return find(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 revocable = function (doRevoke) {\n var subject = Cell(Optional.none());\n var revoke = function () {\n return subject.get().each(doRevoke);\n };\n var clear = function () {\n revoke();\n subject.set(Optional.none());\n };\n var isSet = function () {\n return subject.get().isSome();\n };\n var set = function (s) {\n revoke();\n subject.set(Optional.some(s));\n };\n return {\n clear: clear,\n isSet: isSet,\n set: set\n };\n };\n var destroyable = function () {\n return revocable(function (s) {\n return s.destroy();\n });\n };\n var unbindable = function () {\n return revocable(function (s) {\n return s.unbind();\n });\n };\n var value$3 = function () {\n var subject = Cell(Optional.none());\n var clear = function () {\n return subject.set(Optional.none());\n };\n var set = function (s) {\n return subject.set(Optional.some(s));\n };\n var isSet = function () {\n return subject.get().isSome();\n };\n var on = function (f) {\n return subject.get().each(f);\n };\n return {\n clear: clear,\n set: set,\n isSet: isSet,\n on: on\n };\n };\n\n var onSetupFormatToggle = function (editor, name) {\n return function (api) {\n var boundCallback = unbindable();\n var init = function () {\n api.setActive(editor.formatter.match(name));\n var binding = editor.formatter.formatChanged(name, api.setActive);\n boundCallback.set(binding);\n };\n editor.initialized ? init() : editor.on('init', init);\n return boundCallback.clear;\n };\n };\n var onActionToggleFormat = function (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 defaultBlocks = 'Paragraph=p;' + 'Heading 1=h1;' + 'Heading 2=h2;' + 'Heading 3=h3;' + 'Heading 4=h4;' + 'Heading 5=h5;' + 'Heading 6=h6;' + 'Preformatted=pre';\n var getSpec$3 = function (editor) {\n var isSelectedFor = function (format) {\n return function () {\n return editor.formatter.match(format);\n };\n };\n var getPreviewFor = function (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 var updateSelectMenuText = function (comp) {\n var detectedFormat = findNearest(editor, function () {\n return dataset.data;\n });\n var text = detectedFormat.fold(function () {\n return 'Paragraph';\n }, function (fmt) {\n return fmt.title;\n });\n emitWith(comp, updateMenuText, { text: text });\n };\n var nodeChangeHandler = Optional.some(function (comp) {\n return function () {\n return updateSelectMenuText(comp);\n };\n });\n var setInitialValue = Optional.some(function (comp) {\n return updateSelectMenuText(comp);\n });\n var dataset = buildBasicSettingsDataset(editor, 'block_formats', defaultBlocks, Delimiter.SemiColon);\n return {\n tooltip: 'Blocks',\n icon: Optional.none(),\n isSelectedFor: isSelectedFor,\n getCurrentValue: Optional.none,\n getPreviewFor: getPreviewFor,\n onAction: onActionToggleFormat(editor),\n setInitialValue: setInitialValue,\n nodeChangeHandler: nodeChangeHandler,\n dataset: dataset,\n shouldHide: false,\n isInvalid: function (item) {\n return !editor.formatter.canApply(item.format);\n }\n };\n };\n var createFormatSelect = function (editor, backstage) {\n return createSelectButton(editor, backstage, getSpec$3(editor));\n };\n var formatSelectMenu = function (editor, backstage) {\n var menuItems = createMenuItems(editor, backstage, getSpec$3(editor));\n editor.ui.registry.addNestedMenuItem('blockformats', {\n text: 'Blocks',\n getSubmenuItems: function () {\n return menuItems.items.validateItems(menuItems.getStyleItems());\n }\n });\n };\n\n var getSpec$4 = function (editor, dataset) {\n var isSelectedFor = function (format) {\n return function () {\n return editor.formatter.match(format);\n };\n };\n var getPreviewFor = function (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 var updateSelectMenuText = function (comp) {\n var getFormatItems = function (fmt) {\n var subs = fmt.items;\n return subs !== undefined && subs.length > 0 ? bind(subs, getFormatItems) : [{\n title: fmt.title,\n format: fmt.format\n }];\n };\n var flattenedItems = bind(getStyleFormats(editor), getFormatItems);\n var detectedFormat = findNearest(editor, function () {\n return flattenedItems;\n });\n var text = detectedFormat.fold(function () {\n return 'Paragraph';\n }, function (fmt) {\n return fmt.title;\n });\n emitWith(comp, updateMenuText, { text: text });\n };\n var nodeChangeHandler = Optional.some(function (comp) {\n return function () {\n return updateSelectMenuText(comp);\n };\n });\n var setInitialValue = Optional.some(function (comp) {\n return updateSelectMenuText(comp);\n });\n return {\n tooltip: 'Formats',\n icon: Optional.none(),\n isSelectedFor: isSelectedFor,\n getCurrentValue: Optional.none,\n getPreviewFor: getPreviewFor,\n onAction: onActionToggleFormat(editor),\n setInitialValue: setInitialValue,\n nodeChangeHandler: nodeChangeHandler,\n shouldHide: editor.getParam('style_formats_autohide', false, 'boolean'),\n isInvalid: function (item) {\n return !editor.formatter.canApply(item.format);\n },\n dataset: dataset\n };\n };\n var createStyleSelect = function (editor, backstage) {\n var dataset = __assign({ type: 'advanced' }, backstage.styleselect);\n return createSelectButton(editor, backstage, getSpec$4(editor, dataset));\n };\n var styleSelectMenu = function (editor, backstage) {\n var dataset = __assign({ type: 'advanced' }, backstage.styleselect);\n var menuItems = createMenuItems(editor, backstage, getSpec$4(editor, dataset));\n editor.ui.registry.addNestedMenuItem('formats', {\n text: 'Formats',\n getSubmenuItems: function () {\n return menuItems.items.validateItems(menuItems.getStyleItems());\n }\n });\n };\n\n var defaultToolbar = [\n {\n name: 'history',\n items: [\n 'undo',\n 'redo'\n ]\n },\n {\n name: 'styles',\n items: ['styleselect']\n },\n {\n name: 'formatting',\n items: [\n 'bold',\n 'italic'\n ]\n },\n {\n name: 'alignment',\n items: [\n 'alignleft',\n 'aligncenter',\n 'alignright',\n 'alignjustify'\n ]\n },\n {\n name: 'indentation',\n items: [\n 'outdent',\n 'indent'\n ]\n },\n {\n name: 'permanent pen',\n items: ['permanentpen']\n },\n {\n name: 'comments',\n items: ['addcomment']\n }\n ];\n var renderFromBridge = function (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 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 var buttons = editor.ui.registry.getAll().buttons;\n var identify = function (toolbar) {\n return identifyButtons(editor, {\n buttons: buttons,\n toolbar: toolbar,\n allowToolbarGroups: false\n }, extras, Optional.none());\n };\n var attributes = (_a = {}, _a[Attribute] = extras.backstage.shared.header.isPositionedAtTop() ? AttributeValue.TopToBottom : AttributeValue.BottomToTop, _a);\n switch (getToolbarMode(editor)) {\n case ToolbarMode.floating:\n return renderFloatingToolbarButton(s, extras.backstage, identify, attributes);\n default:\n throw new Error('Toolbar groups are only supported when using floating toolbar mode');\n }\n }),\n styleSelectButton: function (editor, extras) {\n return createStyleSelect(editor, extras.backstage);\n },\n fontsizeSelectButton: function (editor, extras) {\n return createFontsizeSelect(editor, extras.backstage);\n },\n fontSelectButton: function (editor, extras) {\n return createFontSelect(editor, extras.backstage);\n },\n formatButton: function (editor, extras) {\n return createFormatSelect(editor, extras.backstage);\n },\n alignMenuButton: function (editor, extras) {\n return createAlignSelect(editor, extras.backstage);\n }\n };\n var extractFrom = function (spec, extras, editor) {\n return get$1(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 var bespokeButtons = {\n styleselect: types.styleSelectButton,\n fontsizeselect: types.fontsizeSelectButton,\n fontselect: types.fontSelectButton,\n formatselect: types.formatButton,\n align: types.alignMenuButton\n };\n var removeUnusedDefaults = function (buttons) {\n var filteredItemGroups = map(defaultToolbar, function (group) {\n var items = filter(group.items, function (subItem) {\n return has(buttons, subItem) || has(bespokeButtons, subItem);\n });\n return {\n name: group.name,\n items: items\n };\n });\n return filter(filteredItemGroups, function (group) {\n return group.items.length > 0;\n });\n };\n var convertStringToolbar = function (strToolbar) {\n var groupsStrings = strToolbar.split('|');\n return map(groupsStrings, function (g) {\n return { items: g.trim().split(' ') };\n });\n };\n var isToolbarGroupSettingArray = function (toolbar) {\n return isArrayOf(toolbar, function (t) {\n return has(t, 'name') && has(t, 'items');\n });\n };\n var createToolbar = function (toolbarConfig) {\n var toolbar = toolbarConfig.toolbar;\n var buttons = toolbarConfig.buttons;\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 var lookupButton = function (editor, buttons, toolbarItem, allowToolbarGroups, extras, prefixes) {\n return get$1(buttons, toolbarItem.toLowerCase()).orThunk(function () {\n return prefixes.bind(function (ps) {\n return findMap(ps, function (prefix) {\n return get$1(buttons, prefix + toolbarItem.toLowerCase());\n });\n });\n }).fold(function () {\n return get$1(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 var identifyButtons = function (editor, toolbarConfig, extras, prefixes) {\n var toolbarGroups = createToolbar(toolbarConfig);\n var groups = map(toolbarGroups, function (group) {\n var items = bind(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(groups, function (group) {\n return group.items.length > 0;\n });\n };\n\n var bubbleSize = 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 };\n var anchorOverrides = {\n maxHeightFunction: expandable(),\n maxWidthFunction: expandable$1()\n };\n var desktopAnchorSpecLayouts = {\n onLtr: function () {\n return [\n north$1,\n south$1,\n northeast$1,\n southeast$1,\n northwest$1,\n southwest$1,\n north$3,\n south$3,\n northeast$3,\n southeast$3,\n northwest$3,\n southwest$3\n ];\n },\n onRtl: function () {\n return [\n north$1,\n south$1,\n northwest$1,\n southwest$1,\n northeast$1,\n southeast$1,\n north$3,\n south$3,\n northwest$3,\n southwest$3,\n northeast$3,\n southeast$3\n ];\n }\n };\n var mobileAnchorSpecLayouts = {\n onLtr: function () {\n return [\n south$1,\n southeast$1,\n southwest$1,\n northeast$1,\n northwest$1,\n north$1,\n north$3,\n south$3,\n northeast$3,\n southeast$3,\n northwest$3,\n southwest$3\n ];\n },\n onRtl: function () {\n return [\n south$1,\n southwest$1,\n southeast$1,\n northwest$1,\n northeast$1,\n north$1,\n north$3,\n south$3,\n northwest$3,\n southwest$3,\n northeast$3,\n southeast$3\n ];\n }\n };\n var getAnchorLayout = function (position, isTouch) {\n if (position === 'line') {\n return {\n bubble: nu$8(bubbleSize, 0, bubbleAlignments$1),\n layouts: {\n onLtr: function () {\n return [east$1];\n },\n onRtl: function () {\n return [west$1];\n }\n },\n overrides: anchorOverrides\n };\n } else {\n return {\n bubble: nu$8(0, bubbleSize, bubbleAlignments$1),\n layouts: isTouch ? mobileAnchorSpecLayouts : desktopAnchorSpecLayouts,\n overrides: anchorOverrides\n };\n }\n };\n var register$4 = function (editor, registryContextToolbars, sink, extras) {\n var isTouch = detect$3().deviceType.isTouch;\n var contextbar = build$1(renderContextToolbar({\n sink: sink,\n onEscape: function () {\n editor.focus();\n return Optional.some(true);\n }\n }));\n var getBounds = function () {\n return getContextToolbarBounds(editor, extras.backstage.shared);\n };\n var isRangeOverlapping = function (aTop, aBottom, bTop, bBottom) {\n return Math.max(aTop, bTop) <= Math.min(aBottom, bBottom);\n };\n var getLastElementVerticalBound = function () {\n var nodeBounds = lastElement.get().filter(function (ele) {\n return inBody(SugarElement.fromDom(ele));\n }).map(function (ele) {\n return ele.getBoundingClientRect();\n }).getOrThunk(function () {\n return editor.selection.getRng().getBoundingClientRect();\n });\n var diffTop = editor.inline ? get$9().top : absolute$1(SugarElement.fromDom(editor.getBody())).y;\n return {\n y: nodeBounds.top + diffTop,\n bottom: nodeBounds.bottom + diffTop\n };\n };\n var shouldContextToolbarHide = function () {\n if (isTouch() && extras.backstage.isContextMenuOpen()) {\n return true;\n }\n var lastElementBounds = getLastElementVerticalBound();\n var contextToolbarBounds = getBounds();\n return !isRangeOverlapping(lastElementBounds.y, lastElementBounds.bottom, contextToolbarBounds.y, contextToolbarBounds.bottom);\n };\n var close = function () {\n lastAnchor.set(Optional.none());\n InlineView.hide(contextbar);\n };\n var forceHide = function () {\n InlineView.hide(contextbar);\n };\n var hideOrRepositionIfNecessary = function () {\n lastAnchor.get().each(function (anchor) {\n var contextBarEle = contextbar.element;\n remove$6(contextBarEle, 'display');\n if (shouldContextToolbarHide()) {\n set$2(contextBarEle, 'display', 'none');\n } else {\n Positioning.positionWithinBounds(sink, anchor, contextbar, Optional.some(getBounds()));\n }\n });\n };\n var lastAnchor = Cell(Optional.none());\n var lastElement = Cell(Optional.none());\n var timer = Cell(null);\n var wrapInPopDialog = function (toolbarSpec) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-pop__dialog']\n },\n components: [toolbarSpec],\n behaviours: derive$1([\n Keying.config({ mode: 'acyclic' }),\n config('pop-dialog-wrap-events', [\n runOnAttached(function (comp) {\n editor.shortcuts.add('ctrl+F9', 'focus statusbar', function () {\n return Keying.focusIn(comp);\n });\n }),\n runOnDetached(function (_comp) {\n editor.shortcuts.remove('ctrl+F9');\n })\n ])\n ])\n };\n };\n var getScopes = cached(function () {\n return categorise(registryContextToolbars, function (toolbarApi) {\n var alloySpec = buildToolbar([toolbarApi]);\n emitWith(contextbar, forwardSlideEvent, { forwardContents: wrapInPopDialog(alloySpec) });\n });\n });\n var buildContextToolbarGroups = function (allButtons, ctx) {\n return identifyButtons(editor, {\n buttons: allButtons,\n toolbar: ctx.items,\n allowToolbarGroups: false\n }, extras, Optional.some(['form:']));\n };\n var buildContextMenuGroups = function (ctx, providers) {\n return ContextForm.buildInitGroups(ctx, providers);\n };\n var buildToolbar = function (toolbars) {\n var buttons = editor.ui.registry.getAll().buttons;\n var scopes = getScopes();\n var allButtons = __assign(__assign({}, buttons), scopes.formNavigators);\n var toolbarType = getToolbarMode(editor) === ToolbarMode.scrolling ? ToolbarMode.scrolling : ToolbarMode.default;\n var initGroups = flatten(map(toolbars, function (ctx) {\n return ctx.type === 'contexttoolbar' ? buildContextToolbarGroups(allButtons, ctx) : buildContextMenuGroups(ctx, extras.backstage.shared.providers);\n }));\n return renderToolbar({\n type: toolbarType,\n uid: generate$1('context-toolbar'),\n initGroups: initGroups,\n onEscape: Optional.none,\n cyclicKeying: true,\n providers: extras.backstage.shared.providers\n });\n };\n editor.on(showContextToolbarEvent, function (e) {\n var scopes = getScopes();\n get$1(scopes.lookupTable, e.toolbarKey).each(function (ctx) {\n launchContext([ctx], e.target === editor ? Optional.none() : Optional.some(e));\n InlineView.getContent(contextbar).each(Keying.focusIn);\n });\n });\n var getAnchor = function (position, element) {\n var anchorage = position === 'node' ? extras.backstage.shared.anchors.node(element) : extras.backstage.shared.anchors.cursor();\n return deepMerge(anchorage, getAnchorLayout(position, isTouch()));\n };\n var launchContext = function (toolbarApi, elem) {\n clearTimer();\n if (isTouch() && extras.backstage.isContextMenuOpen()) {\n return;\n }\n var toolbarSpec = buildToolbar(toolbarApi);\n var sElem = elem.map(SugarElement.fromDom);\n var anchor = getAnchor(toolbarApi[0].position, sElem);\n lastAnchor.set(Optional.some(anchor));\n lastElement.set(elem);\n var contextBarEle = contextbar.element;\n remove$6(contextBarEle, 'display');\n InlineView.showWithinBounds(contextbar, anchor, wrapInPopDialog(toolbarSpec), function () {\n return Optional.some(getBounds());\n });\n if (shouldContextToolbarHide()) {\n set$2(contextBarEle, 'display', 'none');\n }\n };\n var launchContextToolbar = function () {\n if (!editor.hasFocus()) {\n return;\n }\n var scopes = getScopes();\n lookup$1(scopes, editor).fold(close, function (info) {\n launchContext(info.toolbars, Optional.some(info.elem.dom));\n });\n };\n var clearTimer = function () {\n var current = timer.get();\n if (current !== null) {\n global$2.clearTimeout(current);\n timer.set(null);\n }\n };\n var asyncOpen = function () {\n clearTimer();\n timer.set(global$2.setEditorTimeout(editor, launchContextToolbar, 0));\n };\n editor.on('init', function () {\n editor.on(hideContextToolbarEvent, forceHide);\n editor.on('ScrollContent ScrollWindow longpress', hideOrRepositionIfNecessary);\n editor.on('click keyup focus SetContent ObjectResized ResizeEditor', function () {\n asyncOpen();\n });\n editor.on('focusout', function (_e) {\n global$2.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 asyncOpen();\n }\n });\n editor.on('NodeChange', function (_e) {\n search(contextbar.element).fold(asyncOpen, noop);\n });\n });\n };\n\n var setup$3 = function (editor, mothership, uiMothership) {\n var broadcastEvent = function (name, evt) {\n each([\n mothership,\n uiMothership\n ], function (ship) {\n ship.broadcastEvent(name, evt);\n });\n };\n var broadcastOn = function (channel, message) {\n each([\n mothership,\n uiMothership\n ], function (ship) {\n ship.broadcastOn([channel], message);\n });\n };\n var fireDismissPopups = function (evt) {\n return broadcastOn(dismissPopups(), { target: evt.target });\n };\n var onTouchstart = bind$3(SugarElement.fromDom(document), 'touchstart', fireDismissPopups);\n var onTouchmove = bind$3(SugarElement.fromDom(document), 'touchmove', function (evt) {\n return broadcastEvent(documentTouchmove(), evt);\n });\n var onTouchend = bind$3(SugarElement.fromDom(document), 'touchend', function (evt) {\n return broadcastEvent(documentTouchend(), evt);\n });\n var onMousedown = bind$3(SugarElement.fromDom(document), 'mousedown', fireDismissPopups);\n var onMouseup = bind$3(SugarElement.fromDom(document), 'mouseup', function (evt) {\n if (evt.raw.button === 0) {\n broadcastOn(mouseReleased(), { target: evt.target });\n }\n });\n var onContentClick = function (raw) {\n return broadcastOn(dismissPopups(), { target: SugarElement.fromDom(raw.target) });\n };\n var onContentMouseup = function (raw) {\n if (raw.button === 0) {\n broadcastOn(mouseReleased(), { target: SugarElement.fromDom(raw.target) });\n }\n };\n var onWindowScroll = function (evt) {\n return broadcastEvent(windowScroll(), fromRawEvent$1(evt));\n };\n var onWindowResize = function (evt) {\n broadcastOn(repositionPopups(), {});\n broadcastEvent(windowResize(), fromRawEvent$1(evt));\n };\n var onEditorResize = function () {\n return broadcastOn(repositionPopups(), {});\n };\n var onEditorProgress = function (evt) {\n if (evt.state) {\n broadcastOn(dismissPopups(), { target: SugarElement.fromDom(editor.getContainer()) });\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('ScrollWindow', onWindowScroll);\n editor.on('ResizeWindow', onWindowResize);\n editor.on('ResizeEditor', onEditorResize);\n editor.on('AfterProgressState', onEditorProgress);\n });\n editor.on('remove', function () {\n editor.off('click', onContentClick);\n editor.off('tap', onContentClick);\n editor.off('mouseup', onContentMouseup);\n editor.off('ScrollWindow', onWindowScroll);\n editor.off('ResizeWindow', onWindowResize);\n editor.off('ResizeEditor', onEditorResize);\n editor.off('AfterProgressState', onEditorProgress);\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$d = AlloyParts;\n var partType$1 = PartType;\n\n var schema$r = constant([\n defaulted$1('shell', false),\n strict$1('makeItem'),\n defaulted$1('setupItem', noop),\n SketchBehaviours.field('listBehaviours', [Replacing])\n ]);\n var customListDetail = function () {\n return { behaviours: derive$1([Replacing.config({})]) };\n };\n var itemsPart = optional({\n name: 'items',\n overrides: customListDetail\n });\n var parts$e = constant([itemsPart]);\n var name$2 = constant('CustomList');\n\n var factory$f = function (detail, components, _spec, _external) {\n var setItems = function (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(numListsToAdd, function () {\n return detail.makeItem();\n }) : [];\n var itemsToRemove = itemComps.slice(numListsRequired);\n each(itemsToRemove, function (item) {\n return Replacing.remove(container, item);\n });\n each(itemsToAdd, function (item) {\n return Replacing.append(container, item);\n });\n var builtLists = Replacing.contents(container);\n each(builtLists, function (item, i) {\n detail.setupItem(list, item, items[i], i);\n });\n });\n };\n var extra = detail.shell ? {\n behaviours: [Replacing.config({})],\n components: []\n } : {\n behaviours: [],\n components: components\n };\n var getListContainer = function (component) {\n return detail.shell ? Optional.some(component) : getPart(component, detail, 'items');\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: extra.components,\n behaviours: augment(detail.listBehaviours, extra.behaviours),\n apis: { setItems: setItems }\n };\n };\n var CustomList = composite$1({\n name: name$2(),\n configFields: schema$r(),\n partFields: parts$e(),\n factory: factory$f,\n apis: {\n setItems: function (apis, list, items) {\n apis.setItems(list, items);\n }\n }\n });\n\n var setup$4 = noop;\n var isDocked = never;\n var getBehaviours$2 = constant([]);\n\n var StaticHeader = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setup: setup$4,\n isDocked: isDocked,\n getBehaviours: getBehaviours$2\n });\n\n var getOffsetParent = function (element) {\n var isFixed = getRaw(element, 'position').is('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(parent, marker);\n var offsetParent$1 = offsetParent(marker);\n remove(marker);\n return offsetParent$1;\n });\n });\n };\n var getOrigin = function (element) {\n return getOffsetParent(element).map(absolute).getOrThunk(function () {\n return SugarPosition(0, 0);\n });\n };\n\n var morphAdt = Adt.generate([\n { static: [] },\n { absolute: ['positionCss'] },\n { fixed: ['positionCss'] }\n ]);\n var appear = function (component, contextualInfo) {\n var elem = component.element;\n add$2(elem, contextualInfo.transitionClass);\n remove$4(elem, contextualInfo.fadeOutClass);\n add$2(elem, contextualInfo.fadeInClass);\n contextualInfo.onShow(component);\n };\n var disappear = function (component, contextualInfo) {\n var elem = component.element;\n add$2(elem, contextualInfo.transitionClass);\n remove$4(elem, contextualInfo.fadeInClass);\n add$2(elem, contextualInfo.fadeOutClass);\n contextualInfo.onHide(component);\n };\n var isPartiallyVisible = function (box, viewport) {\n return box.y < viewport.bottom && box.bottom > viewport.y;\n };\n var isTopCompletelyVisible = function (box, viewport) {\n return box.y >= viewport.y;\n };\n var isBottomCompletelyVisible = function (box, viewport) {\n return box.bottom <= viewport.bottom;\n };\n var isVisibleForModes = function (modes, box, viewport) {\n return forall(modes, function (mode) {\n switch (mode) {\n case 'bottom':\n return isBottomCompletelyVisible(box, viewport);\n case 'top':\n return isTopCompletelyVisible(box, viewport);\n }\n });\n };\n var getPrior = function (elem, state) {\n return state.getInitialPosition().map(function (pos) {\n return bounds$1(pos.bounds.x, pos.bounds.y, get$8(elem), get$7(elem));\n });\n };\n var storePrior = function (elem, box, state) {\n state.setInitialPosition(Optional.some({\n style: getAllRaw(elem),\n position: get$5(elem, 'position') || 'static',\n bounds: box\n }));\n };\n var revertToOriginal = function (elem, box$1, state) {\n return state.getInitialPosition().bind(function (position) {\n state.setInitialPosition(Optional.none());\n switch (position.position) {\n case 'static':\n return Optional.some(morphAdt.static());\n case 'absolute':\n var offsetBox_1 = getOffsetParent(elem).map(box).getOrThunk(function () {\n return box(body());\n });\n return Optional.some(morphAdt.absolute(NuPositionCss('absolute', get$1(position.style, 'left').map(function (_left) {\n return box$1.x - offsetBox_1.x;\n }), get$1(position.style, 'top').map(function (_top) {\n return box$1.y - offsetBox_1.y;\n }), get$1(position.style, 'right').map(function (_right) {\n return offsetBox_1.right - box$1.right;\n }), get$1(position.style, 'bottom').map(function (_bottom) {\n return offsetBox_1.bottom - box$1.bottom;\n }))));\n default:\n return Optional.none();\n }\n });\n };\n var morphToOriginal = function (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 var morphToFixed = function (elem, viewport, state) {\n var box$1 = box(elem);\n if (!isVisibleForModes(state.getModes(), box$1, viewport)) {\n storePrior(elem, box$1, state);\n var winBox = win();\n var left = box$1.x - winBox.x;\n var top_1 = viewport.y - winBox.y;\n var bottom = winBox.bottom - viewport.bottom;\n var isTop = box$1.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 var getMorph = function (component, viewport, state) {\n var elem = component.element;\n var isDocked = getRaw(elem, 'position').is('fixed');\n return isDocked ? morphToOriginal(elem, viewport, state) : morphToFixed(elem, viewport, state);\n };\n var getMorphToOriginal = function (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 (component, config) {\n each([\n 'left',\n 'right',\n 'top',\n 'bottom',\n 'position'\n ], function (prop) {\n return remove$6(component.element, prop);\n });\n config.onUndocked(component);\n };\n var morphToCoord = function (component, config, position) {\n applyPositionCss(component.element, position);\n var method = position.position === 'fixed' ? config.onDocked : config.onUndocked;\n method(component);\n };\n var updateVisibility = function (component, config, state, viewport, morphToDocked) {\n if (morphToDocked === void 0) {\n morphToDocked = false;\n }\n config.contextual.each(function (contextInfo) {\n contextInfo.lazyContext(component).each(function (box) {\n var isVisible = isPartiallyVisible(box, viewport);\n if (isVisible !== state.isVisible()) {\n state.setVisible(isVisible);\n if (morphToDocked && !isVisible) {\n add$3(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 var refreshInternal = function (component, config, state) {\n var viewport = config.lazyViewport(component);\n var isDocked = state.isDocked();\n if (isDocked) {\n updateVisibility(component, config, state, viewport);\n }\n getMorph(component, viewport, state).each(function (morph) {\n state.setDocked(!isDocked);\n morph.fold(function () {\n return morphToStatic(component, config);\n }, function (position) {\n return morphToCoord(component, config, position);\n }, function (position) {\n updateVisibility(component, config, state, viewport, true);\n morphToCoord(component, config, position);\n });\n });\n };\n var resetInternal = function (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);\n }, function (position) {\n return morphToCoord(component, config, position);\n }, noop);\n });\n state.setVisible(true);\n config.contextual.each(function (contextInfo) {\n remove$5(elem, [\n contextInfo.fadeInClass,\n contextInfo.fadeOutClass,\n contextInfo.transitionClass\n ]);\n contextInfo.onShow(component);\n });\n refresh$4(component, config, state);\n };\n var refresh$4 = function (component, config, state) {\n if (component.getSystem().isConnected()) {\n refreshInternal(component, config, state);\n }\n };\n var reset = function (component, config, state) {\n if (state.isDocked()) {\n resetInternal(component, config, state);\n }\n };\n var isDocked$1 = function (component, config, state) {\n return state.isDocked();\n };\n var setModes = function (component, config, state, modes) {\n return state.setModes(modes);\n };\n var getModes = function (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$f = function (dockInfo, dockState) {\n return derive([\n runOnSource(transitionend(), function (component, simulatedEvent) {\n dockInfo.contextual.each(function (contextInfo) {\n if (has$2(component.element, contextInfo.transitionClass)) {\n remove$5(component.element, [\n contextInfo.transitionClass,\n contextInfo.fadeInClass\n ]);\n var notify = dockState.isVisible() ? contextInfo.onShown : contextInfo.onHidden;\n notify(component);\n }\n simulatedEvent.stop();\n });\n }),\n run(windowScroll(), function (component, _) {\n refresh$4(component, dockInfo, dockState);\n }),\n run(windowResize(), function (component, _) {\n reset(component, dockInfo, dockState);\n })\n ]);\n };\n\n var ActiveDocking = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$f\n });\n\n var DockingSchema = [\n optionObjOf('contextual', [\n strictString('fadeInClass'),\n strictString('fadeOutClass'),\n strictString('transitionClass'),\n strictFunction('lazyContext'),\n onHandler('onShow'),\n onHandler('onShown'),\n onHandler('onHide'),\n onHandler('onHidden')\n ]),\n defaultedFunction('lazyViewport', win),\n defaultedArrayOf('modes', [\n 'top',\n 'bottom'\n ], string),\n onHandler('onDocked'),\n onHandler('onUndocked')\n ];\n\n var init$b = function (spec) {\n var docked = Cell(false);\n var visible = Cell(true);\n var initialBounds = Cell(Optional.none());\n var modes = Cell(spec.modes);\n var readState = function () {\n return 'docked: ' + docked.get() + ', visible: ' + visible.get() + ', modes: ' + modes.get().join(',');\n };\n return nu$5({\n isDocked: docked.get,\n setDocked: docked.set,\n getInitialPosition: initialBounds.get,\n setInitialPosition: initialBounds.set,\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$b\n });\n\n var Docking = create$1({\n fields: DockingSchema,\n name: 'docking',\n active: ActiveDocking,\n apis: DockingApis,\n state: DockingState\n });\n\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 var scrollFromBehindHeader = function (e, containerHeader) {\n var doc = owner(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$1(markerElement);\n var markerHeight = get$7(markerElement);\n var markerTop = markerPos.y;\n var markerBottom = markerTop + markerHeight;\n var editorHeaderPos = absolute(containerHeader);\n var editorHeaderHeight = get$7(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 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 var isDockedMode = function (header, mode) {\n return contains(Docking.getModes(header), mode);\n };\n var updateIframeContentFlow = function (header) {\n var getOccupiedHeight = function (elm) {\n return getOuter$1(elm) + (parseInt(get$5(elm, 'margin-top'), 10) || 0) + (parseInt(get$5(elm, 'margin-bottom'), 10) || 0);\n };\n var elm = header.element;\n parent(elm).each(function (parentElem) {\n var padding = 'padding-' + Docking.getModes(header)[0];\n if (Docking.isDocked(header)) {\n var parentWidth = get$8(parentElem);\n set$2(elm, 'width', parentWidth + 'px');\n set$2(parentElem, padding, getOccupiedHeight(elm) + 'px');\n } else {\n remove$6(elm, 'width');\n remove$6(parentElem, padding);\n }\n });\n };\n var updateSinkVisibility = function (sinkElem, visible) {\n if (visible) {\n remove$4(sinkElem, visibility.fadeOutClass);\n add$3(sinkElem, [\n visibility.transitionClass,\n visibility.fadeInClass\n ]);\n } else {\n remove$4(sinkElem, visibility.fadeInClass);\n add$3(sinkElem, [\n visibility.fadeOutClass,\n visibility.transitionClass\n ]);\n }\n };\n var updateEditorClasses = function (editor, docked) {\n var editorContainer = SugarElement.fromDom(editor.getContainer());\n if (docked) {\n add$2(editorContainer, editorStickyOnClass);\n remove$4(editorContainer, editorStickyOffClass);\n } else {\n add$2(editorContainer, editorStickyOffClass);\n remove$4(editorContainer, editorStickyOnClass);\n }\n };\n var restoreFocus = function (headerElem, focusedElem) {\n var ownerDoc = owner(focusedElem);\n active(ownerDoc).filter(function (activeElm) {\n return !eq$1(focusedElem, activeElm);\n }).filter(function (activeElm) {\n return eq$1(activeElm, SugarElement.fromDom(ownerDoc.dom.body)) || contains$2(headerElem, activeElm);\n }).each(function () {\n return focus$1(focusedElem);\n });\n };\n var findFocusedElem = function (rootElm, lazySink) {\n return search(rootElm).orThunk(function () {\n return lazySink().toOptional().bind(function (sink) {\n return search(sink.element);\n });\n });\n };\n var setup$5 = function (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 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 editor.on('AfterScrollIntoView', function (e) {\n lazyHeader().each(function (header) {\n Docking.refresh(header);\n var headerElem = header.element;\n if (isVisible(headerElem)) {\n scrollFromBehindHeader(e, headerElem);\n }\n });\n });\n editor.on('PostRender', function () {\n updateEditorClasses(editor, false);\n });\n };\n var isDocked$2 = function (lazyHeader) {\n return lazyHeader().map(Docking.isDocked).getOr(false);\n };\n var getIframeBehaviours = function () {\n var _a;\n return [Receiving.config({ channels: (_a = {}, _a[toolbarHeightChange()] = { onReceive: updateIframeContentFlow }, _a) })];\n };\n var getBehaviours$3 = function (editor, sharedBackstage) {\n var focusedElm = Cell(Optional.none());\n var lazySink = sharedBackstage.getSink;\n var runOnSinkElement = function (f) {\n lazySink().each(function (sink) {\n return f(sink.element);\n });\n };\n var onDockingSwitch = function (comp) {\n if (!editor.inline) {\n updateIframeContentFlow(comp);\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 var additionalBehaviours = editor.inline ? [] : getIframeBehaviours();\n return __spreadArrays([\n Focusing.config({}),\n Docking.config({\n contextual: __assign({\n lazyContext: function (comp) {\n var headerHeight = getOuter$1(comp.element);\n var container = editor.inline ? editor.getContentAreaContainer() : editor.getContainer();\n var box$1 = box(SugarElement.fromDom(container));\n var boxHeight = box$1.height - headerHeight;\n var topBound = box$1.y + (isDockedMode(comp, 'top') ? 0 : headerHeight);\n return Optional.some(bounds$1(box$1.x, topBound, box$1.width, boxHeight));\n },\n onShow: function () {\n runOnSinkElement(function (elem) {\n return updateSinkVisibility(elem, true);\n });\n },\n onShown: function (comp) {\n runOnSinkElement(function (elem) {\n return remove$5(elem, [\n visibility.transitionClass,\n visibility.fadeInClass\n ]);\n });\n focusedElm.get().each(function (elem) {\n restoreFocus(comp.element, elem);\n focusedElm.set(Optional.none());\n });\n },\n onHide: function (comp) {\n focusedElm.set(findFocusedElem(comp.element, lazySink));\n runOnSinkElement(function (elem) {\n return updateSinkVisibility(elem, false);\n });\n },\n onHidden: function () {\n runOnSinkElement(function (elem) {\n return remove$5(elem, [visibility.transitionClass]);\n });\n }\n }, visibility),\n modes: [sharedBackstage.header.getDockingMode()],\n onDocked: onDockingSwitch,\n onUndocked: onDockingSwitch\n })\n ], additionalBehaviours);\n };\n\n var StickyHeader = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setup: setup$5,\n isDocked: isDocked$2,\n getBehaviours: getBehaviours$3\n });\n\n var renderHeader = function (spec) {\n var editor = spec.editor;\n var getBehaviours = spec.sticky ? getBehaviours$3 : getBehaviours$2;\n return {\n uid: spec.uid,\n dom: spec.dom,\n components: spec.components,\n behaviours: derive$1(getBehaviours(editor, spec.sharedBackstage))\n };\n };\n\n var factory$g = function (detail, spec) {\n var setMenus = function (comp, menus) {\n var newMenus = map(menus, function (m) {\n var buttonSpec = {\n type: 'menubutton',\n text: m.text,\n fetch: function (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 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([\n Replacing.config({}),\n config('menubar-events', [\n runOnAttached(function (component) {\n detail.onSetup(component);\n }),\n run(mouseover(), function (comp, se) {\n descendant$1(comp.element, '.' + 'tox-mbtn--active').each(function (activeButton) {\n closest$3(se.event.target, '.' + 'tox-mbtn').each(function (hoveredButton) {\n if (!eq$1(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 }),\n run(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 })\n ]),\n Keying.config({\n mode: 'flow',\n selector: '.' + 'tox-mbtn',\n onEscape: function (comp) {\n detail.onEscape(comp);\n return Optional.some(true);\n }\n }),\n Tabstopping.config({})\n ]),\n apis: apis,\n domModification: { attributes: { role: 'menubar' } }\n };\n };\n var SilverMenubar = single$2({\n factory: factory$g,\n name: 'silver.Menubar',\n configFields: [\n strict$1('dom'),\n strict$1('uid'),\n strict$1('onEscape'),\n strict$1('backstage'),\n defaulted$1('onSetup', noop)\n ],\n apis: {\n focus: function (apis, comp) {\n apis.focus(comp);\n },\n setMenus: function (apis, comp, menus) {\n apis.setMenus(comp, menus);\n }\n }\n });\n\n var owner$4 = 'container';\n var schema$s = [field$1('slotBehaviours', [])];\n var getPartName$1 = function (name) {\n return '';\n };\n var sketch$2 = function (sSpec) {\n var parts = function () {\n var record = [];\n var slot = function (name, config) {\n record.push(name);\n return generateOne(owner$4, getPartName$1(name), config);\n };\n return {\n slot: slot,\n record: function () {\n return record;\n }\n };\n }();\n var spec = sSpec(parts);\n var partNames = parts.record();\n var fieldParts = map(partNames, function (n) {\n return required({\n name: n,\n pname: getPartName$1(n)\n });\n });\n return composite(owner$4, schema$s, fieldParts, make$7, spec);\n };\n var make$7 = function (detail, components) {\n var getSlotNames = function (_) {\n return getAllPartNames(detail);\n };\n var getSlot = function (container, key) {\n return getPart(container, detail, key);\n };\n var onSlot = function (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 var onSlots = function (f) {\n return function (container, keys) {\n each(keys, function (key) {\n return f(container, key);\n });\n };\n };\n var doShowing = function (comp, _key) {\n return get$3(comp.element, 'aria-hidden') !== 'true';\n };\n var doShow = function (comp, key) {\n if (!doShowing(comp)) {\n var element = comp.element;\n remove$6(element, 'display');\n remove$1(element, 'aria-hidden');\n emitWith(comp, slotVisibility(), {\n name: key,\n visible: true\n });\n }\n };\n var doHide = function (comp, key) {\n if (doShowing(comp)) {\n var element = comp.element;\n set$2(element, 'display', 'none');\n set$1(element, 'aria-hidden', 'true');\n emitWith(comp, slotVisibility(), {\n name: key,\n visible: false\n });\n }\n };\n var isShowing = onSlot(doShowing, false);\n var hideSlot = onSlot(doHide);\n var hideSlots = onSlots(hideSlot);\n var hideAllSlots = function (container) {\n return hideSlots(container, getSlotNames());\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$d(detail.slotBehaviours),\n apis: apis\n };\n };\n var slotApis = map$2({\n getSlotNames: function (apis, c) {\n return apis.getSlotNames(c);\n },\n getSlot: function (apis, c, key) {\n return apis.getSlot(c, key);\n },\n isShowing: function (apis, c, key) {\n return apis.isShowing(c, key);\n },\n hideSlot: function (apis, c, key) {\n return apis.hideSlot(c, key);\n },\n hideAllSlots: function (apis, c) {\n return apis.hideAllSlots(c);\n },\n showSlot: function (apis, c, key) {\n return apis.showSlot(c, key);\n }\n }, function (value) {\n return makeApi(value);\n });\n var SlotContainer = __assign(__assign({}, slotApis), { sketch: sketch$2 });\n\n var sidebarSchema = objOf([\n optionString('icon'),\n optionString('tooltip'),\n defaultedFunction('onShow', noop),\n defaultedFunction('onHide', noop),\n defaultedFunction('onSetup', function () {\n return noop;\n })\n ]);\n var createSidebar = function (spec) {\n return asRaw('sidebar', sidebarSchema, spec);\n };\n\n var setup$6 = function (editor) {\n var sidebars = editor.ui.registry.getAll().sidebars;\n each(keys(sidebars), function (name) {\n var spec = sidebars[name];\n var isActive = function () {\n return Optional.from(editor.queryCommandValue('ToggleSidebar')).is(name);\n };\n editor.ui.registry.addToggleButton(name, {\n icon: spec.icon,\n tooltip: spec.tooltip,\n onAction: function (buttonApi) {\n editor.execCommand('ToggleSidebar', false, name);\n buttonApi.setActive(isActive());\n },\n onSetup: function (buttonApi) {\n var handleToggle = function () {\n return buttonApi.setActive(isActive());\n };\n editor.on('ToggleSidebar', handleToggle);\n return function () {\n editor.off('ToggleSidebar', handleToggle);\n };\n }\n });\n });\n };\n var getApi = function (comp) {\n return {\n element: function () {\n return comp.element.dom;\n }\n };\n };\n var makePanels = function (parts, panelConfigs) {\n var specs = map(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(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([\n onControlAttached(spec, editorOffCell),\n onControlDetached(spec, editorOffCell),\n run(slotVisibility(), function (sidepanel, se) {\n var data = se.event;\n var optSidePanelSpec = find(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 (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 var setSidebar = function (sidebar, panelConfigs) {\n var optSlider = Composing.getCurrent(sidebar);\n optSlider.each(function (slider) {\n return Replacing.set(slider, [makeSidebar(panelConfigs)]);\n });\n };\n var toggleSidebar = function (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 var whichSidebar = function (sidebar) {\n var optSlider = Composing.getCurrent(sidebar);\n return optSlider.bind(function (slider) {\n var sidebarOpen = Sliding.isGrowing(slider) || Sliding.hasGrown(slider);\n if (sidebarOpen) {\n var optSlotContainer = Composing.getCurrent(slider);\n return optSlotContainer.bind(function (slotContainer) {\n return find(SlotContainer.getSlotNames(slotContainer), function (name) {\n return SlotContainer.isShowing(slotContainer, name);\n });\n });\n } else {\n return Optional.none();\n }\n });\n };\n var fixSize = generate$1('FixSizeEvent');\n var autoSize = generate$1('AutoSizeEvent');\n var renderSidebar = function (spec) {\n return {\n uid: spec.uid,\n dom: {\n tag: 'div',\n classes: ['tox-sidebar'],\n attributes: { role: 'complementary' }\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-sidebar__slider']\n },\n components: [],\n behaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({}),\n Sliding.config({\n dimension: { property: 'width' },\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 (slider) {\n var optSlotContainer = Composing.getCurrent(slider);\n optSlotContainer.each(SlotContainer.hideAllSlots);\n emit(slider, autoSize);\n },\n onGrown: function (slider) {\n emit(slider, autoSize);\n },\n onStartGrow: function (slider) {\n emitWith(slider, fixSize, { width: getRaw(slider.element, 'width').getOr('') });\n },\n onStartShrink: function (slider) {\n emitWith(slider, fixSize, { width: get$8(slider.element) + 'px' });\n }\n }),\n Replacing.config({}),\n Composing.config({\n find: function (comp) {\n var children = Replacing.contents(comp);\n return head(children);\n }\n })\n ])\n }],\n behaviours: derive$1([\n ComposingConfigs.childAt(0),\n config('sidebar-sliding-events', [\n run(fixSize, function (comp, se) {\n set$2(comp.element, 'width', se.event.width);\n }),\n run(autoSize, function (comp, _se) {\n remove$6(comp.element, 'width');\n })\n ])\n ])\n };\n };\n\n var getAttrs = function (elem) {\n var attributes = elem.dom.attributes !== undefined ? elem.dom.attributes : [];\n return foldl(attributes, function (b, attr) {\n var _a;\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 var getClasses = function (elem) {\n return Array.prototype.slice.call(elem.dom.classList, 0);\n };\n var fromHtml$2 = function (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 ? {} : { innerHtml: get$2(elem) };\n return __assign({\n tag: name(elem),\n classes: classes,\n attributes: attrs\n }, contents);\n };\n\n var renderSpinner = function (providerBackstage) {\n return {\n dom: {\n tag: 'div',\n attributes: { 'aria-label': providerBackstage.translate('Loading...') },\n classes: ['tox-throbber__busy-spinner']\n },\n components: [{ dom: fromHtml$2('
') }],\n behaviours: derive$1([\n Keying.config({\n mode: 'special',\n onTab: function () {\n return Optional.some(true);\n },\n onShiftTab: function () {\n return Optional.some(true);\n }\n }),\n Focusing.config({})\n ])\n };\n };\n var toggleThrobber = function (comp, state, providerBackstage) {\n var element = comp.element;\n if (state === true) {\n Replacing.set(comp, [renderSpinner(providerBackstage)]);\n remove$6(element, 'display');\n remove$1(element, 'aria-hidden');\n } else {\n Replacing.set(comp, []);\n set$2(element, 'display', 'none');\n set$1(element, 'aria-hidden', 'true');\n }\n };\n var renderThrobber = function (spec) {\n return {\n uid: spec.uid,\n dom: {\n tag: 'div',\n attributes: { 'aria-hidden': 'true' },\n classes: ['tox-throbber'],\n styles: { display: 'none' }\n },\n behaviours: derive$1([Replacing.config({})]),\n components: []\n };\n };\n var setup$7 = function (editor, lazyThrobber, sharedBackstage) {\n var throbberState = Cell(false);\n var timer = Cell(Optional.none());\n var toggle = function (state) {\n if (state !== throbberState.get()) {\n toggleThrobber(lazyThrobber(), state, sharedBackstage.providers);\n throbberState.set(state);\n editor.fire('AfterProgressState', { state: state });\n }\n };\n editor.on('ProgressState', function (e) {\n timer.get().each(global$2.clearTimeout);\n if (isNumber(e.time)) {\n var timerId = global$2.setEditorTimeout(editor, function () {\n return toggle(e.state);\n }, e.time);\n timer.set(Optional.some(timerId));\n } else {\n toggle(e.state);\n timer.set(Optional.none());\n }\n });\n };\n\n var factory$h = function (detail, components, _spec) {\n var apis = {\n getSocket: function (comp) {\n return parts$d.getPart(comp, detail, 'socket');\n },\n setSidebar: function (comp, panelConfigs) {\n parts$d.getPart(comp, detail, 'sidebar').each(function (sidebar) {\n return setSidebar(sidebar, panelConfigs);\n });\n },\n toggleSidebar: function (comp, name) {\n parts$d.getPart(comp, detail, 'sidebar').each(function (sidebar) {\n return toggleSidebar(sidebar, name);\n });\n },\n whichSidebar: function (comp) {\n return parts$d.getPart(comp, detail, 'sidebar').bind(whichSidebar).getOrNull();\n },\n getHeader: function (comp) {\n return parts$d.getPart(comp, detail, 'header');\n },\n getToolbar: function (comp) {\n return parts$d.getPart(comp, detail, 'toolbar');\n },\n setToolbar: function (comp, groups) {\n parts$d.getPart(comp, detail, 'toolbar').each(function (toolbar) {\n toolbar.getApis().setGroups(toolbar, groups);\n });\n },\n setToolbars: function (comp, toolbars) {\n parts$d.getPart(comp, detail, 'multiple-toolbar').each(function (mToolbar) {\n CustomList.setItems(mToolbar, toolbars);\n });\n },\n refreshToolbar: function (comp) {\n var toolbar = parts$d.getPart(comp, detail, 'toolbar');\n toolbar.each(function (toolbar) {\n return toolbar.getApis().refresh(toolbar);\n });\n },\n toggleToolbarDrawer: function (comp) {\n parts$d.getPart(comp, detail, 'toolbar').each(function (toolbar) {\n mapFrom(toolbar.getApis().toggle, function (toggle) {\n return toggle(toolbar);\n });\n });\n },\n isToolbarDrawerToggled: function (comp) {\n return parts$d.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 (comp) {\n return parts$d.getPart(comp, detail, 'throbber');\n },\n focusToolbar: function (comp) {\n var optToolbar = parts$d.getPart(comp, detail, 'toolbar').orThunk(function () {\n return parts$d.getPart(comp, detail, 'multiple-toolbar');\n });\n optToolbar.each(function (toolbar) {\n Keying.focusIn(toolbar);\n });\n },\n setMenubar: function (comp, menus) {\n parts$d.getPart(comp, detail, 'menubar').each(function (menubar) {\n SilverMenubar.setMenus(menubar, menus);\n });\n },\n focusMenubar: function (comp) {\n parts$d.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 var partMenubar = partType$1.optional({\n factory: SilverMenubar,\n name: 'menubar',\n schema: [strict$1('backstage')]\n });\n var toolbarFactory = function (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 var partMultipleToolbar = partType$1.optional({\n factory: {\n sketch: function (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 () {\n return renderToolbar({\n type: spec.type,\n uid: generate$1('multiple-toolbar-item'),\n cyclicKeying: false,\n initGroups: [],\n providers: spec.providers,\n onEscape: function () {\n spec.onEscape();\n return Optional.some(true);\n }\n });\n },\n setupItem: function (_mToolbar, tc, data, _index) {\n Toolbar.setGroups(tc, data);\n },\n shell: true\n });\n }\n },\n name: 'multiple-toolbar',\n schema: [\n strict$1('dom'),\n strict$1('onEscape')\n ]\n });\n var partToolbar = partType$1.optional({\n factory: {\n sketch: function (spec) {\n var renderer = toolbarFactory(spec);\n var toolbarSpec = {\n type: spec.type,\n uid: spec.uid,\n onEscape: function () {\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: [\n strict$1('dom'),\n strict$1('onEscape'),\n strict$1('getSink')\n ]\n });\n var partHeader = partType$1.optional({\n factory: { sketch: renderHeader },\n name: 'header',\n schema: [strict$1('dom')]\n });\n var partSocket = partType$1.optional({\n name: 'socket',\n schema: [strict$1('dom')]\n });\n var partSidebar = partType$1.optional({\n factory: { sketch: renderSidebar },\n name: 'sidebar',\n schema: [strict$1('dom')]\n });\n var partThrobber = partType$1.optional({\n factory: { sketch: renderThrobber },\n name: 'throbber',\n schema: [strict$1('dom')]\n });\n var OuterContainer = composite$1({\n name: 'OuterContainer',\n factory: factory$h,\n configFields: [\n strict$1('dom'),\n strict$1('behaviours')\n ],\n partFields: [\n partHeader,\n partMenubar,\n partToolbar,\n partMultipleToolbar,\n partSocket,\n partSidebar,\n partThrobber\n ],\n apis: {\n getSocket: function (apis, comp) {\n return apis.getSocket(comp);\n },\n setSidebar: function (apis, comp, panelConfigs) {\n apis.setSidebar(comp, panelConfigs);\n },\n toggleSidebar: function (apis, comp, name) {\n apis.toggleSidebar(comp, name);\n },\n whichSidebar: function (apis, comp) {\n return apis.whichSidebar(comp);\n },\n getHeader: function (apis, comp) {\n return apis.getHeader(comp);\n },\n getToolbar: function (apis, comp) {\n return apis.getToolbar(comp);\n },\n setToolbar: function (apis, comp, grps) {\n var groups = map(grps, function (grp) {\n return renderToolbarGroup(grp);\n });\n apis.setToolbar(comp, groups);\n },\n setToolbars: function (apis, comp, ts) {\n var renderedToolbars = map(ts, function (g) {\n return map(g, renderToolbarGroup);\n });\n apis.setToolbars(comp, renderedToolbars);\n },\n refreshToolbar: function (apis, comp) {\n return apis.refreshToolbar(comp);\n },\n toggleToolbarDrawer: function (apis, comp) {\n apis.toggleToolbarDrawer(comp);\n },\n isToolbarDrawerToggled: function (apis, comp) {\n return apis.isToolbarDrawerToggled(comp);\n },\n getThrobber: function (apis, comp) {\n return apis.getThrobber(comp);\n },\n setMenubar: function (apis, comp, menus) {\n apis.setMenubar(comp, menus);\n },\n focusMenubar: function (apis, comp) {\n apis.focusMenubar(comp);\n },\n focusToolbar: function (apis, comp) {\n apis.focusToolbar(comp);\n }\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 | 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 var make$8 = function (menu, registry, editor) {\n var removedMenuItems = getRemovedMenuItems(editor).split(/[ ,]/);\n return {\n text: menu.title,\n getItems: function () {\n return bind(menu.items, function (i) {\n var itemName = i.toLowerCase();\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 [{ type: 'separator' }];\n } else if (registry.menuItems[itemName]) {\n return [registry.menuItems[itemName]];\n } else {\n return [];\n }\n });\n }\n };\n };\n var parseItemsString = function (items) {\n if (typeof items === 'string') {\n return items.split(' ');\n }\n return items;\n };\n var identifyMenus = function (editor, registry) {\n var rawMenuData = __assign(__assign({}, defaultMenus), registry.menus);\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(menubar, function (menuName) {\n return userDefinedMenus ? registry.menus.hasOwnProperty(menuName) && registry.menus[menuName].hasOwnProperty('items') || defaultMenus.hasOwnProperty(menuName) : defaultMenus.hasOwnProperty(menuName);\n });\n var menus = map(validMenus, function (menuName) {\n var menuData = rawMenuData[menuName];\n return make$8({\n title: menuData.title,\n items: parseItemsString(menuData.items)\n }, registry, editor);\n });\n return filter(menus, function (menu) {\n var isNotSeparator = function (item) {\n return item.type !== 'separator';\n };\n return menu.getItems().length > 0 && exists(menu.getItems(), isNotSeparator);\n });\n };\n\n var fireSkinLoaded$1 = function (editor) {\n var done = function () {\n editor._skinLoaded = true;\n fireSkinLoaded(editor);\n };\n return function () {\n if (editor.initialized) {\n done();\n } else {\n editor.on('init', done);\n }\n };\n };\n var fireSkinLoadError$1 = function (editor, err) {\n return function () {\n return fireSkinLoadError(editor, { message: err });\n };\n };\n\n var loadStylesheet = function (editor, stylesheetUrl, styleSheetLoader) {\n return new global$4(function (resolve, reject) {\n styleSheetLoader.load(stylesheetUrl, resolve, reject);\n editor.on('remove', function () {\n return styleSheetLoader.unload(stylesheetUrl);\n });\n });\n };\n var loadUiSkins = function (editor, skinUrl) {\n var skinUiCss = skinUrl + '/skin.min.css';\n return loadStylesheet(editor, skinUiCss, editor.ui.styleSheetLoader);\n };\n var loadShadowDomUiSkins = function (editor, skinUrl) {\n var isInShadowRoot$1 = isInShadowRoot(SugarElement.fromDom(editor.getElement()));\n if (isInShadowRoot$1) {\n var shadowDomSkinCss = skinUrl + '/skin.shadowdom.min.css';\n return loadStylesheet(editor, shadowDomSkinCss, global$5.DOM.styleSheetLoader);\n } else {\n return global$4.resolve();\n }\n };\n var loadSkin = function (isInline, editor) {\n var skinUrl = getSkinUrl(editor);\n if (skinUrl) {\n editor.contentCSS.push(skinUrl + (isInline ? '/content.inline' : '/content') + '.min.css');\n }\n if (isSkinDisabled(editor) === false && isString(skinUrl)) {\n global$4.all([\n loadUiSkins(editor, skinUrl),\n loadShadowDomUiSkins(editor, skinUrl)\n ]).then(fireSkinLoaded$1(editor), fireSkinLoadError$1(editor, 'Skin could not be loaded'));\n } else {\n fireSkinLoaded$1(editor)();\n }\n };\n var iframe = curry(loadSkin, false);\n var inline = curry(loadSkin, true);\n\n var setToolbar = function (editor, uiComponents, rawUiConfig, backstage) {\n var comp = uiComponents.outerContainer;\n var toolbarConfig = rawUiConfig.toolbar;\n var toolbarButtonsConfig = rawUiConfig.buttons;\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, { backstage: backstage }, Optional.none());\n });\n OuterContainer.setToolbars(comp, toolbars);\n } else {\n OuterContainer.setToolbar(comp, identifyButtons(editor, rawUiConfig, { backstage: backstage }, Optional.none()));\n }\n };\n\n var detection = detect$3();\n var isiOS12 = detection.os.isiOS() && detection.os.version.major <= 12;\n var setupEvents = function (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 var resizeWindow = function () {\n var outer = lastWindowDimensions.get();\n if (outer.left !== contentWindow.innerWidth || outer.top !== contentWindow.innerHeight) {\n lastWindowDimensions.set(SugarPosition(contentWindow.innerWidth, contentWindow.innerHeight));\n fireResizeContent(editor);\n }\n };\n var resizeDocument = function () {\n var docEle = editor.getDoc().documentElement;\n var inner = lastDocumentDimensions.get();\n if (inner.left !== docEle.offsetWidth || inner.top !== docEle.offsetHeight) {\n lastDocumentDimensions.set(SugarPosition(docEle.offsetWidth, docEle.offsetHeight));\n fireResizeContent(editor);\n }\n };\n var scroll = function (e) {\n return fireScrollContent(editor, e);\n };\n dom.bind(contentWindow, 'resize', resizeWindow);\n dom.bind(contentWindow, 'scroll', scroll);\n var elementLoad = capture$1(SugarElement.fromDom(editor.getBody()), 'load', resizeDocument);\n var mothership = uiComponents.uiMothership.element;\n editor.on('hide', function () {\n set$2(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 var render$1 = function (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(editor, uiComponents);\n });\n var socket = OuterContainer.getSocket(outerContainer).getOrDie('Could not find expected socket element');\n if (isiOS12) {\n setAll$1(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$3(socket.element, 'scroll', limit.throttle);\n editor.on('remove', unbinder.unbind);\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 var refreshDrawer = function () {\n OuterContainer.refreshToolbar(uiComponents.outerContainer);\n };\n if (toolbarMode === ToolbarMode.sliding || toolbarMode === ToolbarMode.floating) {\n editor.on('ResizeWindow ResizeEditor ResizeContent', function () {\n var width = editor.getWin().innerWidth;\n if (width !== lastToolbarWidth.get()) {\n refreshDrawer();\n lastToolbarWidth.set(width);\n }\n });\n }\n var api = {\n enable: function () {\n broadcastReadonly(uiComponents, false);\n },\n disable: function () {\n broadcastReadonly(uiComponents, true);\n },\n isDisabled: function () {\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 (val) {\n var re = /^[0-9\\.]+(|px)$/i;\n if (re.test('' + val)) {\n return Optional.some(parseInt('' + val, 10));\n }\n return Optional.none();\n };\n var numToPx = function (val) {\n return isNumber(val) ? val + 'px' : val;\n };\n var calcCappedSize = function (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$1 = function (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 var getHeightWithFallback = function (editor) {\n var height = getHeight$1(editor);\n return height.getOr(getHeightSetting(editor));\n };\n var getWidth$1 = function (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 var getWidthWithFallback = function (editor) {\n var width = getWidth$1(editor);\n return width.getOr(getWidthSetting(editor));\n };\n\n var InlineHeader = function (editor, targetElm, uiComponents, backstage, floatContainer) {\n var uiMothership = uiComponents.uiMothership, outerContainer = uiComponents.outerContainer;\n var DOM = global$5.DOM;\n var useFixedToolbarContainer = useFixedContainer(editor);\n var isSticky = isStickyToolbar(editor);\n var editorMaxWidthOpt = getMaxWidthSetting(editor).or(getWidth$1(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 var isVisible = function () {\n return visible.get() && !editor.removed;\n };\n var calcToolbarOffset = function (toolbar) {\n return isSplitToolbar ? toolbar.fold(function () {\n return 0;\n }, function (tbar) {\n return tbar.components().length > 1 ? get$7(tbar.components()[1].element) : 0;\n }) : 0;\n };\n var calcMode = function (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$7(container.element) - offset;\n var targetBounds = box(targetElm);\n var roomAtTop = targetBounds.y > toolbarHeight;\n if (roomAtTop) {\n return 'top';\n } else {\n var doc = documentElement(targetElm);\n var docHeight = Math.max(doc.dom.scrollHeight, get$7(doc));\n var roomAtBottom = targetBounds.bottom < docHeight - toolbarHeight;\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 case ToolbarLocation.bottom:\n return 'bottom';\n case ToolbarLocation.top:\n default:\n return 'top';\n }\n };\n var setupMode = function (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$1(container.element, Attribute, verticalDir);\n };\n var updateChromeWidth = function () {\n var maxWidth = editorMaxWidthOpt.getOrThunk(function () {\n var bodyMargin = parseToInt(get$5(body(), 'margin-left')).getOr(0);\n return get$8(body()) - absolute(targetElm).left + bodyMargin;\n });\n set$2(floatContainer.get().element, 'max-width', maxWidth + 'px');\n };\n var updateChromePosition = function () {\n var toolbar = OuterContainer.getToolbar(outerContainer);\n var offset = calcToolbarOffset(toolbar);\n var targetBounds = box(targetElm);\n var top = isPositionedAtTop() ? Math.max(targetBounds.y - get$7(floatContainer.get().element) + offset, 0) : targetBounds.bottom;\n setAll$1(outerContainer.element, {\n position: 'absolute',\n top: Math.round(top) + 'px',\n left: Math.round(targetBounds.x) + 'px'\n });\n };\n var repositionPopups$1 = function () {\n uiMothership.broadcastOn([repositionPopups()], {});\n };\n var updateChromeUi = function (resetDocking) {\n if (resetDocking === void 0) {\n resetDocking = false;\n }\n if (!isVisible()) {\n return;\n }\n if (!useFixedToolbarContainer) {\n updateChromeWidth();\n }\n if (isSplitToolbar) {\n OuterContainer.refreshToolbar(outerContainer);\n }\n if (!useFixedToolbarContainer) {\n updateChromePosition();\n }\n if (isSticky) {\n var floatContainerComp = floatContainer.get();\n resetDocking ? Docking.reset(floatContainerComp) : Docking.refresh(floatContainerComp);\n }\n repositionPopups$1();\n };\n var updateMode = function (updateUi) {\n if (updateUi === void 0) {\n updateUi = true;\n }\n if (useFixedToolbarContainer || !isSticky || !isVisible()) {\n return;\n }\n var currentMode = headerBackstage.getDockingMode();\n var newMode = calcMode(floatContainer.get());\n if (newMode !== currentMode) {\n setupMode(newMode);\n if (updateUi) {\n updateChromeUi(true);\n }\n }\n };\n var show = function () {\n visible.set(true);\n set$2(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 var hide = function () {\n visible.set(false);\n if (uiComponents.outerContainer) {\n set$2(outerContainer.element, 'display', 'none');\n DOM.removeClass(editor.getBody(), 'mce-edit-focus');\n }\n set$2(uiMothership.element, 'display', 'none');\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 (targetElm, isToolbarTop) {\n var bounds = box(targetElm);\n return {\n pos: isToolbarTop ? bounds.y : bounds.bottom,\n bounds: bounds\n };\n };\n var setupEvents$1 = function (editor, targetElm, ui, toolbarPersist) {\n var prevPosAndBounds = Cell(getTargetPosAndBounds(targetElm, ui.isPositionedAtTop()));\n var resizeContent = function (e) {\n var _a = getTargetPosAndBounds(targetElm, ui.isPositionedAtTop()), pos = _a.pos, bounds = _a.bounds;\n var _b = prevPosAndBounds.get(), prevPos = _b.pos, prevBounds = _b.bounds;\n var hasResized = bounds.height !== prevBounds.height || bounds.width !== prevBounds.width;\n prevPosAndBounds.set({\n pos: pos,\n bounds: bounds\n });\n if (hasResized) {\n fireResizeContent(editor, e);\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 if (!toolbarPersist) {\n editor.on('activate', ui.show);\n editor.on('deactivate', ui.hide);\n }\n editor.on('SkinLoaded ResizeWindow', function () {\n return ui.update(true);\n });\n editor.on('NodeChange keydown', function (e) {\n global$2.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$1(SugarElement.fromDom(editor.getBody()), 'load', resizeContent));\n editor.on('remove', function () {\n elementLoad.clear();\n });\n };\n var render$2 = function (editor, uiComponents, rawUiConfig, backstage, args) {\n var mothership = uiComponents.mothership, uiMothership = uiComponents.uiMothership, 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 var render = function () {\n if (floatContainer.get()) {\n ui.show();\n return;\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$1(editor, targetElm, ui, toolbarPersist);\n editor.nodeChanged();\n };\n editor.on('show', render);\n editor.on('hide', ui.hide);\n if (!toolbarPersist) {\n editor.on('focus', render);\n editor.on('blur', ui.hide);\n }\n editor.on('init', function () {\n if (editor.hasFocus() || toolbarPersist) {\n render();\n }\n });\n setupReadonlyModeSwitch(editor, uiComponents);\n var api = {\n show: function () {\n ui.show();\n },\n hide: function () {\n ui.hide();\n },\n enable: function () {\n broadcastReadonly(uiComponents, false);\n },\n disable: function () {\n broadcastReadonly(uiComponents, true);\n },\n isDisabled: function () {\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$2\n });\n\n var register$5 = function (editor) {\n var alignToolbarButtons = [\n {\n name: 'alignleft',\n text: 'Align left',\n cmd: 'JustifyLeft',\n icon: 'align-left'\n },\n {\n name: 'aligncenter',\n text: 'Align center',\n cmd: 'JustifyCenter',\n icon: 'align-center'\n },\n {\n name: 'alignright',\n text: 'Align right',\n cmd: 'JustifyRight',\n icon: 'align-right'\n },\n {\n name: 'alignjustify',\n text: 'Justify',\n cmd: 'JustifyFull',\n icon: 'align-justify'\n }\n ];\n global$c.each(alignToolbarButtons, function (item) {\n editor.ui.registry.addToggleButton(item.name, {\n tooltip: item.text,\n onAction: function () {\n return editor.execCommand(item.cmd);\n },\n icon: item.icon,\n onSetup: onSetupFormatToggle(editor, item.name)\n });\n });\n var alignNoneToolbarButton = {\n name: 'alignnone',\n text: 'No alignment',\n cmd: 'JustifyNone',\n icon: 'align-none'\n };\n editor.ui.registry.addButton(alignNoneToolbarButton.name, {\n tooltip: alignNoneToolbarButton.text,\n onAction: function () {\n return editor.execCommand(alignNoneToolbarButton.cmd);\n },\n icon: alignNoneToolbarButton.icon\n });\n };\n\n var register$6 = function (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 toggleOutdentState = function (api, editor) {\n api.setDisabled(!editor.queryCommandState('outdent'));\n var onNodeChange = function () {\n api.setDisabled(!editor.queryCommandState('outdent'));\n };\n editor.on('NodeChange', onNodeChange);\n return function () {\n return editor.off('NodeChange', onNodeChange);\n };\n };\n var registerButtons = function (editor) {\n editor.ui.registry.addButton('outdent', {\n tooltip: 'Decrease indent',\n icon: 'outdent',\n onSetup: function (api) {\n return toggleOutdentState(api, editor);\n },\n onAction: function () {\n return editor.execCommand('outdent');\n }\n });\n editor.ui.registry.addButton('indent', {\n tooltip: 'Increase indent',\n icon: 'indent',\n onAction: function () {\n return editor.execCommand('indent');\n }\n });\n };\n var register$7 = function (editor) {\n registerButtons(editor);\n };\n\n var units = {\n unsupportedLength: [\n 'em',\n 'ex',\n 'cap',\n 'ch',\n 'ic',\n 'rem',\n 'lh',\n 'rlh',\n 'vw',\n 'vh',\n 'vi',\n 'vb',\n 'vmin',\n 'vmax',\n 'cm',\n 'mm',\n 'Q',\n 'in',\n 'pc',\n 'pt',\n 'px'\n ],\n fixed: [\n 'px',\n 'pt'\n ],\n relative: ['%'],\n empty: ['']\n };\n var pattern = function () {\n var decimalDigits = '[0-9]+';\n var signedInteger = '[+-]?' + decimalDigits;\n var exponentPart = '[eE]' + signedInteger;\n var dot = '\\\\.';\n var opt = function (input) {\n return '(?:' + input + ')?';\n };\n var unsignedDecimalLiteral = [\n 'Infinity',\n decimalDigits + dot + opt(decimalDigits) + opt(exponentPart),\n dot + decimalDigits + opt(exponentPart),\n decimalDigits + opt(exponentPart)\n ].join('|');\n var float = '[+-]?(?:' + unsignedDecimalLiteral + ')';\n return new RegExp('^(' + float + ')(.*)$');\n }();\n var isUnit = function (unit, accepted) {\n return exists(accepted, function (acc) {\n return exists(units[acc], function (check) {\n return unit === check;\n });\n });\n };\n var parse = function (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 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 var normalise = function (input, accepted) {\n return parse(input, accepted).map(function (_a) {\n var value = _a.value, unit = _a.unit;\n return value + unit;\n });\n };\n\n var normaliseLineHeight = function (input) {\n return normalise(input, [\n 'fixed',\n 'relative',\n 'empty'\n ]).getOr(input);\n };\n var getLineHeights = function (editor) {\n var options = getLineHeightFormats(editor);\n var apis = new Map();\n var lastApi = destroyable();\n var callback = function () {\n var current = normaliseLineHeight(editor.queryCommandValue('LineHeight'));\n Optional.from(apis.get(current)).fold(function () {\n return lastApi.clear();\n }, function (api) {\n lastApi.set({\n destroy: function () {\n api.setActive(false);\n }\n });\n api.setActive(true);\n });\n };\n editor.on('nodeChange', callback);\n return map(options, function (value, i) {\n return {\n type: 'togglemenuitem',\n text: value,\n onSetup: function (api) {\n apis.set(normaliseLineHeight(value), api);\n if (i + 1 === options.length) {\n callback();\n }\n return function () {\n if (i === 0) {\n editor.off('nodeChange', callback);\n lastApi.clear();\n }\n };\n },\n onAction: function () {\n return editor.execCommand('LineHeight', false, value);\n }\n };\n });\n };\n var registerMenuItems = function (editor) {\n editor.ui.registry.addNestedMenuItem('lineheight', {\n type: 'nestedmenuitem',\n text: 'Line height',\n getSubmenuItems: function () {\n return getLineHeights(editor);\n }\n });\n };\n var registerButtons$1 = function (editor) {\n editor.ui.registry.addMenuButton('lineheight', {\n tooltip: 'Line height',\n icon: 'line-height',\n fetch: function (callback) {\n return callback(getLineHeights(editor));\n }\n });\n };\n var register$8 = function (editor) {\n registerMenuItems(editor);\n registerButtons$1(editor);\n };\n\n var toggleFormat = function (editor, fmt) {\n return function () {\n editor.execCommand('mceToggleFormat', false, fmt);\n };\n };\n var registerFormatButtons = function (editor) {\n global$c.each([\n {\n name: 'bold',\n text: 'Bold',\n icon: 'bold'\n },\n {\n name: 'italic',\n text: 'Italic',\n icon: 'italic'\n },\n {\n name: 'underline',\n text: 'Underline',\n icon: 'underline'\n },\n {\n name: 'strikethrough',\n text: 'Strikethrough',\n icon: 'strike-through'\n },\n {\n name: 'subscript',\n text: 'Subscript',\n icon: 'subscript'\n },\n {\n name: 'superscript',\n text: 'Superscript',\n icon: 'superscript'\n }\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: toggleFormat(editor, btn.name)\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: toggleFormat(editor, name_1)\n });\n }\n };\n var registerCommandButtons = function (editor) {\n global$c.each([\n {\n name: 'cut',\n text: 'Cut',\n action: 'Cut',\n icon: 'cut'\n },\n {\n name: 'copy',\n text: 'Copy',\n action: 'Copy',\n icon: 'copy'\n },\n {\n name: 'paste',\n text: 'Paste',\n action: 'Paste',\n icon: 'paste'\n },\n {\n name: 'help',\n text: 'Help',\n action: 'mceHelp',\n icon: 'help'\n },\n {\n name: 'selectall',\n text: 'Select all',\n action: 'SelectAll',\n icon: 'select-all'\n },\n {\n name: 'newdocument',\n text: 'New document',\n action: 'mceNewDocument',\n icon: 'new-document'\n },\n {\n name: 'removeformat',\n text: 'Clear formatting',\n action: 'RemoveFormat',\n icon: 'remove-formatting'\n },\n {\n name: 'remove',\n text: 'Remove',\n action: 'Delete',\n icon: 'remove'\n }\n ], function (btn) {\n editor.ui.registry.addButton(btn.name, {\n tooltip: btn.text,\n icon: btn.icon,\n onAction: function () {\n return editor.execCommand(btn.action);\n }\n });\n });\n };\n var registerCommandToggleButtons = function (editor) {\n global$c.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: function () {\n return editor.execCommand(btn.action);\n },\n onSetup: onSetupFormatToggle(editor, btn.name)\n });\n });\n };\n var registerButtons$2 = function (editor) {\n registerFormatButtons(editor);\n registerCommandButtons(editor);\n registerCommandToggleButtons(editor);\n };\n var registerMenuItems$1 = function (editor) {\n global$c.each([\n {\n name: 'bold',\n text: 'Bold',\n action: 'Bold',\n icon: 'bold',\n shortcut: 'Meta+B'\n },\n {\n name: 'italic',\n text: 'Italic',\n action: 'Italic',\n icon: 'italic',\n shortcut: 'Meta+I'\n },\n {\n name: 'underline',\n text: 'Underline',\n action: 'Underline',\n icon: 'underline',\n shortcut: 'Meta+U'\n },\n {\n name: 'strikethrough',\n text: 'Strikethrough',\n action: 'Strikethrough',\n icon: 'strike-through',\n shortcut: ''\n },\n {\n name: 'subscript',\n text: 'Subscript',\n action: 'Subscript',\n icon: 'subscript',\n shortcut: ''\n },\n {\n name: 'superscript',\n text: 'Superscript',\n action: 'Superscript',\n icon: 'superscript',\n shortcut: ''\n },\n {\n name: 'removeformat',\n text: 'Clear formatting',\n action: 'RemoveFormat',\n icon: 'remove-formatting',\n shortcut: ''\n },\n {\n name: 'newdocument',\n text: 'New document',\n action: 'mceNewDocument',\n icon: 'new-document',\n shortcut: ''\n },\n {\n name: 'cut',\n text: 'Cut',\n action: 'Cut',\n icon: 'cut',\n shortcut: 'Meta+X'\n },\n {\n name: 'copy',\n text: 'Copy',\n action: 'Copy',\n icon: 'copy',\n shortcut: 'Meta+C'\n },\n {\n name: 'paste',\n text: 'Paste',\n action: 'Paste',\n icon: 'paste',\n shortcut: 'Meta+V'\n },\n {\n name: 'selectall',\n text: 'Select all',\n action: 'SelectAll',\n icon: 'select-all',\n shortcut: 'Meta+A'\n }\n ], function (btn) {\n editor.ui.registry.addMenuItem(btn.name, {\n text: btn.text,\n icon: btn.icon,\n shortcut: btn.shortcut,\n onAction: function () {\n return editor.execCommand(btn.action);\n }\n });\n });\n editor.ui.registry.addMenuItem('codeformat', {\n text: 'Code',\n icon: 'sourcecode',\n onAction: toggleFormat(editor, 'code')\n });\n };\n var register$9 = function (editor) {\n registerButtons$2(editor);\n registerMenuItems$1(editor);\n };\n\n var toggleUndoRedoState = function (api, editor, type) {\n var checkState = function () {\n return editor.undoManager ? editor.undoManager[type]() : false;\n };\n var onUndoStateChange = function () {\n api.setDisabled(editor.mode.isReadOnly() || !checkState());\n };\n api.setDisabled(!checkState());\n editor.on('Undo Redo AddUndo TypingUndo ClearUndos SwitchMode', onUndoStateChange);\n return function () {\n return editor.off('Undo Redo AddUndo TypingUndo ClearUndos SwitchMode', onUndoStateChange);\n };\n };\n var registerMenuItems$2 = function (editor) {\n editor.ui.registry.addMenuItem('undo', {\n text: 'Undo',\n icon: 'undo',\n shortcut: 'Meta+Z',\n onSetup: function (api) {\n return toggleUndoRedoState(api, editor, 'hasUndo');\n },\n onAction: function () {\n return editor.execCommand('undo');\n }\n });\n editor.ui.registry.addMenuItem('redo', {\n text: 'Redo',\n icon: 'redo',\n shortcut: 'Meta+Y',\n onSetup: function (api) {\n return toggleUndoRedoState(api, editor, 'hasRedo');\n },\n onAction: function () {\n return editor.execCommand('redo');\n }\n });\n };\n var registerButtons$3 = function (editor) {\n editor.ui.registry.addButton('undo', {\n tooltip: 'Undo',\n icon: 'undo',\n onSetup: function (api) {\n return toggleUndoRedoState(api, editor, 'hasUndo');\n },\n onAction: function () {\n return editor.execCommand('undo');\n }\n });\n editor.ui.registry.addButton('redo', {\n tooltip: 'Redo',\n icon: 'redo',\n onSetup: function (api) {\n return toggleUndoRedoState(api, editor, 'hasRedo');\n },\n onAction: function () {\n return editor.execCommand('redo');\n }\n });\n };\n var register$a = function (editor) {\n registerMenuItems$2(editor);\n registerButtons$3(editor);\n };\n\n var toggleVisualAidState = function (api, editor) {\n api.setActive(editor.hasVisual);\n var onVisualAid = function (e) {\n api.setActive(e.hasVisual);\n };\n editor.on('VisualAid', onVisualAid);\n return function () {\n return editor.off('VisualAid', onVisualAid);\n };\n };\n var registerMenuItems$3 = function (editor) {\n editor.ui.registry.addToggleMenuItem('visualaid', {\n text: 'Visual aids',\n onSetup: function (api) {\n return toggleVisualAidState(api, editor);\n },\n onAction: function () {\n editor.execCommand('mceToggleVisualAid');\n }\n });\n };\n var registerToolbarButton = function (editor) {\n editor.ui.registry.addButton('visualaid', {\n tooltip: 'Visual aids',\n text: 'Visual aids',\n onAction: function () {\n return editor.execCommand('mceToggleVisualAid');\n }\n });\n };\n var register$b = function (editor) {\n registerToolbarButton(editor);\n registerMenuItems$3(editor);\n };\n\n var setup$8 = function (editor, backstage) {\n register$5(editor);\n register$9(editor);\n register$6(editor, backstage);\n register$a(editor);\n register$1(editor);\n register$b(editor);\n register$7(editor);\n register$8(editor);\n };\n\n var nu$d = function (x, y) {\n return {\n anchor: 'makeshift',\n x: x,\n y: y\n };\n };\n var transpose$1 = function (pos, dx, dy) {\n return nu$d(pos.x + dx, pos.y + dy);\n };\n var isTouchEvent$1 = function (e) {\n return e.type === 'longpress' || e.type.indexOf('touch') === 0;\n };\n var fromPageXY = function (e) {\n if (isTouchEvent$1(e)) {\n var touch = e.touches[0];\n return nu$d(touch.pageX, touch.pageY);\n } else {\n return nu$d(e.pageX, e.pageY);\n }\n };\n var fromClientXY = function (e) {\n if (isTouchEvent$1(e)) {\n var touch = e.touches[0];\n return nu$d(touch.clientX, touch.clientY);\n } else {\n return nu$d(e.clientX, e.clientY);\n }\n };\n var transposeContentAreaContainer = function (element, pos) {\n var containerPos = global$5.DOM.getPos(element);\n return transpose$1(pos, containerPos.x, containerPos.y);\n };\n var getPointAnchor = function (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 var getSelectionAnchor = function (editor) {\n return {\n anchor: 'selection',\n root: SugarElement.fromDom(editor.selection.getNode())\n };\n };\n var getNodeAnchor$1 = function (editor) {\n return {\n anchor: 'node',\n node: Optional.some(SugarElement.fromDom(editor.selection.getNode())),\n root: SugarElement.fromDom(editor.getBody())\n };\n };\n\n var initAndShow = function (editor, e, buildMenu, backstage, contextmenu, useNodeAnchor) {\n var items = buildMenu();\n var anchorSpec = useNodeAnchor ? getNodeAnchor$1(editor) : getPointAnchor(editor, e);\n build$2(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, false).map(function (menuData) {\n e.preventDefault();\n InlineView.showMenuAt(contextmenu, anchorSpec, {\n menu: { markers: markers$1('normal') },\n data: menuData\n });\n });\n };\n\n var layouts = {\n onLtr: function () {\n return [\n south$1,\n southeast$1,\n southwest$1,\n northeast$1,\n northwest$1,\n north$1,\n north$3,\n south$3,\n northeast$3,\n southeast$3,\n northwest$3,\n southwest$3\n ];\n },\n onRtl: function () {\n return [\n south$1,\n southwest$1,\n southeast$1,\n northwest$1,\n northeast$1,\n north$1,\n north$3,\n south$3,\n northwest$3,\n southwest$3,\n northeast$3,\n southeast$3\n ];\n }\n };\n var bubbleSize$1 = 12;\n var bubbleAlignments$2 = {\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 var isTouchWithinSelection = function (editor, e) {\n var selection = editor.selection;\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$1(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 var getPointAnchorSpec = function (editor, e) {\n return __assign({\n bubble: nu$8(0, bubbleSize$1, bubbleAlignments$2),\n layouts: layouts,\n overrides: {\n maxWidthFunction: expandable$1(),\n maxHeightFunction: expandable()\n }\n }, getPointAnchor(editor, e));\n };\n var setupiOSOverrides = function (editor) {\n var originalSelection = editor.selection.getRng();\n var selectionReset = function () {\n global$2.setEditorTimeout(editor, function () {\n editor.selection.setRng(originalSelection);\n }, 10);\n unbindEventListeners();\n };\n editor.once('touchend', selectionReset);\n var preventMousedown = function (e) {\n e.preventDefault();\n e.stopImmediatePropagation();\n };\n editor.on('mousedown', preventMousedown, true);\n var clearSelectionReset = function () {\n return unbindEventListeners();\n };\n editor.once('longpresscancel', clearSelectionReset);\n var unbindEventListeners = function () {\n editor.off('touchend', selectionReset);\n editor.off('longpresscancel', clearSelectionReset);\n editor.off('mousedown', preventMousedown);\n };\n };\n var show = function (editor, e, items, backstage, contextmenu, useNodeAnchor, highlightImmediately) {\n var anchorSpec = useNodeAnchor ? getNodeAnchor$1(editor) : getPointAnchorSpec(editor, e);\n build$2(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, true).map(function (menuData) {\n e.preventDefault();\n InlineView.showMenuWithinBounds(contextmenu, anchorSpec, {\n menu: {\n markers: markers$1('normal'),\n highlightImmediately: highlightImmediately\n },\n data: menuData,\n type: 'horizontal'\n }, function () {\n return Optional.some(getContextToolbarBounds(editor, backstage.shared));\n });\n editor.fire(hideContextToolbarEvent);\n });\n };\n var initAndShow$1 = function (editor, e, buildMenu, backstage, contextmenu, useNodeAnchor) {\n var detection = detect$3();\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 var shouldHighlightImmediately = function () {\n return !(isAndroid || isiOS || isOSX && isTouch);\n };\n var open = function () {\n var items = buildMenu();\n show(editor, e, items, backstage, contextmenu, useNodeAnchor, shouldHighlightImmediately());\n };\n if ((isOSX || isiOS) && !useNodeAnchor) {\n var openiOS_1 = function () {\n setupiOSOverrides(editor);\n open();\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 if (isAndroid && !useNodeAnchor) {\n editor.selection.setCursorLocation(e.target, 0);\n }\n open();\n }\n };\n\n var patchPipeConfig = function (config) {\n return typeof config === 'string' ? config.split(/[ ,]/) : config;\n };\n var shouldNeverUseNative = function (editor) {\n return editor.getParam('contextmenu_never_use_native', false, 'boolean');\n };\n var getMenuItems = function (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(patchPipeConfig(defaultItems), function (item) {\n return has(contextMenus, item);\n });\n });\n };\n var isContextMenuDisabled = function (editor) {\n return editor.getParam('contextmenu') === false;\n };\n var getContextMenu = function (editor) {\n return getMenuItems(editor, 'contextmenu', 'link linkchecker image imagetools table spellchecker configurepermanentpen');\n };\n var getAvoidOverlapSelector = function (editor) {\n return editor.getParam('contextmenu_avoid_overlap', '', 'string');\n };\n\n var isSeparator$1 = function (item) {\n return isString(item) ? item === '|' : item.type === 'separator';\n };\n var separator$3 = { type: 'separator' };\n var makeContextItem = function (item) {\n if (isString(item)) {\n return item;\n } else {\n switch (item.type) {\n case 'separator':\n return separator$3;\n case 'submenu':\n return {\n type: 'nestedmenuitem',\n text: item.text,\n icon: item.icon,\n getSubmenuItems: function () {\n var items = item.getSubmenuItems();\n if (isString(items)) {\n return items;\n } else {\n return map(items, makeContextItem);\n }\n }\n };\n default:\n return {\n type: 'menuitem',\n text: item.text,\n icon: item.icon,\n onAction: noarg(item.onAction)\n };\n }\n }\n };\n var addContextMenuGroup = function (xs, groupItems) {\n if (groupItems.length === 0) {\n return xs;\n }\n var lastMenuItem = last(xs).filter(function (item) {\n return !isSeparator$1(item);\n });\n var before = lastMenuItem.fold(function () {\n return [];\n }, function (_) {\n return [separator$3];\n });\n return xs.concat(before).concat(groupItems).concat([separator$3]);\n };\n var generateContextMenu = function (contextMenus, menuConfig, selectedElement) {\n var sections = foldl(menuConfig, function (acc, name) {\n if (has(contextMenus, name)) {\n var items = contextMenus[name].update(selectedElement);\n if (isString(items)) {\n return addContextMenuGroup(acc, items.split(' '));\n } else if (items.length > 0) {\n var allItems = map(items, makeContextItem);\n return addContextMenuGroup(acc, allItems);\n } else {\n return acc;\n }\n } else {\n return acc.concat([name]);\n }\n }, []);\n if (sections.length > 0 && isSeparator$1(sections[sections.length - 1])) {\n sections.pop();\n }\n return sections;\n };\n var isNativeOverrideKeyEvent = function (editor, e) {\n return e.ctrlKey && !shouldNeverUseNative(editor);\n };\n var isTriggeredByKeyboard = function (editor, e) {\n return e.type !== 'longpress' && (e.button !== 2 || e.target === editor.getBody() && e.pointerType === '');\n };\n var getSelectedElement = function (editor, e) {\n return isTriggeredByKeyboard(editor, e) ? editor.selection.getStart(true) : e.target;\n };\n var shouldUseNodeAnchor = function (editor, e) {\n var selector = getAvoidOverlapSelector(editor);\n if (isTriggeredByKeyboard(editor, e)) {\n return true;\n } else if (selector) {\n var target = getSelectedElement(editor, e);\n return closest$4(SugarElement.fromDom(target), selector);\n } else {\n return false;\n }\n };\n var setup$9 = function (editor, lazySink, backstage) {\n var detection = detect$3();\n var isTouch = detection.deviceType.isTouch;\n var contextmenu = build$1(InlineView.sketch({\n dom: { tag: 'div' },\n lazySink: lazySink,\n onEscape: function () {\n return editor.focus();\n },\n onShow: function () {\n return backstage.setContextMenuState(true);\n },\n onHide: function () {\n return backstage.setContextMenuState(false);\n },\n fireDismissalEventInstead: {},\n inlineBehaviours: derive$1([config('dismissContextMenu', [run(dismissRequested(), function (comp, _se) {\n Sandboxing.close(comp);\n editor.focus();\n })])])\n }));\n var hideContextMenu = function (_e) {\n return InlineView.hide(contextmenu);\n };\n var showContextMenu = function (e) {\n if (shouldNeverUseNative(editor)) {\n e.preventDefault();\n }\n if (isNativeOverrideKeyEvent(editor, e) || isContextMenuDisabled(editor)) {\n return;\n }\n var useNodeAnchor = shouldUseNodeAnchor(editor, e);\n var buildMenu = function () {\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 var initAndShow$2 = isTouch() ? initAndShow$1 : initAndShow;\n initAndShow$2(editor, e, buildMenu, backstage, contextmenu, useNodeAnchor);\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$c = Adt.generate([\n {\n offset: [\n 'x',\n 'y'\n ]\n },\n {\n absolute: [\n 'x',\n 'y'\n ]\n },\n {\n fixed: [\n 'x',\n 'y'\n ]\n }\n ]);\n var subtract = function (change) {\n return function (point) {\n return point.translate(-change.left, -change.top);\n };\n };\n var add$4 = function (change) {\n return function (point) {\n return point.translate(change.left, change.top);\n };\n };\n var transform$1 = function (changes) {\n return function (x, y) {\n return foldl(changes, function (rest, f) {\n return f(rest);\n }, SugarPosition(x, y));\n };\n };\n var asFixed = function (coord, scroll, origin) {\n return coord.fold(transform$1([\n add$4(origin),\n subtract(scroll)\n ]), transform$1([subtract(scroll)]), transform$1([]));\n };\n var asAbsolute = function (coord, scroll, origin) {\n return coord.fold(transform$1([add$4(origin)]), transform$1([]), transform$1([add$4(scroll)]));\n };\n var asOffset = function (coord, scroll, origin) {\n return coord.fold(transform$1([]), transform$1([subtract(origin)]), transform$1([\n add$4(scroll),\n subtract(origin)\n ]));\n };\n var withinRange = function (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 var getDeltas = function (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 var toStyles = function (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 var translate$2 = function (coord, deltaX, deltaY) {\n return coord.fold(function (x, y) {\n return offset(x + deltaX, y + deltaY);\n }, function (x, y) {\n return absolute$3(x + deltaX, y + deltaY);\n }, function (x, y) {\n return fixed$1(x + deltaX, y + deltaY);\n });\n };\n var absorb = function (partialCoord, originalCoord, scroll, origin) {\n var absorbOne = function (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 return partialCoord.fold(absorbOne(asOffset, offset), absorbOne(asAbsolute, absolute$3), absorbOne(asFixed, fixed$1));\n };\n var offset = adt$c.offset;\n var absolute$3 = adt$c.absolute;\n var fixed$1 = adt$c.fixed;\n\n var parseAttrToInt = function (element, name) {\n var value = get$3(element, name);\n return isUndefined(value) ? NaN : parseInt(value, 10);\n };\n var get$f = function (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 var set$8 = function (component, snapsInfo, pt) {\n var element = component.element;\n set$1(element, snapsInfo.leftAttr, pt.left + 'px');\n set$1(element, snapsInfo.topAttr, pt.top + 'px');\n };\n var clear = function (component, snapsInfo) {\n var element = component.element;\n remove$1(element, snapsInfo.leftAttr);\n remove$1(element, snapsInfo.topAttr);\n };\n\n var getCoords = function (component, snapInfo, coord, delta) {\n return get$f(component, snapInfo).fold(function () {\n return coord;\n }, function (fixed) {\n return fixed$1(fixed.left + delta.left, fixed.top + delta.top);\n });\n };\n var moveOrSnap = function (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$8(component, snapInfo, fixedCoord);\n return snap.fold(function () {\n return {\n coord: fixed$1(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 var stopDrag = function (component, snapInfo) {\n clear(component, snapInfo);\n };\n var findMatchingSnap = function (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 var findClosestSnap = function (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 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 var findSnap = function (component, snapInfo, newCoord, scroll, origin) {\n var snaps = snapInfo.getSnapPoints(component);\n return findMatchingSnap(snaps, newCoord, scroll, origin);\n };\n var snapTo = function (snap, scroll, origin) {\n return {\n coord: absorb(snap.output, snap.output, scroll, origin),\n extra: snap.extra\n };\n };\n\n var snapTo$1 = function (component, dragConfig, _state, snap) {\n var target = dragConfig.getTarget(component.element);\n if (dragConfig.repositionTarget) {\n var doc = owner(component.element);\n var scroll_1 = get$9(doc);\n var origin_1 = getOrigin(target);\n var snapPin = snapTo(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$1\n });\n\n var initialAttribute = 'data-initial-z-index';\n var resetZIndex = function (blocker) {\n parent(blocker.element).filter(isElement).each(function (root) {\n getOpt(root, initialAttribute).fold(function () {\n return remove$6(root, 'z-index');\n }, function (zIndex) {\n return set$2(root, 'z-index', zIndex);\n });\n remove$1(root, initialAttribute);\n });\n };\n var changeZIndex = function (blocker) {\n parent(blocker.element).filter(isElement).each(function (root) {\n getRaw(root, 'z-index').each(function (zindex) {\n set$1(root, initialAttribute, zindex);\n });\n set$2(root, 'z-index', get$5(blocker.element, 'z-index'));\n });\n };\n var instigate = function (anyComponent, blocker) {\n anyComponent.getSystem().addToGui(blocker);\n changeZIndex(blocker);\n };\n var discard = function (blocker) {\n resetZIndex(blocker);\n blocker.getSystem().removeFromGui(blocker);\n };\n var createComponent = function (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', [\n strict$1('getSnapPoints'),\n onHandler('onSensor'),\n strict$1('leftAttr'),\n strict$1('topAttr'),\n defaulted$1('lazyViewport', win),\n defaulted$1('mustSnap', false)\n ]);\n\n var schema$t = [\n defaulted$1('useFixed', never),\n strict$1('blockerClass'),\n defaulted$1('getTarget', identity),\n defaulted$1('onDrag', noop),\n defaulted$1('repositionTarget', true),\n defaulted$1('onDrop', noop),\n defaultedFunction('getBounds', win),\n SnapSchema\n ];\n\n var getCurrentCoord = function (target) {\n return lift3(getRaw(target, 'left'), getRaw(target, 'top'), getRaw(target, 'position'), function (left, top, position) {\n var nu = position === 'fixed' ? fixed$1 : offset;\n return nu(parseInt(left, 10), parseInt(top, 10));\n }).getOrThunk(function () {\n var location = absolute(target);\n return absolute$3(location.left, location.top);\n });\n };\n var clampCoords = function (component, coords, scroll, origin, startData) {\n var bounds = startData.bounds;\n var absoluteCoord = asAbsolute(coords, scroll, origin);\n var newX = clamp(absoluteCoord.left, bounds.x, bounds.x + bounds.width - startData.width);\n var newY = clamp(absoluteCoord.top, bounds.y, bounds.y + bounds.height - startData.height);\n var newCoords = absolute$3(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 }, function () {\n return newCoords;\n }, function () {\n var fixed = asFixed(newCoords, scroll, origin);\n return fixed$1(fixed.left, fixed.top);\n });\n };\n var calcNewCoord = function (component, optSnaps, currentCoord, scroll, origin, delta, startData) {\n var newCoord = optSnaps.fold(function () {\n var translated = translate$2(currentCoord, delta.left, delta.top);\n var fixedCoord = asFixed(translated, scroll, origin);\n return fixed$1(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 var dragBy = function (component, dragConfig, startData, delta) {\n var target = dragConfig.getTarget(component.element);\n if (dragConfig.repositionTarget) {\n var doc = owner(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 dragConfig.onDrag(component, target, delta);\n };\n\n var calcStartData = function (dragConfig, comp) {\n return {\n bounds: dragConfig.getBounds(),\n height: getOuter$1(comp.element),\n width: getOuter$2(comp.element)\n };\n };\n var move$1 = function (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 var stop = function (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 var handlers = function (events) {\n return function (dragConfig, dragState) {\n var updateStartState = function (comp) {\n dragState.setStartData(calcStartData(dragConfig, comp));\n };\n return derive(__spreadArrays([run(windowScroll(), function (comp) {\n dragState.getStartData().each(function () {\n return updateStartState(comp);\n });\n })], events(dragConfig, dragState, updateStartState)));\n };\n };\n\n var init$c = function (dragApi) {\n return derive([\n run(mousedown(), dragApi.forceDrop),\n run(mouseup(), dragApi.drop),\n run(mousemove(), function (comp, simulatedEvent) {\n dragApi.move(simulatedEvent.event);\n }),\n run(mouseout(), dragApi.delayDrop)\n ]);\n };\n\n var getData$1 = function (event) {\n return Optional.from(SugarPosition(event.x, event.y));\n };\n var getDelta$1 = function (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$g = function (dragConfig, dragState, updateStartState) {\n return [run(mousedown(), function (component, simulatedEvent) {\n var raw = simulatedEvent.event.raw;\n if (raw.button !== 0) {\n return;\n }\n simulatedEvent.stop();\n var stop$1 = function () {\n return stop(component, Optional.some(blocker), dragConfig, dragState);\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 (event) {\n delayDrop.cancel();\n move$1(component, dragConfig, dragState, MouseData, event);\n }\n };\n var blocker = createComponent(component, dragConfig.blockerClass, init$c(dragApi));\n var start = function () {\n updateStartState(component);\n instigate(component, blocker);\n };\n start();\n })];\n };\n var schema$u = __spreadArrays(schema$t, [output('dragger', { handlers: handlers(events$g) })]);\n\n var init$d = function (dragApi) {\n return derive([\n run(touchstart(), dragApi.forceDrop),\n run(touchend(), dragApi.drop),\n run(touchcancel(), dragApi.drop),\n run(touchmove(), function (comp, simulatedEvent) {\n dragApi.move(simulatedEvent.event);\n })\n ]);\n };\n\n var getDataFrom = function (touches) {\n var touch = touches[0];\n return Optional.some(SugarPosition(touch.clientX, touch.clientY));\n };\n var getData$2 = function (event) {\n var raw = event.raw;\n var touches = raw.touches;\n return touches.length === 1 ? getDataFrom(touches) : Optional.none();\n };\n var getDelta$2 = function (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$2,\n getDelta: getDelta$2\n });\n\n var events$h = function (dragConfig, dragState, updateStartState) {\n var blockerCell = Cell(Optional.none());\n return [\n run(touchstart(), function (component, simulatedEvent) {\n simulatedEvent.stop();\n var stop$1 = function () {\n stop(component, blockerCell.get(), dragConfig, dragState);\n blockerCell.set(Optional.none());\n };\n var dragApi = {\n drop: stop$1,\n delayDrop: noop,\n forceDrop: stop$1,\n move: function (event) {\n move$1(component, dragConfig, dragState, TouchData, event);\n }\n };\n var blocker = createComponent(component, dragConfig.blockerClass, init$d(dragApi));\n blockerCell.set(Optional.some(blocker));\n var start = function () {\n updateStartState(component);\n instigate(component, blocker);\n };\n start();\n }),\n run(touchmove(), function (component, simulatedEvent) {\n simulatedEvent.stop();\n move$1(component, dragConfig, dragState, TouchData, simulatedEvent.event);\n }),\n run(touchend(), function (component, simulatedEvent) {\n simulatedEvent.stop();\n stop(component, blockerCell.get(), dragConfig, dragState);\n blockerCell.set(Optional.none());\n }),\n run(touchcancel(), function (component) {\n stop(component, blockerCell.get(), dragConfig, dragState);\n blockerCell.set(Optional.none());\n })\n ];\n };\n var schema$v = __spreadArrays(schema$t, [output('dragger', { handlers: handlers(events$h) })]);\n\n var events$i = function (dragConfig, dragState, updateStartState) {\n return __spreadArrays(events$g(dragConfig, dragState, updateStartState), events$h(dragConfig, dragState, updateStartState));\n };\n var schema$w = __spreadArrays(schema$t, [output('dragger', { handlers: handlers(events$i) })]);\n\n var mouse = schema$u;\n var touch = schema$v;\n var mouseOrTouch = schema$w;\n\n var DraggingBranches = /*#__PURE__*/Object.freeze({\n __proto__: null,\n mouse: mouse,\n touch: touch,\n mouseOrTouch: mouseOrTouch\n });\n\n var init$e = function () {\n var previous = Optional.none();\n var startData = Optional.none();\n var reset = function () {\n previous = Optional.none();\n startData = Optional.none();\n };\n var calculateDelta = function (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 var update = function (mode, dragEvent) {\n return mode.getData(dragEvent).bind(function (nuData) {\n return calculateDelta(mode, nuData);\n });\n };\n var setStartData = function (data) {\n startData = Optional.some(data);\n };\n var getStartData = function () {\n return startData;\n };\n var readState = constant({});\n return nu$5({\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$e\n });\n\n var Dragging = createModes$1({\n branchKey: 'mode',\n branches: DraggingBranches,\n name: 'dragging',\n active: {\n events: function (dragConfig, dragState) {\n var dragger = dragConfig.dragger;\n return dragger.handlers(dragConfig, dragState);\n }\n },\n extra: {\n snap: function (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\n var snapWidth = 40;\n var snapOffset = snapWidth / 2;\n var calcSnap = function (selectorOpt, td, x, y, width, height) {\n return selectorOpt.fold(function () {\n return Dragging.snap({\n sensor: absolute$3(x - snapOffset, y - snapOffset),\n range: SugarPosition(width, height),\n output: absolute$3(Optional.some(x), Optional.some(y)),\n extra: { td: td }\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$3(sensorLeft, sensorTop),\n range: SugarPosition(sensorWidth, sensorHeight),\n output: absolute$3(Optional.some(x - rect.width / 2), Optional.some(y - rect.height / 2)),\n extra: { td: td }\n });\n });\n };\n var getSnapsConfig = function (getSnapPoints, cell, onChange) {\n var isSameCell = function (cellOpt, td) {\n return cellOpt.exists(function (currentTd) {\n return eq$1(currentTd, td);\n });\n };\n return {\n getSnapPoints: getSnapPoints,\n leftAttr: 'data-drag-left',\n topAttr: 'data-drag-top',\n onSensor: function (component, extra) {\n var td = extra.td;\n if (!isSameCell(cell.get(), td)) {\n cell.set(Optional.some(td));\n onChange(td);\n }\n },\n mustSnap: true\n };\n };\n var createSelector = function (snaps) {\n return record(Button.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-selector']\n },\n buttonBehaviours: derive$1([\n Dragging.config({\n mode: 'mouseOrTouch',\n blockerClass: 'blocker',\n snaps: snaps\n }),\n Unselecting.config({})\n ]),\n eventOrder: {\n mousedown: [\n 'dragging',\n 'alloy.base.behaviour'\n ],\n touchstart: [\n 'dragging',\n 'alloy.base.behaviour'\n ]\n }\n }));\n };\n var setup$a = function (editor, sink) {\n var tlTds = Cell([]);\n var brTds = Cell([]);\n var isVisible = Cell(false);\n var startCell = Cell(Optional.none());\n var finishCell = Cell(Optional.none());\n var getTopLeftSnap = function (td) {\n var box = absolute$1(td);\n return calcSnap(memTopLeft.getOpt(sink), td, box.x, box.y, box.width, box.height);\n };\n var getTopLeftSnaps = function () {\n return map(tlTds.get(), function (td) {\n return getTopLeftSnap(td);\n });\n };\n var getBottomRightSnap = function (td) {\n var box = absolute$1(td);\n return calcSnap(memBottomRight.getOpt(sink), td, box.right, box.bottom, box.width, box.height);\n };\n var getBottomRightSnaps = function () {\n return map(brTds.get(), function (td) {\n return getBottomRightSnap(td);\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 var showOrHideHandle = function (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 if (aboveViewport || belowViewport) {\n set$2(selector.element, 'display', 'none');\n }\n };\n var snapTo = function (selector, cell, getSnapConfig, pos) {\n var snap = getSnapConfig(cell);\n Dragging.snapTo(selector, snap);\n var isAbove = function (rect) {\n return rect[pos] < 0;\n };\n var isBelow = function (rect, viewportHeight) {\n return rect[pos] > viewportHeight;\n };\n showOrHideHandle(selector, cell, isAbove, isBelow);\n };\n var snapTopLeft = function (cell) {\n return snapTo(topLeft, cell, getTopLeftSnap, 'top');\n };\n var snapLastTopLeft = function () {\n return startCell.get().each(snapTopLeft);\n };\n var snapBottomRight = function (cell) {\n return snapTo(bottomRight, cell, getBottomRightSnap, 'bottom');\n };\n var snapLastBottomRight = function () {\n return finishCell.get().each(snapBottomRight);\n };\n if (detect$3().deviceType.isTouch()) {\n editor.on('TableSelectionChange', function (e) {\n if (!isVisible.get()) {\n attach$1(sink, topLeft);\n attach$1(sink, bottomRight);\n isVisible.set(true);\n }\n startCell.set(Optional.some(e.start));\n finishCell.set(Optional.some(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 startCell.set(Optional.none());\n finishCell.set(Optional.none());\n });\n }\n };\n\n var ResizeTypes;\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 var getDimensions = function (editor, deltas, resizeType, originalHeight, originalWidth) {\n var dimensions = {};\n dimensions.height = calcCappedSize(originalHeight + deltas.top, getMinHeightSetting(editor), getMaxHeightSetting(editor));\n if (resizeType === ResizeTypes.Both) {\n dimensions.width = calcCappedSize(originalWidth + deltas.left, getMinWidthSetting(editor), getMaxWidthSetting(editor));\n }\n return dimensions;\n };\n var resize$3 = function (editor, deltas, resizeType) {\n var container = SugarElement.fromDom(editor.getContainer());\n var dimensions = getDimensions(editor, deltas, resizeType, get$7(container), get$8(container));\n each$1(dimensions, function (val, dim) {\n return set$2(container, dim, numToPx(val));\n });\n fireResizeEditor(editor);\n };\n\n var isHidden$1 = function (elm) {\n if (elm.nodeType === 1) {\n if (elm.nodeName === 'BR' || !!elm.getAttribute('data-mce-bogus')) {\n return true;\n }\n if (elm.getAttribute('data-mce-type') === 'bookmark') {\n return true;\n }\n }\n return false;\n };\n var renderElementPath = function (editor, settings, providersBackstage) {\n if (!settings.delimiter) {\n settings.delimiter = '\\xBB';\n }\n var getDataPath = function (data) {\n var parts = data || [];\n var newPathElements = map(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 (_btn) {\n editor.focus();\n editor.selection.select(part.element);\n editor.nodeChanged();\n },\n buttonBehaviours: derive$1([\n DisablingConfigs.button(providersBackstage.isDisabled),\n receivingConfig()\n ])\n });\n });\n var divider = {\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__path-divider'],\n attributes: { 'aria-hidden': true },\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 var updatePath = function (parents) {\n var newPath = [];\n var i = parents.length;\n while (i-- > 0) {\n var parent_1 = parents[i];\n if (parent_1.nodeType === 1 && !isHidden$1(parent_1)) {\n var args = editor.fire('ResolveName', {\n name: parent_1.nodeName.toLowerCase(),\n target: parent_1\n });\n if (!args.isDefaultPrevented()) {\n newPath.push({\n name: args.name,\n element: parent_1\n });\n }\n if (args.isPropagationStopped()) {\n break;\n }\n }\n }\n return newPath;\n };\n return {\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__path'],\n attributes: { role: 'navigation' }\n },\n behaviours: derive$1([\n Keying.config({\n mode: 'flow',\n selector: 'div[role=button]'\n }),\n Disabling.config({ disabled: providersBackstage.isDisabled }),\n receivingConfig(),\n Tabstopping.config({}),\n Replacing.config({}),\n 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 if (newPath.length > 0) {\n Replacing.set(comp, getDataPath(newPath));\n } else {\n Replacing.set(comp, []);\n }\n });\n })])\n ]),\n components: []\n };\n };\n\n var renderWordCount = function (editor, providersBackstage) {\n var _a;\n var replaceCountText = function (comp, count, mode) {\n return Replacing.set(comp, [text(providersBackstage.translate([\n '{0} ' + mode,\n 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([\n DisablingConfigs.button(providersBackstage.isDisabled),\n receivingConfig(),\n Tabstopping.config({}),\n Replacing.config({}),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: {\n mode: 'words',\n count: {\n words: 0,\n characters: 0\n }\n }\n }\n }),\n config('wordcount-events', [\n runOnExecute(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 }),\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 ])\n ]),\n eventOrder: (_a = {}, _a[execute()] = [\n 'disabling',\n 'alloy.base.behaviour',\n 'wordcount-events'\n ], _a)\n });\n };\n\n var renderStatusbar = function (editor, providersBackstage) {\n var renderResizeHandlerIcon = function (resizeType) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__resize-handle'],\n attributes: {\n 'title': providersBackstage.translate('Resize'),\n 'aria-hidden': 'true'\n },\n innerHtml: get$e('resize-handle', providersBackstage.icons)\n },\n behaviours: derive$1([Dragging.config({\n mode: 'mouse',\n repositionTarget: false,\n onDrag: function (comp, target, delta) {\n resize$3(editor, delta, resizeType);\n },\n blockerClass: 'tox-blocker'\n })])\n };\n };\n var renderBranding = function () {\n var label = global$6.translate([\n 'Powered by {0}',\n 'Tiny'\n ]);\n var linkHtml = '' + label + '';\n return {\n dom: {\n tag: 'span',\n classes: ['tox-statusbar__branding'],\n innerHtml: linkHtml\n }\n };\n };\n var getResizeType = function (editor) {\n var fallback = !editor.hasPlugin('autoresize');\n var resize = editor.getParam('resize', fallback);\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 var getTextComponents = function () {\n var components = [];\n if (editor.getParam('elementpath', true, 'boolean')) {\n components.push(renderElementPath(editor, {}, providersBackstage));\n }\n if (editor.hasPlugin('wordcount')) {\n components.push(renderWordCount(editor, providersBackstage));\n }\n if (editor.getParam('branding', true, 'boolean')) {\n components.push(renderBranding());\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 return [];\n };\n var getComponents = function () {\n var components = getTextComponents();\n var resizeType = getResizeType(editor);\n if (resizeType !== ResizeTypes.None) {\n components.push(renderResizeHandlerIcon(resizeType));\n }\n return components;\n };\n return {\n dom: {\n tag: 'div',\n classes: ['tox-statusbar']\n },\n components: getComponents()\n };\n };\n\n var setup$b = function (editor) {\n var _a;\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$3();\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$6.isRtl() ? { attributes: { dir: 'rtl' } } : {};\n var verticalDirAttributes = { attributes: (_a = {}, _a[Attribute] = isToolbarBottom ? AttributeValue.BottomToTop : AttributeValue.TopToBottom, _a) };\n var lazyHeader = function () {\n return lazyOuterContainer.bind(OuterContainer.getHeader);\n };\n var isHeaderDocked = function () {\n return header.isDocked(lazyHeader);\n };\n var resizeUiMothership = function () {\n set$2(uiMothership.element, 'width', document.body.clientWidth + 'px');\n };\n var makeSinkDefinition = function () {\n var isGridUiContainer = eq$1(body(), uiContainer) && get$5(uiContainer, 'display') === 'grid';\n var sinkSpec = {\n dom: __assign({\n tag: 'div',\n classes: [\n 'tox',\n 'tox-silver-sink',\n 'tox-tinymce-aux'\n ].concat(platformClasses).concat(deviceClasses)\n }, dirAttributes),\n behaviours: derive$1([Positioning.config({\n useFixed: function () {\n return isHeaderDocked();\n }\n })])\n };\n var reactiveWidthSpec = {\n dom: { styles: { width: document.body.clientWidth + 'px' } },\n events: derive([run(windowResize(), resizeUiMothership)])\n };\n return deepMerge(sinkSpec, isGridUiContainer ? reactiveWidthSpec : {});\n };\n var sink = build$1(makeSinkDefinition());\n var lazySink = function () {\n return Result.value(sink);\n };\n var memAnchorBar = record({\n dom: {\n tag: 'div',\n classes: ['tox-anchorbar']\n }\n });\n var lazyAnchorBar = function () {\n return lazyOuterContainer.bind(function (container) {\n return memAnchorBar.getOpt(container);\n }).getOrDie('Could not find a anchor bar element');\n };\n var lazyToolbar = function () {\n return lazyOuterContainer.bind(function (container) {\n return OuterContainer.getToolbar(container);\n }).getOrDie('Could not find more toolbar element');\n };\n var lazyThrobber = function () {\n return lazyOuterContainer.bind(function (container) {\n return OuterContainer.getThrobber(container);\n }).getOrDie('Could not find throbber element');\n };\n var backstage = init$8(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 () {\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 () {\n editor.focus();\n },\n type: toolbarMode,\n lazyToolbar: lazyToolbar,\n lazyHeader: function () {\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 () {\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: [\n partSocket,\n partSidebar\n ]\n };\n var hasMultipleToolbar = isMultipleToolbars(editor);\n var hasToolbar = isToolbarEnabled(editor);\n var hasMenubar = isMenubarEnabled(editor);\n var getPartToolbar = function () {\n if (hasMultipleToolbar) {\n return [partMultipleToolbar];\n } else if (hasToolbar) {\n return [partToolbar];\n } else {\n return [];\n }\n };\n var partHeader = OuterContainer.parts.header({\n dom: __assign({\n tag: 'div',\n classes: ['tox-editor-header']\n }, verticalDirAttributes),\n components: flatten([\n hasMenubar ? [partMenubar] : [],\n getPartToolbar(),\n useFixedContainer(editor) ? [] : [memAnchorBar.asSpec()]\n ]),\n sticky: isStickyToolbar(editor),\n editor: editor,\n sharedBackstage: backstage.shared\n });\n var editorComponents = flatten([\n isToolbarBottom ? [] : [partHeader],\n isInline ? [] : [socketSidebarContainer],\n isToolbarBottom ? [partHeader] : []\n ]);\n var editorContainer = {\n dom: {\n tag: 'div',\n classes: ['tox-editor-container']\n },\n components: editorComponents\n };\n var containerComponents = flatten([\n [editorContainer],\n isInline ? [] : statusbar.toArray(),\n [partThrobber]\n ]);\n var isHidden = isDistractionFree(editor);\n var attributes = __assign(__assign({ role: 'application' }, global$6.isRtl() ? { dir: 'rtl' } : {}), isHidden ? { 'aria-hidden': 'true' } : {});\n var outerContainer = build$1(OuterContainer.sketch({\n dom: {\n tag: 'div',\n classes: [\n 'tox',\n 'tox-tinymce'\n ].concat(isInline ? ['tox-tinymce-inline'] : []).concat(isToolbarBottom ? ['tox-tinymce--toolbar-bottom'] : []).concat(deviceClasses).concat(platformClasses),\n styles: __assign({ visibility: 'hidden' }, isHidden ? {\n opacity: '0',\n border: '0'\n } : {}),\n attributes: attributes\n },\n components: containerComponents,\n behaviours: derive$1([\n receivingConfig(),\n Disabling.config({ 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'\n })\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$3(editor, mothership, uiMothership);\n var getUi = function () {\n var channels = {\n broadcastAll: uiMothership.broadcast,\n broadcastOn: uiMothership.broadcastOn,\n register: noop\n };\n return { channels: channels };\n };\n var setEditorSize = function () {\n var parsedHeight = numToPx(getHeightWithFallback(editor));\n var parsedWidth = numToPx(getWidthWithFallback(editor));\n if (!editor.inline) {\n if (isValidValue('div', 'width', parsedWidth)) {\n set$2(outerContainer.element, 'width', parsedWidth);\n }\n if (isValidValue('div', 'height', parsedHeight)) {\n set$2(outerContainer.element, 'height', parsedHeight);\n } else {\n set$2(outerContainer.element, 'height', '200px');\n }\n }\n return parsedHeight;\n };\n var renderUI = function () {\n header.setup(editor, backstage.shared, lazyHeader);\n setup$8(editor, backstage);\n setup$9(editor, lazySink, backstage);\n setup$6(editor);\n setup$7(editor, lazyThrobber, backstage.shared);\n map$2(getToolbarGroups(editor), function (toolbarGroupButtonConfig, name) {\n editor.ui.registry.addGroupToolbarButton(name, toolbarGroupButtonConfig);\n });\n var _a = editor.ui.registry.getAll(), buttons = _a.buttons, menuItems = _a.menuItems, contextToolbars = _a.contextToolbars, sidebars = _a.sidebars;\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$4(editor, contextToolbars, sink, { backstage: backstage });\n setup$a(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 return {\n mothership: mothership,\n uiMothership: uiMothership,\n backstage: backstage,\n renderUI: renderUI,\n getUi: getUi\n };\n };\n\n var describedBy = function (describedElement, describeElement) {\n var describeId = Optional.from(get$3(describedElement, 'id')).fold(function () {\n var id = generate$1('dialog-describe');\n set$1(describeElement, 'id', id);\n return id;\n }, identity);\n set$1(describedElement, 'aria-describedby', describeId);\n };\n\n var labelledBy = function (labelledElement, labelElement) {\n var labelId = getOpt(labelledElement, 'id').fold(function () {\n var id = generate$1('dialog-label');\n set$1(labelElement, 'id', id);\n return id;\n }, identity);\n set$1(labelledElement, 'aria-labelledby', labelId);\n };\n\n var schema$x = constant([\n strict$1('lazySink'),\n option('dragBlockClass'),\n defaultedFunction('getBounds', win),\n defaulted$1('useTabstopAt', always),\n defaulted$1('eventOrder', {}),\n field$1('modalBehaviours', [Keying]),\n onKeyboardHandler('onExecute'),\n onStrictKeyboardHandler('onEscape')\n ]);\n var basic = { sketch: identity };\n var parts$f = constant([\n optional({\n name: 'draghandle',\n overrides: function (detail, spec) {\n return {\n behaviours: derive$1([Dragging.config({\n mode: 'mouse',\n getTarget: function (handle) {\n return ancestor$2(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 }),\n required({\n schema: [strict$1('dom')],\n name: 'title'\n }),\n required({\n factory: basic,\n schema: [strict$1('dom')],\n name: 'close'\n }),\n required({\n factory: basic,\n schema: [strict$1('dom')],\n name: 'body'\n }),\n optional({\n factory: basic,\n schema: [strict$1('dom')],\n name: 'footer'\n }),\n external$1({\n factory: {\n sketch: function (spec, detail) {\n return __assign(__assign({}, spec), {\n dom: detail.dom,\n components: detail.components\n });\n }\n },\n schema: [\n defaulted$1('dom', {\n tag: 'div',\n styles: {\n position: 'fixed',\n left: '0px',\n top: '0px',\n right: '0px',\n bottom: '0px'\n }\n }),\n defaulted$1('components', [])\n ],\n name: 'blocker'\n })\n ]);\n\n var block = function (component, config, state, getBusySpec) {\n set$1(component.element, 'aria-busy', true);\n var root = config.getRoot(component).getOr(component);\n var blockerBehaviours = derive$1([\n Keying.config({\n mode: 'special',\n onTab: function () {\n return Optional.some(true);\n },\n onShiftTab: function () {\n return Optional.some(true);\n }\n }),\n Focusing.config({})\n ]);\n var blockSpec = getBusySpec(root, blockerBehaviours);\n var blocker = root.getSystem().build(blockSpec);\n Replacing.append(root, premade$1(blocker));\n if (blocker.hasConfigured(Keying)) {\n Keying.focusIn(blocker);\n }\n if (!state.isBlocked()) {\n config.onBlock(component);\n }\n state.blockWith(function () {\n return Replacing.remove(root, blocker);\n });\n };\n var unblock = function (component, config, state) {\n remove$1(component.element, 'aria-busy');\n if (state.isBlocked()) {\n config.onUnblock(component);\n }\n state.clear();\n };\n\n var BlockingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n block: block,\n unblock: unblock\n });\n\n var BlockingSchema = [\n defaultedFunction('getRoot', Optional.none),\n onHandler('onBlock'),\n onHandler('onUnblock')\n ];\n\n var init$f = function () {\n var blocker = destroyable();\n var blockWith = function (destroy) {\n blocker.set({ destroy: destroy });\n };\n return nu$5({\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$f\n });\n\n var Blocking = create$1({\n fields: BlockingSchema,\n name: 'blocking',\n apis: BlockingApis,\n state: BlockingState\n });\n\n var factory$i = function (detail, components, spec, externals) {\n var _a;\n var dialogComp = Cell(Optional.none());\n var showDialog = function (dialog) {\n dialogComp.set(Optional.some(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$1(dialog)]),\n behaviours: derive$1([\n Focusing.config({}),\n config('dialog-blocker-events', [runOnSource(focusin(), function () {\n Keying.focusIn(dialog);\n })])\n ])\n }));\n attach$1(sink, blocker);\n Keying.focusIn(dialog);\n };\n var hideDialog = function (dialog) {\n dialogComp.set(Optional.none());\n parent(dialog.element).each(function (blockerDom) {\n dialog.getSystem().getByDom(blockerDom).each(function (blocker) {\n detach(blocker);\n });\n });\n };\n var getDialogBody = function (dialog) {\n return getPartOrDie(dialog, detail, 'body');\n };\n var getDialogFooter = function (dialog) {\n return getPartOrDie(dialog, detail, 'footer');\n };\n var setBusy = function (dialog, getBusySpec) {\n Blocking.block(dialog, getBusySpec);\n };\n var setIdle = function (dialog) {\n Blocking.unblock(dialog);\n };\n var modalEventsId = generate$1('modal-events');\n var eventOrder = __assign(__assign({}, detail.eventOrder), (_a = {}, _a[attachedToDom()] = [modalEventsId].concat(detail.eventOrder['alloy.system.attached'] || []), _a));\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, [\n Replacing.config({}),\n Keying.config({\n mode: 'cyclic',\n onEnter: detail.onExecute,\n onEscape: detail.onEscape,\n useTabstopAt: detail.useTabstopAt\n }),\n Blocking.config({ 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$1({\n name: 'ModalDialog',\n configFields: schema$x(),\n partFields: parts$f(),\n factory: factory$i,\n apis: {\n show: function (apis, dialog) {\n apis.show(dialog);\n },\n hide: function (apis, dialog) {\n apis.hide(dialog);\n },\n getBody: function (apis, dialog) {\n return apis.getBody(dialog);\n },\n getFooter: function (apis, dialog) {\n return apis.getFooter(dialog);\n },\n setBusy: function (apis, dialog, getBusySpec) {\n apis.setBusy(dialog, getBusySpec);\n },\n setIdle: function (apis, dialog) {\n apis.setIdle(dialog);\n }\n }\n });\n\n var dialogToggleMenuItemSchema = objOf([\n strictString('type'),\n strictString('name')\n ].concat(commonMenuItemFields));\n var dialogToggleMenuItemDataProcessor = boolean;\n\n var baseFooterButtonFields = [\n field('name', 'name', defaultedThunk(function () {\n return generate$1('button-name');\n }), string),\n optionString('icon'),\n defaultedStringEnum('align', 'end', [\n 'start',\n 'end'\n ]),\n defaultedBoolean('primary', false),\n defaultedBoolean('disabled', false)\n ];\n var dialogFooterButtonFields = __spreadArrays(baseFooterButtonFields, [strictString('text')]);\n var normalFooterButtonFields = __spreadArrays([strictStringEnum('type', [\n 'submit',\n 'cancel',\n 'custom'\n ])], dialogFooterButtonFields);\n var menuFooterButtonFields = __spreadArrays([\n strictStringEnum('type', ['menu']),\n optionString('text'),\n optionString('tooltip'),\n optionString('icon'),\n strictArrayOf('items', dialogToggleMenuItemSchema)\n ], baseFooterButtonFields);\n var dialogFooterButtonSchema = choose$1('type', {\n submit: normalFooterButtonFields,\n cancel: normalFooterButtonFields,\n custom: normalFooterButtonFields,\n menu: menuFooterButtonFields\n });\n\n var alertBannerFields = [\n strictString('type'),\n strictString('text'),\n strictStringEnum('level', [\n 'info',\n 'warn',\n 'error',\n 'success'\n ]),\n strictString('icon'),\n defaulted$1('url', '')\n ];\n var alertBannerSchema = objOf(alertBannerFields);\n\n var createBarFields = function (itemsField) {\n return [\n strictString('type'),\n itemsField\n ];\n };\n\n var buttonFields = [\n strictString('type'),\n strictString('text'),\n defaultedBoolean('disabled', false),\n defaultedBoolean('primary', false),\n field('name', 'name', defaultedThunk(function () {\n return generate$1('button-name');\n }), string),\n optionString('icon'),\n defaultedBoolean('borderless', false)\n ];\n var buttonSchema = objOf(buttonFields);\n\n var checkboxFields = [\n strictString('type'),\n strictString('name'),\n strictString('label'),\n defaultedBoolean('disabled', false)\n ];\n var checkboxSchema = objOf(checkboxFields);\n var checkboxDataProcessor = boolean;\n\n var formComponentFields = [\n strictString('type'),\n strictString('name')\n ];\n var formComponentWithLabelFields = formComponentFields.concat([optionString('label')]);\n\n var collectionFields = formComponentWithLabelFields.concat([defaulted$1('columns', 'auto')]);\n var collectionSchema = objOf(collectionFields);\n var collectionDataProcessor = arrOfObj$1([\n strictString('value'),\n strictString('text'),\n strictString('icon')\n ]);\n\n var colorInputFields = formComponentWithLabelFields;\n var colorInputSchema = objOf(colorInputFields);\n var colorInputDataProcessor = string;\n\n var colorPickerFields = formComponentWithLabelFields;\n var colorPickerSchema = objOf(colorPickerFields);\n var colorPickerDataProcessor = string;\n\n var customEditorFields = formComponentFields.concat([\n defaultedString('tag', 'textarea'),\n strictString('scriptId'),\n strictString('scriptUrl'),\n defaultedPostMsg('settings', undefined)\n ]);\n var customEditorFieldsOld = formComponentFields.concat([\n defaultedString('tag', 'textarea'),\n strictFunction('init')\n ]);\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\n var dropZoneFields = formComponentWithLabelFields;\n var dropZoneSchema = objOf(dropZoneFields);\n var dropZoneDataProcessor = arrOfVal();\n\n var createGridFields = function (itemsField) {\n return [\n strictString('type'),\n strictNumber('columns'),\n itemsField\n ];\n };\n\n var htmlPanelFields = [\n strictString('type'),\n strictString('html'),\n defaultedStringEnum('presets', 'presentation', [\n 'presentation',\n 'document'\n ])\n ];\n var htmlPanelSchema = objOf(htmlPanelFields);\n\n var iframeFields = formComponentWithLabelFields.concat([defaultedBoolean('sandboxed', true)]);\n var iframeSchema = objOf(iframeFields);\n var iframeDataProcessor = string;\n\n var imageToolsFields = formComponentWithLabelFields.concat([strictOf('currentState', objOf([\n strict$1('blob'),\n strictString('url')\n ]))]);\n var imageToolsSchema = objOf(imageToolsFields);\n\n var inputFields = formComponentWithLabelFields.concat([\n optionString('inputMode'),\n optionString('placeholder'),\n defaultedBoolean('maximized', false),\n defaultedBoolean('disabled', false)\n ]);\n var inputSchema = objOf(inputFields);\n var inputDataProcessor = string;\n\n var createLabelFields = function (itemsField) {\n return [\n strictString('type'),\n strictString('label'),\n itemsField\n ];\n };\n\n var listBoxSingleItemFields = [\n strictString('text'),\n strictString('value')\n ];\n var listBoxNestedItemFields = [\n strictString('text'),\n strictArrayOf('items', thunkOf('items', function () {\n return listBoxItemSchema;\n }))\n ];\n var listBoxItemSchema = oneOf([\n objOf(listBoxSingleItemFields),\n objOf(listBoxNestedItemFields)\n ]);\n var listBoxFields = formComponentWithLabelFields.concat([\n strictArrayOf('items', listBoxItemSchema),\n defaultedBoolean('disabled', false)\n ]);\n var listBoxSchema = objOf(listBoxFields);\n var listBoxDataProcessor = string;\n\n var selectBoxFields = formComponentWithLabelFields.concat([\n strictArrayOfObj('items', [\n strictString('text'),\n strictString('value')\n ]),\n defaultedNumber('size', 1),\n defaultedBoolean('disabled', false)\n ]);\n var selectBoxSchema = objOf(selectBoxFields);\n var selectBoxDataProcessor = string;\n\n var sizeInputFields = formComponentWithLabelFields.concat([\n defaultedBoolean('constrain', true),\n defaultedBoolean('disabled', false)\n ]);\n var sizeInputSchema = objOf(sizeInputFields);\n var sizeInputDataProcessor = objOf([\n strictString('width'),\n strictString('height')\n ]);\n\n var tableFields = [\n strictString('type'),\n strictArrayOf('header', string),\n strictArrayOf('cells', arrOf(string))\n ];\n var tableSchema = objOf(tableFields);\n\n var textAreaFields = formComponentWithLabelFields.concat([\n optionString('placeholder'),\n defaultedBoolean('maximized', false),\n defaultedBoolean('disabled', false)\n ]);\n var textAreaSchema = objOf(textAreaFields);\n var textAreaDataProcessor = string;\n\n var urlInputFields = formComponentWithLabelFields.concat([\n defaultedStringEnum('filetype', 'file', [\n 'image',\n 'media',\n 'file'\n ]),\n defaulted$1('disabled', false)\n ]);\n var urlInputSchema = objOf(urlInputFields);\n var urlInputDataProcessor = objOf([\n strictString('value'),\n defaulted$1('meta', {})\n ]);\n\n var createItemsField = function (name) {\n return field('items', 'items', strict(), arrOf(valueOf(function (v) {\n return asRaw('Checking item of ' + name, itemSchema$3, v).fold(function (sErr) {\n return Result.error(formatError(sErr));\n }, function (passValue) {\n return Result.value(passValue);\n });\n })));\n };\n var itemSchema$3 = valueThunkOf(function () {\n return chooseProcessor('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 = [\n strictString('type'),\n defaulted$1('classes', []),\n strictArrayOf('items', itemSchema$3)\n ];\n var panelSchema = objOf(panelFields);\n\n var tabFields = [\n field('name', 'name', defaultedThunk(function () {\n return generate$1('tab-name');\n }), string),\n strictString('title'),\n strictArrayOf('items', itemSchema$3)\n ];\n var tabPanelFields = [\n strictString('type'),\n strictArrayOfObj('tabs', tabFields)\n ];\n var tabPanelSchema = objOf(tabPanelFields);\n\n var dialogButtonFields = dialogFooterButtonFields;\n var dialogButtonSchema = dialogFooterButtonSchema;\n var dialogSchema = objOf([\n strictString('title'),\n strictOf('body', chooseProcessor('type', {\n panel: panelSchema,\n tabpanel: tabPanelSchema\n })),\n defaultedString('size', 'normal'),\n strictArrayOf('buttons', dialogButtonSchema),\n defaulted$1('initialData', {}),\n defaultedFunction('onAction', noop),\n defaultedFunction('onChange', noop),\n defaultedFunction('onSubmit', noop),\n defaultedFunction('onClose', noop),\n defaultedFunction('onCancel', noop),\n defaulted$1('onTabChange', noop)\n ]);\n var createDialog = function (spec) {\n return asRaw('dialog', dialogSchema, spec);\n };\n\n var urlDialogButtonSchema = objOf(__spreadArrays([strictStringEnum('type', [\n 'cancel',\n 'custom'\n ])], dialogButtonFields));\n var urlDialogSchema = objOf([\n strictString('title'),\n strictString('url'),\n optionNumber('height'),\n optionNumber('width'),\n optionArrayOf('buttons', urlDialogButtonSchema),\n defaultedFunction('onAction', noop),\n defaultedFunction('onCancel', noop),\n defaultedFunction('onClose', noop),\n defaultedFunction('onMessage', noop)\n ]);\n var createUrlDialog = function (spec) {\n return asRaw('dialog', urlDialogSchema, spec);\n };\n\n var getAllObjects = function (obj) {\n if (isObject(obj)) {\n return [obj].concat(bind(values(obj), getAllObjects));\n } else if (isArray(obj)) {\n return bind(obj, getAllObjects);\n } else {\n return [];\n }\n };\n\n var isNamedItem = function (obj) {\n return isString(obj.type) && isString(obj.name);\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 var getDataProcessor = function (item) {\n return Optional.from(dataProcessors[item.type]);\n };\n var getNamedItems = function (structure) {\n return filter(getAllObjects(structure), isNamedItem);\n };\n\n var createDataValidator = function (structure) {\n var namedItems = getNamedItems(structure);\n var fields = bind(namedItems, function (item) {\n return getDataProcessor(item).fold(function () {\n return [];\n }, function (schema) {\n return [strictOf(item.name, schema)];\n });\n });\n return objOf(fields);\n };\n\n var extract$1 = function (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 var DialogManager = {\n open: function (factory, structure) {\n var extraction = extract$1(structure);\n return factory(extraction.internalDialog, extraction.initialData, extraction.dataValidator);\n },\n openUrl: function (factory, structure) {\n var internalDialog = getOrDie(createUrlDialog(structure));\n return factory(internalDialog);\n },\n redial: function (structure) {\n return extract$1(structure);\n }\n };\n\n var toValidValues = function (values) {\n var errors = [];\n var result = {};\n each$1(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 (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(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([\n Keying.config({\n mode: 'acyclic',\n useTabstopAt: not(isPseudoStop)\n }),\n ComposingConfigs.memento(memForm),\n RepresentingConfigs.memento(memForm, {\n postprocess: function (formValue) {\n return toValidValues(formValue).fold(function (err) {\n console.error(err);\n return {};\n }, function (vals) {\n return vals;\n });\n }\n })\n ])\n };\n };\n\n var factory$j = function (detail, _spec) {\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: detail.components,\n events: events$7(detail.action),\n behaviours: augment(detail.tabButtonBehaviours, [\n Focusing.config({}),\n Keying.config({\n mode: 'execution',\n useSpace: true,\n useEnter: true\n }),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: detail.value\n }\n })\n ]),\n domModification: detail.domModification\n };\n };\n var TabButton = single$2({\n name: 'TabButton',\n configFields: [\n defaulted$1('uid', undefined),\n strict$1('value'),\n field('dom', 'dom', mergeWithThunk(function () {\n return {\n attributes: {\n 'role': 'tab',\n 'id': generate$1('aria'),\n 'aria-selected': 'false'\n }\n };\n }), anyValue$1()),\n option('action'),\n defaulted$1('domModification', {}),\n field$1('tabButtonBehaviours', [\n Focusing,\n Keying,\n Representing\n ]),\n strict$1('view')\n ],\n factory: factory$j\n });\n\n var schema$y = constant([\n strict$1('tabs'),\n strict$1('dom'),\n defaulted$1('clickToDismiss', false),\n field$1('tabbarBehaviours', [\n Highlighting,\n Keying\n ]),\n markers([\n 'tabClass',\n 'selectedClass'\n ])\n ]);\n var tabsPart = group({\n factory: TabButton,\n name: 'tabs',\n unit: 'tab',\n overrides: function (barDetail) {\n var dismissTab$1 = function (tabbar, button) {\n Highlighting.dehighlight(tabbar, button);\n emitWith(tabbar, dismissTab(), {\n tabbar: tabbar,\n button: button\n });\n };\n var changeTab$1 = function (tabbar, button) {\n Highlighting.highlight(tabbar, button);\n emitWith(tabbar, changeTab(), {\n tabbar: tabbar,\n button: button\n });\n };\n return {\n action: function (button) {\n var tabbar = button.getSystem().getByUid(barDetail.uid).getOrDie();\n var activeButton = Highlighting.isHighlighted(tabbar, button);\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 response(tabbar, button);\n },\n domModification: { classes: [barDetail.markers.tabClass] }\n };\n }\n });\n var parts$g = constant([tabsPart]);\n\n var factory$k = function (detail, components, _spec, _externals) {\n return {\n 'uid': detail.uid,\n 'dom': detail.dom,\n components: components,\n 'debug.sketcher': 'Tabbar',\n 'domModification': { attributes: { role: 'tablist' } },\n 'behaviours': augment(detail.tabbarBehaviours, [\n Highlighting.config({\n highlightClass: detail.markers.selectedClass,\n itemClass: detail.markers.tabClass,\n onHighlight: function (tabbar, tab) {\n set$1(tab.element, 'aria-selected', 'true');\n },\n onDehighlight: function (tabbar, tab) {\n set$1(tab.element, 'aria-selected', 'false');\n }\n }),\n Keying.config({\n mode: 'flow',\n getInitial: function (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$1({\n name: 'Tabbar',\n configFields: schema$y(),\n partFields: parts$g(),\n factory: factory$k\n });\n\n var factory$l = function (detail, _spec) {\n return {\n uid: detail.uid,\n dom: detail.dom,\n behaviours: augment(detail.tabviewBehaviours, [Replacing.config({})]),\n domModification: { attributes: { role: 'tabpanel' } }\n };\n };\n var Tabview = single$2({\n name: 'Tabview',\n configFields: [field$1('tabviewBehaviours', [Replacing])],\n factory: factory$l\n });\n\n var schema$z = constant([\n defaulted$1('selectFirst', true),\n onHandler('onChangeTab'),\n onHandler('onDismissTab'),\n defaulted$1('tabs', []),\n field$1('tabSectionBehaviours', [])\n ]);\n var barPart = required({\n factory: Tabbar,\n schema: [\n strict$1('dom'),\n strictObjOf('markers', [\n strict$1('tabClass'),\n strict$1('selectedClass')\n ])\n ],\n name: 'tabbar',\n defaults: function (detail) {\n return { tabs: detail.tabs };\n }\n });\n var viewPart = required({\n factory: Tabview,\n name: 'tabview'\n });\n var parts$h = constant([\n barPart,\n viewPart\n ]);\n\n var factory$m = function (detail, components, _spec, _externals) {\n var changeTab$1 = function (button) {\n var tabValue = Representing.getValue(button);\n getPart(button, detail, 'tabview').each(function (tabview) {\n var tabWithValue = find(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$1(tabview.element, 'aria-labelledby', id);\n });\n Replacing.set(tabview, panel);\n detail.onChangeTab(tabview, button, panel);\n });\n });\n };\n var changeTabBy = function (section, byPred) {\n getPart(section, detail, 'tabbar').each(function (tabbar) {\n byPred(tabbar).each(emitExecute);\n });\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: get$d(detail.tabSectionBehaviours),\n events: derive(flatten([\n detail.selectFirst ? [runOnAttached(function (section, _simulatedEvent) {\n changeTabBy(section, Highlighting.getFirst);\n })] : [],\n [\n run(changeTab(), function (section, simulatedEvent) {\n var button = simulatedEvent.event.button;\n changeTab$1(button);\n }),\n run(dismissTab(), function (section, simulatedEvent) {\n var button = simulatedEvent.event.button;\n detail.onDismissTab(section, button);\n })\n ]\n ])),\n apis: {\n getViewItems: function (section) {\n return getPart(section, detail, 'tabview').map(function (tabview) {\n return Replacing.contents(tabview);\n }).getOr([]);\n },\n showTab: function (section, tabKey) {\n var getTabIfNotActive = function (tabbar) {\n var candidates = Highlighting.getCandidates(tabbar);\n var optTab = find(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 changeTabBy(section, getTabIfNotActive);\n }\n }\n };\n };\n var TabSection = composite$1({\n name: 'TabSection',\n configFields: schema$z(),\n partFields: parts$h(),\n factory: factory$m,\n apis: {\n getViewItems: function (apis, component) {\n return apis.getViewItems(component);\n },\n showTab: function (apis, component, tabKey) {\n apis.showTab(component, tabKey);\n }\n }\n });\n\n var measureHeights = function (allTabs, tabview, tabviewComp) {\n return map(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 var getMaxHeight = function (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 var getMaxTabviewHeight = function (dialog, tabview, tablist) {\n var documentElement$1 = documentElement(dialog).dom;\n var rootElm = ancestor$2(dialog, '.tox-dialog-wrap').getOr(dialog);\n var isFixed = get$5(rootElm, 'position') === 'fixed';\n var maxHeight;\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 var tabviewHeight = get$7(tabview);\n var isTabListBeside = tabview.dom.offsetLeft >= tablist.dom.offsetLeft + get$8(tablist);\n var currentTabHeight = isTabListBeside ? Math.max(get$7(tablist), tabviewHeight) : tabviewHeight;\n var dialogTopMargin = parseInt(get$5(dialog, 'margin-top'), 10) || 0;\n var dialogBottomMargin = parseInt(get$5(dialog, 'margin-bottom'), 10) || 0;\n var dialogHeight = get$7(dialog) + dialogTopMargin + dialogBottomMargin;\n var chromeHeight = dialogHeight - currentTabHeight;\n return maxHeight - chromeHeight;\n };\n var showTab = function (allTabs, comp) {\n head(allTabs).each(function (tab) {\n return TabSection.showTab(comp, tab.value);\n });\n };\n var setTabviewHeight = function (tabview, height) {\n set$2(tabview, 'height', height + 'px');\n if (!detect$3().browser.isIE()) {\n set$2(tabview, 'flex-basis', height + 'px');\n } else {\n remove$6(tabview, 'flex-basis');\n }\n };\n var updateTabviewHeight = function (dialogBody, tabview, maxTabHeight) {\n ancestor$2(dialogBody, '[role=\"dialog\"]').each(function (dialog) {\n descendant$1(dialog, '[role=\"tablist\"]').each(function (tablist) {\n maxTabHeight.get().map(function (height) {\n set$2(tabview, 'height', '0');\n set$2(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 var getTabview = function (dialog) {\n return descendant$1(dialog, '[role=\"tabpanel\"]');\n };\n var setMode = function (allTabs) {\n var smartTabHeight = function () {\n var maxTabHeight = Cell(Optional.none());\n var extraEvents = [\n runOnAttached(function (comp) {\n var dialog = comp.element;\n getTabview(dialog).each(function (tabview) {\n set$2(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 maxTabHeight.set(maxTabHeightOpt);\n });\n updateTabviewHeight(dialog, tabview, maxTabHeight);\n remove$6(tabview, 'visibility');\n showTab(allTabs, comp);\n global$2.requestAnimationFrame(function () {\n updateTabviewHeight(dialog, tabview, maxTabHeight);\n });\n });\n }),\n run(windowResize(), function (comp) {\n var dialog = comp.element;\n getTabview(dialog).each(function (tabview) {\n updateTabviewHeight(dialog, tabview, maxTabHeight);\n });\n }),\n run(formResizeEvent, function (comp, _se) {\n var dialog = comp.element;\n getTabview(dialog).each(function (tabview) {\n var oldFocus = active(getRootNode(tabview));\n set$2(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 if (hasGrown) {\n maxTabHeight.set(Optional.from(newHeight));\n updateTabviewHeight(dialog, tabview, maxTabHeight);\n } else {\n oldHeight.each(function (h) {\n setTabviewHeight(tabview, h);\n });\n }\n remove$6(tabview, 'visibility');\n oldFocus.each(focus$1);\n });\n })\n ];\n var selectFirst = false;\n return {\n extraEvents: extraEvents,\n selectFirst: selectFirst\n };\n }();\n var naiveTabHeight = function () {\n var extraEvents = [];\n var selectFirst = true;\n return {\n extraEvents: extraEvents,\n selectFirst: selectFirst\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 var renderTabPanel = function (spec, backstage) {\n var storedValue = Cell({});\n var updateDataWithForm = function (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 var setDataOnForm = function (form) {\n var tabData = storedValue.get();\n Representing.setValue(form, tabData);\n };\n var oldTab = Cell(null);\n var allTabs = map(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 () {\n return [Form.sketch(function (parts) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-form']\n },\n components: map(tab.items, function (item) {\n return interpretInForm(parts, item, backstage);\n }),\n formBehaviours: derive$1([\n Keying.config({\n mode: 'acyclic',\n useTabstopAt: not(isPseudoStop)\n }),\n config('TabView.form.events', [\n runOnAttached(setDataOnForm),\n runOnDetached(updateDataWithForm)\n ]),\n Receiving.config({\n channels: wrapAll$1([\n {\n key: SendDataToSectionChannel,\n value: { onReceive: updateDataWithForm }\n },\n {\n key: SendDataToViewChannel,\n value: { onReceive: setDataOnForm }\n }\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 (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: [\n 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 }),\n TabSection.parts.tabview({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-content']\n }\n })\n ],\n selectFirst: tabMode.selectFirst,\n tabSectionBehaviours: derive$1([\n config('tabpanel', tabMode.extraEvents),\n Keying.config({ mode: 'acyclic' }),\n Composing.config({\n find: function (comp) {\n return head(TabSection.getViewItems(comp));\n }\n }),\n Representing.config({\n store: {\n mode: 'manual',\n getValue: function (tsection) {\n tsection.getSystem().broadcastOn([SendDataToSectionChannel], {});\n return storedValue.get();\n },\n setValue: function (tsection, value) {\n storedValue.set(value);\n tsection.getSystem().broadcastOn([SendDataToViewChannel], {});\n }\n }\n })\n ])\n });\n };\n\n var dialogChannel = generate$1('update-dialog');\n var titleChannel = generate$1('update-title');\n var bodyChannel = generate$1('update-body');\n var footerChannel = generate$1('update-footer');\n var bodySendMessageChannel = generate$1('body-send-message');\n\n var renderBody = function (spec, id, backstage, ariaAttrs) {\n var renderComponents = function (incoming) {\n switch (incoming.body.type) {\n case 'tabpanel': {\n return [renderTabPanel(incoming.body, backstage)];\n }\n default: {\n return [renderBodyPanel(incoming.body, backstage)];\n }\n }\n };\n var updateState = function (_comp, incoming) {\n return Optional.some({\n isTabPanel: function () {\n return incoming.body.type === 'tabpanel';\n }\n });\n };\n var ariaAttributes = { 'aria-live': 'polite' };\n return {\n dom: {\n tag: 'div',\n classes: ['tox-dialog__content-js'],\n attributes: __assign(__assign({}, id.map(function (x) {\n return { id: x };\n }).getOr({})), ariaAttrs ? ariaAttributes : {})\n },\n components: [],\n behaviours: derive$1([\n ComposingConfigs.childAt(0),\n Reflecting.config({\n channel: bodyChannel,\n updateState: updateState,\n renderComponents: renderComponents,\n initialData: spec\n })\n ])\n };\n };\n var renderInlineBody = function (spec, contentId, backstage, ariaAttrs) {\n return renderBody(spec, Optional.some(contentId), backstage, ariaAttrs);\n };\n var renderModalBody = function (spec, backstage) {\n var bodySpec = renderBody(spec, Optional.none(), backstage, false);\n return ModalDialog.parts.body(bodySpec);\n };\n var renderIframeBody = function (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: { src: spec.url }\n },\n behaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({})\n ])\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$8.deviceType.isTouch();\n var hiddenHeader = function (title, close) {\n return {\n dom: {\n tag: 'div',\n styles: { display: 'none' },\n classes: ['tox-dialog__header']\n },\n components: [\n title,\n close\n ]\n };\n };\n var pClose = function (onClose, providersBackstage) {\n return ModalDialog.parts.close(Button.sketch({\n dom: {\n tag: 'button',\n classes: [\n 'tox-button',\n 'tox-button--icon',\n 'tox-button--naked'\n ],\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 var pUntitled = function () {\n return ModalDialog.parts.title({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__title'],\n innerHtml: '',\n styles: { display: 'none' }\n }\n });\n };\n var pBodyMessage = function (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: [{ dom: fromHtml$2('

' + providersBackstage.translate(message) + '

') }]\n }]\n });\n };\n var pFooter = function (buttons) {\n return ModalDialog.parts.footer({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__footer']\n },\n components: buttons\n });\n };\n var pFooterGroup = function (startButtons, endButtons) {\n return [\n Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__footer-start']\n },\n components: startButtons\n }),\n Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__footer-end']\n },\n components: endButtons\n })\n ];\n };\n var renderDialog = function (spec) {\n var _a;\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 (comp) {\n spec.onEscape(comp);\n return Optional.some(true);\n },\n useTabstopAt: function (elem) {\n return !isPseudoStop(elem);\n },\n dom: {\n tag: 'div',\n classes: [dialogClass].concat(spec.extraClasses),\n styles: __assign({ position: 'relative' }, spec.extraStyles)\n },\n components: __spreadArrays([\n spec.header,\n spec.body\n ], spec.footer.toArray()),\n parts: {\n blocker: {\n dom: fromHtml$2('
'),\n components: [{\n dom: {\n tag: 'div',\n classes: isTouch ? [\n blockerBackdropClass,\n blockerBackdropClass + '--opaque'\n ] : [blockerBackdropClass]\n }\n }]\n }\n },\n dragBlockClass: blockerClass,\n modalBehaviours: derive$1(__spreadArrays([\n Focusing.config({}),\n config('dialog-events', spec.dialogEvents.concat([runOnSource(focusin(), function (comp, _se) {\n Keying.focusIn(comp);\n })])),\n config('scroll-lock', [\n runOnAttached(function () {\n add$2(body(), scrollLockClass);\n }),\n runOnDetached(function () {\n remove$4(body(), scrollLockClass);\n })\n ])\n ], spec.extraBehaviours)),\n eventOrder: __assign((_a = {}, _a[execute()] = ['dialog-events'], _a[attachedToDom()] = [\n 'scroll-lock',\n 'dialog-events',\n 'alloy.base.behaviour'\n ], _a[detachedFromDom()] = [\n 'alloy.base.behaviour',\n 'dialog-events',\n 'scroll-lock'\n ], _a), spec.eventOrder)\n });\n };\n\n var renderClose = function (providersBackstage) {\n return Button.sketch({\n dom: {\n tag: 'button',\n classes: [\n 'tox-button',\n 'tox-button--icon',\n 'tox-button--naked'\n ],\n attributes: {\n 'type': 'button',\n 'aria-label': providersBackstage.translate('Close'),\n 'title': providersBackstage.translate('Close')\n }\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-icon'],\n innerHtml: get$e('close', providersBackstage.icons)\n }\n }],\n action: function (comp) {\n emit(comp, formCancelEvent);\n }\n });\n };\n var renderTitle = function (spec, id, providersBackstage) {\n var renderComponents = function (data) {\n return [text(providersBackstage.translate(data.title))];\n };\n return {\n dom: {\n tag: 'div',\n classes: ['tox-dialog__title'],\n attributes: __assign({}, id.map(function (x) {\n return { id: x };\n }).getOr({}))\n },\n components: renderComponents(spec),\n behaviours: derive$1([Reflecting.config({\n channel: titleChannel,\n renderComponents: renderComponents\n })])\n };\n };\n var renderDragHandle = function () {\n return { dom: fromHtml$2('
') };\n };\n var renderInlineHeader = function (spec, titleId, providersBackstage) {\n return Container.sketch({\n dom: fromHtml$2('
'),\n components: [\n renderTitle(spec, Optional.some(titleId), providersBackstage),\n renderDragHandle(),\n renderClose(providersBackstage)\n ],\n containerBehaviours: derive$1([Dragging.config({\n mode: 'mouse',\n blockerClass: 'blocker',\n getTarget: function (handle) {\n return closest$3(handle, '[role=\"dialog\"]').getOrDie();\n },\n snaps: {\n getSnapPoints: function () {\n return [];\n },\n leftAttr: 'data-drag-left',\n topAttr: 'data-drag-top'\n }\n })])\n });\n };\n var renderModalHeader = function (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$2('
'),\n components: components\n });\n };\n\n var getHeader = function (title, backstage) {\n return renderModalHeader({\n title: backstage.shared.providers.translate(title),\n draggable: backstage.dialog.isDraggableModal()\n }, backstage.shared.providers);\n };\n var getBusySpec = function (message, bs, providers) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-dialog__busy-spinner'],\n attributes: { 'aria-label': providers.translate(message) },\n styles: {\n left: '0px',\n right: '0px',\n bottom: '0px',\n top: '0px',\n position: 'absolute'\n }\n },\n behaviours: bs,\n components: [{ dom: fromHtml$2('
') }]\n };\n };\n var getEventExtras = function (lazyDialog, providers, extra) {\n return {\n onClose: function () {\n return extra.closeWindow();\n },\n onBlock: function (blockEvent) {\n ModalDialog.setBusy(lazyDialog(), function (_comp, bs) {\n return getBusySpec(blockEvent.message, bs, providers);\n });\n },\n onUnblock: function () {\n ModalDialog.setIdle(lazyDialog());\n }\n };\n };\n var renderModalDialog = function (spec, initialData, dialogEvents, backstage) {\n var _a;\n var updateState = function (_comp, incoming) {\n return Optional.some(incoming);\n };\n return build$1(renderDialog(__assign(__assign({}, spec), {\n lazySink: backstage.shared.getSink,\n extraBehaviours: __spreadArrays([\n Reflecting.config({\n channel: dialogChannel,\n updateState: updateState,\n initialData: initialData\n }),\n RepresentingConfigs.memory({})\n ], spec.extraBehaviours),\n onEscape: function (comp) {\n emit(comp, formCancelEvent);\n },\n dialogEvents: dialogEvents,\n eventOrder: (_a = {}, _a[receive()] = [\n Reflecting.name(),\n Receiving.name()\n ], _a[attachedToDom()] = [\n 'scroll-lock',\n Reflecting.name(),\n 'messages',\n 'dialog-events',\n 'alloy.base.behaviour'\n ], _a[detachedFromDom()] = [\n 'alloy.base.behaviour',\n 'dialog-events',\n 'messages',\n Reflecting.name(),\n 'scroll-lock'\n ], _a)\n })));\n };\n var mapMenuButtons = function (buttons) {\n var mapItems = function (button) {\n var items = map(button.items, function (item) {\n var cell = Cell(false);\n return __assign(__assign({}, item), { storage: cell });\n });\n return __assign(__assign({}, button), { items: items });\n };\n return map(buttons, function (button) {\n if (button.type === 'menu') {\n return mapItems(button);\n }\n return button;\n });\n };\n var extractCellsToObject = function (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 return acc;\n }, {});\n };\n\n var initCommonEvents = function (fireApiEvent, extras) {\n return [\n runWithTarget(focusin(), onFocus$1),\n fireApiEvent(formCloseEvent, function (_api, spec) {\n extras.onClose();\n spec.onClose();\n }),\n fireApiEvent(formCancelEvent, function (api, spec, _event, self) {\n spec.onCancel(api);\n emit(self, formCloseEvent);\n }),\n run(formUnblockEvent, function (_c, _se) {\n return extras.onUnblock();\n }),\n run(formBlockEvent, function (_c, se) {\n return extras.onBlock(se.event);\n })\n ];\n };\n var initUrlDialog = function (getInstanceApi, extras) {\n var fireApiEvent = function (eventName, f) {\n return run(eventName, function (c, se) {\n withSpec(c, function (spec, _c) {\n f(getInstanceApi(), spec, se.event, c);\n });\n });\n };\n var withSpec = function (c, f) {\n Reflecting.getState(c).get().each(function (currentDialog) {\n f(currentDialog, c);\n });\n };\n return __spreadArrays(initCommonEvents(fireApiEvent, extras), [fireApiEvent(formActionEvent, function (api, spec, event) {\n spec.onAction(api, { name: event.name });\n })]);\n };\n var initDialog = function (getInstanceApi, extras, getSink) {\n var fireApiEvent = function (eventName, f) {\n return run(eventName, function (c, se) {\n withSpec(c, function (spec, _c) {\n f(getInstanceApi(), spec, se.event, c);\n });\n });\n };\n var withSpec = function (c, f) {\n Reflecting.getState(c).get().each(function (currentDialogInit) {\n f(currentDialogInit.internalDialog, c);\n });\n };\n return __spreadArrays(initCommonEvents(fireApiEvent, extras), [\n fireApiEvent(formSubmitEvent, function (api, spec) {\n return spec.onSubmit(api);\n }),\n fireApiEvent(formChangeEvent, function (api, spec, event) {\n spec.onChange(api, { name: event.name });\n }),\n fireApiEvent(formActionEvent, function (api, spec, event, component) {\n var focusIn = function () {\n return Keying.focusIn(component);\n };\n var isDisabled = function (focused) {\n return has$1(focused, 'disabled') || getOpt(focused, 'aria-disabled').exists(function (val) {\n return val === 'true';\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$2(focused, cur) && isDisabled(cur);\n })) {\n focusIn();\n } else {\n getSink().toOptional().filter(function (sink) {\n return !contains$2(sink.element, focused);\n }).each(focusIn);\n }\n });\n }),\n fireApiEvent(formTabChangeEvent, function (api, spec, event) {\n spec.onTabChange(api, {\n newTabName: event.name,\n oldTabName: event.oldName\n });\n }),\n runOnDetached(function (component) {\n var api = getInstanceApi();\n Representing.setValue(component, api.getData());\n })\n ]);\n };\n var SilverDialogEvents = {\n initUrlDialog: initUrlDialog,\n initDialog: initDialog\n };\n\n var makeButton = function (button, backstage) {\n return renderFooterButton(button, button.type, backstage);\n };\n var lookup$2 = function (compInSystem, footerButtons, buttonName) {\n return find(footerButtons, function (button) {\n return button.name === buttonName;\n }).bind(function (memButton) {\n return memButton.memento.getOpt(compInSystem);\n });\n };\n var renderComponents = function (_data, state) {\n var footerButtons = state.map(function (s) {\n return s.footerButtons;\n }).getOr([]);\n var buttonGroups = partition(footerButtons, function (button) {\n return button.align === 'start';\n });\n var makeGroup = function (edge, buttons) {\n return Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__footer-' + edge]\n },\n components: map(buttons, function (button) {\n return button.memento.asSpec();\n })\n });\n };\n var startButtons = makeGroup('start', buttonGroups.pass);\n var endButtons = makeGroup('end', buttonGroups.fail);\n return [\n startButtons,\n endButtons\n ];\n };\n var renderFooter = function (initSpec, backstage) {\n var updateState = function (_comp, data) {\n var footerButtons = map(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 var lookupByName = function (compInSystem, buttonName) {\n return lookup$2(compInSystem, footerButtons, buttonName);\n };\n return Optional.some({\n lookupByName: lookupByName,\n footerButtons: footerButtons\n });\n };\n return {\n dom: fromHtml$2('
'),\n components: [],\n behaviours: derive$1([Reflecting.config({\n channel: footerChannel,\n initialData: initSpec,\n updateState: updateState,\n renderComponents: renderComponents\n })])\n };\n };\n var renderInlineFooter = function (initSpec, backstage) {\n return renderFooter(initSpec, backstage);\n };\n var renderModalFooter = function (initSpec, backstage) {\n return ModalDialog.parts.footer(renderFooter(initSpec, backstage));\n };\n\n var getCompByName = function (access, name) {\n var root = access.getRoot();\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 var validateData = function (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 var getDialogApi = function (access, doRedial, menuItemStates) {\n var withRoot = function (f) {\n var root = access.getRoot();\n if (root.getSystem().isConnected()) {\n f(root);\n }\n };\n var getData = function () {\n var root = access.getRoot();\n var valueComp = root.getSystem().isConnected() ? access.getFormWrapper() : root;\n var representedValues = Representing.getValue(valueComp);\n var menuItemCurrentState = map$2(menuItemStates, function (cell) {\n return cell.get();\n });\n return __assign(__assign({}, representedValues), menuItemCurrentState);\n };\n var setData = function (newData) {\n withRoot(function (_) {\n var prevData = instanceApi.getData();\n var mergedData = __assign(__assign({}, prevData), newData);\n var newInternalData = validateData(access, mergedData);\n var form = access.getFormWrapper();\n Representing.setValue(form, newInternalData);\n each$1(menuItemStates, function (v, k) {\n if (has(mergedData, k)) {\n v.set(mergedData[k]);\n }\n });\n });\n };\n var disable = function (name) {\n getCompByName(access, name).each(Disabling.disable);\n };\n var enable = function (name) {\n getCompByName(access, name).each(Disabling.enable);\n };\n var focus = function (name) {\n getCompByName(access, name).each(Focusing.focus);\n };\n var block = function (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 withRoot(function (root) {\n emitWith(root, formBlockEvent, { message: message });\n });\n };\n var unblock = function () {\n withRoot(function (root) {\n emit(root, formUnblockEvent);\n });\n };\n var showTab = function (name) {\n withRoot(function (_) {\n var body = access.getBody();\n var bodyState = Reflecting.getState(body);\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 var redial = function (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 var close = function () {\n withRoot(function (root) {\n emit(root, formCloseEvent);\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 (size) {\n switch (size) {\n case 'large':\n return ['tox-dialog--width-lg'];\n case 'medium':\n return ['tox-dialog--width-md'];\n default:\n return [];\n }\n };\n var renderDialog$1 = function (dialogInit, extra, backstage) {\n var header = getHeader(dialogInit.internalDialog.title, backstage);\n var body = renderModalBody({ body: dialogInit.internalDialog.body }, backstage);\n var storagedMenuButtons = mapMenuButtons(dialogInit.internalDialog.buttons);\n var objOfCells = extractCellsToObject(storagedMenuButtons);\n var footer = renderModalFooter({ buttons: storagedMenuButtons }, 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 var modalAccess = function () {\n var getForm = function () {\n var outerForm = ModalDialog.getBody(dialog);\n return Composing.getCurrent(outerForm).getOr(outerForm);\n };\n return {\n getRoot: function () {\n return dialog;\n },\n getBody: function () {\n return ModalDialog.getBody(dialog);\n },\n getFooter: function () {\n return ModalDialog.getFooter(dialog);\n },\n getFormWrapper: getForm\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 (dialogInit, extra, backstage, ariaAttrs) {\n var _a, _b;\n var dialogLabelId = generate$1('dialog-label');\n var dialogContentId = generate$1('dialog-content');\n var updateState = function (_comp, incoming) {\n return Optional.some(incoming);\n };\n var memHeader = record(renderInlineHeader({\n title: dialogInit.internalDialog.title,\n draggable: true\n }, dialogLabelId, backstage.shared.providers));\n var memBody = record(renderInlineBody({ body: dialogInit.internalDialog.body }, dialogContentId, backstage, ariaAttrs));\n var storagedMenuButtons = mapMenuButtons(dialogInit.internalDialog.buttons);\n var objOfCells = extractCellsToObject(storagedMenuButtons);\n var memFooter = record(renderInlineFooter({ buttons: storagedMenuButtons }, backstage));\n var dialogEvents = SilverDialogEvents.initDialog(function () {\n return instanceApi;\n }, {\n onBlock: function (event) {\n Blocking.block(dialog, function (_comp, bs) {\n return getBusySpec(event.message, bs, backstage.shared.providers);\n });\n },\n onUnblock: function () {\n Blocking.unblock(dialog);\n },\n onClose: function () {\n return extra.closeWindow();\n }\n }, backstage.shared.getSink);\n var dialog = build$1({\n dom: {\n tag: 'div',\n classes: [\n 'tox-dialog',\n 'tox-dialog-inline'\n ],\n attributes: (_a = { role: 'dialog' }, _a['aria-labelledby'] = dialogLabelId, _a['aria-describedby'] = '' + dialogContentId, _a)\n },\n eventOrder: (_b = {}, _b[receive()] = [\n Reflecting.name(),\n Receiving.name()\n ], _b[execute()] = ['execute-on-form'], _b[attachedToDom()] = [\n 'reflecting',\n 'execute-on-form'\n ], _b),\n behaviours: derive$1([\n Keying.config({\n mode: 'cyclic',\n onEscape: function (c) {\n emit(c, formCloseEvent);\n return Optional.some(true);\n },\n useTabstopAt: function (elem) {\n return !isPseudoStop(elem) && (name(elem) !== 'button' || get$3(elem, 'disabled') !== 'disabled');\n }\n }),\n Reflecting.config({\n channel: dialogChannel,\n updateState: updateState,\n initialData: dialogInit\n }),\n Focusing.config({}),\n config('execute-on-form', dialogEvents.concat([runOnSource(focusin(), function (comp, _se) {\n Keying.focusIn(comp);\n })])),\n Blocking.config({\n getRoot: function () {\n return Optional.some(dialog);\n }\n }),\n Replacing.config({}),\n RepresentingConfigs.memory({})\n ]),\n components: [\n memHeader.asSpec(),\n memBody.asSpec(),\n memFooter.asSpec()\n ]\n });\n var instanceApi = getDialogApi({\n getRoot: function () {\n return dialog;\n },\n getFooter: function () {\n return memFooter.get(dialog);\n },\n getBody: function () {\n return memBody.get(dialog);\n },\n getFormWrapper: function () {\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$h = tinymce.util.Tools.resolve('tinymce.util.URI');\n\n var getUrlDialogApi = function (root) {\n var withRoot = function (f) {\n if (root.getSystem().isConnected()) {\n f(root);\n }\n };\n var block = function (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 withRoot(function (root) {\n emitWith(root, formBlockEvent, { message: message });\n });\n };\n var unblock = function () {\n withRoot(function (root) {\n emit(root, formUnblockEvent);\n });\n };\n var close = function () {\n withRoot(function (root) {\n emit(root, formCloseEvent);\n });\n };\n var sendMessage = function (data) {\n withRoot(function (root) {\n root.getSystem().broadcastOn([bodySendMessageChannel], data);\n });\n };\n return {\n block: block,\n unblock: unblock,\n close: close,\n sendMessage: sendMessage\n };\n };\n\n var SUPPORTED_MESSAGE_ACTIONS = [\n 'insertContent',\n 'setContent',\n 'execCommand',\n 'close',\n 'block',\n 'unblock'\n ];\n var isSupportedMessage = function (data) {\n return isObject(data) && SUPPORTED_MESSAGE_ACTIONS.indexOf(data.mceAction) !== -1;\n };\n var isCustomMessage = function (data) {\n return !isSupportedMessage(data) && isObject(data) && has(data, 'mceAction');\n };\n var handleMessage = function (editor, api, data) {\n switch (data.mceAction) {\n case 'insertContent':\n editor.insertContent(data.content);\n break;\n case 'setContent':\n editor.setContent(data.content);\n break;\n case 'execCommand':\n var ui = isBoolean(data.ui) ? data.ui : false;\n editor.execCommand(data.cmd, ui, data.value);\n break;\n case 'close':\n api.close();\n break;\n case 'block':\n api.block(data.message);\n break;\n case 'unblock':\n api.unblock();\n break;\n }\n };\n var renderUrlDialog = function (internalDialog, extra, editor, backstage) {\n var _a;\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({ buttons: buttons }, backstage));\n }\n });\n var dialogEvents = SilverDialogEvents.initUrlDialog(function () {\n return instanceApi;\n }, getEventExtras(function () {\n return dialog;\n }, backstage.shared.providers, extra));\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 var classes = internalDialog.width.isNone() && internalDialog.height.isNone() ? ['tox-dialog--width-lg'] : [];\n var iframeUri = new global$h(internalDialog.url, { base_uri: new global$h(window.location.href) });\n var iframeDomain = iframeUri.protocol + '://' + iframeUri.host + (iframeUri.port ? ':' + iframeUri.port : '');\n var messageHandlerUnbinder = Cell(Optional.none());\n var extraBehaviours = [\n config('messages', [\n runOnAttached(function () {\n var unbind = bind$3(SugarElement.fromDom(window), 'message', function (e) {\n if (iframeUri.isSameOrigin(new global$h(e.raw.origin))) {\n var data = e.raw.data;\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(Optional.some(unbind));\n }),\n runOnDetached(function () {\n messageHandlerUnbinder.get().each(function (unbinder) {\n return unbinder.unbind();\n });\n })\n ]),\n Receiving.config({\n channels: (_a = {}, _a[bodySendMessageChannel] = {\n onReceive: function (comp, data) {\n descendant$1(comp.element, 'iframe').each(function (iframeEle) {\n var iframeWin = iframeEle.dom.contentWindow;\n iframeWin.postMessage(data, iframeDomain);\n });\n }\n }, _a)\n })\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$c = function (extras) {\n var sharedBackstage = extras.backstage.shared;\n var open = function (message, callback) {\n var closeDialog = function () {\n ModalDialog.hide(alertDialog);\n callback();\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({\n lazySink: function () {\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(formCancelEvent, closeDialog)],\n eventOrder: {}\n }));\n ModalDialog.show(alertDialog);\n var footerCloseButton = memFooterClose.get(alertDialog);\n Focusing.focus(footerCloseButton);\n };\n return { open: open };\n };\n\n var setup$d = function (extras) {\n var sharedBackstage = extras.backstage.shared;\n var open = function (message, callback) {\n var closeDialog = function (state) {\n ModalDialog.hide(confirmDialog);\n callback(state);\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({\n lazySink: function () {\n return sharedBackstage.getSink();\n },\n header: hiddenHeader(titleSpec, closeSpec),\n body: pBodyMessage(message, sharedBackstage.providers),\n footer: Optional.some(pFooter(pFooterGroup([], [\n footerNo,\n memFooterYes.asSpec()\n ]))),\n onEscape: function () {\n return closeDialog(false);\n },\n extraClasses: ['tox-confirm-dialog'],\n extraBehaviours: [],\n extraStyles: {},\n dialogEvents: [\n run(formCancelEvent, function () {\n return closeDialog(false);\n }),\n run(formSubmitEvent, function () {\n return closeDialog(true);\n })\n ],\n eventOrder: {}\n }));\n ModalDialog.show(confirmDialog);\n var footerYesButton = memFooterYes.get(confirmDialog);\n Focusing.focus(footerYesButton);\n };\n return { open: open };\n };\n\n var validateData$1 = function (data, validator) {\n return getOrDie(asRaw('data', validator, data));\n };\n var isAlertOrConfirmDialog = function (target) {\n return closest$4(target, '.tox-alert-dialog') || closest$4(target, '.tox-confirm-dialog');\n };\n var inlineAdditionalBehaviours = function (editor, isStickyToolbar, isToolbarLocationTop) {\n if (isStickyToolbar && isToolbarLocationTop) {\n return [];\n } else {\n return [Docking.config({\n contextual: {\n lazyContext: function () {\n return Optional.some(box(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 var setup$e = function (extras) {\n var backstage = extras.backstage;\n var editor = extras.editor;\n var isStickyToolbar$1 = isStickyToolbar(editor);\n var alertDialog = setup$c(extras);\n var confirmDialog = setup$d(extras);\n var open = function (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 var openUrl = function (config, closeWindow) {\n return openModalUrlDialog(config, closeWindow);\n };\n var openModalUrlDialog = function (config, closeWindow) {\n var factory = function (contents) {\n var dialog = renderUrlDialog(contents, {\n closeWindow: function () {\n ModalDialog.hide(dialog.dialog);\n closeWindow(dialog.instanceApi);\n }\n }, editor, backstage);\n ModalDialog.show(dialog.dialog);\n return dialog.instanceApi;\n };\n return DialogManager.openUrl(factory, config);\n };\n var openModalDialog = function (config, closeWindow) {\n var factory = function (contents, internalInitialData, dataValidator) {\n var initialData = internalInitialData;\n var dialogInit = {\n dataValidator: dataValidator,\n initialData: initialData,\n internalDialog: contents\n };\n var dialog = renderDialog$1(dialogInit, {\n redial: DialogManager.redial,\n closeWindow: function () {\n ModalDialog.hide(dialog.dialog);\n closeWindow(dialog.instanceApi);\n }\n }, backstage);\n ModalDialog.show(dialog.dialog);\n dialog.instanceApi.setData(initialData);\n return dialog.instanceApi;\n };\n return DialogManager.open(factory, config);\n };\n var openInlineDialog = function (config$1, anchor, closeWindow, ariaAttrs) {\n var factory = function (contents, internalInitialData, dataValidator) {\n var initialData = validateData$1(internalInitialData, dataValidator);\n var inlineDialog = value$3();\n var isToolbarLocationTop = backstage.shared.header.isPositionedAtTop();\n var dialogInit = {\n dataValidator: dataValidator,\n initialData: initialData,\n internalDialog: contents\n };\n var refreshDocking = function () {\n return inlineDialog.on(function (dialog) {\n InlineView.reposition(dialog);\n Docking.refresh(dialog);\n });\n };\n var dialogUi = renderInlineDialog(dialogInit, {\n redial: DialogManager.redial,\n closeWindow: function () {\n inlineDialog.on(InlineView.hide);\n editor.off('ResizeEditor', refreshDocking);\n inlineDialog.clear();\n closeWindow(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 ? {} : { fireRepositionEventInstead: {} }), {\n inlineBehaviours: derive$1(__spreadArrays([config('window-manager-inline-events', [run(dismissRequested(), function (_comp, _se) {\n emit(dialogUi.dialog, formCancelEvent);\n })])], inlineAdditionalBehaviours(editor, isStickyToolbar$1, isToolbarLocationTop))),\n isExtraPart: function (_comp, target) {\n return isAlertOrConfirmDialog(target);\n }\n })));\n inlineDialog.set(inlineDialogComp);\n InlineView.showWithin(inlineDialogComp, anchor, premade$1(dialogUi.dialog), Optional.some(body()));\n if (!isStickyToolbar$1 || !isToolbarLocationTop) {\n Docking.refresh(inlineDialogComp);\n editor.on('ResizeEditor', refreshDocking);\n }\n dialogUi.instanceApi.setData(initialData);\n Keying.focusIn(dialogUi.dialog);\n return dialogUi.instanceApi;\n };\n return DialogManager.open(factory, config$1);\n };\n var confirm = function (message, callback) {\n confirmDialog.open(message, function (state) {\n callback(state);\n });\n };\n var alert = function (message, callback) {\n alertDialog.open(message, function () {\n callback();\n });\n };\n var close = function (instanceApi) {\n instanceApi.close();\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$1.add('silver', function (editor) {\n var _a = setup$b(editor), uiMothership = _a.uiMothership, backstage = _a.backstage, renderUI = _a.renderUI, getUi = _a.getUi;\n Autocompleter.register(editor, backstage.shared);\n var windowMgr = setup$e({\n editor: editor,\n backstage: backstage\n });\n return {\n renderUI: renderUI,\n getWindowManagerImpl: constant(windowMgr),\n getNotificationManagerImpl: function () {\n return NotificationManagerImpl(editor, { backstage: backstage }, uiMothership);\n },\n ui: getUi()\n };\n });\n }\n\n Theme();\n\n}());\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// Styles\nimport './VExpansionPanel.sass'\n\n// Components\nimport { BaseItemGroup, GroupableInstance } from '../VItemGroup/VItemGroup'\nimport VExpansionPanel from './VExpansionPanel'\n\n// Utilities\nimport { breaking } from '../../util/console'\n\n// Types\ninterface VExpansionPanelInstance extends InstanceType {}\n\n/* @vue/component */\nexport default BaseItemGroup.extend({\n name: 'v-expansion-panels',\n\n provide (): object {\n return {\n expansionPanels: this,\n }\n },\n\n props: {\n accordion: Boolean,\n disabled: Boolean,\n flat: Boolean,\n hover: Boolean,\n focusable: Boolean,\n inset: Boolean,\n popout: Boolean,\n readonly: Boolean,\n tile: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-expansion-panels': true,\n 'v-expansion-panels--accordion': this.accordion,\n 'v-expansion-panels--flat': this.flat,\n 'v-expansion-panels--hover': this.hover,\n 'v-expansion-panels--focusable': this.focusable,\n 'v-expansion-panels--inset': this.inset,\n 'v-expansion-panels--popout': this.popout,\n 'v-expansion-panels--tile': this.tile,\n }\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('expand')) {\n breaking('expand', 'multiple', this)\n }\n\n /* istanbul ignore next */\n if (\n Array.isArray(this.value) &&\n this.value.length > 0 &&\n typeof this.value[0] === 'boolean'\n ) {\n breaking(':value=\"[true, false, true]\"', ':value=\"[0, 2]\"', this)\n }\n },\n\n methods: {\n updateItem (item: GroupableInstance & VExpansionPanelInstance, index: number) {\n const value = this.getValue(item, index)\n const nextValue = this.getValue(item, index + 1)\n\n item.isActive = this.toggleMethod(value)\n item.nextIsActive = this.toggleMethod(nextValue)\n },\n },\n})\n","// Utilities\nimport {\n HSVA,\n HSVAtoRGBA,\n HSVAtoHex,\n RGBA,\n Hex,\n RGBAtoHSVA,\n HexToHSVA,\n HSLA,\n HSVAtoHSLA,\n RGBAtoHex,\n HSLAtoHSVA,\n parseHex,\n Hexa,\n} from '../../../util/colorUtils'\n\nexport interface VColorPickerColor {\n alpha: number\n hex: Hex\n hexa: Hexa\n hsla: HSLA\n hsva: HSVA\n hue: number\n rgba: RGBA\n}\n\nexport function fromHSVA (hsva: HSVA): VColorPickerColor {\n hsva = { ...hsva }\n const hexa = HSVAtoHex(hsva)\n const hsla = HSVAtoHSLA(hsva)\n const rgba = HSVAtoRGBA(hsva)\n return {\n alpha: hsva.a,\n hex: hexa.substr(0, 7),\n hexa,\n hsla,\n hsva,\n hue: hsva.h,\n rgba,\n }\n}\n\nexport function fromHSLA (hsla: HSLA): VColorPickerColor {\n const hsva = HSLAtoHSVA(hsla)\n const hexa = HSVAtoHex(hsva)\n const rgba = HSVAtoRGBA(hsva)\n return {\n alpha: hsva.a,\n hex: hexa.substr(0, 7),\n hexa,\n hsla,\n hsva,\n hue: hsva.h,\n rgba,\n }\n}\n\nexport function fromRGBA (rgba: RGBA): VColorPickerColor {\n const hsva = RGBAtoHSVA(rgba)\n const hexa = RGBAtoHex(rgba)\n const hsla = HSVAtoHSLA(hsva)\n return {\n alpha: hsva.a,\n hex: hexa.substr(0, 7),\n hexa,\n hsla,\n hsva,\n hue: hsva.h,\n rgba,\n }\n}\n\nexport function fromHexa (hexa: Hexa): VColorPickerColor {\n const hsva = HexToHSVA(hexa)\n const hsla = HSVAtoHSLA(hsva)\n const rgba = HSVAtoRGBA(hsva)\n return {\n alpha: hsva.a,\n hex: hexa.substr(0, 7),\n hexa,\n hsla,\n hsva,\n hue: hsva.h,\n rgba,\n }\n}\n\nexport function fromHex (hex: Hex): VColorPickerColor {\n return fromHexa(parseHex(hex))\n}\n\nfunction has (obj: object, key: string[]) {\n return key.every(k => obj.hasOwnProperty(k))\n}\n\nexport function parseColor (color: any, oldColor: VColorPickerColor | null) {\n if (!color) return fromRGBA({ r: 255, g: 0, b: 0, a: 1 })\n\n if (typeof color === 'string') {\n if (color === 'transparent') return fromHexa('#00000000')\n\n const hex = parseHex(color)\n\n if (oldColor && hex === oldColor.hexa) return oldColor\n else return fromHexa(hex)\n }\n\n if (typeof color === 'object') {\n if (color.hasOwnProperty('alpha')) return color\n\n const a = color.hasOwnProperty('a') ? parseFloat(color.a) : 1\n\n if (has(color, ['r', 'g', 'b'])) {\n if (oldColor && color === oldColor.rgba) return oldColor\n else return fromRGBA({ ...color, a })\n } else if (has(color, ['h', 's', 'l'])) {\n if (oldColor && color === oldColor.hsla) return oldColor\n else return fromHSLA({ ...color, a })\n } else if (has(color, ['h', 's', 'v'])) {\n if (oldColor && color === oldColor.hsva) return oldColor\n else return fromHSVA({ ...color, a })\n }\n }\n\n return fromRGBA({ r: 255, g: 0, b: 0, a: 1 })\n}\n\nfunction stripAlpha (color: any, stripAlpha: boolean) {\n if (stripAlpha) {\n const { a, ...rest } = color\n\n return rest\n }\n\n return color\n}\n\nexport function extractColor (color: VColorPickerColor, input: any) {\n if (input == null) return color\n\n if (typeof input === 'string') {\n return input.length === 7 ? color.hex : color.hexa\n }\n\n if (typeof input === 'object') {\n const shouldStrip = typeof input.a === 'number' && input.a === 0 ? !!input.a : !input.a\n if (has(input, ['r', 'g', 'b'])) return stripAlpha(color.rgba, shouldStrip)\n else if (has(input, ['h', 's', 'l'])) return stripAlpha(color.hsla, shouldStrip)\n else if (has(input, ['h', 's', 'v'])) return stripAlpha(color.hsva, shouldStrip)\n }\n\n return color\n}\n\nexport function hasAlpha (color: any) {\n if (!color) return false\n\n if (typeof color === 'string') {\n return color.length > 7\n }\n\n if (typeof color === 'object') {\n return has(color, ['a']) || has(color, ['alpha'])\n }\n\n return false\n}\n","// Styles\nimport './VColorPickerPreview.sass'\n\n// Components\nimport VSlider from '../VSlider/VSlider'\n\n// Utilities\nimport { RGBtoCSS, RGBAtoCSS } from '../../util/colorUtils'\n\n// Types\nimport Vue, { VNode, VNodeData, PropType } from 'vue'\nimport { VColorPickerColor, fromHSVA } from './util'\n\nexport default Vue.extend({\n name: 'v-color-picker-preview',\n\n props: {\n color: Object as PropType,\n disabled: Boolean,\n hideAlpha: Boolean,\n },\n\n methods: {\n genAlpha (): VNode {\n return this.genTrack({\n staticClass: 'v-color-picker__alpha',\n props: {\n thumbColor: 'grey lighten-2',\n hideDetails: true,\n value: this.color.alpha,\n step: 0,\n min: 0,\n max: 1,\n },\n style: {\n backgroundImage: this.disabled\n ? undefined\n : `linear-gradient(to ${this.$vuetify.rtl ? 'left' : 'right'}, transparent, ${RGBtoCSS(this.color.rgba)})`,\n },\n on: {\n input: (val: number) => this.color.alpha !== val && this.$emit('update:color', fromHSVA({ ...this.color.hsva, a: val })),\n },\n })\n },\n genSliders (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-color-picker__sliders',\n }, [\n this.genHue(),\n !this.hideAlpha && this.genAlpha(),\n ])\n },\n genDot (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-color-picker__dot',\n }, [\n this.$createElement('div', {\n style: {\n background: RGBAtoCSS(this.color.rgba),\n },\n }),\n ])\n },\n genHue (): VNode {\n return this.genTrack({\n staticClass: 'v-color-picker__hue',\n props: {\n thumbColor: 'grey lighten-2',\n hideDetails: true,\n value: this.color.hue,\n step: 0,\n min: 0,\n max: 360,\n },\n on: {\n input: (val: number) => this.color.hue !== val && this.$emit('update:color', fromHSVA({ ...this.color.hsva, h: val })),\n },\n })\n },\n genTrack (options: VNodeData): VNode {\n return this.$createElement(VSlider, {\n class: 'v-color-picker__track',\n ...options,\n props: {\n disabled: this.disabled,\n ...options.props,\n },\n })\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-color-picker__preview',\n class: {\n 'v-color-picker__preview--hide-alpha': this.hideAlpha,\n },\n }, [\n this.genDot(),\n this.genSliders(),\n ])\n },\n})\n","// Styles\nimport './VColorPickerCanvas.sass'\n\n// Helpers\nimport { clamp, convertToUnit } from '../../util/helpers'\nimport { fromHSVA, VColorPickerColor, fromRGBA } from './util'\n\n// Types\nimport Vue, { VNode, PropType } from 'vue'\n\nexport default Vue.extend({\n name: 'v-color-picker-canvas',\n\n props: {\n color: {\n type: Object as PropType,\n default: () => fromRGBA({ r: 255, g: 0, b: 0, a: 1 }),\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n height: {\n type: [Number, String],\n default: 150,\n },\n width: {\n type: [Number, String],\n default: 300,\n },\n },\n\n data () {\n return {\n boundingRect: {\n width: 0,\n height: 0,\n left: 0,\n top: 0,\n } as ClientRect,\n }\n },\n\n computed: {\n dot (): { x: number, y: number} {\n if (!this.color) return { x: 0, y: 0 }\n\n return {\n x: this.color.hsva.s * parseInt(this.width, 10),\n y: (1 - this.color.hsva.v) * parseInt(this.height, 10),\n }\n },\n },\n\n watch: {\n 'color.hue': 'updateCanvas',\n },\n\n mounted () {\n this.updateCanvas()\n },\n\n methods: {\n emitColor (x: number, y: number) {\n const { left, top, width, height } = this.boundingRect\n\n this.$emit('update:color', fromHSVA({\n h: this.color.hue,\n s: clamp(x - left, 0, width) / width,\n v: 1 - clamp(y - top, 0, height) / height,\n a: this.color.alpha,\n }))\n },\n updateCanvas () {\n if (!this.color) return\n\n const canvas = this.$refs.canvas as HTMLCanvasElement\n const ctx = canvas.getContext('2d')\n\n if (!ctx) return\n\n const saturationGradient = ctx.createLinearGradient(0, 0, canvas.width, 0)\n saturationGradient.addColorStop(0, 'hsla(0, 0%, 100%, 1)') // white\n saturationGradient.addColorStop(1, `hsla(${this.color.hue}, 100%, 50%, 1)`)\n ctx.fillStyle = saturationGradient\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n\n const valueGradient = ctx.createLinearGradient(0, 0, 0, canvas.height)\n valueGradient.addColorStop(0, 'hsla(0, 0%, 100%, 0)') // transparent\n valueGradient.addColorStop(1, 'hsla(0, 0%, 0%, 1)') // black\n ctx.fillStyle = valueGradient\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n },\n handleClick (e: MouseEvent) {\n if (this.disabled) return\n\n this.boundingRect = this.$el.getBoundingClientRect()\n this.emitColor(e.clientX, e.clientY)\n },\n handleMouseDown (e: MouseEvent) {\n // To prevent selection while moving cursor\n e.preventDefault()\n\n if (this.disabled) return\n\n this.boundingRect = this.$el.getBoundingClientRect()\n\n window.addEventListener('mousemove', this.handleMouseMove)\n window.addEventListener('mouseup', this.handleMouseUp)\n },\n handleMouseMove (e: MouseEvent) {\n if (this.disabled) return\n\n this.emitColor(e.clientX, e.clientY)\n },\n handleMouseUp () {\n window.removeEventListener('mousemove', this.handleMouseMove)\n window.removeEventListener('mouseup', this.handleMouseUp)\n },\n genCanvas (): VNode {\n return this.$createElement('canvas', {\n ref: 'canvas',\n attrs: {\n width: this.width,\n height: this.height,\n },\n })\n },\n genDot (): VNode {\n const radius = parseInt(this.dotSize, 10) / 2\n const x = convertToUnit(this.dot.x - radius)\n const y = convertToUnit(this.dot.y - radius)\n\n return this.$createElement('div', {\n staticClass: 'v-color-picker__canvas-dot',\n class: {\n 'v-color-picker__canvas-dot--disabled': this.disabled,\n },\n style: {\n width: convertToUnit(this.dotSize),\n height: convertToUnit(this.dotSize),\n transform: `translate(${x}, ${y})`,\n },\n })\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-color-picker__canvas',\n style: {\n width: convertToUnit(this.width),\n height: convertToUnit(this.height),\n },\n on: {\n click: this.handleClick,\n mousedown: this.handleMouseDown,\n },\n }, [\n this.genCanvas(),\n this.genDot(),\n ])\n },\n})\n","// Styles\nimport './VColorPickerEdit.sass'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\n\n// Helpers\nimport { parseHex } from '../../util/colorUtils'\n\n// Types\nimport Vue, { VNode, PropType } from 'vue'\nimport { VColorPickerColor, fromRGBA, fromHexa, fromHSLA } from './util'\n\ntype Input = [string, number, string]\n\nexport type Mode = {\n inputs?: Input[]\n from: Function\n}\n\nexport const modes = {\n rgba: {\n inputs: [\n ['r', 255, 'int'],\n ['g', 255, 'int'],\n ['b', 255, 'int'],\n ['a', 1, 'float'],\n ],\n from: fromRGBA,\n },\n hsla: {\n inputs: [\n ['h', 360, 'int'],\n ['s', 1, 'float'],\n ['l', 1, 'float'],\n ['a', 1, 'float'],\n ],\n from: fromHSLA,\n },\n hexa: {\n from: fromHexa,\n },\n} as { [key: string]: Mode }\n\nexport default Vue.extend({\n name: 'v-color-picker-edit',\n\n props: {\n color: Object as PropType,\n disabled: Boolean,\n hideAlpha: Boolean,\n hideModeSwitch: Boolean,\n mode: {\n type: String,\n default: 'rgba',\n validator: (v: string) => Object.keys(modes).includes(v),\n },\n },\n\n data () {\n return {\n modes,\n internalMode: this.mode,\n }\n },\n\n computed: {\n currentMode (): Mode {\n return this.modes[this.internalMode]\n },\n },\n\n watch: {\n mode (mode) {\n this.internalMode = mode\n },\n },\n\n created () {\n this.internalMode = this.mode\n },\n\n methods: {\n getValue (v: any, type: string) {\n if (type === 'float') return Math.round(v * 100) / 100\n else if (type === 'int') return Math.round(v)\n else return 0\n },\n parseValue (v: string, type: string) {\n if (type === 'float') return parseFloat(v)\n else if (type === 'int') return parseInt(v, 10) || 0\n else return 0\n },\n changeMode () {\n const modes = Object.keys(this.modes)\n const index = modes.indexOf(this.internalMode)\n const newMode = modes[(index + 1) % modes.length]\n this.internalMode = newMode\n this.$emit('update:mode', newMode)\n },\n genInput (target: string, attrs: any, value: any, on: any): VNode {\n return this.$createElement('div', {\n staticClass: 'v-color-picker__input',\n }, [\n this.$createElement('input', {\n key: target,\n attrs,\n domProps: {\n value,\n },\n on,\n }),\n this.$createElement('span', target.toUpperCase()),\n ])\n },\n genInputs (): VNode[] | VNode {\n if (this.internalMode === 'hexa') {\n const hex = this.color.hexa\n const value = this.hideAlpha && hex.endsWith('FF') ? hex.substr(0, 7) : hex\n return this.genInput(\n 'hex',\n {\n maxlength: this.hideAlpha ? 7 : 9,\n disabled: this.disabled,\n },\n value,\n {\n change: (e: Event) => {\n const el = e.target as HTMLInputElement\n this.$emit('update:color', this.currentMode.from(parseHex(el.value)))\n },\n }\n )\n } else {\n const inputs = this.hideAlpha ? this.currentMode.inputs!.slice(0, -1) : this.currentMode.inputs!\n return inputs.map(([target, max, type]) => {\n const value = this.color[this.internalMode as keyof VColorPickerColor] as any\n return this.genInput(\n target,\n {\n type: 'number',\n min: 0,\n max,\n step: type === 'float' ? '0.01' : type === 'int' ? '1' : undefined,\n disabled: this.disabled,\n },\n this.getValue(value[target], type),\n {\n input: (e: Event) => {\n const el = e.target as HTMLInputElement\n const newVal = this.parseValue(el.value || '0', type)\n\n this.$emit('update:color', this.currentMode.from(\n Object.assign({}, value, { [target]: newVal }),\n this.color.alpha\n ))\n },\n }\n )\n })\n }\n },\n genSwitch (): VNode {\n return this.$createElement(VBtn, {\n props: {\n small: true,\n icon: true,\n disabled: this.disabled,\n },\n on: {\n click: this.changeMode,\n },\n }, [\n this.$createElement(VIcon, '$unfold'),\n ])\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-color-picker__edit',\n }, [\n this.genInputs(),\n !this.hideModeSwitch && this.genSwitch(),\n ])\n },\n})\n","const red = Object.freeze({\n base: '#f44336',\n lighten5: '#ffebee',\n lighten4: '#ffcdd2',\n lighten3: '#ef9a9a',\n lighten2: '#e57373',\n lighten1: '#ef5350',\n darken1: '#e53935',\n darken2: '#d32f2f',\n darken3: '#c62828',\n darken4: '#b71c1c',\n accent1: '#ff8a80',\n accent2: '#ff5252',\n accent3: '#ff1744',\n accent4: '#d50000',\n})\n\nconst pink = Object.freeze({\n base: '#e91e63',\n lighten5: '#fce4ec',\n lighten4: '#f8bbd0',\n lighten3: '#f48fb1',\n lighten2: '#f06292',\n lighten1: '#ec407a',\n darken1: '#d81b60',\n darken2: '#c2185b',\n darken3: '#ad1457',\n darken4: '#880e4f',\n accent1: '#ff80ab',\n accent2: '#ff4081',\n accent3: '#f50057',\n accent4: '#c51162',\n})\n\nconst purple = Object.freeze({\n base: '#9c27b0',\n lighten5: '#f3e5f5',\n lighten4: '#e1bee7',\n lighten3: '#ce93d8',\n lighten2: '#ba68c8',\n lighten1: '#ab47bc',\n darken1: '#8e24aa',\n darken2: '#7b1fa2',\n darken3: '#6a1b9a',\n darken4: '#4a148c',\n accent1: '#ea80fc',\n accent2: '#e040fb',\n accent3: '#d500f9',\n accent4: '#aa00ff',\n})\n\nconst deepPurple = Object.freeze({\n base: '#673ab7',\n lighten5: '#ede7f6',\n lighten4: '#d1c4e9',\n lighten3: '#b39ddb',\n lighten2: '#9575cd',\n lighten1: '#7e57c2',\n darken1: '#5e35b1',\n darken2: '#512da8',\n darken3: '#4527a0',\n darken4: '#311b92',\n accent1: '#b388ff',\n accent2: '#7c4dff',\n accent3: '#651fff',\n accent4: '#6200ea',\n})\n\nconst indigo = Object.freeze({\n base: '#3f51b5',\n lighten5: '#e8eaf6',\n lighten4: '#c5cae9',\n lighten3: '#9fa8da',\n lighten2: '#7986cb',\n lighten1: '#5c6bc0',\n darken1: '#3949ab',\n darken2: '#303f9f',\n darken3: '#283593',\n darken4: '#1a237e',\n accent1: '#8c9eff',\n accent2: '#536dfe',\n accent3: '#3d5afe',\n accent4: '#304ffe',\n})\n\nconst blue = Object.freeze({\n base: '#2196f3',\n lighten5: '#e3f2fd',\n lighten4: '#bbdefb',\n lighten3: '#90caf9',\n lighten2: '#64b5f6',\n lighten1: '#42a5f5',\n darken1: '#1e88e5',\n darken2: '#1976d2',\n darken3: '#1565c0',\n darken4: '#0d47a1',\n accent1: '#82b1ff',\n accent2: '#448aff',\n accent3: '#2979ff',\n accent4: '#2962ff',\n})\n\nconst lightBlue = Object.freeze({\n base: '#03a9f4',\n lighten5: '#e1f5fe',\n lighten4: '#b3e5fc',\n lighten3: '#81d4fa',\n lighten2: '#4fc3f7',\n lighten1: '#29b6f6',\n darken1: '#039be5',\n darken2: '#0288d1',\n darken3: '#0277bd',\n darken4: '#01579b',\n accent1: '#80d8ff',\n accent2: '#40c4ff',\n accent3: '#00b0ff',\n accent4: '#0091ea',\n})\n\nconst cyan = Object.freeze({\n base: '#00bcd4',\n lighten5: '#e0f7fa',\n lighten4: '#b2ebf2',\n lighten3: '#80deea',\n lighten2: '#4dd0e1',\n lighten1: '#26c6da',\n darken1: '#00acc1',\n darken2: '#0097a7',\n darken3: '#00838f',\n darken4: '#006064',\n accent1: '#84ffff',\n accent2: '#18ffff',\n accent3: '#00e5ff',\n accent4: '#00b8d4',\n})\n\nconst teal = Object.freeze({\n base: '#009688',\n lighten5: '#e0f2f1',\n lighten4: '#b2dfdb',\n lighten3: '#80cbc4',\n lighten2: '#4db6ac',\n lighten1: '#26a69a',\n darken1: '#00897b',\n darken2: '#00796b',\n darken3: '#00695c',\n darken4: '#004d40',\n accent1: '#a7ffeb',\n accent2: '#64ffda',\n accent3: '#1de9b6',\n accent4: '#00bfa5',\n})\n\nconst green = Object.freeze({\n base: '#4caf50',\n lighten5: '#e8f5e9',\n lighten4: '#c8e6c9',\n lighten3: '#a5d6a7',\n lighten2: '#81c784',\n lighten1: '#66bb6a',\n darken1: '#43a047',\n darken2: '#388e3c',\n darken3: '#2e7d32',\n darken4: '#1b5e20',\n accent1: '#b9f6ca',\n accent2: '#69f0ae',\n accent3: '#00e676',\n accent4: '#00c853',\n})\n\nconst lightGreen = Object.freeze({\n base: '#8bc34a',\n lighten5: '#f1f8e9',\n lighten4: '#dcedc8',\n lighten3: '#c5e1a5',\n lighten2: '#aed581',\n lighten1: '#9ccc65',\n darken1: '#7cb342',\n darken2: '#689f38',\n darken3: '#558b2f',\n darken4: '#33691e',\n accent1: '#ccff90',\n accent2: '#b2ff59',\n accent3: '#76ff03',\n accent4: '#64dd17',\n})\n\nconst lime = Object.freeze({\n base: '#cddc39',\n lighten5: '#f9fbe7',\n lighten4: '#f0f4c3',\n lighten3: '#e6ee9c',\n lighten2: '#dce775',\n lighten1: '#d4e157',\n darken1: '#c0ca33',\n darken2: '#afb42b',\n darken3: '#9e9d24',\n darken4: '#827717',\n accent1: '#f4ff81',\n accent2: '#eeff41',\n accent3: '#c6ff00',\n accent4: '#aeea00',\n})\n\nconst yellow = Object.freeze({\n base: '#ffeb3b',\n lighten5: '#fffde7',\n lighten4: '#fff9c4',\n lighten3: '#fff59d',\n lighten2: '#fff176',\n lighten1: '#ffee58',\n darken1: '#fdd835',\n darken2: '#fbc02d',\n darken3: '#f9a825',\n darken4: '#f57f17',\n accent1: '#ffff8d',\n accent2: '#ffff00',\n accent3: '#ffea00',\n accent4: '#ffd600',\n})\n\nconst amber = Object.freeze({\n base: '#ffc107',\n lighten5: '#fff8e1',\n lighten4: '#ffecb3',\n lighten3: '#ffe082',\n lighten2: '#ffd54f',\n lighten1: '#ffca28',\n darken1: '#ffb300',\n darken2: '#ffa000',\n darken3: '#ff8f00',\n darken4: '#ff6f00',\n accent1: '#ffe57f',\n accent2: '#ffd740',\n accent3: '#ffc400',\n accent4: '#ffab00',\n})\n\nconst orange = Object.freeze({\n base: '#ff9800',\n lighten5: '#fff3e0',\n lighten4: '#ffe0b2',\n lighten3: '#ffcc80',\n lighten2: '#ffb74d',\n lighten1: '#ffa726',\n darken1: '#fb8c00',\n darken2: '#f57c00',\n darken3: '#ef6c00',\n darken4: '#e65100',\n accent1: '#ffd180',\n accent2: '#ffab40',\n accent3: '#ff9100',\n accent4: '#ff6d00',\n})\n\nconst deepOrange = Object.freeze({\n base: '#ff5722',\n lighten5: '#fbe9e7',\n lighten4: '#ffccbc',\n lighten3: '#ffab91',\n lighten2: '#ff8a65',\n lighten1: '#ff7043',\n darken1: '#f4511e',\n darken2: '#e64a19',\n darken3: '#d84315',\n darken4: '#bf360c',\n accent1: '#ff9e80',\n accent2: '#ff6e40',\n accent3: '#ff3d00',\n accent4: '#dd2c00',\n})\n\nconst brown = Object.freeze({\n base: '#795548',\n lighten5: '#efebe9',\n lighten4: '#d7ccc8',\n lighten3: '#bcaaa4',\n lighten2: '#a1887f',\n lighten1: '#8d6e63',\n darken1: '#6d4c41',\n darken2: '#5d4037',\n darken3: '#4e342e',\n darken4: '#3e2723',\n})\n\nconst blueGrey = Object.freeze({\n base: '#607d8b',\n lighten5: '#eceff1',\n lighten4: '#cfd8dc',\n lighten3: '#b0bec5',\n lighten2: '#90a4ae',\n lighten1: '#78909c',\n darken1: '#546e7a',\n darken2: '#455a64',\n darken3: '#37474f',\n darken4: '#263238',\n})\n\nconst grey = Object.freeze({\n base: '#9e9e9e',\n lighten5: '#fafafa',\n lighten4: '#f5f5f5',\n lighten3: '#eeeeee',\n lighten2: '#e0e0e0',\n lighten1: '#bdbdbd',\n darken1: '#757575',\n darken2: '#616161',\n darken3: '#424242',\n darken4: '#212121',\n})\n\nconst shades = Object.freeze({\n black: '#000000',\n white: '#ffffff',\n transparent: 'transparent',\n})\n\nexport default Object.freeze({\n red,\n pink,\n purple,\n deepPurple,\n indigo,\n blue,\n lightBlue,\n cyan,\n teal,\n green,\n lightGreen,\n lime,\n yellow,\n amber,\n orange,\n deepOrange,\n brown,\n blueGrey,\n grey,\n shades,\n})\n","// Styles\nimport './VColorPickerSwatches.sass'\n\n// Components\nimport VIcon from '../VIcon'\n\n// Helpers\nimport colors from '../../util/colors'\nimport { VColorPickerColor, fromHex, parseColor } from './util'\nimport { convertToUnit, deepEqual } from '../../util/helpers'\nimport mixins from '../../util/mixins'\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode, PropType } from 'vue'\nimport { contrastRatio } from '../../util/colorUtils'\n\nfunction parseDefaultColors (colors: Record>) {\n return Object.keys(colors).map(key => {\n const color = colors[key]\n return color.base ? [\n color.base,\n color.darken4,\n color.darken3,\n color.darken2,\n color.darken1,\n color.lighten1,\n color.lighten2,\n color.lighten3,\n color.lighten4,\n color.lighten5,\n ] : [\n color.black,\n color.white,\n color.transparent,\n ]\n })\n}\n\nconst white = fromHex('#FFFFFF').rgba\nconst black = fromHex('#000000').rgba\n\nexport default mixins(Themeable).extend({\n name: 'v-color-picker-swatches',\n\n props: {\n swatches: {\n type: Array as PropType,\n default: () => parseDefaultColors(colors),\n },\n color: Object as PropType,\n maxWidth: [Number, String],\n maxHeight: [Number, String],\n },\n\n methods: {\n genColor (color: string) {\n const content = this.$createElement('div', {\n style: {\n background: color,\n },\n }, [\n deepEqual(this.color, parseColor(color, null)) && this.$createElement(VIcon, {\n props: {\n small: true,\n dark: contrastRatio(this.color.rgba, white) > 2 && this.color.alpha > 0.5,\n light: contrastRatio(this.color.rgba, black) > 2 && this.color.alpha > 0.5,\n },\n }, '$success'),\n ])\n\n return this.$createElement('div', {\n staticClass: 'v-color-picker__color',\n on: {\n // TODO: Less hacky way of catching transparent\n click: () => this.$emit('update:color', fromHex(color === 'transparent' ? '#00000000' : color)),\n },\n }, [content])\n },\n genSwatches () {\n return this.swatches.map(swatch => {\n const colors = swatch.map(this.genColor)\n\n return this.$createElement('div', {\n staticClass: 'v-color-picker__swatch',\n }, colors)\n })\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-color-picker__swatches',\n style: {\n maxWidth: convertToUnit(this.maxWidth),\n maxHeight: convertToUnit(this.maxHeight),\n },\n }, [\n this.$createElement('div', this.genSwatches()),\n ])\n },\n})\n","// Styles\nimport './VColorPicker.sass'\n\n// Components\nimport VSheet from '../VSheet/VSheet'\nimport VColorPickerPreview from './VColorPickerPreview'\nimport VColorPickerCanvas from './VColorPickerCanvas'\nimport VColorPickerEdit, { Mode, modes } from './VColorPickerEdit'\nimport VColorPickerSwatches from './VColorPickerSwatches'\n\n// Helpers\nimport { VColorPickerColor, parseColor, fromRGBA, extractColor, hasAlpha } from './util'\nimport mixins from '../../util/mixins'\nimport { deepEqual } from '../../util/helpers'\n\n// Mixins\nimport Elevatable from '../../mixins/elevatable'\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode, PropType } from 'vue'\n\nexport default mixins(Elevatable, Themeable).extend({\n name: 'v-color-picker',\n\n props: {\n canvasHeight: {\n type: [String, Number],\n default: 150,\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n flat: Boolean,\n hideCanvas: Boolean,\n hideSliders: Boolean,\n hideInputs: Boolean,\n hideModeSwitch: Boolean,\n mode: {\n type: String,\n default: 'rgba',\n validator: (v: string) => Object.keys(modes).includes(v),\n },\n showSwatches: Boolean,\n swatches: Array as PropType,\n swatchesMaxHeight: {\n type: [Number, String],\n default: 150,\n },\n value: {\n type: [Object, String],\n },\n width: {\n type: [Number, String],\n default: 300,\n },\n },\n\n data: () => ({\n internalValue: fromRGBA({ r: 255, g: 0, b: 0, a: 1 }),\n }),\n\n computed: {\n hideAlpha (): boolean {\n if (!this.value) return false\n\n return !hasAlpha(this.value)\n },\n },\n\n watch: {\n value: {\n handler (color: any) {\n this.updateColor(parseColor(color, this.internalValue))\n },\n immediate: true,\n },\n },\n\n methods: {\n updateColor (color: VColorPickerColor) {\n this.internalValue = color\n const value = extractColor(this.internalValue, this.value)\n\n if (!deepEqual(value, this.value)) {\n this.$emit('input', value)\n this.$emit('update:color', this.internalValue)\n }\n },\n genCanvas (): VNode {\n return this.$createElement(VColorPickerCanvas, {\n props: {\n color: this.internalValue,\n disabled: this.disabled,\n dotSize: this.dotSize,\n width: this.width,\n height: this.canvasHeight,\n },\n on: {\n 'update:color': this.updateColor,\n },\n })\n },\n genControls (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-color-picker__controls',\n }, [\n !this.hideSliders && this.genPreview(),\n !this.hideInputs && this.genEdit(),\n ])\n },\n genEdit (): VNode {\n return this.$createElement(VColorPickerEdit, {\n props: {\n color: this.internalValue,\n disabled: this.disabled,\n hideAlpha: this.hideAlpha,\n hideModeSwitch: this.hideModeSwitch,\n mode: this.mode,\n },\n on: {\n 'update:color': this.updateColor,\n 'update:mode': (v: Mode) => this.$emit('update:mode', v),\n },\n })\n },\n genPreview (): VNode {\n return this.$createElement(VColorPickerPreview, {\n props: {\n color: this.internalValue,\n disabled: this.disabled,\n hideAlpha: this.hideAlpha,\n },\n on: {\n 'update:color': this.updateColor,\n },\n })\n },\n genSwatches (): VNode {\n return this.$createElement(VColorPickerSwatches, {\n props: {\n dark: this.dark,\n light: this.light,\n swatches: this.swatches,\n color: this.internalValue,\n maxHeight: this.swatchesMaxHeight,\n },\n on: {\n 'update:color': this.updateColor,\n },\n })\n },\n },\n\n render (h): VNode {\n return h(VSheet, {\n staticClass: 'v-color-picker',\n class: {\n 'v-color-picker--flat': this.flat,\n ...this.themeClasses,\n ...this.elevationClasses,\n },\n props: {\n maxWidth: this.width,\n },\n }, [\n !this.hideCanvas && this.genCanvas(),\n (!this.hideSliders || !this.hideInputs) && this.genControls(),\n this.showSwatches && this.genSwatches(),\n ])\n },\n})\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","'use strict';\nvar aFunction = require('../internals/a-function');\nvar isObject = require('../internals/is-object');\n\nvar slice = [].slice;\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!(argsLength in factories)) {\n for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func -- we have no proper alternatives, IE8- only\n factories[argsLength] = Function('C,a', 'return new C(' + list.join(',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.es/ecma262/#sec-function.prototype.bind\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = slice.call(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = partArgs.concat(slice.call(arguments));\n return this instanceof boundFunction ? construct(fn, args.length, args) : fn.apply(that, args);\n };\n if (isObject(fn.prototype)) boundFunction.prototype = fn.prototype;\n return boundFunction;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return nativeGetOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => (el.style.position = 'absolute'))\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => (el.style.display = 'none'))\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'transitionable',\n\n props: {\n mode: String,\n origin: String,\n transition: String,\n },\n})\n","// Styles\nimport './VAlert.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Toggleable from '../../mixins/toggleable'\nimport Themeable from '../../mixins/themeable'\nimport Transitionable from '../../mixins/transitionable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNodeData } from 'vue'\nimport { VNode } from 'vue/types'\n\n/* @vue/component */\nexport default mixins(\n VSheet,\n Toggleable,\n Transitionable\n).extend({\n name: 'v-alert',\n\n props: {\n border: {\n type: String,\n validator (val: string) {\n return [\n 'top',\n 'right',\n 'bottom',\n 'left',\n ].includes(val)\n },\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n coloredBorder: Boolean,\n dense: Boolean,\n dismissible: Boolean,\n closeIcon: {\n type: String,\n default: '$cancel',\n },\n icon: {\n default: '',\n type: [Boolean, String],\n validator (val: boolean | string) {\n return typeof val === 'string' || val === false\n },\n },\n outlined: Boolean,\n prominent: Boolean,\n text: Boolean,\n type: {\n type: String,\n validator (val: string) {\n return [\n 'info',\n 'error',\n 'success',\n 'warning',\n ].includes(val)\n },\n },\n value: {\n type: Boolean,\n default: true,\n },\n },\n\n computed: {\n __cachedBorder (): VNode | null {\n if (!this.border) return null\n\n let data: VNodeData = {\n staticClass: 'v-alert__border',\n class: {\n [`v-alert__border--${this.border}`]: true,\n },\n }\n\n if (this.coloredBorder) {\n data = this.setBackgroundColor(this.computedColor, data)\n data.class['v-alert__border--has-color'] = true\n }\n\n return this.$createElement('div', data)\n },\n __cachedDismissible (): VNode | null {\n if (!this.dismissible) return null\n\n const color = this.iconColor\n\n return this.$createElement(VBtn, {\n staticClass: 'v-alert__dismissible',\n props: {\n color,\n icon: true,\n small: true,\n },\n attrs: {\n 'aria-label': this.$vuetify.lang.t(this.closeLabel),\n },\n on: {\n click: () => (this.isActive = false),\n },\n }, [\n this.$createElement(VIcon, {\n props: { color },\n }, this.closeIcon),\n ])\n },\n __cachedIcon (): VNode | null {\n if (!this.computedIcon) return null\n\n return this.$createElement(VIcon, {\n staticClass: 'v-alert__icon',\n props: { color: this.iconColor },\n }, this.computedIcon)\n },\n classes (): object {\n const classes: Record = {\n ...VSheet.options.computed.classes.call(this),\n 'v-alert--border': Boolean(this.border),\n 'v-alert--dense': this.dense,\n 'v-alert--outlined': this.outlined,\n 'v-alert--prominent': this.prominent,\n 'v-alert--text': this.text,\n }\n\n if (this.border) {\n classes[`v-alert--border-${this.border}`] = true\n }\n\n return classes\n },\n computedColor (): string {\n return this.color || this.type\n },\n computedIcon (): string | boolean {\n if (this.icon === false) return false\n if (typeof this.icon === 'string' && this.icon) return this.icon\n if (!['error', 'info', 'success', 'warning'].includes(this.type)) return false\n\n return `$${this.type}`\n },\n hasColoredIcon (): boolean {\n return (\n this.hasText ||\n (Boolean(this.border) && this.coloredBorder)\n )\n },\n hasText (): boolean {\n return this.text || this.outlined\n },\n iconColor (): string | undefined {\n return this.hasColoredIcon ? this.computedColor : undefined\n },\n isDark (): boolean {\n if (\n this.type &&\n !this.coloredBorder &&\n !this.outlined\n ) return true\n\n return Themeable.options.computed.isDark.call(this)\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('outline')) {\n breaking('outline', 'outlined', this)\n }\n },\n\n methods: {\n genWrapper (): VNode {\n const children = [\n this.$slots.prepend || this.__cachedIcon,\n this.genContent(),\n this.__cachedBorder,\n this.$slots.append,\n this.$scopedSlots.close\n ? this.$scopedSlots.close({ toggle: this.toggle })\n : this.__cachedDismissible,\n ]\n\n const data: VNodeData = {\n staticClass: 'v-alert__wrapper',\n }\n\n return this.$createElement('div', data, children)\n },\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-alert__content',\n }, this.$slots.default)\n },\n genAlert (): VNode {\n let data: VNodeData = {\n staticClass: 'v-alert',\n attrs: {\n role: 'alert',\n },\n on: this.listeners$,\n class: this.classes,\n style: this.styles,\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n }\n\n if (!this.coloredBorder) {\n const setColor = this.hasText ? this.setTextColor : this.setBackgroundColor\n data = setColor(this.computedColor, data)\n }\n\n return this.$createElement('div', data, [this.genWrapper()])\n },\n /** @public */\n toggle () {\n this.isActive = !this.isActive\n },\n },\n\n render (h): VNode {\n const render = this.genAlert()\n\n if (!this.transition) return render\n\n return h('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n mode: this.mode,\n },\n }, [render])\n },\n})\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","// Exports the \"advlist\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/advlist')\n// ES2015:\n// import 'tinymce/plugins/advlist'\nrequire('./plugin.js');","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","var toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length or index');\n return length;\n};\n","var toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar replace = ''.replace;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('../internals/to-length');\nvar repeat = require('../internals/string-repeat');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar ceil = Math.ceil;\n\n// `String.prototype.{ padStart, padEnd }` methods implementation\nvar createMethod = function (IS_END) {\n return function ($this, maxLength, fillString) {\n var S = String(requireObjectCoercible($this));\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : String(fillString);\n var intMaxLength = toLength(maxLength);\n var fillLen, stringFiller;\n if (intMaxLength <= stringLength || fillStr == '') return S;\n fillLen = intMaxLength - stringLength;\n stringFiller = repeat.call(fillStr, ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n return IS_END ? S + stringFiller : stringFiller + S;\n };\n};\n\nmodule.exports = {\n // `String.prototype.padStart` method\n // https://tc39.es/ecma262/#sec-string.prototype.padstart\n start: createMethod(false),\n // `String.prototype.padEnd` method\n // https://tc39.es/ecma262/#sec-string.prototype.padend\n end: createMethod(true)\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","import './_grid.sass'\n\nimport Grid from './grid'\n\nexport default Grid('flex')\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = ''.repeat || function repeat(count) {\n var str = String(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n // eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SUPPORTS_Y);\n","// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\nvar speciesConstructor = require('../internals/species-constructor');\n\nmodule.exports = function (instance, list) {\n var C = speciesConstructor(instance, instance.constructor);\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.copywithin\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","// Styles\nimport './VDialog.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Dependent from '../../mixins/dependent'\nimport Detachable from '../../mixins/detachable'\nimport Overlayable from '../../mixins/overlayable'\nimport Returnable from '../../mixins/returnable'\nimport Stackable from '../../mixins/stackable'\nimport Toggleable from '../../mixins/toggleable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Activatable,\n Dependent,\n Detachable,\n Overlayable,\n Returnable,\n Stackable,\n Toggleable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-dialog',\n\n directives: { ClickOutside },\n\n props: {\n dark: Boolean,\n disabled: Boolean,\n fullscreen: Boolean,\n light: Boolean,\n maxWidth: {\n type: [String, Number],\n default: 'none',\n },\n noClickAnimation: Boolean,\n origin: {\n type: String,\n default: 'center center',\n },\n persistent: Boolean,\n retainFocus: {\n type: Boolean,\n default: true,\n },\n scrollable: Boolean,\n transition: {\n type: [String, Boolean],\n default: 'dialog-transition',\n },\n width: {\n type: [String, Number],\n default: 'auto',\n },\n },\n\n data () {\n return {\n activatedBy: null as EventTarget | null,\n animate: false,\n animateTimeout: -1,\n isActive: !!this.value,\n stackMinZIndex: 200,\n previousActiveElement: null as HTMLElement | null,\n }\n },\n\n computed: {\n classes (): object {\n return {\n [(`v-dialog ${this.contentClass}`).trim()]: true,\n 'v-dialog--active': this.isActive,\n 'v-dialog--persistent': this.persistent,\n 'v-dialog--fullscreen': this.fullscreen,\n 'v-dialog--scrollable': this.scrollable,\n 'v-dialog--animated': this.animate,\n }\n },\n contentClasses (): object {\n return {\n 'v-dialog__content': true,\n 'v-dialog__content--active': this.isActive,\n }\n },\n hasActivator (): boolean {\n return Boolean(\n !!this.$slots.activator ||\n !!this.$scopedSlots.activator\n )\n },\n },\n\n watch: {\n isActive (val) {\n if (val) {\n this.show()\n this.hideScroll()\n } else {\n this.removeOverlay()\n this.unbind()\n this.previousActiveElement?.focus()\n }\n },\n fullscreen (val) {\n if (!this.isActive) return\n\n if (val) {\n this.hideScroll()\n this.removeOverlay(false)\n } else {\n this.showScroll()\n this.genOverlay()\n }\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n beforeMount () {\n this.$nextTick(() => {\n this.isBooted = this.isActive\n this.isActive && this.show()\n })\n },\n\n beforeDestroy () {\n if (typeof window !== 'undefined') this.unbind()\n },\n\n methods: {\n animateClick () {\n this.animate = false\n // Needed for when clicking very fast\n // outside of the dialog\n this.$nextTick(() => {\n this.animate = true\n window.clearTimeout(this.animateTimeout)\n this.animateTimeout = window.setTimeout(() => (this.animate = false), 150)\n })\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n // Ignore the click if the dialog is closed or destroyed,\n // if it was on an element inside the content,\n // if it was dragged onto the overlay (#6969),\n // or if this isn't the topmost dialog (#9907)\n return !(\n this._isDestroyed ||\n !this.isActive ||\n this.$refs.content.contains(target) ||\n (this.overlay && target && !this.overlay.$el.contains(target))\n ) && this.activeZIndex >= this.getMaxZIndex()\n },\n hideScroll () {\n if (this.fullscreen) {\n document.documentElement.classList.add('overflow-y-hidden')\n } else {\n Overlayable.options.methods.hideScroll.call(this)\n }\n },\n show () {\n !this.fullscreen && !this.hideOverlay && this.genOverlay()\n // Double nextTick to wait for lazy content to be generated\n this.$nextTick(() => {\n this.$nextTick(() => {\n this.previousActiveElement = document.activeElement as HTMLElement\n this.$refs.content.focus()\n this.bind()\n })\n })\n },\n bind () {\n window.addEventListener('focusin', this.onFocusin)\n },\n unbind () {\n window.removeEventListener('focusin', this.onFocusin)\n },\n onClickOutside (e: Event) {\n this.$emit('click:outside', e)\n\n if (this.persistent) {\n this.noClickAnimation || this.animateClick()\n } else {\n this.isActive = false\n }\n },\n onKeydown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.esc && !this.getOpenDependents().length) {\n if (!this.persistent) {\n this.isActive = false\n const activator = this.getActivator()\n this.$nextTick(() => activator && (activator as HTMLElement).focus())\n } else if (!this.noClickAnimation) {\n this.animateClick()\n }\n }\n this.$emit('keydown', e)\n },\n // On focus change, wrap focus to stay inside the dialog\n // https://github.com/vuetifyjs/vuetify/issues/6892\n onFocusin (e: Event) {\n if (!e || !this.retainFocus) return\n\n const target = e.target as HTMLElement\n\n if (\n !!target &&\n // It isn't the document or the dialog body\n ![document, this.$refs.content].includes(target) &&\n // It isn't inside the dialog body\n !this.$refs.content.contains(target) &&\n // We're the topmost dialog\n this.activeZIndex >= this.getMaxZIndex() &&\n // It isn't inside a dependent element (like a menu)\n !this.getOpenDependentElements().some(el => el.contains(target))\n // So we must have focused something outside the dialog and its children\n ) {\n // Find and focus the first available element inside the dialog\n const focusable = this.$refs.content.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n const el = [...focusable].find(el => !el.hasAttribute('disabled')) as HTMLElement | undefined\n el && el.focus()\n }\n },\n genContent () {\n return this.showLazyContent(() => [\n this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, [\n this.$createElement('div', {\n class: this.contentClasses,\n attrs: {\n role: 'document',\n tabindex: this.isActive ? 0 : undefined,\n ...this.getScopeIdAttrs(),\n },\n on: { keydown: this.onKeydown },\n style: { zIndex: this.activeZIndex },\n ref: 'content',\n }, [this.genTransition()]),\n ]),\n ])\n },\n genTransition () {\n const content = this.genInnerContent()\n\n if (!this.transition) return content\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n appear: true,\n },\n }, [content])\n },\n genInnerContent () {\n const data: VNodeData = {\n class: this.classes,\n ref: 'dialog',\n directives: [\n {\n name: 'click-outside',\n value: {\n handler: this.onClickOutside,\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n },\n { name: 'show', value: this.isActive },\n ],\n style: {\n transformOrigin: this.origin,\n },\n }\n\n if (!this.fullscreen) {\n data.style = {\n ...data.style as object,\n maxWidth: this.maxWidth === 'none' ? undefined : convertToUnit(this.maxWidth),\n width: this.width === 'auto' ? undefined : convertToUnit(this.width),\n }\n }\n\n return this.$createElement('div', data, this.getContentSlot())\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-dialog__container',\n class: {\n 'v-dialog__container--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n },\n attrs: { role: 'dialog' },\n }, [\n this.genActivator(),\n this.genContent(),\n ])\n },\n})\n","import Vue from 'vue'\n\n/**\n * Delayable\n *\n * @mixin\n *\n * Changes the open or close delay time for elements\n */\nexport default Vue.extend().extend({\n name: 'delayable',\n\n props: {\n openDelay: {\n type: [Number, String],\n default: 0,\n },\n closeDelay: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n openTimeout: undefined as number | undefined,\n closeTimeout: undefined as number | undefined,\n }),\n\n methods: {\n /**\n * Clear any pending delay timers from executing\n */\n clearDelay (): void {\n clearTimeout(this.openTimeout)\n clearTimeout(this.closeTimeout)\n },\n /**\n * Runs callback after a specified delay\n */\n runDelay (type: 'open' | 'close', cb?: () => void): void {\n this.clearDelay()\n\n const delay = parseInt((this as any)[`${type}Delay`], 10)\n\n ;(this as any)[`${type}Timeout`] = setTimeout(cb || (() => {\n this.isActive = { open: true, close: false }[type]\n }), delay)\n },\n },\n})\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n var O = aTypedArray(this);\n var length = O.length;\n var beginIndex = toAbsoluteIndex(begin, length);\n return new (speciesConstructor(O, O.constructor))(\n O.buffer,\n O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n );\n});\n","tinymce.addI18n('fr_FR',{\n\"Redo\": \"R\\u00e9tablir\",\n\"Undo\": \"Annuler\",\n\"Cut\": \"Couper\",\n\"Copy\": \"Copier\",\n\"Paste\": \"Coller\",\n\"Select all\": \"S\\u00e9lectionner tout\",\n\"New document\": \"Nouveau document\",\n\"Ok\": \"OK\",\n\"Cancel\": \"Annuler\",\n\"Visual aids\": \"Aides visuelles\",\n\"Bold\": \"Gras\",\n\"Italic\": \"Italique\",\n\"Underline\": \"Soulign\\u00e9\",\n\"Strikethrough\": \"Barr\\u00e9\",\n\"Superscript\": \"Exposant\",\n\"Subscript\": \"Indice\",\n\"Clear formatting\": \"Effacer la mise en forme\",\n\"Align left\": \"Aligner \\u00e0 gauche\",\n\"Align center\": \"Centrer\",\n\"Align right\": \"Aligner \\u00e0 droite\",\n\"Justify\": \"Justifier\",\n\"Bullet list\": \"Liste \\u00e0 puces\",\n\"Numbered list\": \"Liste num\\u00e9rot\\u00e9e\",\n\"Decrease indent\": \"R\\u00e9duire le retrait\",\n\"Increase indent\": \"Augmenter le retrait\",\n\"Close\": \"Fermer\",\n\"Formats\": \"Formats\",\n\"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\\/C\\/V keyboard shortcuts instead.\": \"Votre navigateur ne supporte pas l\\u2019acc\\u00e8s direct au presse-papiers. Merci d'utiliser les raccourcis clavier Ctrl+X\\/C\\/V.\",\n\"Headers\": \"En-t\\u00eates\",\n\"Header 1\": \"En-t\\u00eate 1\",\n\"Header 2\": \"En-t\\u00eate 2\",\n\"Header 3\": \"En-t\\u00eate 3\",\n\"Header 4\": \"En-t\\u00eate 4\",\n\"Header 5\": \"En-t\\u00eate 5\",\n\"Header 6\": \"En-t\\u00eate 6\",\n\"Headings\": \"Titres\",\n\"Heading 1\": \"Titre\\u00a01\",\n\"Heading 2\": \"Titre\\u00a02\",\n\"Heading 3\": \"Titre\\u00a03\",\n\"Heading 4\": \"Titre\\u00a04\",\n\"Heading 5\": \"Titre\\u00a05\",\n\"Heading 6\": \"Titre\\u00a06\",\n\"Preformatted\": \"Pr\\u00e9format\\u00e9\",\n\"Div\": \"Div\",\n\"Pre\": \"Pre\",\n\"Code\": \"Code\",\n\"Paragraph\": \"Paragraphe\",\n\"Blockquote\": \"Blockquote\",\n\"Inline\": \"En ligne\",\n\"Blocks\": \"Blocs\",\n\"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.\": \"Le presse-papiers est maintenant en mode \\\"texte plein\\\". Les contenus seront coll\\u00e9s sans retenir les formatages jusqu'\\u00e0 ce que vous d\\u00e9sactiviez cette option.\",\n\"Fonts\": \"Polices\",\n\"Font Sizes\": \"Tailles de police\",\n\"Class\": \"Classe\",\n\"Browse for an image\": \"Rechercher une image\",\n\"OR\": \"OU\",\n\"Drop an image here\": \"D\\u00e9poser une image ici\",\n\"Upload\": \"T\\u00e9l\\u00e9charger\",\n\"Block\": \"Bloc\",\n\"Align\": \"Aligner\",\n\"Default\": \"Par d\\u00e9faut\",\n\"Circle\": \"Cercle\",\n\"Disc\": \"Disque\",\n\"Square\": \"Carr\\u00e9\",\n\"Lower Alpha\": \"Alpha minuscule\",\n\"Lower Greek\": \"Grec minuscule\",\n\"Lower Roman\": \"Romain minuscule\",\n\"Upper Alpha\": \"Alpha majuscule\",\n\"Upper Roman\": \"Romain majuscule\",\n\"Anchor...\": \"Ancre...\",\n\"Name\": \"Nom\",\n\"Id\": \"Id\",\n\"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.\": \"L'Id doit commencer par une lettre suivi par des lettres, nombres, tirets, points, deux-points ou underscores\",\n\"You have unsaved changes are you sure you want to navigate away?\": \"Vous avez des modifications non enregistr\\u00e9es, \\u00eates-vous s\\u00fbr de quitter la page?\",\n\"Restore last draft\": \"Restaurer le dernier brouillon\",\n\"Special character...\": \"Caract\\u00e8re sp\\u00e9cial...\",\n\"Source code\": \"Code source\",\n\"Insert\\/Edit code sample\": \"Ins\\u00e9rer \\/ modifier une exemple de code\",\n\"Language\": \"Langue\",\n\"Code sample...\": \"Exemple de code...\",\n\"Color Picker\": \"S\\u00e9lecteur de couleurs\",\n\"R\": \"R\",\n\"G\": \"V\",\n\"B\": \"B\",\n\"Left to right\": \"Gauche \\u00e0 droite\",\n\"Right to left\": \"Droite \\u00e0 gauche\",\n\"Emoticons...\": \"\\u00c9motic\\u00f4nes...\",\n\"Metadata and Document Properties\": \"M\\u00e9tadonn\\u00e9es et propri\\u00e9t\\u00e9s du document\",\n\"Title\": \"Titre\",\n\"Keywords\": \"Mots-cl\\u00e9s\",\n\"Description\": \"Description\",\n\"Robots\": \"Robots\",\n\"Author\": \"Auteur\",\n\"Encoding\": \"Encodage\",\n\"Fullscreen\": \"Plein \\u00e9cran\",\n\"Action\": \"Action\",\n\"Shortcut\": \"Raccourci\",\n\"Help\": \"Aide\",\n\"Address\": \"Adresse\",\n\"Focus to menubar\": \"Cibler la barre de menu\",\n\"Focus to toolbar\": \"Cibler la barre d'outils\",\n\"Focus to element path\": \"Cibler le chemin vers l'\\u00e9l\\u00e9ment\",\n\"Focus to contextual toolbar\": \"Cibler la barre d'outils contextuelle\",\n\"Insert link (if link plugin activated)\": \"Ins\\u00e9rer un lien (si le module link est activ\\u00e9)\",\n\"Save (if save plugin activated)\": \"Enregistrer (si le module save est activ\\u00e9)\",\n\"Find (if searchreplace plugin activated)\": \"Rechercher (si le module searchreplace est activ\\u00e9)\",\n\"Plugins installed ({0}):\": \"Modules install\\u00e9s ({0}) : \",\n\"Premium plugins:\": \"Modules premium :\",\n\"Learn more...\": \"En savoir plus...\",\n\"You are using {0}\": \"Vous utilisez {0}\",\n\"Plugins\": \"Plugins\",\n\"Handy Shortcuts\": \"Raccourcis utiles\",\n\"Horizontal line\": \"Ligne horizontale\",\n\"Insert\\/edit image\": \"Ins\\u00e9rer\\/modifier une image\",\n\"Image description\": \"Description de l'image\",\n\"Source\": \"Source\",\n\"Dimensions\": \"Dimensions\",\n\"Constrain proportions\": \"Conserver les proportions\",\n\"General\": \"G\\u00e9n\\u00e9ral\",\n\"Advanced\": \"Avanc\\u00e9\",\n\"Style\": \"Style\",\n\"Vertical space\": \"Espacement vertical\",\n\"Horizontal space\": \"Espacement horizontal\",\n\"Border\": \"Bordure\",\n\"Insert image\": \"Ins\\u00e9rer une image\",\n\"Image...\": \"Image...\",\n\"Image list\": \"Liste d'images\",\n\"Rotate counterclockwise\": \"Rotation anti-horaire\",\n\"Rotate clockwise\": \"Rotation horaire\",\n\"Flip vertically\": \"Retournement vertical\",\n\"Flip horizontally\": \"Retournement horizontal\",\n\"Edit image\": \"Modifier l'image\",\n\"Image options\": \"Options de l'image\",\n\"Zoom in\": \"Zoomer\",\n\"Zoom out\": \"D\\u00e9zoomer\",\n\"Crop\": \"Rogner\",\n\"Resize\": \"Redimensionner\",\n\"Orientation\": \"Orientation\",\n\"Brightness\": \"Luminosit\\u00e9\",\n\"Sharpen\": \"Affiner\",\n\"Contrast\": \"Contraste\",\n\"Color levels\": \"Niveaux de couleur\",\n\"Gamma\": \"Gamma\",\n\"Invert\": \"Inverser\",\n\"Apply\": \"Appliquer\",\n\"Back\": \"Retour\",\n\"Insert date\\/time\": \"Ins\\u00e9rer date\\/heure\",\n\"Date\\/time\": \"Date\\/heure\",\n\"Insert\\/Edit Link\": \"Ins\\u00e9rer\\/Modifier lien\",\n\"Insert\\/edit link\": \"Ins\\u00e9rer\\/modifier un lien\",\n\"Text to display\": \"Texte \\u00e0 afficher\",\n\"Url\": \"Url\",\n\"Open link in...\": \"Ouvrir le lien dans...\",\n\"Current window\": \"Fen\\u00eatre active\",\n\"None\": \"n\\/a\",\n\"New window\": \"Nouvelle fen\\u00eatre\",\n\"Remove link\": \"Enlever le lien\",\n\"Anchors\": \"Ancres\",\n\"Link...\": \"Lien...\",\n\"Paste or type a link\": \"Coller ou taper un lien\",\n\"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?\": \"L'URL que vous avez entr\\u00e9e semble \\u00eatre une adresse e-mail. Voulez-vous ajouter le pr\\u00e9fixe mailto: n\\u00e9cessaire?\",\n\"The URL you entered seems to be an external link. Do you want to add the required http:\\/\\/ prefix?\": \"L'URL que vous avez entr\\u00e9e semble \\u00eatre un lien externe. Voulez-vous ajouter le pr\\u00e9fixe http:\\/\\/ n\\u00e9cessaire?\",\n\"Link list\": \"Liste de liens\",\n\"Insert video\": \"Ins\\u00e9rer une vid\\u00e9o\",\n\"Insert\\/edit video\": \"Ins\\u00e9rer\\/modifier une vid\\u00e9o\",\n\"Insert\\/edit media\": \"Ins\\u00e9rer\\/modifier un m\\u00e9dia\",\n\"Alternative source\": \"Source alternative\",\n\"Alternative source URL\": \"URL de la source alternative\",\n\"Media poster (Image URL)\": \"Affiche de m\\u00e9dia (URL de l'image)\",\n\"Paste your embed code below:\": \"Collez votre code d'int\\u00e9gration ci-dessous :\",\n\"Embed\": \"Int\\u00e9grer\",\n\"Media...\": \"M\\u00e9dia...\",\n\"Nonbreaking space\": \"Espace ins\\u00e9cable\",\n\"Page break\": \"Saut de page\",\n\"Paste as text\": \"Coller comme texte\",\n\"Preview\": \"Pr\\u00e9visualiser\",\n\"Print...\": \"Imprimer...\",\n\"Save\": \"Enregistrer\",\n\"Find\": \"Chercher\",\n\"Replace with\": \"Remplacer par\",\n\"Replace\": \"Remplacer\",\n\"Replace all\": \"Tout remplacer\",\n\"Previous\": \"Pr\\u00e9c\\u00e9dente\",\n\"Next\": \"Suiv\",\n\"Find and replace...\": \"Trouver et remplacer...\",\n\"Could not find the specified string.\": \"Impossible de trouver la cha\\u00eene sp\\u00e9cifi\\u00e9e.\",\n\"Match case\": \"Respecter la casse\",\n\"Find whole words only\": \"Mot entier\",\n\"Spell check\": \"V\\u00e9rification de l'orthographe\",\n\"Ignore\": \"Ignorer\",\n\"Ignore all\": \"Tout ignorer\",\n\"Finish\": \"Finie\",\n\"Add to Dictionary\": \"Ajouter au dictionnaire\",\n\"Insert table\": \"Ins\\u00e9rer un tableau\",\n\"Table properties\": \"Propri\\u00e9t\\u00e9s du tableau\",\n\"Delete table\": \"Supprimer le tableau\",\n\"Cell\": \"Cellule\",\n\"Row\": \"Ligne\",\n\"Column\": \"Colonne\",\n\"Cell properties\": \"Propri\\u00e9t\\u00e9s de la cellule\",\n\"Merge cells\": \"Fusionner les cellules\",\n\"Split cell\": \"Diviser la cellule\",\n\"Insert row before\": \"Ins\\u00e9rer une ligne avant\",\n\"Insert row after\": \"Ins\\u00e9rer une ligne apr\\u00e8s\",\n\"Delete row\": \"Effacer la ligne\",\n\"Row properties\": \"Propri\\u00e9t\\u00e9s de la ligne\",\n\"Cut row\": \"Couper la ligne\",\n\"Copy row\": \"Copier la ligne\",\n\"Paste row before\": \"Coller la ligne avant\",\n\"Paste row after\": \"Coller la ligne apr\\u00e8s\",\n\"Insert column before\": \"Ins\\u00e9rer une colonne avant\",\n\"Insert column after\": \"Ins\\u00e9rer une colonne apr\\u00e8s\",\n\"Delete column\": \"Effacer la colonne\",\n\"Cols\": \"Colonnes\",\n\"Rows\": \"Lignes\",\n\"Width\": \"Largeur\",\n\"Height\": \"Hauteur\",\n\"Cell spacing\": \"Espacement inter-cellulles\",\n\"Cell padding\": \"Espacement interne cellule\",\n\"Show caption\": \"Afficher le sous-titrage\",\n\"Left\": \"Gauche\",\n\"Center\": \"Centr\\u00e9\",\n\"Right\": \"Droite\",\n\"Cell type\": \"Type de cellule\",\n\"Scope\": \"Etendue\",\n\"Alignment\": \"Alignement\",\n\"H Align\": \"Alignement H\",\n\"V Align\": \"Alignement V\",\n\"Top\": \"Haut\",\n\"Middle\": \"Milieu\",\n\"Bottom\": \"Bas\",\n\"Header cell\": \"Cellule d'en-t\\u00eate\",\n\"Row group\": \"Groupe de lignes\",\n\"Column group\": \"Groupe de colonnes\",\n\"Row type\": \"Type de ligne\",\n\"Header\": \"En-t\\u00eate\",\n\"Body\": \"Corps\",\n\"Footer\": \"Pied\",\n\"Border color\": \"Couleur de la bordure\",\n\"Insert template...\": \"Ins\\u00e9rer un mod\\u00e8le...\",\n\"Templates\": \"Th\\u00e8mes\",\n\"Template\": \"Mod\\u00e8le\",\n\"Text color\": \"Couleur du texte\",\n\"Background color\": \"Couleur d'arri\\u00e8re-plan\",\n\"Custom...\": \"Personnalis\\u00e9...\",\n\"Custom color\": \"Couleur personnalis\\u00e9e\",\n\"No color\": \"Aucune couleur\",\n\"Remove color\": \"Supprimer la couleur\",\n\"Table of Contents\": \"Table des mati\\u00e8res\",\n\"Show blocks\": \"Afficher les blocs\",\n\"Show invisible characters\": \"Afficher les caract\\u00e8res invisibles\",\n\"Word count\": \"Nombre de mots\",\n\"Count\": \"Total\",\n\"Document\": \"Document\",\n\"Selection\": \"S\\u00e9lection\",\n\"Words\": \"Mots\",\n\"Words: {0}\": \"Mots : {0}\",\n\"{0} words\": \"{0} mots\",\n\"File\": \"Fichier\",\n\"Edit\": \"Editer\",\n\"Insert\": \"Ins\\u00e9rer\",\n\"View\": \"Voir\",\n\"Format\": \"Format\",\n\"Table\": \"Tableau\",\n\"Tools\": \"Outils\",\n\"Powered by {0}\": \"Propuls\\u00e9 par {0}\",\n\"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help\": \"Zone Texte Riche. Appuyer sur ALT-F9 pour le menu. Appuyer sur ALT-F10 pour la barre d'outils. Appuyer sur ALT-0 pour de l'aide.\",\n\"Image title\": \"Titre d'image\",\n\"Border width\": \"\\u00c9paisseur de la bordure\",\n\"Border style\": \"Style de la bordure\",\n\"Error\": \"Erreur\",\n\"Warn\": \"Avertir\",\n\"Valid\": \"Valide\",\n\"To open the popup, press Shift+Enter\": \"Pour ouvrir la popup, appuyez sur Maj+Entr\\u00e9e\",\n\"Rich Text Area. Press ALT-0 for help.\": \"Zone de texte riche. Appuyez sur ALT-0 pour l'aide.\",\n\"System Font\": \"Police syst\\u00e8me\",\n\"Failed to upload image: {0}\": \"\\u00c9chec d'envoi de l'image\\u00a0: {0}\",\n\"Failed to load plugin: {0} from url {1}\": \"\\u00c9chec de chargement du plug-in\\u00a0: {0} \\u00e0 partir de l\\u2019URL {1}\",\n\"Failed to load plugin url: {0}\": \"\\u00c9chec de chargement de l'URL du plug-in\\u00a0: {0}\",\n\"Failed to initialize plugin: {0}\": \"\\u00c9chec d'initialisation du plug-in\\u00a0: {0}\",\n\"example\": \"exemple\",\n\"Search\": \"Rechercher\",\n\"All\": \"Tout\",\n\"Currency\": \"Devise\",\n\"Text\": \"Texte\",\n\"Quotations\": \"Citations\",\n\"Mathematical\": \"Op\\u00e9rateurs math\\u00e9matiques\",\n\"Extended Latin\": \"Latin \\u00e9tendu\",\n\"Symbols\": \"Symboles\",\n\"Arrows\": \"Fl\\u00e8ches\",\n\"User Defined\": \"D\\u00e9fini par l'utilisateur\",\n\"dollar sign\": \"Symbole dollar\",\n\"currency sign\": \"Symbole devise\",\n\"euro-currency sign\": \"Symbole euro\",\n\"colon sign\": \"Symbole col\\u00f3n\",\n\"cruzeiro sign\": \"Symbole cruzeiro\",\n\"french franc sign\": \"Symbole franc fran\\u00e7ais\",\n\"lira sign\": \"Symbole lire\",\n\"mill sign\": \"Symbole milli\\u00e8me\",\n\"naira sign\": \"Symbole naira\",\n\"peseta sign\": \"Symbole peseta\",\n\"rupee sign\": \"Symbole roupie\",\n\"won sign\": \"Symbole won\",\n\"new sheqel sign\": \"Symbole nouveau ch\\u00e9kel\",\n\"dong sign\": \"Symbole dong\",\n\"kip sign\": \"Symbole kip\",\n\"tugrik sign\": \"Symbole tougrik\",\n\"drachma sign\": \"Symbole drachme\",\n\"german penny symbol\": \"Symbole pfennig\",\n\"peso sign\": \"Symbole peso\",\n\"guarani sign\": \"Symbole guarani\",\n\"austral sign\": \"Symbole austral\",\n\"hryvnia sign\": \"Symbole hryvnia\",\n\"cedi sign\": \"Symbole cedi\",\n\"livre tournois sign\": \"Symbole livre tournois\",\n\"spesmilo sign\": \"Symbole spesmilo\",\n\"tenge sign\": \"Symbole tenge\",\n\"indian rupee sign\": \"Symbole roupie indienne\",\n\"turkish lira sign\": \"Symbole lire turque\",\n\"nordic mark sign\": \"Symbole du mark nordique\",\n\"manat sign\": \"Symbole manat\",\n\"ruble sign\": \"Symbole rouble\",\n\"yen character\": \"Sinogramme Yen\",\n\"yuan character\": \"Sinogramme Yuan\",\n\"yuan character, in hong kong and taiwan\": \"Sinogramme Yuan, Hong Kong et Taiwan\",\n\"yen\\/yuan character variant one\": \"Sinogramme Yen\\/Yuan, premi\\u00e8re variante\",\n\"Loading emoticons...\": \"Chargement des \\u00e9motic\\u00f4nes en cours...\",\n\"Could not load emoticons\": \"\\u00c9chec de chargement des \\u00e9motic\\u00f4nes\",\n\"People\": \"Personnes\",\n\"Animals and Nature\": \"Animaux & nature\",\n\"Food and Drink\": \"Nourriture & boissons\",\n\"Activity\": \"Activit\\u00e9\",\n\"Travel and Places\": \"Voyages & lieux\",\n\"Objects\": \"Objets\",\n\"Flags\": \"Drapeaux\",\n\"Characters\": \"Caract\\u00e8res\",\n\"Characters (no spaces)\": \"Caract\\u00e8res (espaces non compris)\",\n\"{0} characters\": \"{0}\\u00a0caract\\u00e8res\",\n\"Error: Form submit field collision.\": \"Erreur\\u00a0: conflit de champs lors de la soumission du formulaire.\",\n\"Error: No form element found.\": \"Erreur : aucun \\u00e9l\\u00e9ment de formulaire trouv\\u00e9.\",\n\"Update\": \"Mettre \\u00e0 jour\",\n\"Color swatch\": \"\\u00c9chantillon de couleurs\",\n\"Turquoise\": \"Turquoise\",\n\"Green\": \"Vert\",\n\"Blue\": \"Bleu\",\n\"Purple\": \"Violet\",\n\"Navy Blue\": \"Bleu marine\",\n\"Dark Turquoise\": \"Turquoise fonc\\u00e9\",\n\"Dark Green\": \"Vert fonc\\u00e9\",\n\"Medium Blue\": \"Bleu moyen\",\n\"Medium Purple\": \"Violet moyen\",\n\"Midnight Blue\": \"Bleu de minuit\",\n\"Yellow\": \"Jaune\",\n\"Orange\": \"Orange\",\n\"Red\": \"Rouge\",\n\"Light Gray\": \"Gris clair\",\n\"Gray\": \"Gris\",\n\"Dark Yellow\": \"Jaune fonc\\u00e9\",\n\"Dark Orange\": \"Orange fonc\\u00e9\",\n\"Dark Red\": \"Rouge fonc\\u00e9\",\n\"Medium Gray\": \"Gris moyen\",\n\"Dark Gray\": \"Gris fonc\\u00e9\",\n\"Light Green\": \"Vert clair\",\n\"Light Yellow\": \"Jaune clair\",\n\"Light Red\": \"Rouge clair\",\n\"Light Purple\": \"Violet clair\",\n\"Light Blue\": \"Bleu clair\",\n\"Dark Purple\": \"Violet fonc\\u00e9\",\n\"Dark Blue\": \"Bleu fonc\\u00e9\",\n\"Black\": \"Noir\",\n\"White\": \"Blanc\",\n\"Switch to or from fullscreen mode\": \"Passer en ou quitter le mode plein \\u00e9cran\",\n\"Open help dialog\": \"Ouvrir la bo\\u00eete de dialogue d'aide\",\n\"history\": \"historique\",\n\"styles\": \"styles\",\n\"formatting\": \"mise en forme\",\n\"alignment\": \"alignement\",\n\"indentation\": \"retrait\",\n\"permanent pen\": \"feutre ind\\u00e9l\\u00e9bile\",\n\"comments\": \"commentaires\",\n\"Format Painter\": \"Reproduire la mise en forme\",\n\"Insert\\/edit iframe\": \"Ins\\u00e9rer\\/modifier iframe\",\n\"Capitalization\": \"Mise en majuscules\",\n\"lowercase\": \"minuscule\",\n\"UPPERCASE\": \"MAJUSCULE\",\n\"Title Case\": \"Casse du titre\",\n\"Permanent Pen Properties\": \"Propri\\u00e9t\\u00e9s du feutre ind\\u00e9l\\u00e9bile\",\n\"Permanent pen properties...\": \"Propri\\u00e9t\\u00e9s du feutre ind\\u00e9l\\u00e9bile...\",\n\"Font\": \"Police\",\n\"Size\": \"Taille\",\n\"More...\": \"Plus...\",\n\"Spellcheck Language\": \"Langue du correcteur orthographique\",\n\"Select...\": \"S\\u00e9lectionner...\",\n\"Preferences\": \"Pr\\u00e9f\\u00e9rences\",\n\"Yes\": \"Oui\",\n\"No\": \"Non\",\n\"Keyboard Navigation\": \"Navigation au clavier\",\n\"Version\": \"Version\",\n\"Anchor\": \"Ancre\",\n\"Special character\": \"Caract\\u00e8res sp\\u00e9ciaux\",\n\"Code sample\": \"Extrait de code\",\n\"Color\": \"Couleur\",\n\"Emoticons\": \"Emotic\\u00f4nes\",\n\"Document properties\": \"Propri\\u00e9t\\u00e9 du document\",\n\"Image\": \"Image\",\n\"Insert link\": \"Ins\\u00e9rer un lien\",\n\"Target\": \"Cible\",\n\"Link\": \"Lien\",\n\"Poster\": \"Publier\",\n\"Media\": \"M\\u00e9dia\",\n\"Print\": \"Imprimer\",\n\"Prev\": \"Pr\\u00e9c \",\n\"Find and replace\": \"Trouver et remplacer\",\n\"Whole words\": \"Mots entiers\",\n\"Spellcheck\": \"V\\u00e9rification orthographique\",\n\"Caption\": \"Titre\",\n\"Insert template\": \"Ajouter un th\\u00e8me\"\n});","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n","// Types\nimport Vue, { VNode } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'v-list-item-action',\n\n functional: true,\n\n render (h, { data, children = [] }): VNode {\n data.staticClass = data.staticClass ? `v-list-item__action ${data.staticClass}` : 'v-list-item__action'\n const filteredChild = children.filter(VNode => {\n return VNode.isComment === false && VNode.text !== ' '\n })\n if (filteredChild.length > 1) data.staticClass += ' v-list-item__action--stack'\n\n return h('div', data, children)\n },\n})\n","var toPositiveInteger = require('../internals/to-positive-integer');\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw RangeError('Wrong offset');\n return offset;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.anchor` method\n// https://tc39.es/ecma262/#sec-string.prototype.anchor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, {\n anchor: function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n }\n});\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","// Styles\nimport './VListItemGroup.sass'\n\n// Extensions\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\nexport default mixins(\n BaseItemGroup,\n Colorable\n).extend({\n name: 'v-list-item-group',\n\n provide () {\n return {\n isInGroup: true,\n listItemGroup: this,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-list-item-group': true,\n }\n },\n },\n\n methods: {\n genData (): object {\n return this.setTextColor(this.color, {\n ...BaseItemGroup.options.methods.genData.call(this),\n attrs: {\n role: 'listbox',\n },\n })\n },\n },\n})\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n const path = `_vnode.data.class.${activeClass}`\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n },\n toggle: () => { /* noop */ },\n },\n})\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","// Styles\nimport './VRating.sass'\n\n// Components\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Delayable from '../../mixins/delayable'\nimport Sizeable from '../../mixins/sizeable'\nimport Rippleable from '../../mixins/rippleable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { createRange } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, VNodeDirective, VNodeChildren } from 'vue'\n\ntype ItemSlotProps = {\n index: number\n value: number\n isFilled: boolean\n isHalfFilled?: boolean | undefined\n isHovered: boolean\n isHalfHovered?: boolean | undefined\n click: Function\n}\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Delayable,\n Rippleable,\n Sizeable,\n Themeable\n).extend({\n name: 'v-rating',\n\n props: {\n backgroundColor: {\n type: String,\n default: 'accent',\n },\n color: {\n type: String,\n default: 'primary',\n },\n clearable: Boolean,\n dense: Boolean,\n emptyIcon: {\n type: String,\n default: '$ratingEmpty',\n },\n fullIcon: {\n type: String,\n default: '$ratingFull',\n },\n halfIcon: {\n type: String,\n default: '$ratingHalf',\n },\n halfIncrements: Boolean,\n hover: Boolean,\n length: {\n type: [Number, String],\n default: 5,\n },\n readonly: Boolean,\n size: [Number, String],\n value: {\n type: Number,\n default: 0,\n },\n iconLabel: {\n type: String,\n default: '$vuetify.rating.ariaLabel.icon',\n },\n },\n\n data () {\n return {\n hoverIndex: -1,\n internalValue: this.value,\n }\n },\n\n computed: {\n directives (): VNodeDirective[] {\n if (this.readonly || !this.ripple) return []\n\n return [{\n name: 'ripple',\n value: { circle: true },\n } as VNodeDirective]\n },\n iconProps (): object {\n const {\n dark,\n large,\n light,\n medium,\n small,\n size,\n xLarge,\n xSmall,\n } = this.$props\n\n return {\n dark,\n large,\n light,\n medium,\n size,\n small,\n xLarge,\n xSmall,\n }\n },\n isHovering (): boolean {\n return this.hover && this.hoverIndex >= 0\n },\n },\n\n watch: {\n internalValue (val) {\n val !== this.value && this.$emit('input', val)\n },\n value (val) {\n this.internalValue = val\n },\n },\n\n methods: {\n createClickFn (i: number): Function {\n return (e: MouseEvent) => {\n if (this.readonly) return\n\n const newValue = this.genHoverIndex(e, i)\n if (this.clearable && this.internalValue === newValue) {\n this.internalValue = 0\n } else {\n this.internalValue = newValue\n }\n }\n },\n createProps (i: number): ItemSlotProps {\n const props: ItemSlotProps = {\n index: i,\n value: this.internalValue,\n click: this.createClickFn(i),\n isFilled: Math.floor(this.internalValue) > i,\n isHovered: Math.floor(this.hoverIndex) > i,\n }\n\n if (this.halfIncrements) {\n props.isHalfHovered = !props.isHovered && (this.hoverIndex - i) % 1 > 0\n props.isHalfFilled = !props.isFilled && (this.internalValue - i) % 1 > 0\n }\n\n return props\n },\n genHoverIndex (e: MouseEvent, i: number) {\n let isHalf = this.isHalfEvent(e)\n\n if (\n this.halfIncrements &&\n this.$vuetify.rtl\n ) {\n isHalf = !isHalf\n }\n\n return i + (isHalf ? 0.5 : 1)\n },\n getIconName (props: ItemSlotProps): string {\n const isFull = this.isHovering ? props.isHovered : props.isFilled\n const isHalf = this.isHovering ? props.isHalfHovered : props.isHalfFilled\n\n return isFull ? this.fullIcon : isHalf ? this.halfIcon : this.emptyIcon\n },\n getColor (props: ItemSlotProps): string {\n if (this.isHovering) {\n if (props.isHovered || props.isHalfHovered) return this.color\n } else {\n if (props.isFilled || props.isHalfFilled) return this.color\n }\n\n return this.backgroundColor\n },\n isHalfEvent (e: MouseEvent): boolean {\n if (this.halfIncrements) {\n const rect = e.target && (e.target as HTMLElement).getBoundingClientRect()\n if (rect && (e.pageX - rect.left) < rect.width / 2) return true\n }\n\n return false\n },\n onMouseEnter (e: MouseEvent, i: number): void {\n this.runDelay('open', () => {\n this.hoverIndex = this.genHoverIndex(e, i)\n })\n },\n onMouseLeave (): void {\n this.runDelay('close', () => (this.hoverIndex = -1))\n },\n genItem (i: number): VNode | VNodeChildren | string {\n const props = this.createProps(i)\n\n if (this.$scopedSlots.item) return this.$scopedSlots.item(props)\n\n const listeners: Record = {\n click: props.click,\n }\n\n if (this.hover) {\n listeners.mouseenter = (e: MouseEvent) => this.onMouseEnter(e, i)\n listeners.mouseleave = this.onMouseLeave\n\n if (this.halfIncrements) {\n listeners.mousemove = (e: MouseEvent) => this.onMouseEnter(e, i)\n }\n }\n\n return this.$createElement(VIcon, this.setTextColor(this.getColor(props), {\n attrs: {\n 'aria-label': this.$vuetify.lang.t(this.iconLabel, i + 1, Number(this.length)),\n },\n directives: this.directives,\n props: this.iconProps,\n on: listeners,\n }), [this.getIconName(props)])\n },\n },\n\n render (h): VNode {\n const children = createRange(Number(this.length)).map(i => this.genItem(i))\n\n return h('div', {\n staticClass: 'v-rating',\n class: {\n 'v-rating--readonly': this.readonly,\n 'v-rating--dense': this.dense,\n },\n }, children)\n },\n})\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $sort = [].sort;\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n return $sort.call(aTypedArray(this), comparefn);\n});\n","import Vue from 'vue'\n\nimport { getZIndex } from '../../util/helpers'\n\ninterface options extends Vue {\n $refs: {\n content: Element\n }\n}\n\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'stackable',\n\n data () {\n return {\n stackElement: null as Element | null,\n stackExclude: null as Element[] | null,\n stackMinZIndex: 0,\n isActive: false,\n }\n },\n computed: {\n activeZIndex (): number {\n if (typeof window === 'undefined') return 0\n\n const content = this.stackElement || this.$refs.content\n // Return current zindex if not active\n\n const index = !this.isActive\n ? getZIndex(content)\n : this.getMaxZIndex(this.stackExclude || [content]) + 2\n\n if (index == null) return index\n\n // Return max current z-index (excluding self) + 2\n // (2 to leave room for an overlay below, if needed)\n return parseInt(index)\n },\n },\n methods: {\n getMaxZIndex (exclude: Element[] = []) {\n const base = this.$el\n // Start with lowest allowed z-index or z-index of\n // base component's element, whichever is greater\n const zis = [this.stackMinZIndex, getZIndex(base)]\n // Convert the NodeList to an array to\n // prevent an Edge bug with Symbol.iterator\n // https://github.com/vuetifyjs/vuetify/issues/2146\n const activeElements = [\n ...document.getElementsByClassName('v-menu__content--active'),\n ...document.getElementsByClassName('v-dialog__content--active'),\n ]\n\n // Get z-index for all active dialogs\n for (let index = 0; index < activeElements.length; index++) {\n if (!exclude.includes(activeElements[index])) {\n zis.push(getZIndex(activeElements[index]))\n }\n }\n\n return Math.max(...zis)\n },\n },\n})\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n","// Styles\nimport './VFileInput.sass'\n\n// Extensions\nimport VTextField from '../VTextField'\n\n// Components\nimport { VChip } from '../VChip'\n\n// Types\nimport { PropValidator } from 'vue/types/options'\n\n// Utilities\nimport { deepEqual, humanReadableFileSize, wrapInArray } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\nimport { mergeStyles } from '../../util/mergeData'\n\nexport default VTextField.extend({\n name: 'v-file-input',\n\n model: {\n prop: 'value',\n event: 'change',\n },\n\n props: {\n chips: Boolean,\n clearable: {\n type: Boolean,\n default: true,\n },\n counterSizeString: {\n type: String,\n default: '$vuetify.fileInput.counterSize',\n },\n counterString: {\n type: String,\n default: '$vuetify.fileInput.counter',\n },\n hideInput: Boolean,\n placeholder: String,\n prependIcon: {\n type: String,\n default: '$file',\n },\n readonly: {\n type: Boolean,\n default: false,\n },\n showSize: {\n type: [Boolean, Number],\n default: false,\n validator: (v: boolean | number) => {\n return (\n typeof v === 'boolean' ||\n [1000, 1024].includes(v)\n )\n },\n } as PropValidator,\n smallChips: Boolean,\n truncateLength: {\n type: [Number, String],\n default: 22,\n },\n type: {\n type: String,\n default: 'file',\n },\n value: {\n default: undefined,\n validator: val => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n } as PropValidator,\n },\n\n computed: {\n classes (): object {\n return {\n ...VTextField.options.computed.classes.call(this),\n 'v-file-input': true,\n }\n },\n computedCounterValue (): string {\n const fileCount = (this.isMultiple && this.lazyValue)\n ? this.lazyValue.length\n : (this.lazyValue instanceof File) ? 1 : 0\n\n if (!this.showSize) return this.$vuetify.lang.t(this.counterString, fileCount)\n\n const bytes = this.internalArrayValue.reduce((bytes: number, { size = 0 }: File) => {\n return bytes + size\n }, 0)\n\n return this.$vuetify.lang.t(\n this.counterSizeString,\n fileCount,\n humanReadableFileSize(bytes, this.base === 1024)\n )\n },\n internalArrayValue (): File[] {\n return wrapInArray(this.internalValue)\n },\n internalValue: {\n get (): File[] {\n return this.lazyValue\n },\n set (val: File | File[]) {\n this.lazyValue = val\n this.$emit('change', this.lazyValue)\n },\n },\n isDirty (): boolean {\n return this.internalArrayValue.length > 0\n },\n isLabelActive (): boolean {\n return this.isDirty\n },\n isMultiple (): boolean {\n return this.$attrs.hasOwnProperty('multiple')\n },\n text (): string[] {\n if (!this.isDirty && (this.isFocused || !this.hasLabel)) return [this.placeholder]\n\n return this.internalArrayValue.map((file: File) => {\n const {\n name = '',\n size = 0,\n } = file\n\n const truncatedText = this.truncateText(name)\n\n return !this.showSize\n ? truncatedText\n : `${truncatedText} (${humanReadableFileSize(size, this.base === 1024)})`\n })\n },\n base (): 1000 | 1024 | undefined {\n return typeof this.showSize !== 'boolean' ? this.showSize : undefined\n },\n hasChips (): boolean {\n return this.chips || this.smallChips\n },\n },\n\n watch: {\n readonly: {\n handler (v) {\n if (v === true) consoleError('readonly is not supported on ', this)\n },\n immediate: true,\n },\n value (v) {\n const value = this.isMultiple ? v : v ? [v] : []\n if (!deepEqual(value, this.$refs.input.files)) {\n // When the input value is changed programatically, clear the\n // internal input's value so that the `onInput` handler\n // can be triggered again if the user re-selects the exact\n // same file(s). Ideally, `input.files` should be\n // manipulated directly but that property is readonly.\n this.$refs.input.value = ''\n }\n },\n },\n\n methods: {\n clearableCallback () {\n this.internalValue = this.isMultiple ? [] : null\n this.$refs.input.value = ''\n },\n genChips () {\n if (!this.isDirty) return []\n\n return this.text.map((text, index) => this.$createElement(VChip, {\n props: { small: this.smallChips },\n on: {\n 'click:close': () => {\n const internalValue = this.internalValue\n internalValue.splice(index, 1)\n this.internalValue = internalValue // Trigger the watcher\n },\n },\n }, [text]))\n },\n genControl () {\n const render = VTextField.options.methods.genControl.call(this)\n\n if (this.hideInput) {\n render.data!.style = mergeStyles(\n render.data!.style,\n { display: 'none' }\n )\n }\n\n return render\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n // We should not be setting value\n // programmatically on the input\n // when it is using type=\"file\"\n delete input.data!.domProps!.value\n\n // This solves an issue in Safari where\n // nothing happens when adding a file\n // do to the input event not firing\n // https://github.com/vuetifyjs/vuetify/issues/7941\n delete input.data!.on!.input\n input.data!.on!.change = this.onInput\n\n return [this.genSelections(), input]\n },\n genPrependSlot () {\n if (!this.prependIcon) return null\n\n const icon = this.genIcon('prepend', () => {\n this.$refs.input.click()\n })\n\n return this.genSlot('prepend', 'outer', [icon])\n },\n genSelectionText (): string[] {\n const length = this.text.length\n\n if (length < 2) return this.text\n if (this.showSize && !this.counter) return [this.computedCounterValue]\n return [this.$vuetify.lang.t(this.counterString, length)]\n },\n genSelections () {\n const children = []\n\n if (this.isDirty && this.$scopedSlots.selection) {\n this.internalArrayValue.forEach((file: File, index: number) => {\n if (!this.$scopedSlots.selection) return\n\n children.push(\n this.$scopedSlots.selection({\n text: this.text[index],\n file,\n index,\n })\n )\n })\n } else {\n children.push(this.hasChips && this.isDirty ? this.genChips() : this.genSelectionText())\n }\n\n return this.$createElement('div', {\n staticClass: 'v-file-input__text',\n class: {\n 'v-file-input__text--placeholder': this.placeholder && !this.isDirty,\n 'v-file-input__text--chips': this.hasChips && !this.$scopedSlots.selection,\n },\n }, children)\n },\n genTextFieldSlot () {\n const node = VTextField.options.methods.genTextFieldSlot.call(this)\n\n node.data!.on = {\n ...(node.data!.on || {}),\n click: () => this.$refs.input.click(),\n }\n\n return node\n },\n onInput (e: Event) {\n const files = [...(e.target as HTMLInputElement).files || []]\n\n this.internalValue = this.isMultiple ? files : files[0]\n\n // Set initialValue here otherwise isFocused\n // watcher in VTextField will emit a change\n // event whenever the component is blurred\n this.initialValue = this.internalValue\n },\n onKeyDown (e: KeyboardEvent) {\n this.$emit('keydown', e)\n },\n truncateText (str: string) {\n if (str.length < Number(this.truncateLength)) return str\n const charsKeepOneSide = Math.floor((Number(this.truncateLength) - 1) / 2)\n return `${str.slice(0, charsKeepOneSide)}…${str.slice(str.length - charsKeepOneSide)}`\n },\n },\n})\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\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.7.0 (2021-02-10)\n */\n(function () {\n 'use strict';\n\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var noop = function () {\n };\n var constant = function (value) {\n return function () {\n return value;\n };\n };\n var not = function (f) {\n return function (t) {\n return !f(t);\n };\n };\n var never = constant(false);\n var always = constant(true);\n\n var none = function () {\n return NONE;\n };\n var NONE = function () {\n var eq = function (o) {\n return o.isNone();\n };\n var call = function (thunk) {\n return thunk();\n };\n var id = function (n) {\n return n;\n };\n var me = {\n fold: function (n, _s) {\n return n();\n },\n is: never,\n isSome: never,\n isNone: always,\n getOr: id,\n getOrThunk: call,\n getOrDie: function (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: none,\n equals: eq,\n equals_: eq,\n toArray: function () {\n return [];\n },\n toString: constant('none()')\n };\n return me;\n }();\n var some = function (a) {\n var constant_a = constant(a);\n var self = function () {\n return me;\n };\n var bind = function (f) {\n return f(a);\n };\n var me = {\n fold: function (n, s) {\n return s(a);\n },\n is: function (v) {\n return a === v;\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 (f) {\n return some(f(a));\n },\n each: function (f) {\n f(a);\n },\n bind: bind,\n exists: bind,\n forall: bind,\n filter: function (f) {\n return f(a) ? me : NONE;\n },\n toArray: function () {\n return [a];\n },\n toString: function () {\n return 'some(' + a + ')';\n },\n equals: function (o) {\n return o.is(a);\n },\n equals_: function (o, elementEq) {\n return o.fold(never, function (b) {\n return elementEq(a, b);\n });\n }\n };\n return me;\n };\n var from = function (value) {\n return value === null || value === undefined ? NONE : some(value);\n };\n var Optional = {\n some: some,\n none: none,\n from: from\n };\n\n var typeOf = function (x) {\n var t = typeof x;\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 var isType = function (type) {\n return function (value) {\n return typeOf(value) === type;\n };\n };\n var isSimpleType = function (type) {\n return function (value) {\n return typeof value === type;\n };\n };\n var isString = isType('string');\n var isArray = isType('array');\n var isBoolean = isSimpleType('boolean');\n var isFunction = isSimpleType('function');\n var isNumber = isSimpleType('number');\n\n var nativeSlice = Array.prototype.slice;\n var nativePush = Array.prototype.push;\n var map = function (xs, f) {\n var len = xs.length;\n var r = new Array(len);\n for (var i = 0; i < len; i++) {\n var x = xs[i];\n r[i] = f(x, i);\n }\n return r;\n };\n var each = function (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 var filter = function (xs, pred) {\n var r = [];\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i)) {\n r.push(x);\n }\n }\n return r;\n };\n var groupBy = function (xs, f) {\n if (xs.length === 0) {\n return [];\n } else {\n var wasType = f(xs[0]);\n var r = [];\n var group = [];\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n var type = f(x);\n if (type !== wasType) {\n r.push(group);\n group = [];\n }\n wasType = type;\n group.push(x);\n }\n if (group.length !== 0) {\n r.push(group);\n }\n return r;\n }\n };\n var foldl = function (xs, f, acc) {\n each(xs, function (x) {\n acc = f(acc, x);\n });\n return acc;\n };\n var findUntil = function (xs, pred, until) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n if (pred(x, i)) {\n return Optional.some(x);\n } else if (until(x, i)) {\n break;\n }\n }\n return Optional.none();\n };\n var find = function (xs, pred) {\n return findUntil(xs, pred, never);\n };\n var flatten = function (xs) {\n var r = [];\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 nativePush.apply(r, xs[i]);\n }\n return r;\n };\n var bind = function (xs, f) {\n return flatten(map(xs, f));\n };\n var reverse = function (xs) {\n var r = nativeSlice.call(xs, 0);\n r.reverse();\n return r;\n };\n var get = function (xs, i) {\n return i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none();\n };\n var head = function (xs) {\n return get(xs, 0);\n };\n var last = function (xs) {\n return get(xs, xs.length - 1);\n };\n\n var __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n };\n function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++)\n s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n }\n\n var cached = function (f) {\n var called = false;\n var r;\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!called) {\n called = true;\n r = f.apply(null, args);\n }\n return r;\n };\n };\n\n var DeviceType = function (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 (regexes, s) {\n for (var i = 0; i < regexes.length; i++) {\n var x = regexes[i];\n if (x.test(s)) {\n return x;\n }\n }\n return undefined;\n };\n var find$1 = function (regexes, agent) {\n var r = firstMatch(regexes, agent);\n if (!r) {\n return {\n major: 0,\n minor: 0\n };\n }\n var group = function (i) {\n return Number(agent.replace(r, '$' + i));\n };\n return nu(group(1), group(2));\n };\n var detect = function (versionRegexes, agent) {\n var cleanedAgent = String(agent).toLowerCase();\n if (versionRegexes.length === 0) {\n return unknown();\n }\n return find$1(versionRegexes, cleanedAgent);\n };\n var unknown = function () {\n return nu(0, 0);\n };\n var nu = function (major, minor) {\n return {\n major: major,\n minor: minor\n };\n };\n var Version = {\n nu: nu,\n detect: detect,\n unknown: unknown\n };\n\n var detect$1 = function (candidates, userAgent) {\n var agent = String(userAgent).toLowerCase();\n return find(candidates, function (candidate) {\n return candidate.search(agent);\n });\n };\n var detectBrowser = function (browsers, userAgent) {\n return detect$1(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 var detectOs = function (oses, userAgent) {\n return detect$1(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 var UaString = {\n detectBrowser: detectBrowser,\n detectOs: detectOs\n };\n\n var contains = function (str, substr) {\n return str.indexOf(substr) !== -1;\n };\n\n var normalVersionRegex = /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/;\n var checkContains = function (target) {\n return function (uastring) {\n return contains(uastring, target);\n };\n };\n var browsers = [\n {\n name: 'Edge',\n versionRegexes: [/.*?edge\\/ ?([0-9]+)\\.([0-9]+)$/],\n search: function (uastring) {\n return contains(uastring, 'edge/') && contains(uastring, 'chrome') && contains(uastring, 'safari') && contains(uastring, 'applewebkit');\n }\n },\n {\n name: 'Chrome',\n versionRegexes: [\n /.*?chrome\\/([0-9]+)\\.([0-9]+).*/,\n normalVersionRegex\n ],\n search: function (uastring) {\n return contains(uastring, 'chrome') && !contains(uastring, 'chromeframe');\n }\n },\n {\n name: 'IE',\n versionRegexes: [\n /.*?msie\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*?rv:([0-9]+)\\.([0-9]+).*/\n ],\n search: function (uastring) {\n return contains(uastring, 'msie') || contains(uastring, 'trident');\n }\n },\n {\n name: 'Opera',\n versionRegexes: [\n normalVersionRegex,\n /.*?opera\\/([0-9]+)\\.([0-9]+).*/\n ],\n search: checkContains('opera')\n },\n {\n name: 'Firefox',\n versionRegexes: [/.*?firefox\\/\\ ?([0-9]+)\\.([0-9]+).*/],\n search: checkContains('firefox')\n },\n {\n name: 'Safari',\n versionRegexes: [\n normalVersionRegex,\n /.*?cpu os ([0-9]+)_([0-9]+).*/\n ],\n search: function (uastring) {\n return (contains(uastring, 'safari') || contains(uastring, 'mobile/')) && contains(uastring, 'applewebkit');\n }\n }\n ];\n var oses = [\n {\n name: 'Windows',\n search: checkContains('win'),\n versionRegexes: [/.*?windows\\ nt\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'iOS',\n search: function (uastring) {\n return contains(uastring, 'iphone') || contains(uastring, 'ipad');\n },\n versionRegexes: [\n /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*cpu os ([0-9]+)_([0-9]+).*/,\n /.*cpu iphone os ([0-9]+)_([0-9]+).*/\n ]\n },\n {\n name: 'Android',\n search: checkContains('android'),\n versionRegexes: [/.*?android\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'OSX',\n search: checkContains('mac os x'),\n versionRegexes: [/.*?mac\\ os\\ x\\ ?([0-9]+)_([0-9]+).*/]\n },\n {\n name: 'Linux',\n search: checkContains('linux'),\n versionRegexes: []\n },\n {\n name: 'Solaris',\n search: checkContains('sunos'),\n versionRegexes: []\n },\n {\n name: 'FreeBSD',\n search: checkContains('freebsd'),\n versionRegexes: []\n },\n {\n name: 'ChromeOS',\n search: checkContains('cros'),\n versionRegexes: [/.*?chrome\\/([0-9]+)\\.([0-9]+).*/]\n }\n ];\n var PlatformInfo = {\n browsers: constant(browsers),\n oses: constant(oses)\n };\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 var unknown$1 = function () {\n return nu$1({\n current: undefined,\n version: Version.unknown()\n });\n };\n var nu$1 = function (info) {\n var current = info.current;\n var version = info.version;\n var isBrowser = function (name) {\n return function () {\n return current === name;\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 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\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 var unknown$2 = function () {\n return nu$2({\n current: undefined,\n version: Version.unknown()\n });\n };\n var nu$2 = function (info) {\n var current = info.current;\n var version = info.version;\n var isOS = function (name) {\n return function () {\n return current === name;\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 var OperatingSystem = {\n unknown: unknown$2,\n nu: nu$2,\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$2 = function (userAgent, mediaMatch) {\n var browsers = PlatformInfo.browsers();\n var oses = PlatformInfo.oses();\n var browser = UaString.detectBrowser(browsers, userAgent).fold(Browser.unknown, Browser.nu);\n var os = UaString.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 var PlatformDetection = { detect: detect$2 };\n\n var mediaMatch = function (query) {\n return window.matchMedia(query).matches;\n };\n var platform = cached(function () {\n return PlatformDetection.detect(navigator.userAgent, mediaMatch);\n });\n var detect$3 = function () {\n return platform();\n };\n\n var compareDocumentPosition = function (a, b, match) {\n return (a.compareDocumentPosition(b) & match) !== 0;\n };\n var documentPositionContainedBy = function (a, b) {\n return compareDocumentPosition(a, b, Node.DOCUMENT_POSITION_CONTAINED_BY);\n };\n\n var ELEMENT = 1;\n\n var fromHtml = function (html, scope) {\n var doc = scope || document;\n var div = doc.createElement('div');\n div.innerHTML = html;\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 return fromDom(div.childNodes[0]);\n };\n var fromTag = function (tag, scope) {\n var doc = scope || document;\n var node = doc.createElement(tag);\n return fromDom(node);\n };\n var fromText = function (text, scope) {\n var doc = scope || document;\n var node = doc.createTextNode(text);\n return fromDom(node);\n };\n var fromDom = function (node) {\n if (node === null || node === undefined) {\n throw new Error('Node cannot be null or undefined');\n }\n return { dom: node };\n };\n var fromPoint = function (docElm, x, y) {\n return Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom);\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 (element, selector) {\n var dom = element.dom;\n if (dom.nodeType !== ELEMENT) {\n return false;\n } else {\n var elem = dom;\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 (e1, e2) {\n return e1.dom === e2.dom;\n };\n var regularContains = function (e1, e2) {\n var d1 = e1.dom;\n var d2 = e2.dom;\n return d1 === d2 ? false : d1.contains(d2);\n };\n var ieContains = function (e1, e2) {\n return documentPositionContainedBy(e1.dom, e2.dom);\n };\n var contains$1 = function (e1, e2) {\n return detect$3().browser.isIE() ? ieContains(e1, e2) : regularContains(e1, e2);\n };\n var is$1 = is;\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.dom.RangeUtils');\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.dom.TreeWalker');\n\n var global$3 = tinymce.util.Tools.resolve('tinymce.util.VK');\n\n var keys = Object.keys;\n var each$1 = function (obj, f) {\n var props = keys(obj);\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 var objAcc = function (r) {\n return function (x, i) {\n r[i] = x;\n };\n };\n var internalFilter = function (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 var filter$1 = function (obj, pred) {\n var t = {};\n internalFilter(obj, pred, objAcc(t), noop);\n return t;\n };\n\n var Global = typeof window !== 'undefined' ? window : Function('return this;')();\n\n var name = function (element) {\n var r = element.dom.nodeName;\n return r.toLowerCase();\n };\n var type = function (element) {\n return element.dom.nodeType;\n };\n var isType$1 = function (t) {\n return function (element) {\n return type(element) === t;\n };\n };\n var isElement = isType$1(ELEMENT);\n\n var rawSet = function (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 var setAll = function (element, attrs) {\n var dom = element.dom;\n each$1(attrs, function (v, k) {\n rawSet(dom, k, v);\n });\n };\n var clone = function (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 (element) {\n return Optional.from(element.dom.parentNode).map(SugarElement.fromDom);\n };\n var children = function (element) {\n return map(element.dom.childNodes, SugarElement.fromDom);\n };\n var child = function (element, index) {\n var cs = element.dom.childNodes;\n return Optional.from(cs[index]).map(SugarElement.fromDom);\n };\n var firstChild = function (element) {\n return child(element, 0);\n };\n var lastChild = function (element) {\n return child(element, element.dom.childNodes.length - 1);\n };\n\n var before = function (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 var append = function (parent, element) {\n parent.dom.appendChild(element.dom);\n };\n\n var before$1 = function (marker, elements) {\n each(elements, function (x) {\n before(marker, x);\n });\n };\n var append$1 = function (parent, elements) {\n each(elements, function (x) {\n append(parent, x);\n });\n };\n\n var remove = function (element) {\n var dom = element.dom;\n if (dom.parentNode !== null) {\n dom.parentNode.removeChild(dom);\n }\n };\n\n var clone$1 = function (original, isDeep) {\n return SugarElement.fromDom(original.dom.cloneNode(isDeep));\n };\n var deep = function (original) {\n return clone$1(original, true);\n };\n var shallowAs = function (original, tag) {\n var nu = SugarElement.fromTag(tag);\n var attributes = clone(original);\n setAll(nu, attributes);\n return nu;\n };\n var mutate = function (original, tag) {\n var nu = shallowAs(original, tag);\n before(original, nu);\n var children$1 = children(original);\n append$1(nu, children$1);\n remove(original);\n return nu;\n };\n\n var global$4 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');\n\n var global$5 = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n var matchNodeName = function (name) {\n return function (node) {\n return node && node.nodeName.toLowerCase() === name;\n };\n };\n var matchNodeNames = function (regex) {\n return function (node) {\n return node && regex.test(node.nodeName);\n };\n };\n var isTextNode = function (node) {\n return node && node.nodeType === 3;\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 var isFirstChild = function (node) {\n return node.parentNode.firstChild === node;\n };\n var isTextBlock = function (editor, node) {\n return node && !!editor.schema.getTextBlockElements()[node.nodeName];\n };\n var isBlock = function (node, blockElements) {\n return node && node.nodeName in blockElements;\n };\n var isBogusBr = function (dom, node) {\n if (!isBr(node)) {\n return false;\n }\n return dom.isBlock(node.nextSibling) && !isBr(node.previousSibling);\n };\n var isEmpty = function (dom, elm, keepBookmarks) {\n var empty = dom.isEmpty(elm);\n if (keepBookmarks && dom.select('span[data-mce-type=bookmark]', elm).length > 0) {\n return false;\n }\n return empty;\n };\n var isChildOfBody = function (dom, elm) {\n return dom.isChildOf(elm, dom.getRoot());\n };\n\n var shouldIndentOnTab = function (editor) {\n return editor.getParam('lists_indent_on_tab', true);\n };\n var getForcedRootBlock = function (editor) {\n var block = editor.getParam('forced_root_block', 'p');\n if (block === false) {\n return '';\n } else if (block === true) {\n return 'p';\n } else {\n return block;\n }\n };\n var getForcedRootBlockAttrs = function (editor) {\n return editor.getParam('forced_root_block_attrs', {});\n };\n\n var createTextBlock = function (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 if (blockName) {\n textBlock = dom.create(blockName);\n if (textBlock.tagName === blockName.toUpperCase()) {\n dom.setAttribs(textBlock, getForcedRootBlockAttrs(editor));\n }\n if (!isBlock(contentNode.firstChild, blockElements)) {\n fragment.appendChild(textBlock);\n }\n }\n if (contentNode) {\n while (node = contentNode.firstChild) {\n var nodeName = node.nodeName;\n if (!hasContentNode && (nodeName !== 'SPAN' || node.getAttribute('data-mce-type') !== 'bookmark')) {\n hasContentNode = true;\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 textBlock.appendChild(node);\n } else {\n fragment.appendChild(node);\n }\n }\n }\n }\n if (!blockName) {\n fragment.appendChild(dom.create('br'));\n } else {\n if (!hasContentNode) {\n textBlock.appendChild(dom.create('br', { 'data-mce-bogus': '1' }));\n }\n }\n return fragment;\n };\n\n var DOM = global$4.DOM;\n var splitList = function (editor, ul, li) {\n var removeAndKeepBookmarks = function (targetNode) {\n global$5.each(bookmarks, function (node) {\n targetNode.parentNode.insertBefore(node, li.parentNode);\n });\n DOM.remove(targetNode);\n };\n var bookmarks = DOM.select('span[data-mce-type=\"bookmark\"]', ul);\n var newBlock = createTextBlock(editor, li);\n var tmpRng = DOM.createRng();\n tmpRng.setStartAfter(li);\n tmpRng.setEndAfter(ul);\n var fragment = tmpRng.extractContents();\n for (var node = fragment.firstChild; node; node = node.firstChild) {\n if (node.nodeName === 'LI' && editor.dom.isEmpty(node)) {\n DOM.remove(node);\n break;\n }\n }\n if (!editor.dom.isEmpty(fragment)) {\n DOM.insertAfter(fragment, ul);\n }\n DOM.insertAfter(newBlock, ul);\n if (isEmpty(editor.dom, li.parentNode)) {\n removeAndKeepBookmarks(li.parentNode);\n }\n DOM.remove(li);\n if (isEmpty(editor.dom, ul)) {\n DOM.remove(ul);\n }\n };\n\n var outdentDlItem = function (editor, item) {\n if (is$1(item, 'dd')) {\n mutate(item, 'dt');\n } else if (is$1(item, 'dt')) {\n parent(item).each(function (dl) {\n return splitList(editor, dl.dom, item.dom);\n });\n }\n };\n var indentDlItem = function (item) {\n if (is$1(item, 'dt')) {\n mutate(item, 'dd');\n }\n };\n var dlIndentation = function (editor, indentation, dlItems) {\n if (indentation === 'Indent') {\n each(dlItems, indentDlItem);\n } else {\n each(dlItems, function (item) {\n return outdentDlItem(editor, item);\n });\n }\n };\n\n var getNormalizedPoint = function (container, offset) {\n if (isTextNode(container)) {\n return {\n container: container,\n offset: offset\n };\n }\n var node = global$1.getNode(container, offset);\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 return {\n container: container,\n offset: offset\n };\n };\n var normalizeRange = function (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$6 = tinymce.util.Tools.resolve('tinymce.dom.DomQuery');\n\n var getParentList = function (editor, node) {\n var selectionStart = node || editor.selection.getStart(true);\n return editor.dom.getParent(selectionStart, 'OL,UL,DL', getClosestListRootElm(editor, selectionStart));\n };\n var isParentListSelected = function (parentList, selectedBlocks) {\n return parentList && selectedBlocks.length === 1 && selectedBlocks[0] === parentList;\n };\n var findSubLists = function (parentList) {\n return global$5.grep(parentList.querySelectorAll('ol,ul,dl'), function (elm) {\n return isListNode(elm);\n });\n };\n var getSelectedSubLists = function (editor) {\n var parentList = getParentList(editor);\n var selectedBlocks = editor.selection.getSelectedBlocks();\n if (isParentListSelected(parentList, selectedBlocks)) {\n return findSubLists(parentList);\n } else {\n return global$5.grep(selectedBlocks, function (elm) {\n return isListNode(elm) && parentList !== elm;\n });\n }\n };\n var findParentListItemsNodes = function (editor, elms) {\n var listItemsElms = global$5.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$6.unique(listItemsElms);\n };\n var getSelectedListItems = function (editor) {\n var selectedBlocks = editor.selection.getSelectedBlocks();\n return global$5.grep(findParentListItemsNodes(editor, selectedBlocks), function (block) {\n return isListItemNode(block);\n });\n };\n var getSelectedDlItems = function (editor) {\n return filter(getSelectedListItems(editor), isDlItemNode);\n };\n var getClosestListRootElm = function (editor, elm) {\n var parentTableCell = editor.dom.getParents(elm, 'TD,TH');\n var root = parentTableCell.length > 0 ? parentTableCell[0] : editor.getBody();\n return root;\n };\n var findLastParentListNode = function (editor, elm) {\n var parentLists = editor.dom.getParents(elm, 'ol,ul', getClosestListRootElm(editor, elm));\n return last(parentLists);\n };\n var getSelectedLists = function (editor) {\n var firstList = findLastParentListNode(editor, editor.selection.getStart());\n var subsequentLists = filter(editor.selection.getSelectedBlocks(), isOlUlNode);\n return firstList.toArray().concat(subsequentLists);\n };\n var getSelectedListRoots = function (editor) {\n var selectedLists = getSelectedLists(editor);\n return getUniqueListRoots(editor, selectedLists);\n };\n var getUniqueListRoots = function (editor, lists) {\n var listRoots = map(lists, function (list) {\n return findLastParentListNode(editor, list).getOr(list);\n });\n return global$6.unique(listRoots);\n };\n\n var lift2 = function (oa, ob, f) {\n return oa.isSome() && ob.isSome() ? Optional.some(f(oa.getOrDie(), ob.getOrDie())) : Optional.none();\n };\n\n var fromElements = function (elements, scope) {\n var doc = scope || document;\n var fragment = doc.createDocumentFragment();\n each(elements, function (element) {\n fragment.appendChild(element.dom);\n });\n return SugarElement.fromDom(fragment);\n };\n\n var fireListEvent = function (editor, action, element) {\n return editor.fire('ListMutation', {\n action: action,\n element: element\n });\n };\n\n var isSupported = function (dom) {\n return dom.style !== undefined && isFunction(dom.style.getPropertyValue);\n };\n\n var internalSet = function (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 if (isSupported(dom)) {\n dom.style.setProperty(property, value);\n }\n };\n var set = function (element, property, value) {\n var dom = element.dom;\n internalSet(dom, property, value);\n };\n\n var joinSegment = function (parent, child) {\n append(parent.item, child.list);\n };\n var joinSegments = function (segments) {\n for (var i = 1; i < segments.length; i++) {\n joinSegment(segments[i - 1], segments[i]);\n }\n };\n var appendSegments = function (head$1, tail) {\n lift2(last(head$1), head(tail), joinSegment);\n };\n var createSegment = function (scope, listType) {\n var segment = {\n list: SugarElement.fromTag(listType, scope),\n item: SugarElement.fromTag('li', scope)\n };\n append(segment.list, segment.item);\n return segment;\n };\n var createSegments = function (scope, entry, size) {\n var segments = [];\n for (var i = 0; i < size; i++) {\n segments.push(createSegment(scope, entry.listType));\n }\n return segments;\n };\n var populateSegments = function (segments, entry) {\n for (var i = 0; i < segments.length - 1; i++) {\n set(segments[i].item, 'list-style-type', 'none');\n }\n last(segments).each(function (segment) {\n setAll(segment.list, entry.listAttributes);\n setAll(segment.item, entry.itemAttributes);\n append$1(segment.item, entry.content);\n });\n };\n var normalizeSegment = function (segment, entry) {\n if (name(segment.list) !== entry.listType) {\n segment.list = mutate(segment.list, entry.listType);\n }\n setAll(segment.list, entry.listAttributes);\n };\n var createItem = function (scope, attr, content) {\n var item = SugarElement.fromTag('li', scope);\n setAll(item, attr);\n append$1(item, content);\n return item;\n };\n var appendItem = function (segment, item) {\n append(segment.list, item);\n segment.item = item;\n };\n var writeShallow = function (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 var writeDeep = function (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 var composeList = function (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 (el) {\n return is$1(el, 'OL,UL');\n };\n var hasFirstChildList = function (el) {\n return firstChild(el).map(isList).getOr(false);\n };\n var hasLastChildList = function (el) {\n return lastChild(el).map(isList).getOr(false);\n };\n\n var isIndented = function (entry) {\n return entry.depth > 0;\n };\n var isSelected = function (entry) {\n return entry.isSelected;\n };\n var cloneItemContent = function (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 var createEntry = function (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(li),\n listAttributes: clone(list),\n listType: name(list)\n };\n });\n };\n\n var indentEntry = function (indentation, entry) {\n switch (indentation) {\n case 'Indent':\n entry.depth++;\n break;\n case 'Outdent':\n entry.depth--;\n break;\n case 'Flatten':\n entry.depth = 0;\n }\n entry.dirty = true;\n };\n\n var cloneListProperties = function (target, source) {\n target.listType = source.listType;\n target.listAttributes = __assign({}, source.listAttributes);\n };\n var cleanListProperties = function (entry) {\n entry.listAttributes = filter$1(entry.listAttributes, function (_value, key) {\n return key !== 'start';\n });\n };\n var closestSiblingEntry = function (entries, start) {\n var depth = entries[start].depth;\n var matches = function (entry) {\n return entry.depth === depth && !entry.dirty;\n };\n var until = function (entry) {\n return entry.depth < depth;\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 var normalizeEntries = function (entries) {\n each(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 (initial) {\n var value = initial;\n var get = function () {\n return value;\n };\n var set = function (v) {\n value = v;\n };\n return {\n get: get,\n set: set\n };\n };\n\n var parseItem = function (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 var parseList = function (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 var parseLists = function (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 (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 var indentedComposer = function (editor, entries) {\n var normalizedEntries = normalizeEntries(entries);\n return composeList(editor.contentDocument, normalizedEntries).toArray();\n };\n var composeEntries = function (editor, entries) {\n return bind(groupBy(entries, isIndented), function (entries) {\n var groupIsIndented = head(entries).map(isIndented).getOr(false);\n return groupIsIndented ? indentedComposer(editor, entries) : outdentedComposer(editor, entries);\n });\n };\n var indentSelectedEntries = function (entries, indentation) {\n each(filter(entries, isSelected), function (entry) {\n return indentEntry(indentation, entry);\n });\n };\n var getItemSelection = function (editor) {\n var selectedListItems = map(getSelectedListItems(editor), SugarElement.fromDom);\n return lift2(find(selectedListItems, not(hasFirstChildList)), find(reverse(selectedListItems), not(hasFirstChildList)), function (start, end) {\n return {\n start: start,\n end: end\n };\n });\n };\n var listIndentation = function (editor, lists, indentation) {\n var entrySets = parseLists(lists, getItemSelection(editor));\n each(entrySets, function (entrySet) {\n indentSelectedEntries(entrySet.entries, indentation);\n var composedLists = composeEntries(editor, entrySet.entries);\n each(composedLists, function (composedList) {\n fireListEvent(editor, indentation === 'Indent' ? 'IndentList' : 'OutdentList', composedList.dom);\n });\n before$1(entrySet.sourceList, composedLists);\n remove(entrySet.sourceList);\n });\n };\n\n var selectionIndentation = function (editor, indentation) {\n var lists = map(getSelectedListRoots(editor), SugarElement.fromDom);\n var dlItems = map(getSelectedDlItems(editor), SugarElement.fromDom);\n var isHandled = false;\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 return isHandled;\n };\n var indentListSelection = function (editor) {\n return selectionIndentation(editor, 'Indent');\n };\n var outdentListSelection = function (editor) {\n return selectionIndentation(editor, 'Outdent');\n };\n var flattenListSelection = function (editor) {\n return selectionIndentation(editor, 'Flatten');\n };\n\n var global$7 = tinymce.util.Tools.resolve('tinymce.dom.BookmarkManager');\n\n var DOM$1 = global$4.DOM;\n var createBookmark = function (rng) {\n var bookmark = {};\n var setupEndPoint = function (start) {\n var offsetNode, container, offset;\n container = rng[start ? 'startContainer' : 'endContainer'];\n offset = rng[start ? 'startOffset' : 'endOffset'];\n if (container.nodeType === 1) {\n offsetNode = DOM$1.create('span', { 'data-mce-type': 'bookmark' });\n if (container.hasChildNodes()) {\n offset = Math.min(offset, container.childNodes.length - 1);\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 container = offsetNode;\n offset = 0;\n }\n bookmark[start ? 'startContainer' : 'endContainer'] = container;\n bookmark[start ? 'startOffset' : 'endOffset'] = offset;\n };\n setupEndPoint(true);\n if (!rng.collapsed) {\n setupEndPoint();\n }\n return bookmark;\n };\n var resolveBookmark = function (bookmark) {\n var restoreEndPoint = function (start) {\n var container, offset, node;\n var nodeIndex = function (container) {\n var node = container.parentNode.firstChild, idx = 0;\n while (node) {\n if (node === container) {\n return idx;\n }\n if (node.nodeType !== 1 || node.getAttribute('data-mce-type') !== 'bookmark') {\n idx++;\n }\n node = node.nextSibling;\n }\n return -1;\n };\n container = node = bookmark[start ? 'startContainer' : 'endContainer'];\n offset = bookmark[start ? 'startOffset' : 'endOffset'];\n if (!container) {\n return;\n }\n if (container.nodeType === 1) {\n offset = nodeIndex(container);\n container = container.parentNode;\n DOM$1.remove(node);\n if (!container.hasChildNodes() && DOM$1.isBlock(container)) {\n container.appendChild(DOM$1.create('br'));\n }\n }\n bookmark[start ? 'startContainer' : 'endContainer'] = container;\n bookmark[start ? 'startOffset' : 'endOffset'] = offset;\n };\n restoreEndPoint(true);\n restoreEndPoint();\n var rng = DOM$1.createRng();\n rng.setStart(bookmark.startContainer, bookmark.startOffset);\n if (bookmark.endContainer) {\n rng.setEnd(bookmark.endContainer, bookmark.endOffset);\n }\n return normalizeRange(rng);\n };\n\n var listToggleActionFromListName = function (listName) {\n switch (listName) {\n case 'UL':\n return 'ToggleUlList';\n case 'OL':\n return 'ToggleOlList';\n case 'DL':\n return 'ToggleDLList';\n }\n };\n\n var isCustomList = function (list) {\n return /\\btox\\-/.test(list.className);\n };\n var listState = function (editor, listName, activate) {\n var nodeChangeHandler = function (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 var parents = editor.dom.getParents(editor.selection.getNode());\n nodeChangeHandler({ parents: parents });\n editor.on('NodeChange', nodeChangeHandler);\n return function () {\n return editor.off('NodeChange', nodeChangeHandler);\n };\n };\n\n var updateListStyle = function (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 var setAttribs = function (elm, attrs) {\n global$5.each(attrs, function (value, key) {\n elm.setAttribute(key, value);\n });\n };\n var updateListAttrs = function (dom, el, detail) {\n setAttribs(el, detail['list-attributes']);\n global$5.each(dom.select('li', el), function (li) {\n setAttribs(li, detail['list-item-attributes']);\n });\n };\n var updateListWithDetails = function (dom, el, detail) {\n updateListStyle(dom, el, detail);\n updateListAttrs(dom, el, detail);\n };\n var removeStyles = function (dom, element, styles) {\n global$5.each(styles, function (style) {\n var _a;\n return dom.setStyle(element, (_a = {}, _a[style] = '', _a));\n });\n };\n var getEndPointNode = function (editor, rng, start, root) {\n var container = rng[start ? 'startContainer' : 'endContainer'];\n var offset = rng[start ? 'startOffset' : 'endOffset'];\n if (container.nodeType === 1) {\n container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container;\n }\n if (!start && isBr(container.nextSibling)) {\n container = container.nextSibling;\n }\n while (container.parentNode !== root) {\n if (isTextBlock(editor, container)) {\n return container;\n }\n if (/^(TD|TH)$/.test(container.parentNode.nodeName)) {\n return container;\n }\n container = container.parentNode;\n }\n return container;\n };\n var getSelectedTextBlocks = function (editor, rng, root) {\n var textBlocks = [], 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 for (var node = startNode; node; node = node.nextSibling) {\n siblings.push(node);\n if (node === endNode) {\n break;\n }\n }\n global$5.each(siblings, function (node) {\n if (isTextBlock(editor, node)) {\n textBlocks.push(node);\n block = null;\n return;\n }\n if (dom.isBlock(node) || isBr(node)) {\n if (isBr(node)) {\n dom.remove(node);\n }\n block = null;\n return;\n }\n var nextSibling = node.nextSibling;\n if (global$7.isBookmarkNode(node)) {\n if (isListNode(nextSibling) || isTextBlock(editor, nextSibling) || !nextSibling && node.parentNode === root) {\n block = null;\n return;\n }\n }\n if (!block) {\n block = dom.create('p');\n node.parentNode.insertBefore(block, node);\n textBlocks.push(block);\n }\n block.appendChild(node);\n });\n return textBlocks;\n };\n var hasCompatibleStyle = function (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 var applyList = function (editor, listName, detail) {\n if (detail === void 0) {\n detail = {};\n }\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 if (dom.getContentEditable(editor.selection.getNode()) === 'false') {\n return;\n }\n listName = listName.toUpperCase();\n if (listName === 'DL') {\n listItemName = 'DT';\n }\n var bookmark = createBookmark(rng);\n var selectedTextBlocks = getSelectedTextBlocks(editor, rng, root);\n global$5.each(selectedTextBlocks, function (block) {\n var listBlock;\n var sibling = block.previousSibling;\n var parent = block.parentNode;\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 removeStyles(dom, block, [\n 'margin',\n 'margin-right',\n 'margin-bottom',\n 'margin-left',\n 'margin-top',\n 'padding',\n 'padding-right',\n 'padding-bottom',\n 'padding-left',\n 'padding-top'\n ]);\n updateListWithDetails(dom, listBlock, detail);\n mergeWithAdjacentLists(editor.dom, listBlock);\n }\n });\n editor.selection.setRng(resolveBookmark(bookmark));\n };\n var isValidLists = function (list1, list2) {\n return list1 && list2 && isListNode(list1) && list1.nodeName === list2.nodeName;\n };\n var hasSameListStyle = function (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 var hasSameClasses = function (elm1, elm2) {\n return elm1.className === elm2.className;\n };\n var shouldMerge = function (dom, list1, list2) {\n return isValidLists(list1, list2) && hasSameListStyle(dom, list1, list2) && hasSameClasses(list1, list2);\n };\n var mergeWithAdjacentLists = function (dom, listBlock) {\n var sibling, node;\n sibling = listBlock.nextSibling;\n if (shouldMerge(dom, listBlock, sibling)) {\n while (node = sibling.firstChild) {\n listBlock.appendChild(node);\n }\n dom.remove(sibling);\n }\n sibling = listBlock.previousSibling;\n if (shouldMerge(dom, listBlock, sibling)) {\n while (node = sibling.lastChild) {\n listBlock.insertBefore(node, listBlock.firstChild);\n }\n dom.remove(sibling);\n }\n };\n var updateList = function (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 var toggleMultipleLists = function (editor, parentList, lists, listName, detail) {\n var parentIsList = isListNode(parentList);\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(true));\n var allLists = parentIsList ? __spreadArrays([parentList], lists) : lists;\n global$5.each(allLists, function (elm) {\n updateList(editor, elm, listName, detail);\n });\n editor.selection.setRng(resolveBookmark(bookmark));\n }\n };\n var hasListStyleDetail = function (detail) {\n return 'list-style-type' in detail;\n };\n var toggleSingleList = function (editor, parentList, listName, detail) {\n if (parentList === editor.getBody()) {\n return;\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(true));\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 var toggleList = function (editor, listName, detail) {\n var parentList = getParentList(editor);\n var selectedSubLists = getSelectedSubLists(editor);\n detail = detail ? detail : {};\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$2 = global$4.DOM;\n var normalizeList = function (dom, ul) {\n var sibling;\n var parentNode = ul.parentNode;\n if (parentNode.nodeName === 'LI' && parentNode.firstChild === ul) {\n sibling = parentNode.previousSibling;\n if (sibling && sibling.nodeName === 'LI') {\n sibling.appendChild(ul);\n if (isEmpty(dom, parentNode)) {\n DOM$2.remove(parentNode);\n }\n } else {\n DOM$2.setStyle(parentNode, 'listStyleType', 'none');\n }\n }\n if (isListNode(parentNode)) {\n sibling = parentNode.previousSibling;\n if (sibling && sibling.nodeName === 'LI') {\n sibling.appendChild(ul);\n }\n }\n };\n var normalizeLists = function (dom, element) {\n global$5.each(global$5.grep(dom.select('ol,ul', element)), function (ul) {\n normalizeList(dom, ul);\n });\n };\n\n var findNextCaretContainer = function (editor, rng, isForward, root) {\n var node = rng.startContainer;\n var offset = rng.startOffset;\n if (isTextNode(node) && (isForward ? offset < node.data.length : offset > 0)) {\n return node;\n }\n var nonEmptyBlocks = editor.schema.getNonEmptyElements();\n if (node.nodeType === 1) {\n node = global$1.getNode(node, offset);\n }\n var walker = new global$2(node, root);\n if (isForward) {\n if (isBogusBr(editor.dom, node)) {\n walker.next();\n }\n }\n while (node = walker[isForward ? 'next' : 'prev2']()) {\n if (node.nodeName === 'LI' && !node.hasChildNodes()) {\n return node;\n }\n if (nonEmptyBlocks[node.nodeName]) {\n return node;\n }\n if (isTextNode(node) && node.data.length > 0) {\n return node;\n }\n }\n };\n var hasOnlyOneBlockChild = function (dom, elm) {\n var childNodes = elm.childNodes;\n return childNodes.length === 1 && !isListNode(childNodes[0]) && dom.isBlock(childNodes[0]);\n };\n var unwrapSingleBlockChild = function (dom, elm) {\n if (hasOnlyOneBlockChild(dom, elm)) {\n dom.remove(elm.firstChild, true);\n }\n };\n var moveChildren = function (dom, fromElm, toElm) {\n var node;\n var targetElm = hasOnlyOneBlockChild(dom, toElm) ? toElm.firstChild : toElm;\n unwrapSingleBlockChild(dom, fromElm);\n if (!isEmpty(dom, fromElm, true)) {\n while (node = fromElm.firstChild) {\n targetElm.appendChild(node);\n }\n }\n };\n var mergeLiElements = function (dom, fromElm, toElm) {\n var listNode;\n var ul = fromElm.parentNode;\n if (!isChildOfBody(dom, fromElm) || !isChildOfBody(dom, toElm)) {\n return;\n }\n if (isListNode(toElm.lastChild)) {\n listNode = toElm.lastChild;\n }\n if (ul === toElm.lastChild) {\n if (isBr(ul.previousSibling)) {\n dom.remove(ul.previousSibling);\n }\n }\n var node = toElm.lastChild;\n if (node && isBr(node) && fromElm.hasChildNodes()) {\n dom.remove(node);\n }\n if (isEmpty(dom, toElm, true)) {\n dom.$(toElm).empty();\n }\n moveChildren(dom, fromElm, toElm);\n if (listNode) {\n toElm.appendChild(listNode);\n }\n var contains = contains$1(SugarElement.fromDom(toElm), SugarElement.fromDom(fromElm));\n var nestedLists = contains ? dom.getParents(fromElm, isListNode, toElm) : [];\n dom.remove(fromElm);\n each(nestedLists, function (list) {\n if (isEmpty(dom, list) && list !== dom.getRoot()) {\n dom.remove(list);\n }\n });\n };\n var mergeIntoEmptyLi = function (editor, fromLi, toLi) {\n editor.dom.$(toLi).empty();\n mergeLiElements(editor.dom, fromLi, toLi);\n editor.selection.setCursorLocation(toLi, 0);\n };\n var mergeForward = function (editor, rng, fromLi, toLi) {\n var dom = editor.dom;\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 var mergeBackward = function (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 var backspaceDeleteFromListToListCaret = function (editor, isForward) {\n var dom = editor.dom, selection = editor.selection;\n var selectionStartElm = selection.getStart();\n var root = getClosestListRootElm(editor, selectionStartElm);\n var li = dom.getParent(selection.getStart(), 'LI', root);\n if (li) {\n var ul = li.parentNode;\n if (ul === editor.getBody() && isEmpty(dom, ul)) {\n return true;\n }\n var rng_1 = normalizeRange(selection.getRng());\n var otherLi_1 = dom.getParent(findNextCaretContainer(editor, rng_1, isForward, root), 'LI', root);\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 return false;\n };\n var removeBlock = function (dom, block, root) {\n var parentBlock = dom.getParent(block.parentNode, dom.isBlock, root);\n dom.remove(block);\n if (parentBlock && dom.isEmpty(parentBlock)) {\n dom.remove(parentBlock);\n }\n };\n var backspaceDeleteIntoListCaret = function (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 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 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 return false;\n };\n var backspaceDeleteCaret = function (editor, isForward) {\n return backspaceDeleteFromListToListCaret(editor, isForward) || backspaceDeleteIntoListCaret(editor, isForward);\n };\n var backspaceDeleteRange = function (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 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 return false;\n };\n var backspaceDelete = function (editor, isForward) {\n return editor.selection.isCollapsed() ? backspaceDeleteCaret(editor, isForward) : backspaceDeleteRange(editor);\n };\n var setup = function (editor) {\n editor.on('keydown', function (e) {\n if (e.keyCode === global$3.BACKSPACE) {\n if (backspaceDelete(editor, false)) {\n e.preventDefault();\n }\n } else if (e.keyCode === global$3.DELETE) {\n if (backspaceDelete(editor, true)) {\n e.preventDefault();\n }\n }\n });\n };\n\n var get$1 = function (editor) {\n return {\n backspaceDelete: function (isForward) {\n backspaceDelete(editor, isForward);\n }\n };\n };\n\n var open = function (editor) {\n var dom = editor.dom;\n var currentList = getParentList(editor);\n if (!isOlNode(currentList)) {\n return;\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: { start: dom.getAttrib(currentList, 'start') || '1' },\n buttons: [\n {\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n },\n {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }\n ],\n onSubmit: function (api) {\n var data = api.getData();\n editor.undoManager.transact(function () {\n dom.setAttrib(getParentList(editor), 'start', data.start === '1' ? '' : data.start);\n });\n api.close();\n }\n });\n };\n\n var queryListCommandState = function (editor, listName) {\n return function () {\n var parentList = editor.dom.getParent(editor.selection.getStart(), 'UL,OL,DL');\n return parentList && parentList.nodeName === listName;\n };\n };\n var register = function (editor) {\n editor.on('BeforeExecCommand', function (e) {\n var cmd = e.command.toLowerCase();\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 editor.addCommand('mceListProps', function () {\n open(editor);\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 (editor) {\n editor.on('keydown', function (e) {\n if (e.keyCode !== global$3.TAB || global$3.metaKeyPressed(e)) {\n return;\n }\n editor.undoManager.transact(function () {\n if (e.shiftKey ? outdentListSelection(editor) : indentListSelection(editor)) {\n e.preventDefault();\n }\n });\n });\n };\n var setup$1 = function (editor) {\n if (shouldIndentOnTab(editor)) {\n setupTabKey(editor);\n }\n setup(editor);\n };\n\n var register$1 = function (editor) {\n var exec = function (command) {\n return function () {\n return editor.execCommand(command);\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 (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 (api) {\n return listState(editor, 'UL', api.setActive);\n }\n });\n }\n };\n\n var register$2 = function (editor) {\n var listProperties = {\n text: 'List properties...',\n icon: 'ordered-list',\n onAction: function () {\n return open(editor);\n },\n onSetup: function (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 (node) {\n var parentList = getParentList(editor, node);\n return isOlNode(parentList) ? ['listprops'] : [];\n }\n });\n };\n\n function Plugin () {\n global.add('lists', function (editor) {\n if (editor.hasPlugin('rtc', true) === false) {\n setup$1(editor);\n register(editor);\n }\n register$1(editor);\n register$2(editor);\n return get$1(editor);\n });\n }\n\n Plugin();\n\n}());\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","import VSubheader from './VSubheader'\n\nexport { VSubheader }\nexport default VSubheader\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~String(requireObjectCoercible(this))\n .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduceRight = require('../internals/array-reduce').right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRicht` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n return $reduceRight(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import VTextField from './VTextField'\n\nexport { VTextField }\nexport default VTextField\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n 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}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar speciesConstructor = require('../internals/species-constructor');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $slice = [].slice;\n\nvar FORCED = fails(function () {\n /* global Int8Array -- safe */\n new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n var list = $slice.call(aTypedArray(this), start, end);\n var C = speciesConstructor(this, this.constructor);\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n}, FORCED);\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","var anObject = require('../internals/an-object');\n\nmodule.exports = function (iterator) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) {\n return anObject(returnMethod.call(iterator)).value;\n }\n};\n","// Components\nimport VToolbar from './VToolbar'\n\n// Utilities\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VToolbarTitle = createSimpleFunctional('v-toolbar__title')\nconst VToolbarItems = createSimpleFunctional('v-toolbar__items')\n\nexport {\n VToolbar,\n VToolbarItems,\n VToolbarTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VToolbar,\n VToolbarItems,\n VToolbarTitle,\n },\n}\n","var $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\n// `Math.sign` method\n// https://tc39.es/ecma262/#sec-math.sign\n$({ target: 'Math', stat: true }, {\n sign: sign\n});\n","/*!\n * Vue.js v2.6.12\n * (c) 2014-2020 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n return (\n isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function'\n )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch'\n];\n\n/* */\n\n\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /*@__PURE__*/(function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return ''\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.target) {\n Dep.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (target) {\n targetStack.push(target);\n Dep.target = target;\n}\n\nfunction popTarget () {\n targetStack.pop();\n Dep.target = targetStack[targetStack.length - 1];\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(),\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n if (hasProto) {\n protoAugment(value, arrayMethods);\n } else {\n copyAugment(value, arrayMethods, arrayKeys);\n }\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) && arguments.length === 2) {\n val = obj[key];\n }\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n // #7981: for accessor properties without setter\n if (getter && !setter) { return }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n\n var keys = hasSymbol\n ? Reflect.ownKeys(from)\n : Object.keys(from);\n\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n // in case the object is already observed...\n if (key === '__ob__') { continue }\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (\n toVal !== fromVal &&\n isPlainObject(toVal) &&\n isPlainObject(fromVal)\n ) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n var res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res\n ? dedupeHooks(res)\n : res\n}\n\nfunction dedupeHooks (hooks) {\n var res = [];\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'should conform to valid custom element name in html5 specification.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def$$1 = dirs[key];\n if (typeof def$$1 === 'function') {\n dirs[key] = { bind: def$$1, update: def$$1 };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n\n // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\n\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false)\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n\n if (!valid) {\n warn(\n getInvalidTypeMessage(name, value, expectedTypes),\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n var expectedValue = styleValue(value, expectedType);\n var receivedValue = styleValue(value, receivedType);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n !isBoolean(expectedType, receivedType)) {\n message += \" with value \" + expectedValue;\n }\n message += \", got \" + receivedType + \" \";\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += \"with value \" + receivedValue + \".\";\n }\n return message\n}\n\nfunction styleValue (value, type) {\n if (type === 'String') {\n return (\"\\\"\" + value + \"\\\"\")\n } else if (type === 'Number') {\n return (\"\" + (Number(value)))\n } else {\n return (\"\" + value)\n }\n}\n\nfunction isExplicable (value) {\n var explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n try {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n } finally {\n popTarget();\n }\n}\n\nfunction invokeWithErrorHandling (\n handler,\n context,\n args,\n vm,\n info\n) {\n var res;\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n // issue #9511\n // avoid catch triggering multiple times when nested calls\n res._handled = true;\n }\n } catch (e) {\n handleError(e, vm, info);\n }\n return res\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n\nvar isUsingMicroTask = false;\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n timerFunc = function () {\n p.then(flushCallbacks);\n // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n isUsingMicroTask = true;\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n isUsingMicroTask = true;\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Technically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var warnReservedPrefix = function (target, key) {\n warn(\n \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals. ' +\n 'See: https://vuejs.org/v2/api/#data',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) ||\n (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns, vm) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n }\n } else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n createOnceHandler,\n vm\n) {\n var name, def$$1, cur, old, event;\n for (name in on) {\n def$$1 = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n\n function wrappedHook () {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove(invoker.fns, wrappedHook);\n }\n\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n } else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n } else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\n/* */\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g.