@instincthub/react-ui 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -3
- package/dist/_virtual/_commonjsHelpers.js +1 -1
- package/dist/_virtual/_rollupPluginBabelHelpers.js +1 -1
- package/dist/_virtual/index.js +1 -1
- package/dist/_virtual/index2.js +1 -1
- package/dist/_virtual/lodash.js +1 -1
- package/dist/_virtual/react-is.development.js +1 -1
- package/dist/_virtual/react-is.production.min.js +1 -1
- package/dist/node_modules/@tiptap/core/dist/index.js +1 -1
- package/dist/node_modules/@tiptap/core/dist/index.js.map +1 -1
- package/dist/node_modules/@tiptap/extension-blockquote/dist/index.js +1 -1
- package/dist/node_modules/@tiptap/extension-blockquote/dist/index.js.map +1 -1
- package/dist/node_modules/@tiptap/extension-bold/dist/index.js +1 -1
- package/dist/node_modules/@tiptap/extension-bold/dist/index.js.map +1 -1
- package/dist/node_modules/@tiptap/extension-bullet-list/dist/index.js +1 -1
- package/dist/node_modules/@tiptap/extension-bullet-list/dist/index.js.map +1 -1
- package/dist/node_modules/@tiptap/extension-character-count/dist/index.js +1 -1
- package/dist/node_modules/@tiptap/extension-character-count/dist/index.js.map +1 -1
- package/dist/node_modules/@tiptap/extension-code/dist/index.js +1 -1
- package/dist/node_modules/@tiptap/extension-code/dist/index.js.map +1 -1
- package/dist/node_modules/@tiptap/extension-code-block/dist/index.js +1 -1
- package/dist/node_modules/@tiptap/extension-code-block/dist/index.js.map +1 -1
- package/dist/node_modules/@tiptap/extension-document/dist/index.js +1 -1
- package/dist/node_modules/@tiptap/extension-document/dist/index.js.map +1 -1
- package/dist/node_modules/@tiptap/extension-dropcursor/dist/index.js +1 -1
- package/dist/node_modules/@tiptap/extension-dropcursor/dist/index.js.map +1 -1
- package/dist/node_modules/@tiptap/extension-gapcursor/dist/index.js +1 -1
- package/dist/node_modules/@tiptap/extension-gapcursor/dist/index.js.map +1 -1
- package/dist/node_modules/@tiptap/extension-hard-break/dist/index.js +1 -1
- package/dist/node_modules/@tiptap/extension-hard-break/dist/index.js.map +1 -1
- package/dist/node_modules/@tiptap/extension-heading/dist/index.js +1 -1
- package/dist/node_modules/@tiptap/extension-heading/dist/index.js.map +1 -1
- package/dist/node_modules/@tiptap/extension-highlight/dist/index.js +1 -1
- package/dist/node_modules/@tiptap/extension-highlight/dist/index.js.map +1 -1
- package/dist/node_modules/@tiptap/extension-history/dist/index.js +1 -1
- package/dist/node_modules/@tiptap/extension-history/dist/index.js.map +1 -1
- package/dist/node_modules/@tiptap/extension-horizontal-rule/dist/index.js +1 -1
- package/dist/node_modules/@tiptap/extension-horizontal-rule/dist/index.js.map +1 -1
- package/dist/node_modules/@tiptap/extension-image/dist/index.js +1 -1
- package/dist/node_modules/@tiptap/extension-image/dist/index.js.map +1 -1
- package/dist/node_modules/@tiptap/extension-italic/dist/index.js +1 -1
- package/dist/node_modules/@tiptap/extension-italic/dist/index.js.map +1 -1
- package/dist/node_modules/@tiptap/extension-link/dist/index.js +1 -1
- package/dist/node_modules/@tiptap/extension-link/dist/index.js.map +1 -1
- package/dist/node_modules/@tiptap/extension-list-item/dist/index.js +1 -1
- package/dist/node_modules/@tiptap/extension-list-item/dist/index.js.map +1 -1
- package/dist/node_modules/@tiptap/extension-ordered-list/dist/index.js +1 -1
- package/dist/node_modules/@tiptap/extension-ordered-list/dist/index.js.map +1 -1
- package/dist/node_modules/@tiptap/extension-paragraph/dist/index.js +1 -1
- package/dist/node_modules/@tiptap/extension-paragraph/dist/index.js.map +1 -1
- package/dist/node_modules/@tiptap/extension-placeholder/dist/index.js +1 -1
- package/dist/node_modules/@tiptap/extension-placeholder/dist/index.js.map +1 -1
- package/dist/node_modules/@tiptap/extension-strike/dist/index.js +1 -1
- package/dist/node_modules/@tiptap/extension-strike/dist/index.js.map +1 -1
- package/dist/node_modules/@tiptap/extension-table/dist/index.js +1 -1
- package/dist/node_modules/@tiptap/extension-table/dist/index.js.map +1 -1
- package/dist/node_modules/@tiptap/extension-table-cell/dist/index.js +1 -1
- package/dist/node_modules/@tiptap/extension-table-cell/dist/index.js.map +1 -1
- package/dist/node_modules/@tiptap/extension-table-header/dist/index.js +1 -1
- package/dist/node_modules/@tiptap/extension-table-header/dist/index.js.map +1 -1
- package/dist/node_modules/@tiptap/extension-table-row/dist/index.js +1 -1
- package/dist/node_modules/@tiptap/extension-table-row/dist/index.js.map +1 -1
- package/dist/node_modules/@tiptap/extension-task-item/dist/index.js +1 -1
- package/dist/node_modules/@tiptap/extension-task-item/dist/index.js.map +1 -1
- package/dist/node_modules/@tiptap/extension-task-list/dist/index.js +1 -1
- package/dist/node_modules/@tiptap/extension-task-list/dist/index.js.map +1 -1
- package/dist/node_modules/@tiptap/extension-text/dist/index.js +1 -1
- package/dist/node_modules/@tiptap/extension-text/dist/index.js.map +1 -1
- package/dist/node_modules/@tiptap/react/dist/index.js +3 -3
- package/dist/node_modules/@tiptap/react/dist/index.js.map +1 -1
- package/dist/node_modules/@tiptap/starter-kit/dist/index.js +1 -1
- package/dist/node_modules/@tiptap/starter-kit/dist/index.js.map +1 -1
- package/dist/node_modules/attr-accept/dist/es/index.js +1 -1
- package/dist/node_modules/attr-accept/dist/es/index.js.map +1 -1
- package/dist/node_modules/date-fns/_lib/addLeadingZeros.js +1 -1
- package/dist/node_modules/date-fns/_lib/addLeadingZeros.js.map +1 -1
- package/dist/node_modules/date-fns/_lib/defaultOptions.js +1 -1
- package/dist/node_modules/date-fns/_lib/defaultOptions.js.map +1 -1
- package/dist/node_modules/date-fns/_lib/format/formatters.js +1 -1
- package/dist/node_modules/date-fns/_lib/format/formatters.js.map +1 -1
- package/dist/node_modules/date-fns/_lib/format/lightFormatters.js +1 -1
- package/dist/node_modules/date-fns/_lib/format/lightFormatters.js.map +1 -1
- package/dist/node_modules/date-fns/_lib/format/longFormatters.js +1 -1
- package/dist/node_modules/date-fns/_lib/format/longFormatters.js.map +1 -1
- package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js +1 -1
- package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js.map +1 -1
- package/dist/node_modules/date-fns/_lib/normalizeDates.js +1 -1
- package/dist/node_modules/date-fns/_lib/normalizeDates.js.map +1 -1
- package/dist/node_modules/date-fns/_lib/protectedTokens.js +1 -1
- package/dist/node_modules/date-fns/_lib/protectedTokens.js.map +1 -1
- package/dist/node_modules/date-fns/constants.js +1 -1
- package/dist/node_modules/date-fns/constants.js.map +1 -1
- package/dist/node_modules/date-fns/constructFrom.js +1 -1
- package/dist/node_modules/date-fns/constructFrom.js.map +1 -1
- package/dist/node_modules/date-fns/differenceInCalendarDays.js +1 -1
- package/dist/node_modules/date-fns/differenceInCalendarDays.js.map +1 -1
- package/dist/node_modules/date-fns/format.js +1 -1
- package/dist/node_modules/date-fns/format.js.map +1 -1
- package/dist/node_modules/date-fns/getDayOfYear.js +1 -1
- package/dist/node_modules/date-fns/getDayOfYear.js.map +1 -1
- package/dist/node_modules/date-fns/getISOWeek.js +1 -1
- package/dist/node_modules/date-fns/getISOWeek.js.map +1 -1
- package/dist/node_modules/date-fns/getISOWeekYear.js +1 -1
- package/dist/node_modules/date-fns/getISOWeekYear.js.map +1 -1
- package/dist/node_modules/date-fns/getWeek.js +1 -1
- package/dist/node_modules/date-fns/getWeek.js.map +1 -1
- package/dist/node_modules/date-fns/getWeekYear.js +1 -1
- package/dist/node_modules/date-fns/getWeekYear.js.map +1 -1
- package/dist/node_modules/date-fns/isDate.js +1 -1
- package/dist/node_modules/date-fns/isDate.js.map +1 -1
- package/dist/node_modules/date-fns/isValid.js +1 -1
- package/dist/node_modules/date-fns/isValid.js.map +1 -1
- package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.js +1 -1
- package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.js.map +1 -1
- package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.js +1 -1
- package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.js.map +1 -1
- package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.js +1 -1
- package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.js.map +1 -1
- package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js +1 -1
- package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js.map +1 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.js +1 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.js.map +1 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatLong.js +1 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatLong.js.map +1 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatRelative.js +1 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatRelative.js.map +1 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/localize.js +1 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/localize.js.map +1 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/match.js +1 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/match.js.map +1 -1
- package/dist/node_modules/date-fns/locale/en-US.js +1 -1
- package/dist/node_modules/date-fns/locale/en-US.js.map +1 -1
- package/dist/node_modules/date-fns/startOfDay.js +1 -1
- package/dist/node_modules/date-fns/startOfDay.js.map +1 -1
- package/dist/node_modules/date-fns/startOfISOWeek.js +1 -1
- package/dist/node_modules/date-fns/startOfISOWeek.js.map +1 -1
- package/dist/node_modules/date-fns/startOfISOWeekYear.js +1 -1
- package/dist/node_modules/date-fns/startOfISOWeekYear.js.map +1 -1
- package/dist/node_modules/date-fns/startOfWeek.js +1 -1
- package/dist/node_modules/date-fns/startOfWeek.js.map +1 -1
- package/dist/node_modules/date-fns/startOfWeekYear.js +1 -1
- package/dist/node_modules/date-fns/startOfWeekYear.js.map +1 -1
- package/dist/node_modules/date-fns/startOfYear.js +1 -1
- package/dist/node_modules/date-fns/startOfYear.js.map +1 -1
- package/dist/node_modules/date-fns/toDate.js +1 -1
- package/dist/node_modules/date-fns/toDate.js.map +1 -1
- package/dist/node_modules/dompurify/dist/purify.es.mjs.js +2 -1
- package/dist/node_modules/dompurify/dist/purify.es.mjs.js.map +1 -1
- package/dist/node_modules/file-selector/dist/es2015/file-selector.js +1 -1
- package/dist/node_modules/file-selector/dist/es2015/file-selector.js.map +1 -1
- package/dist/node_modules/file-selector/dist/es2015/file.js +1 -1
- package/dist/node_modules/file-selector/dist/es2015/file.js.map +1 -1
- package/dist/node_modules/html2canvas/dist/html2canvas.esm.js +2 -1
- package/dist/node_modules/html2canvas/dist/html2canvas.esm.js.map +1 -1
- package/dist/node_modules/linkifyjs/dist/linkify.es.js +1 -1
- package/dist/node_modules/linkifyjs/dist/linkify.es.js.map +1 -1
- package/dist/node_modules/lodash/lodash.js +3 -2
- package/dist/node_modules/lodash/lodash.js.map +1 -1
- package/dist/node_modules/marked/lib/marked.esm.js +1 -1
- package/dist/node_modules/marked/lib/marked.esm.js.map +1 -1
- package/dist/node_modules/object-assign/index.js +2 -1
- package/dist/node_modules/object-assign/index.js.map +1 -1
- package/dist/node_modules/orderedmap/dist/index.js +1 -1
- package/dist/node_modules/orderedmap/dist/index.js.map +1 -1
- package/dist/node_modules/prop-types/checkPropTypes.js +1 -1
- package/dist/node_modules/prop-types/checkPropTypes.js.map +1 -1
- package/dist/node_modules/prop-types/factoryWithThrowingShims.js +1 -1
- package/dist/node_modules/prop-types/factoryWithThrowingShims.js.map +1 -1
- package/dist/node_modules/prop-types/factoryWithTypeCheckers.js +1 -1
- package/dist/node_modules/prop-types/factoryWithTypeCheckers.js.map +1 -1
- package/dist/node_modules/prop-types/index.js +1 -1
- package/dist/node_modules/prop-types/index.js.map +1 -1
- package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js +1 -1
- package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js.map +1 -1
- package/dist/node_modules/prop-types/lib/has.js +1 -1
- package/dist/node_modules/prop-types/lib/has.js.map +1 -1
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js +2 -2
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js.map +1 -1
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js +2 -2
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js.map +1 -1
- package/dist/node_modules/prop-types/node_modules/react-is/index.js +1 -1
- package/dist/node_modules/prop-types/node_modules/react-is/index.js.map +1 -1
- package/dist/node_modules/prosemirror-commands/dist/index.js +1 -1
- package/dist/node_modules/prosemirror-commands/dist/index.js.map +1 -1
- package/dist/node_modules/prosemirror-dropcursor/dist/index.js +1 -1
- package/dist/node_modules/prosemirror-dropcursor/dist/index.js.map +1 -1
- package/dist/node_modules/prosemirror-gapcursor/dist/index.js +1 -1
- package/dist/node_modules/prosemirror-gapcursor/dist/index.js.map +1 -1
- package/dist/node_modules/prosemirror-history/dist/index.js +1 -1
- package/dist/node_modules/prosemirror-history/dist/index.js.map +1 -1
- package/dist/node_modules/prosemirror-keymap/dist/index.js +1 -1
- package/dist/node_modules/prosemirror-keymap/dist/index.js.map +1 -1
- package/dist/node_modules/prosemirror-model/dist/index.js +1 -1
- package/dist/node_modules/prosemirror-model/dist/index.js.map +1 -1
- package/dist/node_modules/prosemirror-schema-list/dist/index.js +1 -1
- package/dist/node_modules/prosemirror-schema-list/dist/index.js.map +1 -1
- package/dist/node_modules/prosemirror-state/dist/index.js +1 -1
- package/dist/node_modules/prosemirror-state/dist/index.js.map +1 -1
- package/dist/node_modules/prosemirror-tables/dist/index.js +1 -1
- package/dist/node_modules/prosemirror-tables/dist/index.js.map +1 -1
- package/dist/node_modules/prosemirror-transform/dist/index.js +1 -1
- package/dist/node_modules/prosemirror-transform/dist/index.js.map +1 -1
- package/dist/node_modules/prosemirror-view/dist/index.js +1 -1
- package/dist/node_modules/prosemirror-view/dist/index.js.map +1 -1
- package/dist/node_modules/react-dropzone/dist/es/index.js +1 -1
- package/dist/node_modules/react-dropzone/dist/es/index.js.map +1 -1
- package/dist/node_modules/react-dropzone/dist/es/utils/index.js +1 -1
- package/dist/node_modules/react-dropzone/dist/es/utils/index.js.map +1 -1
- package/dist/node_modules/rope-sequence/dist/index.js +1 -1
- package/dist/node_modules/rope-sequence/dist/index.js.map +1 -1
- package/dist/node_modules/tslib/tslib.es6.js +1 -1
- package/dist/node_modules/tslib/tslib.es6.js.map +1 -1
- package/dist/node_modules/w3c-keyname/index.js +1 -1
- package/dist/node_modules/w3c-keyname/index.js.map +1 -1
- package/dist/node_modules/xlsx/xlsx.mjs.js +2 -1
- package/dist/node_modules/xlsx/xlsx.mjs.js.map +1 -1
- package/dist/src/components/auth/ClientDetector.js +1 -1
- package/dist/src/components/auth/ClientOnly.js +1 -1
- package/dist/src/components/auth/FromInstinctHub.js +1 -1
- package/dist/src/components/auth/FromInstinctHub.js.map +1 -1
- package/dist/src/components/auth/IsUsernameEmailTaken.js +1 -1
- package/dist/src/components/auth/LoginForm.js +1 -1
- package/dist/src/components/auth/PasswordsMatch.js +1 -1
- package/dist/src/components/auth/ReactClientProviders.js +1 -1
- package/dist/src/components/cursors/Cursor.js +1 -1
- package/dist/src/components/cursors/CursorContext.js +1 -1
- package/dist/src/components/cursors/CursorControlDemo.js +1 -1
- package/dist/src/components/cursors/MagneticButton.js +1 -1
- package/dist/src/components/cursors/index.js +1 -1
- package/dist/src/components/cursors/index.js.map +1 -1
- package/dist/src/components/cursors/useCursorInteraction.js +1 -1
- package/dist/src/components/forms/ActionCallbackDropdown.js +1 -1
- package/dist/src/components/forms/ActionDropdown.js +1 -1
- package/dist/src/components/forms/AnimatedBox.js +1 -1
- package/dist/src/components/forms/CheckBoxes.js +1 -1
- package/dist/src/components/forms/CheckboxesField.js +1 -1
- package/dist/src/components/forms/ChipsInput.js +1 -1
- package/dist/src/components/forms/DateInput.js +1 -1
- package/dist/src/components/forms/DateInputPicker.js +1 -1
- package/dist/src/components/forms/DateTimeInput.js +1 -1
- package/dist/src/components/forms/DownloadAsExcel.js +1 -1
- package/dist/src/components/forms/DropFile.js +1 -1
- package/dist/src/components/forms/EmailList.js +1 -1
- package/dist/src/components/forms/FileField.js +1 -1
- package/dist/src/components/forms/FilterArray.js +1 -1
- package/dist/src/components/forms/FilterBy.js +1 -1
- package/dist/src/components/forms/FilterObjects.js +1 -1
- package/dist/src/components/forms/FormError.js +1 -1
- package/dist/src/components/forms/FormError.js.map +1 -1
- package/dist/src/components/forms/HandleError.js +1 -1
- package/dist/src/components/forms/InputAmount.js +1 -1
- package/dist/src/components/forms/InputNumber.js +1 -1
- package/dist/src/components/forms/InputText.js +1 -1
- package/dist/src/components/forms/InputTextarea.js +1 -1
- package/dist/src/components/forms/Logout.js +1 -1
- package/dist/src/components/forms/MessageDisplay.js +1 -1
- package/dist/src/components/forms/MessageDisplay.js.map +1 -1
- package/dist/src/components/forms/MultipleEmail.js +1 -1
- package/dist/src/components/forms/PageLoading.js +1 -1
- package/dist/src/components/forms/PageLoading.js.map +1 -1
- package/dist/src/components/forms/PasswordField.js +1 -1
- package/dist/src/components/forms/PhoneNumberInput.js +1 -1
- package/dist/src/components/forms/RadioField.js +1 -1
- package/dist/src/components/forms/RadioField.js.map +1 -1
- package/dist/src/components/forms/RadioSimple.js +1 -1
- package/dist/src/components/forms/RadioSimple.js.map +1 -1
- package/dist/src/components/forms/ReactTimeAgo.js +1 -1
- package/dist/src/components/forms/ReadTermsAndCondition.js +1 -1
- package/dist/src/components/forms/SearchField.js +1 -1
- package/dist/src/components/forms/SearchFieldDB.js +1 -1
- package/dist/src/components/forms/SearchObjectsFromDB.js +1 -1
- package/dist/src/components/forms/StepProgressBar.js +1 -1
- package/dist/src/components/forms/StepProgressBar.js.map +1 -1
- package/dist/src/components/forms/SubmitButton.js +1 -1
- package/dist/src/components/forms/TBodyNoData.js +1 -1
- package/dist/src/components/forms/TBodyNoData.js.map +1 -1
- package/dist/src/components/forms/THeadSortBtn.js +1 -1
- package/dist/src/components/forms/THeadSortBtn.js.map +1 -1
- package/dist/src/components/forms/THeadSortList.js +1 -1
- package/dist/src/components/forms/Tables.js +1 -1
- package/dist/src/components/forms/TextArea.js +1 -1
- package/dist/src/components/forms/TextArea.js.map +1 -1
- package/dist/src/components/forms/TextField.js +1 -1
- package/dist/src/components/forms/ToggleButton.js +1 -1
- package/dist/src/components/forms/Tooltip.js +1 -1
- package/dist/src/components/forms/UnsplashRandomImage.js +1 -1
- package/dist/src/components/forms/radio-btn/RadioButton.js +1 -1
- package/dist/src/components/forms/radio-btn/RadioButton.js.map +1 -1
- package/dist/src/components/forms/radio-btn/RadioGroup.js +1 -1
- package/dist/src/components/forms/radio-btn/RadioGroup.js.map +1 -1
- package/dist/src/components/forms/uploads/FileUploader.js +1 -1
- package/dist/src/components/forms/uploads/IhubFileUploader.js +1 -1
- package/dist/src/components/lib/auth/actions.js +1 -1
- package/dist/src/components/lib/auth/dbRequestst.js +1 -1
- package/dist/src/components/lib/auth/dbRequestst.js.map +1 -1
- package/dist/src/components/lib/charts.js +1 -1
- package/dist/src/components/lib/charts.js.map +1 -1
- package/dist/src/components/lib/convertArrayToObject.js +1 -1
- package/dist/src/components/lib/convertArrayToObject.js.map +1 -1
- package/dist/src/components/lib/createSubscription.js +1 -1
- package/dist/src/components/lib/createSubscription.js.map +1 -1
- package/dist/src/components/lib/elementIsVisibleInViewport.js +1 -1
- package/dist/src/components/lib/elementIsVisibleInViewport.js.map +1 -1
- package/dist/src/components/lib/fileToBase64.js +1 -1
- package/dist/src/components/lib/fileToBase64.js.map +1 -1
- package/dist/src/components/lib/formError.js +1 -1
- package/dist/src/components/lib/formError.js.map +1 -1
- package/dist/src/components/lib/format.js +1 -1
- package/dist/src/components/lib/format.js.map +1 -1
- package/dist/src/components/lib/getPriceObjects.js +1 -1
- package/dist/src/components/lib/getPriceObjects.js.map +1 -1
- package/dist/src/components/lib/helpFunction.js +1 -1
- package/dist/src/components/lib/helpFunction.js.map +1 -1
- package/dist/src/components/lib/index.js +1 -1
- package/dist/src/components/lib/index.js.map +1 -1
- package/dist/src/components/lib/json/accounts.js +1 -1
- package/dist/src/components/lib/json/accounts.js.map +1 -1
- package/dist/src/components/lib/json/countryObjects.js +1 -1
- package/dist/src/components/lib/json/countryObjects.js.map +1 -1
- package/dist/src/components/lib/json/unsplashDefaultObject.js +1 -1
- package/dist/src/components/lib/json/unsplashDefaultObject.js.map +1 -1
- package/dist/src/components/lib/loadScript.js +2 -0
- package/dist/src/components/lib/loadScript.js.map +1 -0
- package/dist/src/components/lib/modals/modals.js +1 -1
- package/dist/src/components/lib/modals/modals.js.map +1 -1
- package/dist/src/components/lib/modals/openConfirmDelete.js +1 -1
- package/dist/src/components/lib/modals/openConfirmDelete.js.map +1 -1
- package/dist/src/components/lib/oauth_json.js +1 -1
- package/dist/src/components/lib/oauth_json.js.map +1 -1
- package/dist/src/components/lib/paystack.js +1 -1
- package/dist/src/components/lib/paystack.js.map +1 -1
- package/dist/src/components/lib/permissions.js +1 -1
- package/dist/src/components/lib/permissions.js.map +1 -1
- package/dist/src/components/lib/queryParameters/index.js +1 -1
- package/dist/src/components/lib/queryParameters/index.js.map +1 -1
- package/dist/src/components/lib/redux/index.js +1 -1
- package/dist/src/components/lib/redux/middleware.js +1 -1
- package/dist/src/components/lib/redux/middleware.js.map +1 -1
- package/dist/src/components/lib/redux/rootReducer.js +1 -1
- package/dist/src/components/lib/redux/rootReducer.js.map +1 -1
- package/dist/src/components/lib/redux/slices/authSlice/channelCallbackUrl.js +1 -1
- package/dist/src/components/lib/redux/slices/authSlice/channelCallbackUrl.js.map +1 -1
- package/dist/src/components/lib/redux/slices/authSlice/selectors.js +1 -1
- package/dist/src/components/lib/redux/slices/authSlice/selectors.js.map +1 -1
- package/dist/src/components/lib/redux/slices/channelSlice/activeChannel.js +1 -1
- package/dist/src/components/lib/redux/slices/channelSlice/activeChannel.js.map +1 -1
- package/dist/src/components/lib/redux/slices/channelSlice/channelDetails.js +1 -1
- package/dist/src/components/lib/redux/slices/channelSlice/channelDetails.js.map +1 -1
- package/dist/src/components/lib/redux/slices/channelSlice/channelHandle.js +1 -1
- package/dist/src/components/lib/redux/slices/channelSlice/channelHandle.js.map +1 -1
- package/dist/src/components/lib/redux/slices/channelSlice/instructorChannelList.js +1 -1
- package/dist/src/components/lib/redux/slices/channelSlice/instructorChannelList.js.map +1 -1
- package/dist/src/components/lib/redux/slices/channelSlice/selectors.js +1 -1
- package/dist/src/components/lib/redux/slices/channelSlice/selectors.js.map +1 -1
- package/dist/src/components/lib/redux/slices/courseSlice/courseDetails.js +1 -1
- package/dist/src/components/lib/redux/slices/courseSlice/courseDetails.js.map +1 -1
- package/dist/src/components/lib/redux/slices/courseSlice/courseFilterDuration.js +1 -1
- package/dist/src/components/lib/redux/slices/courseSlice/courseFilterDuration.js.map +1 -1
- package/dist/src/components/lib/redux/slices/courseSlice/courseFilterLevel.js +1 -1
- package/dist/src/components/lib/redux/slices/courseSlice/courseFilterLevel.js.map +1 -1
- package/dist/src/components/lib/redux/slices/courseSlice/courseFilterSubject.js +1 -1
- package/dist/src/components/lib/redux/slices/courseSlice/courseFilterSubject.js.map +1 -1
- package/dist/src/components/lib/redux/slices/courseSlice/courseModules.js +1 -1
- package/dist/src/components/lib/redux/slices/courseSlice/courseModules.js.map +1 -1
- package/dist/src/components/lib/redux/slices/courseSlice/courseOverview.js +1 -1
- package/dist/src/components/lib/redux/slices/courseSlice/courseOverview.js.map +1 -1
- package/dist/src/components/lib/redux/slices/courseSlice/courseSearch.js +1 -1
- package/dist/src/components/lib/redux/slices/courseSlice/courseSearch.js.map +1 -1
- package/dist/src/components/lib/redux/slices/courseSlice/selectedCourses.js +1 -1
- package/dist/src/components/lib/redux/slices/courseSlice/selectedCourses.js.map +1 -1
- package/dist/src/components/lib/redux/slices/courseSlice/selectors.js +1 -1
- package/dist/src/components/lib/redux/slices/courseSlice/selectors.js.map +1 -1
- package/dist/src/components/lib/redux/slices/courseSlice/stepContent.js +1 -1
- package/dist/src/components/lib/redux/slices/courseSlice/stepContent.js.map +1 -1
- package/dist/src/components/lib/redux/slices/courseSlice/stepQuestions.js +1 -1
- package/dist/src/components/lib/redux/slices/courseSlice/stepQuestions.js.map +1 -1
- package/dist/src/components/lib/redux/slices/courseSlice/videoTimestamp.js +1 -1
- package/dist/src/components/lib/redux/slices/courseSlice/videoTimestamp.js.map +1 -1
- package/dist/src/components/lib/redux/slices/courseSlice/videoTimestampObject.js +1 -1
- package/dist/src/components/lib/redux/slices/courseSlice/videoTimestampObject.js.map +1 -1
- package/dist/src/components/lib/redux/slices/generics/arraySlice.js +1 -1
- package/dist/src/components/lib/redux/slices/generics/arraySlice.js.map +1 -1
- package/dist/src/components/lib/redux/slices/generics/objectSlice.js +1 -1
- package/dist/src/components/lib/redux/slices/generics/objectSlice.js.map +1 -1
- package/dist/src/components/lib/redux/slices/generics/selectors.js +1 -1
- package/dist/src/components/lib/redux/slices/generics/selectors.js.map +1 -1
- package/dist/src/components/lib/redux/slices/messageSlice/feedbackToggle.js +1 -1
- package/dist/src/components/lib/redux/slices/messageSlice/feedbackToggle.js.map +1 -1
- package/dist/src/components/lib/redux/slices/messageSlice/selectors.js +1 -1
- package/dist/src/components/lib/redux/slices/messageSlice/selectors.js.map +1 -1
- package/dist/src/components/lib/redux/slices/messageSlice/statusMessageState.js +1 -1
- package/dist/src/components/lib/redux/slices/messageSlice/statusMessageState.js.map +1 -1
- package/dist/src/components/lib/redux/slices/navigationSlice/IPAdress.js +1 -1
- package/dist/src/components/lib/redux/slices/navigationSlice/IPAdress.js.map +1 -1
- package/dist/src/components/lib/redux/slices/navigationSlice/appToggle.js +1 -1
- package/dist/src/components/lib/redux/slices/navigationSlice/appToggle.js.map +1 -1
- package/dist/src/components/lib/redux/slices/navigationSlice/confirmDelete.js +1 -1
- package/dist/src/components/lib/redux/slices/navigationSlice/confirmDelete.js.map +1 -1
- package/dist/src/components/lib/redux/slices/navigationSlice/courseNextStep.js +1 -1
- package/dist/src/components/lib/redux/slices/navigationSlice/courseNextStep.js.map +1 -1
- package/dist/src/components/lib/redux/slices/navigationSlice/currentPromo.js +1 -1
- package/dist/src/components/lib/redux/slices/navigationSlice/currentPromo.js.map +1 -1
- package/dist/src/components/lib/redux/slices/navigationSlice/searchValue.js +1 -1
- package/dist/src/components/lib/redux/slices/navigationSlice/searchValue.js.map +1 -1
- package/dist/src/components/lib/redux/slices/navigationSlice/selectors.js +1 -1
- package/dist/src/components/lib/redux/slices/navigationSlice/selectors.js.map +1 -1
- package/dist/src/components/lib/redux/slices/navigationSlice/settingsToggle.js +1 -1
- package/dist/src/components/lib/redux/slices/navigationSlice/settingsToggle.js.map +1 -1
- package/dist/src/components/lib/redux/slices/navigationSlice/toggleCreateCohort.js +1 -1
- package/dist/src/components/lib/redux/slices/navigationSlice/toggleCreateCohort.js.map +1 -1
- package/dist/src/components/lib/redux/slices/navigationSlice/toggleCreateCourse.js +1 -1
- package/dist/src/components/lib/redux/slices/navigationSlice/toggleCreateCourse.js.map +1 -1
- package/dist/src/components/lib/redux/slices/navigationSlice/userLocation.js +1 -1
- package/dist/src/components/lib/redux/slices/navigationSlice/userLocation.js.map +1 -1
- package/dist/src/components/lib/redux/slices/utilsSlice/screenSize.js +1 -1
- package/dist/src/components/lib/redux/slices/utilsSlice/screenSize.js.map +1 -1
- package/dist/src/components/lib/redux/slices/utilsSlice/selectors.js +1 -1
- package/dist/src/components/lib/redux/slices/utilsSlice/selectors.js.map +1 -1
- package/dist/src/components/lib/redux/store.js +1 -1
- package/dist/src/components/lib/redux/store.js.map +1 -1
- package/dist/src/components/lib/roles.js +1 -1
- package/dist/src/components/lib/roles.js.map +1 -1
- package/dist/src/components/lib/utils.js +1 -1
- package/dist/src/components/lib/utils.js.map +1 -1
- package/dist/src/components/navbar/Breadcrumb.js +1 -1
- package/dist/src/components/navbar/ChannelListAvatar.js +1 -1
- package/dist/src/components/navbar/MenuDropdown.js +1 -1
- package/dist/src/components/navbar/ResponsiveNavbar.js +1 -1
- package/dist/src/components/navbar/SideNavbar.js +1 -1
- package/dist/src/components/status/CopyToClipBoard.js +1 -1
- package/dist/src/components/status/DeleteConfirmationModal.js +1 -1
- package/dist/src/components/status/Error500.js +1 -1
- package/dist/src/components/status/Error500.js.map +1 -1
- package/dist/src/components/status/ErrorState.js +1 -1
- package/dist/src/components/status/ErrorState.js.map +1 -1
- package/dist/src/components/status/ModalExamples.js +1 -1
- package/dist/src/components/status/MultiPurposeModal.js +1 -1
- package/dist/src/components/status/NotFound.js +1 -1
- package/dist/src/components/status/ReactTimeTracker.js +1 -1
- package/dist/src/components/status/SessionHandleProvider.js +1 -1
- package/dist/src/components/status/Unauthorized.js +1 -1
- package/dist/src/components/status/Unauthorized.js.map +1 -1
- package/dist/src/components/tabs/TabContent.js +1 -1
- package/dist/src/components/tabs/TabContent.js.map +1 -1
- package/dist/src/components/tabs/Tabs.js +1 -1
- package/dist/src/components/tabs/VerticalTabs.js +1 -1
- package/dist/src/components/theme/ChangeStyleVariable.js +1 -1
- package/dist/src/components/theme/DarkModeProvider.js +1 -1
- package/dist/src/components/theme/LoadingAnimate.js +1 -1
- package/dist/src/components/theme/LoadingAnimate.js.map +1 -1
- package/dist/src/components/theme/SessionProviders.js +1 -1
- package/dist/src/components/theme/signout/SessionExpiresLogout.js +1 -1
- package/dist/src/components/theme/signout/SignOutSession.js +1 -1
- package/dist/src/components/ui/Action.js +1 -1
- package/dist/src/components/ui/Action.js.map +1 -1
- package/dist/src/components/ui/Badge.js +1 -1
- package/dist/src/components/ui/Badge.js.map +1 -1
- package/dist/src/components/ui/ColorPicker.js +1 -1
- package/dist/src/components/ui/ComponentLists.js +1 -1
- package/dist/src/components/ui/ComponentLists.js.map +1 -1
- package/dist/src/components/ui/Dropdown.js +1 -1
- package/dist/src/components/ui/OrDivider.js +1 -1
- package/dist/src/components/ui/cards/Card.js +1 -1
- package/dist/src/components/ui/cards/CardGrid.js +1 -1
- package/dist/src/components/ui/cards/CardGrid.js.map +1 -1
- package/dist/src/components/ui/cards/CardList.js +1 -1
- package/dist/src/components/ui/cards/CardList.js.map +1 -1
- package/dist/src/components/ui/cards/FeatureCard.js +1 -1
- package/dist/src/components/ui/cards/FeatureCard.js.map +1 -1
- package/dist/src/components/ui/cards/HorizontalCard.js +1 -1
- package/dist/src/components/ui/cards/HorizontalCard.js.map +1 -1
- package/dist/src/components/ui/cards/MediaCard.js +1 -1
- package/dist/src/components/ui/cards/MediaCard.js.map +1 -1
- package/dist/src/components/ui/cards/PricingCard.js +1 -1
- package/dist/src/components/ui/cards/PricingCard.js.map +1 -1
- package/dist/src/components/ui/cards/ProfileCard.js +1 -1
- package/dist/src/components/ui/cards/ProfileCard.js.map +1 -1
- package/dist/src/components/ui/charts/ChartConfigurator.js +1 -1
- package/dist/src/components/ui/charts/InstinctHubChart.js +1 -1
- package/dist/src/components/ui/charts/InstinctHubChartDashboard.js +1 -1
- package/dist/src/components/ui/create-button/CreateButton.js +1 -1
- package/dist/src/components/ui/create-button/CreateButtonExample.js +1 -1
- package/dist/src/components/ui/create-button/CreateButtonExample.js.map +1 -1
- package/dist/src/components/ui/dialogs/Dialog.js +1 -1
- package/dist/src/components/ui/editor/CustomTextEditor.js +1 -1
- package/dist/src/components/ui/editor/MenuBar.js +1 -1
- package/dist/src/components/ui/images/RandomGradientImage.js +1 -1
- package/dist/src/components/ui/images/RandomGradientImage.js.map +1 -1
- package/dist/src/components/ui/pagination/Pagination.js +1 -1
- package/dist/src/components/ui/pagination/PaginationDemo.js +1 -1
- package/dist/src/components/ui/tables/IHubTable.js +1 -1
- package/dist/src/components/ui/tables/IHubTableServer.js +1 -1
- package/dist/src/components/ui/viewer/CodeDisplay.js +1 -1
- package/dist/src/components/ui/viewer/ContentViewOrEdit.js +1 -1
- package/dist/src/components/ui/viewer/ContentViewer.js +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/ssr.js +1 -1
- package/dist/src/types/components/auth/IsUsernameEmailTaken.d.ts +13 -0
- package/dist/src/types/components/forms/DateInput.d.ts +3 -4
- package/dist/src/types/components/forms/FilterObjects.d.ts +1 -1
- package/dist/src/types/components/forms/uploads/IhubFileUploader.d.ts +1 -1
- package/dist/src/types/components/lib/index.d.ts +1 -1
- package/dist/src/types/components/lib/redux/slices/channelSlice/channelDetails.d.ts +1 -1
- package/dist/src/types/components/lib/redux/slices/channelSlice/instructorChannelList.d.ts +3 -2
- package/dist/src/types/components/lib/redux/slices/courseSlice/courseDetails.d.ts +1 -1
- package/dist/src/types/components/lib/redux/slices/courseSlice/courseFilterDuration.d.ts +1 -1
- package/dist/src/types/components/lib/redux/slices/courseSlice/courseFilterLevel.d.ts +1 -1
- package/dist/src/types/components/lib/redux/slices/courseSlice/courseFilterSubject.d.ts +1 -1
- package/dist/src/types/components/lib/redux/slices/courseSlice/courseModules.d.ts +1 -1
- package/dist/src/types/components/lib/redux/slices/courseSlice/courseOverview.d.ts +1 -1
- package/dist/src/types/components/lib/redux/slices/courseSlice/courseSearch.d.ts +1 -1
- package/dist/src/types/components/lib/redux/slices/courseSlice/stepContent.d.ts +1 -1
- package/dist/src/types/components/lib/redux/slices/courseSlice/stepQuestions.d.ts +1 -1
- package/dist/src/types/components/lib/redux/slices/courseSlice/videoTimestamp.d.ts +1 -1
- package/dist/src/types/components/lib/redux/slices/courseSlice/videoTimestampObject.d.ts +1 -1
- package/dist/src/types/components/lib/redux/slices/navigationSlice/IPAdress.d.ts +1 -1
- package/dist/src/types/components/status/ReactTimeTracker.d.ts +1 -1
- package/dist/src/types/components/tabs/Tabs.d.ts +1 -1
- package/dist/src/types/components/tabs/VerticalTabs.d.ts +1 -1
- package/dist/src/types/components/theme/signout/SessionExpiresLogout.d.ts +1 -1
- package/dist/src/types/components/ui/Action.d.ts +1 -1
- package/dist/src/types/types/index.d.ts +4 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +26 -9
package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-is.production.min.js","sources":["../../../../../../node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js"],"sourcesContent":["/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n"],"names":["b","Symbol","for","c","d","e","f","g","h","k","l","m","n","p","q","r","t","v","w","x","y","z","a","u","$$typeof","type","A","reactIs_production_min","AsyncMode","ConcurrentMode","ContextProvider","Element","ForwardRef","Fragment","Memo","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf"],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"react-is.production.min.js","sources":["../../../../../../node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js"],"sourcesContent":["/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n"],"names":["b","Symbol","for","c","d","e","f","g","h","k","l","m","n","p","q","r","t","v","w","x","y","z","a","u","$$typeof","type","A","reactIs_production_min","AsyncMode","ConcurrentMode","ContextProvider","Element","__exports","ForwardRef","Fragment","Memo","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,r=require("../../../../_virtual/index2.js"),s=require("./cjs/react-is.production.min.js"),t=require("./cjs/react-is.development.js");exports.__require=function(){return e||(e=1,i=r.reactIs,"production"===process.env.NODE_ENV?i.exports=s.__require():i.exports=t.__require()),r.reactIs.exports;var i};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../node_modules/prop-types/node_modules/react-is/index.js"],"sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n"],"names":["process","env","NODE_ENV","module","exports","require$$0","require$$1"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../node_modules/prop-types/node_modules/react-is/index.js"],"sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n"],"names":["process","env","NODE_ENV","module","exports","require$$0","require$$1"],"mappings":"uQAE6B,eAAzBA,QAAQC,IAAIC,SACdC,EAAAC,QAAiBC,EAAAA,YAEjBF,EAAAC,QAAiBE,EAAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../prosemirror-transform/dist/index.js"),t=require("../../prosemirror-model/dist/index.js"),o=require("../../prosemirror-state/dist/index.js");function n(e,t){let{$cursor:o}=e.selection;return!o||(t?!t.endOfTextblock("backward",e):o.parentOffset>0)?null:o}function r(n,r,l){let i=r.nodeBefore,c=r.pos-1;for(;!i.isTextblock;c--){if(i.type.spec.isolating)return!1;let e=i.lastChild;if(!e)return!1;i=e}let s=r.nodeAfter,p=r.pos+1;for(;!s.isTextblock;p++){if(s.type.spec.isolating)return!1;let e=s.firstChild;if(!e)return!1;s=e}let f=e.replaceStep(n.doc,c,p,t.Slice.empty);if(!f||f.from!=c||f instanceof e.ReplaceStep&&f.slice.size>=p-c)return!1;if(l){let e=n.tr.step(f);e.setSelection(o.TextSelection.create(e.doc,c)),l(e.scrollIntoView())}return!0}function l(e,t,o=!1){for(let n=e;n;n="start"==t?n.firstChild:n.lastChild){if(n.isTextblock)return!0;if(o&&1!=n.childCount)return!1}return!1}function i(e){if(!e.parent.type.spec.isolating)for(let t=e.depth-1;t>=0;t--){if(e.index(t)>0)return e.doc.resolve(e.before(t+1));if(e.node(t).type.spec.isolating)break}return null}function c(e,t){let{$cursor:o}=e.selection;return!o||(t?!t.endOfTextblock("forward",e):o.parentOffset<o.parent.content.size)?null:o}function s(e){if(!e.parent.type.spec.isolating)for(let t=e.depth-1;t>=0;t--){let o=e.node(t);if(e.index(t)+1<o.childCount)return e.doc.resolve(e.after(t+1));if(o.type.spec.isolating)break}return null}function p(e){for(let t=0;t<e.edgeCount;t++){let{type:o}=e.edge(t);if(o.isTextblock&&!o.hasRequiredAttrs())return o}return null}function f(n,r,i,c){let s,p,f=r.nodeBefore,a=r.nodeAfter,d=f.type.spec.isolating||a.type.spec.isolating;if(!d&&function(t,o,n){let r=o.nodeBefore,l=o.nodeAfter,i=o.index();return!(!(r&&l&&r.type.compatibleContent(l.type))||(!r.content.size&&o.parent.canReplace(i-1,i)?(n&&n(t.tr.delete(o.pos-r.nodeSize,o.pos).scrollIntoView()),0):!o.parent.canReplace(i,i+1)||!l.isTextblock&&!e.canJoin(t.doc,o.pos)||(n&&n(t.tr.join(o.pos).scrollIntoView()),0)))}(n,r,i))return!0;let u=!d&&r.parent.canReplace(r.index(),r.index()+1);if(u&&(s=(p=f.contentMatchAt(f.childCount)).findWrapping(a.type))&&p.matchType(s[0]||a.type).validEnd){if(i){let o=r.pos+a.nodeSize,l=t.Fragment.empty;for(let e=s.length-1;e>=0;e--)l=t.Fragment.from(s[e].create(null,l));l=t.Fragment.from(f.copy(l));let c=n.tr.step(new e.ReplaceAroundStep(r.pos-1,o,r.pos,o,new t.Slice(l,1,0),s.length,!0)),p=c.doc.resolve(o+2*s.length);p.nodeAfter&&p.nodeAfter.type==f.type&&e.canJoin(c.doc,p.pos)&&c.join(p.pos),i(c.scrollIntoView())}return!0}let x=a.type.spec.isolating||c>0&&d?null:o.Selection.findFrom(r,1),S=x&&x.$from.blockRange(x.$to),m=S&&e.liftTarget(S);if(null!=m&&m>=r.depth)return i&&i(n.tr.lift(S,m).scrollIntoView()),!0;if(u&&l(a,"start",!0)&&l(f,"end")){let o=f,l=[];for(;l.push(o),!o.isTextblock;)o=o.lastChild;let c=a,s=1;for(;!c.isTextblock;c=c.firstChild)s++;if(o.canReplace(o.childCount,o.childCount,c.content)){if(i){let o=t.Fragment.empty;for(let e=l.length-1;e>=0;e--)o=t.Fragment.from(l[e].copy(o));i(n.tr.step(new e.ReplaceAroundStep(r.pos-l.length,r.pos+a.nodeSize,r.pos+s,r.pos+a.nodeSize-s,new t.Slice(o,l.length,0),0,!0)).scrollIntoView())}return!0}}return!1}function a(e){return function(t,n){let r=t.selection,l=e<0?r.$from:r.$to,i=l.depth;for(;l.node(i).isInline;){if(!i)return!1;i--}return!!l.node(i).isTextblock&&(n&&n(t.tr.setSelection(o.TextSelection.create(t.doc,e<0?l.start(i):l.end(i)))),!0)}}const d=a(-1),u=a(1);"undefined"!=typeof navigator?/Mac|iP(hone|[oa]d)/.test(navigator.platform):"undefined"!=typeof os&&os.platform&&os.platform(),exports.createParagraphNear=(e,t)=>{let n=e.selection,{$from:r,$to:l}=n;if(n instanceof o.AllSelection||r.parent.inlineContent||l.parent.inlineContent)return!1;let i=p(l.parent.contentMatchAt(l.indexAfter()));if(!i||!i.isTextblock)return!1;if(t){let n=(!r.parentOffset&&l.index()<l.parent.childCount?r:l).pos,c=e.tr.insert(n,i.createAndFill());c.setSelection(o.TextSelection.create(c.doc,n+1)),t(c.scrollIntoView())}return!0},exports.deleteSelection=(e,t)=>!e.selection.empty&&(t&&t(e.tr.deleteSelection().scrollIntoView()),!0),exports.exitCode=(e,t)=>{let{$head:n,$anchor:r}=e.selection;if(!n.parent.type.spec.code||!n.sameParent(r))return!1;let l=n.node(-1),i=n.indexAfter(-1),c=p(l.contentMatchAt(i));if(!c||!l.canReplaceWith(i,i,c))return!1;if(t){let r=n.after(),l=e.tr.replaceWith(r,r,c.createAndFill());l.setSelection(o.Selection.near(l.doc.resolve(r),1)),t(l.scrollIntoView())}return!0},exports.joinBackward=(r,c,s)=>{let p=n(r,s);if(!p)return!1;let a=i(p);if(!a){let t=p.blockRange(),o=t&&e.liftTarget(t);return null!=o&&(c&&c(r.tr.lift(t,o).scrollIntoView()),!0)}let d=a.nodeBefore;if(f(r,a,c,-1))return!0;if(0==p.parent.content.size&&(l(d,"end")||o.NodeSelection.isSelectable(d)))for(let n=p.depth;;n--){let i=e.replaceStep(r.doc,p.before(n),p.after(n),t.Slice.empty);if(i&&i.slice.size<i.to-i.from){if(c){let e=r.tr.step(i);e.setSelection(l(d,"end")?o.Selection.findFrom(e.doc.resolve(e.mapping.map(a.pos,-1)),-1):o.NodeSelection.create(e.doc,a.pos-d.nodeSize)),c(e.scrollIntoView())}return!0}if(1==n||p.node(n-1).childCount>1)break}return!(!d.isAtom||a.depth!=p.depth-1)&&(c&&c(r.tr.delete(a.pos-d.nodeSize,a.pos).scrollIntoView()),!0)},exports.joinDown=(t,n)=>{let r,l=t.selection;if(l instanceof o.NodeSelection){if(l.node.isTextblock||!e.canJoin(t.doc,l.to))return!1;r=l.to}else if(r=e.joinPoint(t.doc,l.to,1),null==r)return!1;return n&&n(t.tr.join(r).scrollIntoView()),!0},exports.joinForward=(n,r,i)=>{let p=c(n,i);if(!p)return!1;let a=s(p);if(!a)return!1;let d=a.nodeAfter;if(f(n,a,r,1))return!0;if(0==p.parent.content.size&&(l(d,"start")||o.NodeSelection.isSelectable(d))){let i=e.replaceStep(n.doc,p.before(),p.after(),t.Slice.empty);if(i&&i.slice.size<i.to-i.from){if(r){let e=n.tr.step(i);e.setSelection(l(d,"start")?o.Selection.findFrom(e.doc.resolve(e.mapping.map(a.pos)),1):o.NodeSelection.create(e.doc,e.mapping.map(a.pos))),r(e.scrollIntoView())}return!0}}return!(!d.isAtom||a.depth!=p.depth-1)&&(r&&r(n.tr.delete(a.pos,a.pos+d.nodeSize).scrollIntoView()),!0)},exports.joinTextblockBackward=(e,t,o)=>{let l=n(e,o);if(!l)return!1;let c=i(l);return!!c&&r(e,c,t)},exports.joinTextblockForward=(e,t,o)=>{let n=c(e,o);if(!n)return!1;let l=s(n);return!!l&&r(e,l,t)},exports.joinUp=(t,n)=>{let r,l=t.selection,i=l instanceof o.NodeSelection;if(i){if(l.node.isTextblock||!e.canJoin(t.doc,l.from))return!1;r=l.from}else if(r=e.joinPoint(t.doc,l.from,-1),null==r)return!1;if(n){let e=t.tr.join(r);i&&e.setSelection(o.NodeSelection.create(e.doc,r-t.doc.resolve(r).nodeBefore.nodeSize)),n(e.scrollIntoView())}return!0},exports.lift=(t,o)=>{let{$from:n,$to:r}=t.selection,l=n.blockRange(r),i=l&&e.liftTarget(l);return null!=i&&(o&&o(t.tr.lift(l,i).scrollIntoView()),!0)},exports.liftEmptyBlock=(t,o)=>{let{$cursor:n}=t.selection;if(!n||n.parent.content.size)return!1;if(n.depth>1&&n.after()!=n.end(-1)){let r=n.before();if(e.canSplit(t.doc,r))return o&&o(t.tr.split(r).scrollIntoView()),!0}let r=n.blockRange(),l=r&&e.liftTarget(r);return null!=l&&(o&&o(t.tr.lift(r,l).scrollIntoView()),!0)},exports.newlineInCode=(e,t)=>{let{$head:o,$anchor:n}=e.selection;return!(!o.parent.type.spec.code||!o.sameParent(n))&&(t&&t(e.tr.insertText("\n").scrollIntoView()),!0)},exports.selectNodeBackward=(e,t,n)=>{let{$head:r,empty:l}=e.selection,c=r;if(!l)return!1;if(r.parent.isTextblock){if(n?!n.endOfTextblock("backward",e):r.parentOffset>0)return!1;c=i(r)}let s=c&&c.nodeBefore;return!(!s||!o.NodeSelection.isSelectable(s))&&(t&&t(e.tr.setSelection(o.NodeSelection.create(e.doc,c.pos-s.nodeSize)).scrollIntoView()),!0)},exports.selectNodeForward=(e,t,n)=>{let{$head:r,empty:l}=e.selection,i=r;if(!l)return!1;if(r.parent.isTextblock){if(n?!n.endOfTextblock("forward",e):r.parentOffset<r.parent.content.size)return!1;i=s(r)}let c=i&&i.nodeAfter;return!(!c||!o.NodeSelection.isSelectable(c))&&(t&&t(e.tr.setSelection(o.NodeSelection.create(e.doc,i.pos)).scrollIntoView()),!0)},exports.selectParentNode=(e,t)=>{let n,{$from:r,to:l}=e.selection,i=r.sharedDepth(l);return 0!=i&&(n=r.before(i),t&&t(e.tr.setSelection(o.NodeSelection.create(e.doc,n))),!0)},exports.selectTextblockEnd=u,exports.selectTextblockStart=d,exports.setBlockType=function(e,t=null){return function(o,n){let r=!1;for(let n=0;n<o.selection.ranges.length&&!r;n++){let{$from:{pos:l},$to:{pos:i}}=o.selection.ranges[n];o.doc.nodesBetween(l,i,((n,l)=>{if(r)return!1;if(n.isTextblock&&!n.hasMarkup(e,t))if(n.type==e)r=!0;else{let t=o.doc.resolve(l),n=t.index();r=t.parent.canReplaceWith(n,n+1,e)}}))}if(!r)return!1;if(n){let r=o.tr;for(let n=0;n<o.selection.ranges.length;n++){let{$from:{pos:l},$to:{pos:i}}=o.selection.ranges[n];r.setBlockType(l,i,e,t)}n(r.scrollIntoView())}return!0}},exports.wrapIn=function(t,o=null){return function(n,r){let{$from:l,$to:i}=n.selection,c=l.blockRange(i),s=c&&e.findWrapping(c,t,o);return!!s&&(r&&r(n.tr.wrap(c,s).scrollIntoView()),!0)}};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../node_modules/prosemirror-commands/dist/index.js"],"sourcesContent":["import { liftTarget, replaceStep, ReplaceStep, canJoin, joinPoint, canSplit, ReplaceAroundStep, findWrapping } from 'prosemirror-transform';\nimport { Slice, Fragment } from 'prosemirror-model';\nimport { NodeSelection, Selection, TextSelection, AllSelection, SelectionRange } from 'prosemirror-state';\n\n/**\nDelete the selection, if there is one.\n*/\nconst deleteSelection = (state, dispatch) => {\n if (state.selection.empty)\n return false;\n if (dispatch)\n dispatch(state.tr.deleteSelection().scrollIntoView());\n return true;\n};\nfunction atBlockStart(state, view) {\n let { $cursor } = state.selection;\n if (!$cursor || (view ? !view.endOfTextblock(\"backward\", state)\n : $cursor.parentOffset > 0))\n return null;\n return $cursor;\n}\n/**\nIf the selection is empty and at the start of a textblock, try to\nreduce the distance between that block and the one before it—if\nthere's a block directly before it that can be joined, join them.\nIf not, try to move the selected block closer to the next one in\nthe document structure by lifting it out of its parent or moving it\ninto a parent of the previous block. Will use the view for accurate\n(bidi-aware) start-of-textblock detection if given.\n*/\nconst joinBackward = (state, dispatch, view) => {\n let $cursor = atBlockStart(state, view);\n if (!$cursor)\n return false;\n let $cut = findCutBefore($cursor);\n // If there is no node before this, try to lift\n if (!$cut) {\n let range = $cursor.blockRange(), target = range && liftTarget(range);\n if (target == null)\n return false;\n if (dispatch)\n dispatch(state.tr.lift(range, target).scrollIntoView());\n return true;\n }\n let before = $cut.nodeBefore;\n // Apply the joining algorithm\n if (deleteBarrier(state, $cut, dispatch, -1))\n return true;\n // If the node below has no content and the node above is\n // selectable, delete the node below and select the one above.\n if ($cursor.parent.content.size == 0 &&\n (textblockAt(before, \"end\") || NodeSelection.isSelectable(before))) {\n for (let depth = $cursor.depth;; depth--) {\n let delStep = replaceStep(state.doc, $cursor.before(depth), $cursor.after(depth), Slice.empty);\n if (delStep && delStep.slice.size < delStep.to - delStep.from) {\n if (dispatch) {\n let tr = state.tr.step(delStep);\n tr.setSelection(textblockAt(before, \"end\")\n ? Selection.findFrom(tr.doc.resolve(tr.mapping.map($cut.pos, -1)), -1)\n : NodeSelection.create(tr.doc, $cut.pos - before.nodeSize));\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n if (depth == 1 || $cursor.node(depth - 1).childCount > 1)\n break;\n }\n }\n // If the node before is an atom, delete it\n if (before.isAtom && $cut.depth == $cursor.depth - 1) {\n if (dispatch)\n dispatch(state.tr.delete($cut.pos - before.nodeSize, $cut.pos).scrollIntoView());\n return true;\n }\n return false;\n};\n/**\nA more limited form of [`joinBackward`](https://prosemirror.net/docs/ref/#commands.joinBackward)\nthat only tries to join the current textblock to the one before\nit, if the cursor is at the start of a textblock.\n*/\nconst joinTextblockBackward = (state, dispatch, view) => {\n let $cursor = atBlockStart(state, view);\n if (!$cursor)\n return false;\n let $cut = findCutBefore($cursor);\n return $cut ? joinTextblocksAround(state, $cut, dispatch) : false;\n};\n/**\nA more limited form of [`joinForward`](https://prosemirror.net/docs/ref/#commands.joinForward)\nthat only tries to join the current textblock to the one after\nit, if the cursor is at the end of a textblock.\n*/\nconst joinTextblockForward = (state, dispatch, view) => {\n let $cursor = atBlockEnd(state, view);\n if (!$cursor)\n return false;\n let $cut = findCutAfter($cursor);\n return $cut ? joinTextblocksAround(state, $cut, dispatch) : false;\n};\nfunction joinTextblocksAround(state, $cut, dispatch) {\n let before = $cut.nodeBefore, beforeText = before, beforePos = $cut.pos - 1;\n for (; !beforeText.isTextblock; beforePos--) {\n if (beforeText.type.spec.isolating)\n return false;\n let child = beforeText.lastChild;\n if (!child)\n return false;\n beforeText = child;\n }\n let after = $cut.nodeAfter, afterText = after, afterPos = $cut.pos + 1;\n for (; !afterText.isTextblock; afterPos++) {\n if (afterText.type.spec.isolating)\n return false;\n let child = afterText.firstChild;\n if (!child)\n return false;\n afterText = child;\n }\n let step = replaceStep(state.doc, beforePos, afterPos, Slice.empty);\n if (!step || step.from != beforePos ||\n step instanceof ReplaceStep && step.slice.size >= afterPos - beforePos)\n return false;\n if (dispatch) {\n let tr = state.tr.step(step);\n tr.setSelection(TextSelection.create(tr.doc, beforePos));\n dispatch(tr.scrollIntoView());\n }\n return true;\n}\nfunction textblockAt(node, side, only = false) {\n for (let scan = node; scan; scan = (side == \"start\" ? scan.firstChild : scan.lastChild)) {\n if (scan.isTextblock)\n return true;\n if (only && scan.childCount != 1)\n return false;\n }\n return false;\n}\n/**\nWhen the selection is empty and at the start of a textblock, select\nthe node before that textblock, if possible. This is intended to be\nbound to keys like backspace, after\n[`joinBackward`](https://prosemirror.net/docs/ref/#commands.joinBackward) or other deleting\ncommands, as a fall-back behavior when the schema doesn't allow\ndeletion at the selected point.\n*/\nconst selectNodeBackward = (state, dispatch, view) => {\n let { $head, empty } = state.selection, $cut = $head;\n if (!empty)\n return false;\n if ($head.parent.isTextblock) {\n if (view ? !view.endOfTextblock(\"backward\", state) : $head.parentOffset > 0)\n return false;\n $cut = findCutBefore($head);\n }\n let node = $cut && $cut.nodeBefore;\n if (!node || !NodeSelection.isSelectable(node))\n return false;\n if (dispatch)\n dispatch(state.tr.setSelection(NodeSelection.create(state.doc, $cut.pos - node.nodeSize)).scrollIntoView());\n return true;\n};\nfunction findCutBefore($pos) {\n if (!$pos.parent.type.spec.isolating)\n for (let i = $pos.depth - 1; i >= 0; i--) {\n if ($pos.index(i) > 0)\n return $pos.doc.resolve($pos.before(i + 1));\n if ($pos.node(i).type.spec.isolating)\n break;\n }\n return null;\n}\nfunction atBlockEnd(state, view) {\n let { $cursor } = state.selection;\n if (!$cursor || (view ? !view.endOfTextblock(\"forward\", state)\n : $cursor.parentOffset < $cursor.parent.content.size))\n return null;\n return $cursor;\n}\n/**\nIf the selection is empty and the cursor is at the end of a\ntextblock, try to reduce or remove the boundary between that block\nand the one after it, either by joining them or by moving the other\nblock closer to this one in the tree structure. Will use the view\nfor accurate start-of-textblock detection if given.\n*/\nconst joinForward = (state, dispatch, view) => {\n let $cursor = atBlockEnd(state, view);\n if (!$cursor)\n return false;\n let $cut = findCutAfter($cursor);\n // If there is no node after this, there's nothing to do\n if (!$cut)\n return false;\n let after = $cut.nodeAfter;\n // Try the joining algorithm\n if (deleteBarrier(state, $cut, dispatch, 1))\n return true;\n // If the node above has no content and the node below is\n // selectable, delete the node above and select the one below.\n if ($cursor.parent.content.size == 0 &&\n (textblockAt(after, \"start\") || NodeSelection.isSelectable(after))) {\n let delStep = replaceStep(state.doc, $cursor.before(), $cursor.after(), Slice.empty);\n if (delStep && delStep.slice.size < delStep.to - delStep.from) {\n if (dispatch) {\n let tr = state.tr.step(delStep);\n tr.setSelection(textblockAt(after, \"start\") ? Selection.findFrom(tr.doc.resolve(tr.mapping.map($cut.pos)), 1)\n : NodeSelection.create(tr.doc, tr.mapping.map($cut.pos)));\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n }\n // If the next node is an atom, delete it\n if (after.isAtom && $cut.depth == $cursor.depth - 1) {\n if (dispatch)\n dispatch(state.tr.delete($cut.pos, $cut.pos + after.nodeSize).scrollIntoView());\n return true;\n }\n return false;\n};\n/**\nWhen the selection is empty and at the end of a textblock, select\nthe node coming after that textblock, if possible. This is intended\nto be bound to keys like delete, after\n[`joinForward`](https://prosemirror.net/docs/ref/#commands.joinForward) and similar deleting\ncommands, to provide a fall-back behavior when the schema doesn't\nallow deletion at the selected point.\n*/\nconst selectNodeForward = (state, dispatch, view) => {\n let { $head, empty } = state.selection, $cut = $head;\n if (!empty)\n return false;\n if ($head.parent.isTextblock) {\n if (view ? !view.endOfTextblock(\"forward\", state) : $head.parentOffset < $head.parent.content.size)\n return false;\n $cut = findCutAfter($head);\n }\n let node = $cut && $cut.nodeAfter;\n if (!node || !NodeSelection.isSelectable(node))\n return false;\n if (dispatch)\n dispatch(state.tr.setSelection(NodeSelection.create(state.doc, $cut.pos)).scrollIntoView());\n return true;\n};\nfunction findCutAfter($pos) {\n if (!$pos.parent.type.spec.isolating)\n for (let i = $pos.depth - 1; i >= 0; i--) {\n let parent = $pos.node(i);\n if ($pos.index(i) + 1 < parent.childCount)\n return $pos.doc.resolve($pos.after(i + 1));\n if (parent.type.spec.isolating)\n break;\n }\n return null;\n}\n/**\nJoin the selected block or, if there is a text selection, the\nclosest ancestor block of the selection that can be joined, with\nthe sibling above it.\n*/\nconst joinUp = (state, dispatch) => {\n let sel = state.selection, nodeSel = sel instanceof NodeSelection, point;\n if (nodeSel) {\n if (sel.node.isTextblock || !canJoin(state.doc, sel.from))\n return false;\n point = sel.from;\n }\n else {\n point = joinPoint(state.doc, sel.from, -1);\n if (point == null)\n return false;\n }\n if (dispatch) {\n let tr = state.tr.join(point);\n if (nodeSel)\n tr.setSelection(NodeSelection.create(tr.doc, point - state.doc.resolve(point).nodeBefore.nodeSize));\n dispatch(tr.scrollIntoView());\n }\n return true;\n};\n/**\nJoin the selected block, or the closest ancestor of the selection\nthat can be joined, with the sibling after it.\n*/\nconst joinDown = (state, dispatch) => {\n let sel = state.selection, point;\n if (sel instanceof NodeSelection) {\n if (sel.node.isTextblock || !canJoin(state.doc, sel.to))\n return false;\n point = sel.to;\n }\n else {\n point = joinPoint(state.doc, sel.to, 1);\n if (point == null)\n return false;\n }\n if (dispatch)\n dispatch(state.tr.join(point).scrollIntoView());\n return true;\n};\n/**\nLift the selected block, or the closest ancestor block of the\nselection that can be lifted, out of its parent node.\n*/\nconst lift = (state, dispatch) => {\n let { $from, $to } = state.selection;\n let range = $from.blockRange($to), target = range && liftTarget(range);\n if (target == null)\n return false;\n if (dispatch)\n dispatch(state.tr.lift(range, target).scrollIntoView());\n return true;\n};\n/**\nIf the selection is in a node whose type has a truthy\n[`code`](https://prosemirror.net/docs/ref/#model.NodeSpec.code) property in its spec, replace the\nselection with a newline character.\n*/\nconst newlineInCode = (state, dispatch) => {\n let { $head, $anchor } = state.selection;\n if (!$head.parent.type.spec.code || !$head.sameParent($anchor))\n return false;\n if (dispatch)\n dispatch(state.tr.insertText(\"\\n\").scrollIntoView());\n return true;\n};\nfunction defaultBlockAt(match) {\n for (let i = 0; i < match.edgeCount; i++) {\n let { type } = match.edge(i);\n if (type.isTextblock && !type.hasRequiredAttrs())\n return type;\n }\n return null;\n}\n/**\nWhen the selection is in a node with a truthy\n[`code`](https://prosemirror.net/docs/ref/#model.NodeSpec.code) property in its spec, create a\ndefault block after the code block, and move the cursor there.\n*/\nconst exitCode = (state, dispatch) => {\n let { $head, $anchor } = state.selection;\n if (!$head.parent.type.spec.code || !$head.sameParent($anchor))\n return false;\n let above = $head.node(-1), after = $head.indexAfter(-1), type = defaultBlockAt(above.contentMatchAt(after));\n if (!type || !above.canReplaceWith(after, after, type))\n return false;\n if (dispatch) {\n let pos = $head.after(), tr = state.tr.replaceWith(pos, pos, type.createAndFill());\n tr.setSelection(Selection.near(tr.doc.resolve(pos), 1));\n dispatch(tr.scrollIntoView());\n }\n return true;\n};\n/**\nIf a block node is selected, create an empty paragraph before (if\nit is its parent's first child) or after it.\n*/\nconst createParagraphNear = (state, dispatch) => {\n let sel = state.selection, { $from, $to } = sel;\n if (sel instanceof AllSelection || $from.parent.inlineContent || $to.parent.inlineContent)\n return false;\n let type = defaultBlockAt($to.parent.contentMatchAt($to.indexAfter()));\n if (!type || !type.isTextblock)\n return false;\n if (dispatch) {\n let side = (!$from.parentOffset && $to.index() < $to.parent.childCount ? $from : $to).pos;\n let tr = state.tr.insert(side, type.createAndFill());\n tr.setSelection(TextSelection.create(tr.doc, side + 1));\n dispatch(tr.scrollIntoView());\n }\n return true;\n};\n/**\nIf the cursor is in an empty textblock that can be lifted, lift the\nblock.\n*/\nconst liftEmptyBlock = (state, dispatch) => {\n let { $cursor } = state.selection;\n if (!$cursor || $cursor.parent.content.size)\n return false;\n if ($cursor.depth > 1 && $cursor.after() != $cursor.end(-1)) {\n let before = $cursor.before();\n if (canSplit(state.doc, before)) {\n if (dispatch)\n dispatch(state.tr.split(before).scrollIntoView());\n return true;\n }\n }\n let range = $cursor.blockRange(), target = range && liftTarget(range);\n if (target == null)\n return false;\n if (dispatch)\n dispatch(state.tr.lift(range, target).scrollIntoView());\n return true;\n};\n/**\nCreate a variant of [`splitBlock`](https://prosemirror.net/docs/ref/#commands.splitBlock) that uses\na custom function to determine the type of the newly split off block.\n*/\nfunction splitBlockAs(splitNode) {\n return (state, dispatch) => {\n let { $from, $to } = state.selection;\n if (state.selection instanceof NodeSelection && state.selection.node.isBlock) {\n if (!$from.parentOffset || !canSplit(state.doc, $from.pos))\n return false;\n if (dispatch)\n dispatch(state.tr.split($from.pos).scrollIntoView());\n return true;\n }\n if (!$from.depth)\n return false;\n let types = [];\n let splitDepth, deflt, atEnd = false, atStart = false;\n for (let d = $from.depth;; d--) {\n let node = $from.node(d);\n if (node.isBlock) {\n atEnd = $from.end(d) == $from.pos + ($from.depth - d);\n atStart = $from.start(d) == $from.pos - ($from.depth - d);\n deflt = defaultBlockAt($from.node(d - 1).contentMatchAt($from.indexAfter(d - 1)));\n let splitType = splitNode && splitNode($to.parent, atEnd, $from);\n types.unshift(splitType || (atEnd && deflt ? { type: deflt } : null));\n splitDepth = d;\n break;\n }\n else {\n if (d == 1)\n return false;\n types.unshift(null);\n }\n }\n let tr = state.tr;\n if (state.selection instanceof TextSelection || state.selection instanceof AllSelection)\n tr.deleteSelection();\n let splitPos = tr.mapping.map($from.pos);\n let can = canSplit(tr.doc, splitPos, types.length, types);\n if (!can) {\n types[0] = deflt ? { type: deflt } : null;\n can = canSplit(tr.doc, splitPos, types.length, types);\n }\n tr.split(splitPos, types.length, types);\n if (!atEnd && atStart && $from.node(splitDepth).type != deflt) {\n let first = tr.mapping.map($from.before(splitDepth)), $first = tr.doc.resolve(first);\n if (deflt && $from.node(splitDepth - 1).canReplaceWith($first.index(), $first.index() + 1, deflt))\n tr.setNodeMarkup(tr.mapping.map($from.before(splitDepth)), deflt);\n }\n if (dispatch)\n dispatch(tr.scrollIntoView());\n return true;\n };\n}\n/**\nSplit the parent block of the selection. If the selection is a text\nselection, also delete its content.\n*/\nconst splitBlock = splitBlockAs();\n/**\nActs like [`splitBlock`](https://prosemirror.net/docs/ref/#commands.splitBlock), but without\nresetting the set of active marks at the cursor.\n*/\nconst splitBlockKeepMarks = (state, dispatch) => {\n return splitBlock(state, dispatch && (tr => {\n let marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks());\n if (marks)\n tr.ensureMarks(marks);\n dispatch(tr);\n }));\n};\n/**\nMove the selection to the node wrapping the current selection, if\nany. (Will not select the document node.)\n*/\nconst selectParentNode = (state, dispatch) => {\n let { $from, to } = state.selection, pos;\n let same = $from.sharedDepth(to);\n if (same == 0)\n return false;\n pos = $from.before(same);\n if (dispatch)\n dispatch(state.tr.setSelection(NodeSelection.create(state.doc, pos)));\n return true;\n};\n/**\nSelect the whole document.\n*/\nconst selectAll = (state, dispatch) => {\n if (dispatch)\n dispatch(state.tr.setSelection(new AllSelection(state.doc)));\n return true;\n};\nfunction joinMaybeClear(state, $pos, dispatch) {\n let before = $pos.nodeBefore, after = $pos.nodeAfter, index = $pos.index();\n if (!before || !after || !before.type.compatibleContent(after.type))\n return false;\n if (!before.content.size && $pos.parent.canReplace(index - 1, index)) {\n if (dispatch)\n dispatch(state.tr.delete($pos.pos - before.nodeSize, $pos.pos).scrollIntoView());\n return true;\n }\n if (!$pos.parent.canReplace(index, index + 1) || !(after.isTextblock || canJoin(state.doc, $pos.pos)))\n return false;\n if (dispatch)\n dispatch(state.tr.join($pos.pos).scrollIntoView());\n return true;\n}\nfunction deleteBarrier(state, $cut, dispatch, dir) {\n let before = $cut.nodeBefore, after = $cut.nodeAfter, conn, match;\n let isolated = before.type.spec.isolating || after.type.spec.isolating;\n if (!isolated && joinMaybeClear(state, $cut, dispatch))\n return true;\n let canDelAfter = !isolated && $cut.parent.canReplace($cut.index(), $cut.index() + 1);\n if (canDelAfter &&\n (conn = (match = before.contentMatchAt(before.childCount)).findWrapping(after.type)) &&\n match.matchType(conn[0] || after.type).validEnd) {\n if (dispatch) {\n let end = $cut.pos + after.nodeSize, wrap = Fragment.empty;\n for (let i = conn.length - 1; i >= 0; i--)\n wrap = Fragment.from(conn[i].create(null, wrap));\n wrap = Fragment.from(before.copy(wrap));\n let tr = state.tr.step(new ReplaceAroundStep($cut.pos - 1, end, $cut.pos, end, new Slice(wrap, 1, 0), conn.length, true));\n let $joinAt = tr.doc.resolve(end + 2 * conn.length);\n if ($joinAt.nodeAfter && $joinAt.nodeAfter.type == before.type &&\n canJoin(tr.doc, $joinAt.pos))\n tr.join($joinAt.pos);\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n let selAfter = after.type.spec.isolating || (dir > 0 && isolated) ? null : Selection.findFrom($cut, 1);\n let range = selAfter && selAfter.$from.blockRange(selAfter.$to), target = range && liftTarget(range);\n if (target != null && target >= $cut.depth) {\n if (dispatch)\n dispatch(state.tr.lift(range, target).scrollIntoView());\n return true;\n }\n if (canDelAfter && textblockAt(after, \"start\", true) && textblockAt(before, \"end\")) {\n let at = before, wrap = [];\n for (;;) {\n wrap.push(at);\n if (at.isTextblock)\n break;\n at = at.lastChild;\n }\n let afterText = after, afterDepth = 1;\n for (; !afterText.isTextblock; afterText = afterText.firstChild)\n afterDepth++;\n if (at.canReplace(at.childCount, at.childCount, afterText.content)) {\n if (dispatch) {\n let end = Fragment.empty;\n for (let i = wrap.length - 1; i >= 0; i--)\n end = Fragment.from(wrap[i].copy(end));\n let tr = state.tr.step(new ReplaceAroundStep($cut.pos - wrap.length, $cut.pos + after.nodeSize, $cut.pos + afterDepth, $cut.pos + after.nodeSize - afterDepth, new Slice(end, wrap.length, 0), 0, true));\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n }\n return false;\n}\nfunction selectTextblockSide(side) {\n return function (state, dispatch) {\n let sel = state.selection, $pos = side < 0 ? sel.$from : sel.$to;\n let depth = $pos.depth;\n while ($pos.node(depth).isInline) {\n if (!depth)\n return false;\n depth--;\n }\n if (!$pos.node(depth).isTextblock)\n return false;\n if (dispatch)\n dispatch(state.tr.setSelection(TextSelection.create(state.doc, side < 0 ? $pos.start(depth) : $pos.end(depth))));\n return true;\n };\n}\n/**\nMoves the cursor to the start of current text block.\n*/\nconst selectTextblockStart = selectTextblockSide(-1);\n/**\nMoves the cursor to the end of current text block.\n*/\nconst selectTextblockEnd = selectTextblockSide(1);\n// Parameterized commands\n/**\nWrap the selection in a node of the given type with the given\nattributes.\n*/\nfunction wrapIn(nodeType, attrs = null) {\n return function (state, dispatch) {\n let { $from, $to } = state.selection;\n let range = $from.blockRange($to), wrapping = range && findWrapping(range, nodeType, attrs);\n if (!wrapping)\n return false;\n if (dispatch)\n dispatch(state.tr.wrap(range, wrapping).scrollIntoView());\n return true;\n };\n}\n/**\nReturns a command that tries to set the selected textblocks to the\ngiven node type with the given attributes.\n*/\nfunction setBlockType(nodeType, attrs = null) {\n return function (state, dispatch) {\n let applicable = false;\n for (let i = 0; i < state.selection.ranges.length && !applicable; i++) {\n let { $from: { pos: from }, $to: { pos: to } } = state.selection.ranges[i];\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (applicable)\n return false;\n if (!node.isTextblock || node.hasMarkup(nodeType, attrs))\n return;\n if (node.type == nodeType) {\n applicable = true;\n }\n else {\n let $pos = state.doc.resolve(pos), index = $pos.index();\n applicable = $pos.parent.canReplaceWith(index, index + 1, nodeType);\n }\n });\n }\n if (!applicable)\n return false;\n if (dispatch) {\n let tr = state.tr;\n for (let i = 0; i < state.selection.ranges.length; i++) {\n let { $from: { pos: from }, $to: { pos: to } } = state.selection.ranges[i];\n tr.setBlockType(from, to, nodeType, attrs);\n }\n dispatch(tr.scrollIntoView());\n }\n return true;\n };\n}\nfunction markApplies(doc, ranges, type, enterAtoms) {\n for (let i = 0; i < ranges.length; i++) {\n let { $from, $to } = ranges[i];\n let can = $from.depth == 0 ? doc.inlineContent && doc.type.allowsMarkType(type) : false;\n doc.nodesBetween($from.pos, $to.pos, (node, pos) => {\n if (can || !enterAtoms && node.isAtom && node.isInline && pos >= $from.pos && pos + node.nodeSize <= $to.pos)\n return false;\n can = node.inlineContent && node.type.allowsMarkType(type);\n });\n if (can)\n return true;\n }\n return false;\n}\nfunction removeInlineAtoms(ranges) {\n let result = [];\n for (let i = 0; i < ranges.length; i++) {\n let { $from, $to } = ranges[i];\n $from.doc.nodesBetween($from.pos, $to.pos, (node, pos) => {\n if (node.isAtom && node.content.size && node.isInline && pos >= $from.pos && pos + node.nodeSize <= $to.pos) {\n if (pos + 1 > $from.pos)\n result.push(new SelectionRange($from, $from.doc.resolve(pos + 1)));\n $from = $from.doc.resolve(pos + 1 + node.content.size);\n return false;\n }\n });\n if ($from.pos < $to.pos)\n result.push(new SelectionRange($from, $to));\n }\n return result;\n}\n/**\nCreate a command function that toggles the given mark with the\ngiven attributes. Will return `false` when the current selection\ndoesn't support that mark. This will remove the mark if any marks\nof that type exist in the selection, or add it otherwise. If the\nselection is empty, this applies to the [stored\nmarks](https://prosemirror.net/docs/ref/#state.EditorState.storedMarks) instead of a range of the\ndocument.\n*/\nfunction toggleMark(markType, attrs = null, options) {\n let removeWhenPresent = (options && options.removeWhenPresent) !== false;\n let enterAtoms = (options && options.enterInlineAtoms) !== false;\n let dropSpace = !(options && options.includeWhitespace);\n return function (state, dispatch) {\n let { empty, $cursor, ranges } = state.selection;\n if ((empty && !$cursor) || !markApplies(state.doc, ranges, markType, enterAtoms))\n return false;\n if (dispatch) {\n if ($cursor) {\n if (markType.isInSet(state.storedMarks || $cursor.marks()))\n dispatch(state.tr.removeStoredMark(markType));\n else\n dispatch(state.tr.addStoredMark(markType.create(attrs)));\n }\n else {\n let add, tr = state.tr;\n if (!enterAtoms)\n ranges = removeInlineAtoms(ranges);\n if (removeWhenPresent) {\n add = !ranges.some(r => state.doc.rangeHasMark(r.$from.pos, r.$to.pos, markType));\n }\n else {\n add = !ranges.every(r => {\n let missing = false;\n tr.doc.nodesBetween(r.$from.pos, r.$to.pos, (node, pos, parent) => {\n if (missing)\n return false;\n missing = !markType.isInSet(node.marks) && !!parent && parent.type.allowsMarkType(markType) &&\n !(node.isText && /^\\s*$/.test(node.textBetween(Math.max(0, r.$from.pos - pos), Math.min(node.nodeSize, r.$to.pos - pos))));\n });\n return !missing;\n });\n }\n for (let i = 0; i < ranges.length; i++) {\n let { $from, $to } = ranges[i];\n if (!add) {\n tr.removeMark($from.pos, $to.pos, markType);\n }\n else {\n let from = $from.pos, to = $to.pos, start = $from.nodeAfter, end = $to.nodeBefore;\n let spaceStart = dropSpace && start && start.isText ? /^\\s*/.exec(start.text)[0].length : 0;\n let spaceEnd = dropSpace && end && end.isText ? /\\s*$/.exec(end.text)[0].length : 0;\n if (from + spaceStart < to) {\n from += spaceStart;\n to -= spaceEnd;\n }\n tr.addMark(from, to, markType.create(attrs));\n }\n }\n dispatch(tr.scrollIntoView());\n }\n }\n return true;\n };\n}\nfunction wrapDispatchForJoin(dispatch, isJoinable) {\n return (tr) => {\n if (!tr.isGeneric)\n return dispatch(tr);\n let ranges = [];\n for (let i = 0; i < tr.mapping.maps.length; i++) {\n let map = tr.mapping.maps[i];\n for (let j = 0; j < ranges.length; j++)\n ranges[j] = map.map(ranges[j]);\n map.forEach((_s, _e, from, to) => ranges.push(from, to));\n }\n // Figure out which joinable points exist inside those ranges,\n // by checking all node boundaries in their parent nodes.\n let joinable = [];\n for (let i = 0; i < ranges.length; i += 2) {\n let from = ranges[i], to = ranges[i + 1];\n let $from = tr.doc.resolve(from), depth = $from.sharedDepth(to), parent = $from.node(depth);\n for (let index = $from.indexAfter(depth), pos = $from.after(depth + 1); pos <= to; ++index) {\n let after = parent.maybeChild(index);\n if (!after)\n break;\n if (index && joinable.indexOf(pos) == -1) {\n let before = parent.child(index - 1);\n if (before.type == after.type && isJoinable(before, after))\n joinable.push(pos);\n }\n pos += after.nodeSize;\n }\n }\n // Join the joinable points\n joinable.sort((a, b) => a - b);\n for (let i = joinable.length - 1; i >= 0; i--) {\n if (canJoin(tr.doc, joinable[i]))\n tr.join(joinable[i]);\n }\n dispatch(tr);\n };\n}\n/**\nWrap a command so that, when it produces a transform that causes\ntwo joinable nodes to end up next to each other, those are joined.\nNodes are considered joinable when they are of the same type and\nwhen the `isJoinable` predicate returns true for them or, if an\narray of strings was passed, if their node type name is in that\narray.\n*/\nfunction autoJoin(command, isJoinable) {\n let canJoin = Array.isArray(isJoinable) ? (node) => isJoinable.indexOf(node.type.name) > -1\n : isJoinable;\n return (state, dispatch, view) => command(state, dispatch && wrapDispatchForJoin(dispatch, canJoin), view);\n}\n/**\nCombine a number of command functions into a single function (which\ncalls them one by one until one returns true).\n*/\nfunction chainCommands(...commands) {\n return function (state, dispatch, view) {\n for (let i = 0; i < commands.length; i++)\n if (commands[i](state, dispatch, view))\n return true;\n return false;\n };\n}\nlet backspace = chainCommands(deleteSelection, joinBackward, selectNodeBackward);\nlet del = chainCommands(deleteSelection, joinForward, selectNodeForward);\n/**\nA basic keymap containing bindings not specific to any schema.\nBinds the following keys (when multiple commands are listed, they\nare chained with [`chainCommands`](https://prosemirror.net/docs/ref/#commands.chainCommands)):\n\n* **Enter** to `newlineInCode`, `createParagraphNear`, `liftEmptyBlock`, `splitBlock`\n* **Mod-Enter** to `exitCode`\n* **Backspace** and **Mod-Backspace** to `deleteSelection`, `joinBackward`, `selectNodeBackward`\n* **Delete** and **Mod-Delete** to `deleteSelection`, `joinForward`, `selectNodeForward`\n* **Mod-Delete** to `deleteSelection`, `joinForward`, `selectNodeForward`\n* **Mod-a** to `selectAll`\n*/\nconst pcBaseKeymap = {\n \"Enter\": chainCommands(newlineInCode, createParagraphNear, liftEmptyBlock, splitBlock),\n \"Mod-Enter\": exitCode,\n \"Backspace\": backspace,\n \"Mod-Backspace\": backspace,\n \"Shift-Backspace\": backspace,\n \"Delete\": del,\n \"Mod-Delete\": del,\n \"Mod-a\": selectAll\n};\n/**\nA copy of `pcBaseKeymap` that also binds **Ctrl-h** like Backspace,\n**Ctrl-d** like Delete, **Alt-Backspace** like Ctrl-Backspace, and\n**Ctrl-Alt-Backspace**, **Alt-Delete**, and **Alt-d** like\nCtrl-Delete.\n*/\nconst macBaseKeymap = {\n \"Ctrl-h\": pcBaseKeymap[\"Backspace\"],\n \"Alt-Backspace\": pcBaseKeymap[\"Mod-Backspace\"],\n \"Ctrl-d\": pcBaseKeymap[\"Delete\"],\n \"Ctrl-Alt-Backspace\": pcBaseKeymap[\"Mod-Delete\"],\n \"Alt-Delete\": pcBaseKeymap[\"Mod-Delete\"],\n \"Alt-d\": pcBaseKeymap[\"Mod-Delete\"],\n \"Ctrl-a\": selectTextblockStart,\n \"Ctrl-e\": selectTextblockEnd\n};\nfor (let key in pcBaseKeymap)\n macBaseKeymap[key] = pcBaseKeymap[key];\nconst mac = typeof navigator != \"undefined\" ? /Mac|iP(hone|[oa]d)/.test(navigator.platform)\n // @ts-ignore\n : typeof os != \"undefined\" && os.platform ? os.platform() == \"darwin\" : false;\n/**\nDepending on the detected platform, this will hold\n[`pcBasekeymap`](https://prosemirror.net/docs/ref/#commands.pcBaseKeymap) or\n[`macBaseKeymap`](https://prosemirror.net/docs/ref/#commands.macBaseKeymap).\n*/\nconst baseKeymap = mac ? macBaseKeymap : pcBaseKeymap;\n\nexport { autoJoin, baseKeymap, chainCommands, createParagraphNear, deleteSelection, exitCode, joinBackward, joinDown, joinForward, joinTextblockBackward, joinTextblockForward, joinUp, lift, liftEmptyBlock, macBaseKeymap, newlineInCode, pcBaseKeymap, selectAll, selectNodeBackward, selectNodeForward, selectParentNode, selectTextblockEnd, selectTextblockStart, setBlockType, splitBlock, splitBlockAs, splitBlockKeepMarks, toggleMark, wrapIn };\n"],"names":["deleteSelection","state","dispatch","selection","empty","tr","scrollIntoView","atBlockStart","view","$cursor","endOfTextblock","parentOffset","joinBackward","$cut","findCutBefore","range","blockRange","target","liftTarget","lift","before","nodeBefore","deleteBarrier","parent","content","size","textblockAt","NodeSelection","isSelectable","depth","delStep","replaceStep","doc","after","Slice","slice","to","from","step","setSelection","Selection","findFrom","resolve","mapping","map","pos","create","nodeSize","node","childCount","isAtom","delete","joinTextblockBackward","joinTextblocksAround","joinTextblockForward","atBlockEnd","findCutAfter","beforeText","beforePos","isTextblock","type","spec","isolating","child","lastChild","afterText","nodeAfter","afterPos","firstChild","ReplaceStep","TextSelection","side","only","scan","selectNodeBackward","$head","$pos","i","index","joinForward","selectNodeForward","joinUp","point","sel","nodeSel","canJoin","joinPoint","join","joinDown","$from","$to","newlineInCode","$anchor","code","sameParent","insertText","defaultBlockAt","match","edgeCount","edge","hasRequiredAttrs","exitCode","above","indexAfter","contentMatchAt","canReplaceWith","replaceWith","createAndFill","near","createParagraphNear","AllSelection","inlineContent","insert","liftEmptyBlock","end","canSplit","split","selectParentNode","same","sharedDepth","dir","conn","isolated","compatibleContent","canReplace","joinMaybeClear","canDelAfter","findWrapping","matchType","validEnd","wrap","Fragment","length","copy","ReplaceAroundStep","$joinAt","selAfter","at","push","afterDepth","selectTextblockSide","isInline","start","selectTextblockStart","selectTextblockEnd","wrapIn","nodeType","attrs","wrapping","setBlockType","applicable","ranges","nodesBetween","hasMarkup","navigator","test","platform","os"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../node_modules/prosemirror-commands/dist/index.js"],"sourcesContent":["import { liftTarget, replaceStep, ReplaceStep, canJoin, joinPoint, canSplit, ReplaceAroundStep, findWrapping } from 'prosemirror-transform';\nimport { Slice, Fragment } from 'prosemirror-model';\nimport { NodeSelection, Selection, TextSelection, AllSelection, SelectionRange } from 'prosemirror-state';\n\n/**\nDelete the selection, if there is one.\n*/\nconst deleteSelection = (state, dispatch) => {\n if (state.selection.empty)\n return false;\n if (dispatch)\n dispatch(state.tr.deleteSelection().scrollIntoView());\n return true;\n};\nfunction atBlockStart(state, view) {\n let { $cursor } = state.selection;\n if (!$cursor || (view ? !view.endOfTextblock(\"backward\", state)\n : $cursor.parentOffset > 0))\n return null;\n return $cursor;\n}\n/**\nIf the selection is empty and at the start of a textblock, try to\nreduce the distance between that block and the one before it—if\nthere's a block directly before it that can be joined, join them.\nIf not, try to move the selected block closer to the next one in\nthe document structure by lifting it out of its parent or moving it\ninto a parent of the previous block. Will use the view for accurate\n(bidi-aware) start-of-textblock detection if given.\n*/\nconst joinBackward = (state, dispatch, view) => {\n let $cursor = atBlockStart(state, view);\n if (!$cursor)\n return false;\n let $cut = findCutBefore($cursor);\n // If there is no node before this, try to lift\n if (!$cut) {\n let range = $cursor.blockRange(), target = range && liftTarget(range);\n if (target == null)\n return false;\n if (dispatch)\n dispatch(state.tr.lift(range, target).scrollIntoView());\n return true;\n }\n let before = $cut.nodeBefore;\n // Apply the joining algorithm\n if (deleteBarrier(state, $cut, dispatch, -1))\n return true;\n // If the node below has no content and the node above is\n // selectable, delete the node below and select the one above.\n if ($cursor.parent.content.size == 0 &&\n (textblockAt(before, \"end\") || NodeSelection.isSelectable(before))) {\n for (let depth = $cursor.depth;; depth--) {\n let delStep = replaceStep(state.doc, $cursor.before(depth), $cursor.after(depth), Slice.empty);\n if (delStep && delStep.slice.size < delStep.to - delStep.from) {\n if (dispatch) {\n let tr = state.tr.step(delStep);\n tr.setSelection(textblockAt(before, \"end\")\n ? Selection.findFrom(tr.doc.resolve(tr.mapping.map($cut.pos, -1)), -1)\n : NodeSelection.create(tr.doc, $cut.pos - before.nodeSize));\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n if (depth == 1 || $cursor.node(depth - 1).childCount > 1)\n break;\n }\n }\n // If the node before is an atom, delete it\n if (before.isAtom && $cut.depth == $cursor.depth - 1) {\n if (dispatch)\n dispatch(state.tr.delete($cut.pos - before.nodeSize, $cut.pos).scrollIntoView());\n return true;\n }\n return false;\n};\n/**\nA more limited form of [`joinBackward`](https://prosemirror.net/docs/ref/#commands.joinBackward)\nthat only tries to join the current textblock to the one before\nit, if the cursor is at the start of a textblock.\n*/\nconst joinTextblockBackward = (state, dispatch, view) => {\n let $cursor = atBlockStart(state, view);\n if (!$cursor)\n return false;\n let $cut = findCutBefore($cursor);\n return $cut ? joinTextblocksAround(state, $cut, dispatch) : false;\n};\n/**\nA more limited form of [`joinForward`](https://prosemirror.net/docs/ref/#commands.joinForward)\nthat only tries to join the current textblock to the one after\nit, if the cursor is at the end of a textblock.\n*/\nconst joinTextblockForward = (state, dispatch, view) => {\n let $cursor = atBlockEnd(state, view);\n if (!$cursor)\n return false;\n let $cut = findCutAfter($cursor);\n return $cut ? joinTextblocksAround(state, $cut, dispatch) : false;\n};\nfunction joinTextblocksAround(state, $cut, dispatch) {\n let before = $cut.nodeBefore, beforeText = before, beforePos = $cut.pos - 1;\n for (; !beforeText.isTextblock; beforePos--) {\n if (beforeText.type.spec.isolating)\n return false;\n let child = beforeText.lastChild;\n if (!child)\n return false;\n beforeText = child;\n }\n let after = $cut.nodeAfter, afterText = after, afterPos = $cut.pos + 1;\n for (; !afterText.isTextblock; afterPos++) {\n if (afterText.type.spec.isolating)\n return false;\n let child = afterText.firstChild;\n if (!child)\n return false;\n afterText = child;\n }\n let step = replaceStep(state.doc, beforePos, afterPos, Slice.empty);\n if (!step || step.from != beforePos ||\n step instanceof ReplaceStep && step.slice.size >= afterPos - beforePos)\n return false;\n if (dispatch) {\n let tr = state.tr.step(step);\n tr.setSelection(TextSelection.create(tr.doc, beforePos));\n dispatch(tr.scrollIntoView());\n }\n return true;\n}\nfunction textblockAt(node, side, only = false) {\n for (let scan = node; scan; scan = (side == \"start\" ? scan.firstChild : scan.lastChild)) {\n if (scan.isTextblock)\n return true;\n if (only && scan.childCount != 1)\n return false;\n }\n return false;\n}\n/**\nWhen the selection is empty and at the start of a textblock, select\nthe node before that textblock, if possible. This is intended to be\nbound to keys like backspace, after\n[`joinBackward`](https://prosemirror.net/docs/ref/#commands.joinBackward) or other deleting\ncommands, as a fall-back behavior when the schema doesn't allow\ndeletion at the selected point.\n*/\nconst selectNodeBackward = (state, dispatch, view) => {\n let { $head, empty } = state.selection, $cut = $head;\n if (!empty)\n return false;\n if ($head.parent.isTextblock) {\n if (view ? !view.endOfTextblock(\"backward\", state) : $head.parentOffset > 0)\n return false;\n $cut = findCutBefore($head);\n }\n let node = $cut && $cut.nodeBefore;\n if (!node || !NodeSelection.isSelectable(node))\n return false;\n if (dispatch)\n dispatch(state.tr.setSelection(NodeSelection.create(state.doc, $cut.pos - node.nodeSize)).scrollIntoView());\n return true;\n};\nfunction findCutBefore($pos) {\n if (!$pos.parent.type.spec.isolating)\n for (let i = $pos.depth - 1; i >= 0; i--) {\n if ($pos.index(i) > 0)\n return $pos.doc.resolve($pos.before(i + 1));\n if ($pos.node(i).type.spec.isolating)\n break;\n }\n return null;\n}\nfunction atBlockEnd(state, view) {\n let { $cursor } = state.selection;\n if (!$cursor || (view ? !view.endOfTextblock(\"forward\", state)\n : $cursor.parentOffset < $cursor.parent.content.size))\n return null;\n return $cursor;\n}\n/**\nIf the selection is empty and the cursor is at the end of a\ntextblock, try to reduce or remove the boundary between that block\nand the one after it, either by joining them or by moving the other\nblock closer to this one in the tree structure. Will use the view\nfor accurate start-of-textblock detection if given.\n*/\nconst joinForward = (state, dispatch, view) => {\n let $cursor = atBlockEnd(state, view);\n if (!$cursor)\n return false;\n let $cut = findCutAfter($cursor);\n // If there is no node after this, there's nothing to do\n if (!$cut)\n return false;\n let after = $cut.nodeAfter;\n // Try the joining algorithm\n if (deleteBarrier(state, $cut, dispatch, 1))\n return true;\n // If the node above has no content and the node below is\n // selectable, delete the node above and select the one below.\n if ($cursor.parent.content.size == 0 &&\n (textblockAt(after, \"start\") || NodeSelection.isSelectable(after))) {\n let delStep = replaceStep(state.doc, $cursor.before(), $cursor.after(), Slice.empty);\n if (delStep && delStep.slice.size < delStep.to - delStep.from) {\n if (dispatch) {\n let tr = state.tr.step(delStep);\n tr.setSelection(textblockAt(after, \"start\") ? Selection.findFrom(tr.doc.resolve(tr.mapping.map($cut.pos)), 1)\n : NodeSelection.create(tr.doc, tr.mapping.map($cut.pos)));\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n }\n // If the next node is an atom, delete it\n if (after.isAtom && $cut.depth == $cursor.depth - 1) {\n if (dispatch)\n dispatch(state.tr.delete($cut.pos, $cut.pos + after.nodeSize).scrollIntoView());\n return true;\n }\n return false;\n};\n/**\nWhen the selection is empty and at the end of a textblock, select\nthe node coming after that textblock, if possible. This is intended\nto be bound to keys like delete, after\n[`joinForward`](https://prosemirror.net/docs/ref/#commands.joinForward) and similar deleting\ncommands, to provide a fall-back behavior when the schema doesn't\nallow deletion at the selected point.\n*/\nconst selectNodeForward = (state, dispatch, view) => {\n let { $head, empty } = state.selection, $cut = $head;\n if (!empty)\n return false;\n if ($head.parent.isTextblock) {\n if (view ? !view.endOfTextblock(\"forward\", state) : $head.parentOffset < $head.parent.content.size)\n return false;\n $cut = findCutAfter($head);\n }\n let node = $cut && $cut.nodeAfter;\n if (!node || !NodeSelection.isSelectable(node))\n return false;\n if (dispatch)\n dispatch(state.tr.setSelection(NodeSelection.create(state.doc, $cut.pos)).scrollIntoView());\n return true;\n};\nfunction findCutAfter($pos) {\n if (!$pos.parent.type.spec.isolating)\n for (let i = $pos.depth - 1; i >= 0; i--) {\n let parent = $pos.node(i);\n if ($pos.index(i) + 1 < parent.childCount)\n return $pos.doc.resolve($pos.after(i + 1));\n if (parent.type.spec.isolating)\n break;\n }\n return null;\n}\n/**\nJoin the selected block or, if there is a text selection, the\nclosest ancestor block of the selection that can be joined, with\nthe sibling above it.\n*/\nconst joinUp = (state, dispatch) => {\n let sel = state.selection, nodeSel = sel instanceof NodeSelection, point;\n if (nodeSel) {\n if (sel.node.isTextblock || !canJoin(state.doc, sel.from))\n return false;\n point = sel.from;\n }\n else {\n point = joinPoint(state.doc, sel.from, -1);\n if (point == null)\n return false;\n }\n if (dispatch) {\n let tr = state.tr.join(point);\n if (nodeSel)\n tr.setSelection(NodeSelection.create(tr.doc, point - state.doc.resolve(point).nodeBefore.nodeSize));\n dispatch(tr.scrollIntoView());\n }\n return true;\n};\n/**\nJoin the selected block, or the closest ancestor of the selection\nthat can be joined, with the sibling after it.\n*/\nconst joinDown = (state, dispatch) => {\n let sel = state.selection, point;\n if (sel instanceof NodeSelection) {\n if (sel.node.isTextblock || !canJoin(state.doc, sel.to))\n return false;\n point = sel.to;\n }\n else {\n point = joinPoint(state.doc, sel.to, 1);\n if (point == null)\n return false;\n }\n if (dispatch)\n dispatch(state.tr.join(point).scrollIntoView());\n return true;\n};\n/**\nLift the selected block, or the closest ancestor block of the\nselection that can be lifted, out of its parent node.\n*/\nconst lift = (state, dispatch) => {\n let { $from, $to } = state.selection;\n let range = $from.blockRange($to), target = range && liftTarget(range);\n if (target == null)\n return false;\n if (dispatch)\n dispatch(state.tr.lift(range, target).scrollIntoView());\n return true;\n};\n/**\nIf the selection is in a node whose type has a truthy\n[`code`](https://prosemirror.net/docs/ref/#model.NodeSpec.code) property in its spec, replace the\nselection with a newline character.\n*/\nconst newlineInCode = (state, dispatch) => {\n let { $head, $anchor } = state.selection;\n if (!$head.parent.type.spec.code || !$head.sameParent($anchor))\n return false;\n if (dispatch)\n dispatch(state.tr.insertText(\"\\n\").scrollIntoView());\n return true;\n};\nfunction defaultBlockAt(match) {\n for (let i = 0; i < match.edgeCount; i++) {\n let { type } = match.edge(i);\n if (type.isTextblock && !type.hasRequiredAttrs())\n return type;\n }\n return null;\n}\n/**\nWhen the selection is in a node with a truthy\n[`code`](https://prosemirror.net/docs/ref/#model.NodeSpec.code) property in its spec, create a\ndefault block after the code block, and move the cursor there.\n*/\nconst exitCode = (state, dispatch) => {\n let { $head, $anchor } = state.selection;\n if (!$head.parent.type.spec.code || !$head.sameParent($anchor))\n return false;\n let above = $head.node(-1), after = $head.indexAfter(-1), type = defaultBlockAt(above.contentMatchAt(after));\n if (!type || !above.canReplaceWith(after, after, type))\n return false;\n if (dispatch) {\n let pos = $head.after(), tr = state.tr.replaceWith(pos, pos, type.createAndFill());\n tr.setSelection(Selection.near(tr.doc.resolve(pos), 1));\n dispatch(tr.scrollIntoView());\n }\n return true;\n};\n/**\nIf a block node is selected, create an empty paragraph before (if\nit is its parent's first child) or after it.\n*/\nconst createParagraphNear = (state, dispatch) => {\n let sel = state.selection, { $from, $to } = sel;\n if (sel instanceof AllSelection || $from.parent.inlineContent || $to.parent.inlineContent)\n return false;\n let type = defaultBlockAt($to.parent.contentMatchAt($to.indexAfter()));\n if (!type || !type.isTextblock)\n return false;\n if (dispatch) {\n let side = (!$from.parentOffset && $to.index() < $to.parent.childCount ? $from : $to).pos;\n let tr = state.tr.insert(side, type.createAndFill());\n tr.setSelection(TextSelection.create(tr.doc, side + 1));\n dispatch(tr.scrollIntoView());\n }\n return true;\n};\n/**\nIf the cursor is in an empty textblock that can be lifted, lift the\nblock.\n*/\nconst liftEmptyBlock = (state, dispatch) => {\n let { $cursor } = state.selection;\n if (!$cursor || $cursor.parent.content.size)\n return false;\n if ($cursor.depth > 1 && $cursor.after() != $cursor.end(-1)) {\n let before = $cursor.before();\n if (canSplit(state.doc, before)) {\n if (dispatch)\n dispatch(state.tr.split(before).scrollIntoView());\n return true;\n }\n }\n let range = $cursor.blockRange(), target = range && liftTarget(range);\n if (target == null)\n return false;\n if (dispatch)\n dispatch(state.tr.lift(range, target).scrollIntoView());\n return true;\n};\n/**\nCreate a variant of [`splitBlock`](https://prosemirror.net/docs/ref/#commands.splitBlock) that uses\na custom function to determine the type of the newly split off block.\n*/\nfunction splitBlockAs(splitNode) {\n return (state, dispatch) => {\n let { $from, $to } = state.selection;\n if (state.selection instanceof NodeSelection && state.selection.node.isBlock) {\n if (!$from.parentOffset || !canSplit(state.doc, $from.pos))\n return false;\n if (dispatch)\n dispatch(state.tr.split($from.pos).scrollIntoView());\n return true;\n }\n if (!$from.depth)\n return false;\n let types = [];\n let splitDepth, deflt, atEnd = false, atStart = false;\n for (let d = $from.depth;; d--) {\n let node = $from.node(d);\n if (node.isBlock) {\n atEnd = $from.end(d) == $from.pos + ($from.depth - d);\n atStart = $from.start(d) == $from.pos - ($from.depth - d);\n deflt = defaultBlockAt($from.node(d - 1).contentMatchAt($from.indexAfter(d - 1)));\n let splitType = splitNode && splitNode($to.parent, atEnd, $from);\n types.unshift(splitType || (atEnd && deflt ? { type: deflt } : null));\n splitDepth = d;\n break;\n }\n else {\n if (d == 1)\n return false;\n types.unshift(null);\n }\n }\n let tr = state.tr;\n if (state.selection instanceof TextSelection || state.selection instanceof AllSelection)\n tr.deleteSelection();\n let splitPos = tr.mapping.map($from.pos);\n let can = canSplit(tr.doc, splitPos, types.length, types);\n if (!can) {\n types[0] = deflt ? { type: deflt } : null;\n can = canSplit(tr.doc, splitPos, types.length, types);\n }\n tr.split(splitPos, types.length, types);\n if (!atEnd && atStart && $from.node(splitDepth).type != deflt) {\n let first = tr.mapping.map($from.before(splitDepth)), $first = tr.doc.resolve(first);\n if (deflt && $from.node(splitDepth - 1).canReplaceWith($first.index(), $first.index() + 1, deflt))\n tr.setNodeMarkup(tr.mapping.map($from.before(splitDepth)), deflt);\n }\n if (dispatch)\n dispatch(tr.scrollIntoView());\n return true;\n };\n}\n/**\nSplit the parent block of the selection. If the selection is a text\nselection, also delete its content.\n*/\nconst splitBlock = splitBlockAs();\n/**\nActs like [`splitBlock`](https://prosemirror.net/docs/ref/#commands.splitBlock), but without\nresetting the set of active marks at the cursor.\n*/\nconst splitBlockKeepMarks = (state, dispatch) => {\n return splitBlock(state, dispatch && (tr => {\n let marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks());\n if (marks)\n tr.ensureMarks(marks);\n dispatch(tr);\n }));\n};\n/**\nMove the selection to the node wrapping the current selection, if\nany. (Will not select the document node.)\n*/\nconst selectParentNode = (state, dispatch) => {\n let { $from, to } = state.selection, pos;\n let same = $from.sharedDepth(to);\n if (same == 0)\n return false;\n pos = $from.before(same);\n if (dispatch)\n dispatch(state.tr.setSelection(NodeSelection.create(state.doc, pos)));\n return true;\n};\n/**\nSelect the whole document.\n*/\nconst selectAll = (state, dispatch) => {\n if (dispatch)\n dispatch(state.tr.setSelection(new AllSelection(state.doc)));\n return true;\n};\nfunction joinMaybeClear(state, $pos, dispatch) {\n let before = $pos.nodeBefore, after = $pos.nodeAfter, index = $pos.index();\n if (!before || !after || !before.type.compatibleContent(after.type))\n return false;\n if (!before.content.size && $pos.parent.canReplace(index - 1, index)) {\n if (dispatch)\n dispatch(state.tr.delete($pos.pos - before.nodeSize, $pos.pos).scrollIntoView());\n return true;\n }\n if (!$pos.parent.canReplace(index, index + 1) || !(after.isTextblock || canJoin(state.doc, $pos.pos)))\n return false;\n if (dispatch)\n dispatch(state.tr.join($pos.pos).scrollIntoView());\n return true;\n}\nfunction deleteBarrier(state, $cut, dispatch, dir) {\n let before = $cut.nodeBefore, after = $cut.nodeAfter, conn, match;\n let isolated = before.type.spec.isolating || after.type.spec.isolating;\n if (!isolated && joinMaybeClear(state, $cut, dispatch))\n return true;\n let canDelAfter = !isolated && $cut.parent.canReplace($cut.index(), $cut.index() + 1);\n if (canDelAfter &&\n (conn = (match = before.contentMatchAt(before.childCount)).findWrapping(after.type)) &&\n match.matchType(conn[0] || after.type).validEnd) {\n if (dispatch) {\n let end = $cut.pos + after.nodeSize, wrap = Fragment.empty;\n for (let i = conn.length - 1; i >= 0; i--)\n wrap = Fragment.from(conn[i].create(null, wrap));\n wrap = Fragment.from(before.copy(wrap));\n let tr = state.tr.step(new ReplaceAroundStep($cut.pos - 1, end, $cut.pos, end, new Slice(wrap, 1, 0), conn.length, true));\n let $joinAt = tr.doc.resolve(end + 2 * conn.length);\n if ($joinAt.nodeAfter && $joinAt.nodeAfter.type == before.type &&\n canJoin(tr.doc, $joinAt.pos))\n tr.join($joinAt.pos);\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n let selAfter = after.type.spec.isolating || (dir > 0 && isolated) ? null : Selection.findFrom($cut, 1);\n let range = selAfter && selAfter.$from.blockRange(selAfter.$to), target = range && liftTarget(range);\n if (target != null && target >= $cut.depth) {\n if (dispatch)\n dispatch(state.tr.lift(range, target).scrollIntoView());\n return true;\n }\n if (canDelAfter && textblockAt(after, \"start\", true) && textblockAt(before, \"end\")) {\n let at = before, wrap = [];\n for (;;) {\n wrap.push(at);\n if (at.isTextblock)\n break;\n at = at.lastChild;\n }\n let afterText = after, afterDepth = 1;\n for (; !afterText.isTextblock; afterText = afterText.firstChild)\n afterDepth++;\n if (at.canReplace(at.childCount, at.childCount, afterText.content)) {\n if (dispatch) {\n let end = Fragment.empty;\n for (let i = wrap.length - 1; i >= 0; i--)\n end = Fragment.from(wrap[i].copy(end));\n let tr = state.tr.step(new ReplaceAroundStep($cut.pos - wrap.length, $cut.pos + after.nodeSize, $cut.pos + afterDepth, $cut.pos + after.nodeSize - afterDepth, new Slice(end, wrap.length, 0), 0, true));\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n }\n return false;\n}\nfunction selectTextblockSide(side) {\n return function (state, dispatch) {\n let sel = state.selection, $pos = side < 0 ? sel.$from : sel.$to;\n let depth = $pos.depth;\n while ($pos.node(depth).isInline) {\n if (!depth)\n return false;\n depth--;\n }\n if (!$pos.node(depth).isTextblock)\n return false;\n if (dispatch)\n dispatch(state.tr.setSelection(TextSelection.create(state.doc, side < 0 ? $pos.start(depth) : $pos.end(depth))));\n return true;\n };\n}\n/**\nMoves the cursor to the start of current text block.\n*/\nconst selectTextblockStart = selectTextblockSide(-1);\n/**\nMoves the cursor to the end of current text block.\n*/\nconst selectTextblockEnd = selectTextblockSide(1);\n// Parameterized commands\n/**\nWrap the selection in a node of the given type with the given\nattributes.\n*/\nfunction wrapIn(nodeType, attrs = null) {\n return function (state, dispatch) {\n let { $from, $to } = state.selection;\n let range = $from.blockRange($to), wrapping = range && findWrapping(range, nodeType, attrs);\n if (!wrapping)\n return false;\n if (dispatch)\n dispatch(state.tr.wrap(range, wrapping).scrollIntoView());\n return true;\n };\n}\n/**\nReturns a command that tries to set the selected textblocks to the\ngiven node type with the given attributes.\n*/\nfunction setBlockType(nodeType, attrs = null) {\n return function (state, dispatch) {\n let applicable = false;\n for (let i = 0; i < state.selection.ranges.length && !applicable; i++) {\n let { $from: { pos: from }, $to: { pos: to } } = state.selection.ranges[i];\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (applicable)\n return false;\n if (!node.isTextblock || node.hasMarkup(nodeType, attrs))\n return;\n if (node.type == nodeType) {\n applicable = true;\n }\n else {\n let $pos = state.doc.resolve(pos), index = $pos.index();\n applicable = $pos.parent.canReplaceWith(index, index + 1, nodeType);\n }\n });\n }\n if (!applicable)\n return false;\n if (dispatch) {\n let tr = state.tr;\n for (let i = 0; i < state.selection.ranges.length; i++) {\n let { $from: { pos: from }, $to: { pos: to } } = state.selection.ranges[i];\n tr.setBlockType(from, to, nodeType, attrs);\n }\n dispatch(tr.scrollIntoView());\n }\n return true;\n };\n}\nfunction markApplies(doc, ranges, type, enterAtoms) {\n for (let i = 0; i < ranges.length; i++) {\n let { $from, $to } = ranges[i];\n let can = $from.depth == 0 ? doc.inlineContent && doc.type.allowsMarkType(type) : false;\n doc.nodesBetween($from.pos, $to.pos, (node, pos) => {\n if (can || !enterAtoms && node.isAtom && node.isInline && pos >= $from.pos && pos + node.nodeSize <= $to.pos)\n return false;\n can = node.inlineContent && node.type.allowsMarkType(type);\n });\n if (can)\n return true;\n }\n return false;\n}\nfunction removeInlineAtoms(ranges) {\n let result = [];\n for (let i = 0; i < ranges.length; i++) {\n let { $from, $to } = ranges[i];\n $from.doc.nodesBetween($from.pos, $to.pos, (node, pos) => {\n if (node.isAtom && node.content.size && node.isInline && pos >= $from.pos && pos + node.nodeSize <= $to.pos) {\n if (pos + 1 > $from.pos)\n result.push(new SelectionRange($from, $from.doc.resolve(pos + 1)));\n $from = $from.doc.resolve(pos + 1 + node.content.size);\n return false;\n }\n });\n if ($from.pos < $to.pos)\n result.push(new SelectionRange($from, $to));\n }\n return result;\n}\n/**\nCreate a command function that toggles the given mark with the\ngiven attributes. Will return `false` when the current selection\ndoesn't support that mark. This will remove the mark if any marks\nof that type exist in the selection, or add it otherwise. If the\nselection is empty, this applies to the [stored\nmarks](https://prosemirror.net/docs/ref/#state.EditorState.storedMarks) instead of a range of the\ndocument.\n*/\nfunction toggleMark(markType, attrs = null, options) {\n let removeWhenPresent = (options && options.removeWhenPresent) !== false;\n let enterAtoms = (options && options.enterInlineAtoms) !== false;\n let dropSpace = !(options && options.includeWhitespace);\n return function (state, dispatch) {\n let { empty, $cursor, ranges } = state.selection;\n if ((empty && !$cursor) || !markApplies(state.doc, ranges, markType, enterAtoms))\n return false;\n if (dispatch) {\n if ($cursor) {\n if (markType.isInSet(state.storedMarks || $cursor.marks()))\n dispatch(state.tr.removeStoredMark(markType));\n else\n dispatch(state.tr.addStoredMark(markType.create(attrs)));\n }\n else {\n let add, tr = state.tr;\n if (!enterAtoms)\n ranges = removeInlineAtoms(ranges);\n if (removeWhenPresent) {\n add = !ranges.some(r => state.doc.rangeHasMark(r.$from.pos, r.$to.pos, markType));\n }\n else {\n add = !ranges.every(r => {\n let missing = false;\n tr.doc.nodesBetween(r.$from.pos, r.$to.pos, (node, pos, parent) => {\n if (missing)\n return false;\n missing = !markType.isInSet(node.marks) && !!parent && parent.type.allowsMarkType(markType) &&\n !(node.isText && /^\\s*$/.test(node.textBetween(Math.max(0, r.$from.pos - pos), Math.min(node.nodeSize, r.$to.pos - pos))));\n });\n return !missing;\n });\n }\n for (let i = 0; i < ranges.length; i++) {\n let { $from, $to } = ranges[i];\n if (!add) {\n tr.removeMark($from.pos, $to.pos, markType);\n }\n else {\n let from = $from.pos, to = $to.pos, start = $from.nodeAfter, end = $to.nodeBefore;\n let spaceStart = dropSpace && start && start.isText ? /^\\s*/.exec(start.text)[0].length : 0;\n let spaceEnd = dropSpace && end && end.isText ? /\\s*$/.exec(end.text)[0].length : 0;\n if (from + spaceStart < to) {\n from += spaceStart;\n to -= spaceEnd;\n }\n tr.addMark(from, to, markType.create(attrs));\n }\n }\n dispatch(tr.scrollIntoView());\n }\n }\n return true;\n };\n}\nfunction wrapDispatchForJoin(dispatch, isJoinable) {\n return (tr) => {\n if (!tr.isGeneric)\n return dispatch(tr);\n let ranges = [];\n for (let i = 0; i < tr.mapping.maps.length; i++) {\n let map = tr.mapping.maps[i];\n for (let j = 0; j < ranges.length; j++)\n ranges[j] = map.map(ranges[j]);\n map.forEach((_s, _e, from, to) => ranges.push(from, to));\n }\n // Figure out which joinable points exist inside those ranges,\n // by checking all node boundaries in their parent nodes.\n let joinable = [];\n for (let i = 0; i < ranges.length; i += 2) {\n let from = ranges[i], to = ranges[i + 1];\n let $from = tr.doc.resolve(from), depth = $from.sharedDepth(to), parent = $from.node(depth);\n for (let index = $from.indexAfter(depth), pos = $from.after(depth + 1); pos <= to; ++index) {\n let after = parent.maybeChild(index);\n if (!after)\n break;\n if (index && joinable.indexOf(pos) == -1) {\n let before = parent.child(index - 1);\n if (before.type == after.type && isJoinable(before, after))\n joinable.push(pos);\n }\n pos += after.nodeSize;\n }\n }\n // Join the joinable points\n joinable.sort((a, b) => a - b);\n for (let i = joinable.length - 1; i >= 0; i--) {\n if (canJoin(tr.doc, joinable[i]))\n tr.join(joinable[i]);\n }\n dispatch(tr);\n };\n}\n/**\nWrap a command so that, when it produces a transform that causes\ntwo joinable nodes to end up next to each other, those are joined.\nNodes are considered joinable when they are of the same type and\nwhen the `isJoinable` predicate returns true for them or, if an\narray of strings was passed, if their node type name is in that\narray.\n*/\nfunction autoJoin(command, isJoinable) {\n let canJoin = Array.isArray(isJoinable) ? (node) => isJoinable.indexOf(node.type.name) > -1\n : isJoinable;\n return (state, dispatch, view) => command(state, dispatch && wrapDispatchForJoin(dispatch, canJoin), view);\n}\n/**\nCombine a number of command functions into a single function (which\ncalls them one by one until one returns true).\n*/\nfunction chainCommands(...commands) {\n return function (state, dispatch, view) {\n for (let i = 0; i < commands.length; i++)\n if (commands[i](state, dispatch, view))\n return true;\n return false;\n };\n}\nlet backspace = chainCommands(deleteSelection, joinBackward, selectNodeBackward);\nlet del = chainCommands(deleteSelection, joinForward, selectNodeForward);\n/**\nA basic keymap containing bindings not specific to any schema.\nBinds the following keys (when multiple commands are listed, they\nare chained with [`chainCommands`](https://prosemirror.net/docs/ref/#commands.chainCommands)):\n\n* **Enter** to `newlineInCode`, `createParagraphNear`, `liftEmptyBlock`, `splitBlock`\n* **Mod-Enter** to `exitCode`\n* **Backspace** and **Mod-Backspace** to `deleteSelection`, `joinBackward`, `selectNodeBackward`\n* **Delete** and **Mod-Delete** to `deleteSelection`, `joinForward`, `selectNodeForward`\n* **Mod-Delete** to `deleteSelection`, `joinForward`, `selectNodeForward`\n* **Mod-a** to `selectAll`\n*/\nconst pcBaseKeymap = {\n \"Enter\": chainCommands(newlineInCode, createParagraphNear, liftEmptyBlock, splitBlock),\n \"Mod-Enter\": exitCode,\n \"Backspace\": backspace,\n \"Mod-Backspace\": backspace,\n \"Shift-Backspace\": backspace,\n \"Delete\": del,\n \"Mod-Delete\": del,\n \"Mod-a\": selectAll\n};\n/**\nA copy of `pcBaseKeymap` that also binds **Ctrl-h** like Backspace,\n**Ctrl-d** like Delete, **Alt-Backspace** like Ctrl-Backspace, and\n**Ctrl-Alt-Backspace**, **Alt-Delete**, and **Alt-d** like\nCtrl-Delete.\n*/\nconst macBaseKeymap = {\n \"Ctrl-h\": pcBaseKeymap[\"Backspace\"],\n \"Alt-Backspace\": pcBaseKeymap[\"Mod-Backspace\"],\n \"Ctrl-d\": pcBaseKeymap[\"Delete\"],\n \"Ctrl-Alt-Backspace\": pcBaseKeymap[\"Mod-Delete\"],\n \"Alt-Delete\": pcBaseKeymap[\"Mod-Delete\"],\n \"Alt-d\": pcBaseKeymap[\"Mod-Delete\"],\n \"Ctrl-a\": selectTextblockStart,\n \"Ctrl-e\": selectTextblockEnd\n};\nfor (let key in pcBaseKeymap)\n macBaseKeymap[key] = pcBaseKeymap[key];\nconst mac = typeof navigator != \"undefined\" ? /Mac|iP(hone|[oa]d)/.test(navigator.platform)\n // @ts-ignore\n : typeof os != \"undefined\" && os.platform ? os.platform() == \"darwin\" : false;\n/**\nDepending on the detected platform, this will hold\n[`pcBasekeymap`](https://prosemirror.net/docs/ref/#commands.pcBaseKeymap) or\n[`macBaseKeymap`](https://prosemirror.net/docs/ref/#commands.macBaseKeymap).\n*/\nconst baseKeymap = mac ? macBaseKeymap : pcBaseKeymap;\n\nexport { autoJoin, baseKeymap, chainCommands, createParagraphNear, deleteSelection, exitCode, joinBackward, joinDown, joinForward, joinTextblockBackward, joinTextblockForward, joinUp, lift, liftEmptyBlock, macBaseKeymap, newlineInCode, pcBaseKeymap, selectAll, selectNodeBackward, selectNodeForward, selectParentNode, selectTextblockEnd, selectTextblockStart, setBlockType, splitBlock, splitBlockAs, splitBlockKeepMarks, toggleMark, wrapIn };\n"],"names":["atBlockStart","state","view","$cursor","selection","endOfTextblock","parentOffset","joinTextblocksAround","$cut","dispatch","beforeText","nodeBefore","beforePos","pos","isTextblock","type","spec","isolating","child","lastChild","afterText","nodeAfter","afterPos","firstChild","step","replaceStep","doc","Slice","empty","from","ReplaceStep","slice","size","tr","setSelection","TextSelection","create","scrollIntoView","textblockAt","node","side","only","scan","childCount","findCutBefore","$pos","parent","i","depth","index","resolve","before","atBlockEnd","content","findCutAfter","after","defaultBlockAt","match","edgeCount","edge","hasRequiredAttrs","deleteBarrier","dir","conn","isolated","compatibleContent","canReplace","delete","nodeSize","canJoin","join","joinMaybeClear","canDelAfter","contentMatchAt","findWrapping","matchType","validEnd","end","wrap","Fragment","length","copy","ReplaceAroundStep","$joinAt","selAfter","Selection","findFrom","range","$from","blockRange","$to","target","liftTarget","lift","at","push","afterDepth","selectTextblockSide","sel","isInline","start","selectTextblockStart","selectTextblockEnd","navigator","test","platform","os","AllSelection","inlineContent","indexAfter","insert","createAndFill","deleteSelection","$head","$anchor","code","sameParent","above","canReplaceWith","replaceWith","near","NodeSelection","isSelectable","delStep","to","mapping","map","isAtom","point","joinPoint","nodeSel","canSplit","split","insertText","same","sharedDepth","nodeType","attrs","applicable","ranges","nodesBetween","hasMarkup","setBlockType","wrapping"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../prosemirror-state/dist/index.js"),t=require("../../prosemirror-transform/dist/index.js");class i{constructor(e,t){var i;this.editorView=e,this.cursorPos=null,this.element=null,this.timeout=-1,this.width=null!==(i=t.width)&&void 0!==i?i:1,this.color=!1===t.color?void 0:t.color||"black",this.class=t.class,this.handlers=["dragover","dragend","drop","dragleave"].map((t=>{let i=e=>{this[t](e)};return e.dom.addEventListener(t,i),{name:t,handler:i}}))}destroy(){this.handlers.forEach((({name:e,handler:t})=>this.editorView.dom.removeEventListener(e,t)))}update(e,t){null!=this.cursorPos&&t.doc!=e.state.doc&&(this.cursorPos>e.state.doc.content.size?this.setCursor(null):this.updateOverlay())}setCursor(e){e!=this.cursorPos&&(this.cursorPos=e,null==e?(this.element.parentNode.removeChild(this.element),this.element=null):this.updateOverlay())}updateOverlay(){let e,t=this.editorView.state.doc.resolve(this.cursorPos),i=!t.parent.inlineContent;if(i){let i=t.nodeBefore,s=t.nodeAfter;if(i||s){let t=this.editorView.nodeDOM(this.cursorPos-(i?i.nodeSize:0));if(t){let o=t.getBoundingClientRect(),r=i?o.bottom:o.top;i&&s&&(r=(r+this.editorView.nodeDOM(this.cursorPos).getBoundingClientRect().top)/2),e={left:o.left,right:o.right,top:r-this.width/2,bottom:r+this.width/2}}}}if(!e){let t=this.editorView.coordsAtPos(this.cursorPos);e={left:t.left-this.width/2,right:t.left+this.width/2,top:t.top,bottom:t.bottom}}let s,o,r=this.editorView.dom.offsetParent;if(this.element||(this.element=r.appendChild(document.createElement("div")),this.class&&(this.element.className=this.class),this.element.style.cssText="position: absolute; z-index: 50; pointer-events: none;",this.color&&(this.element.style.backgroundColor=this.color)),this.element.classList.toggle("prosemirror-dropcursor-block",i),this.element.classList.toggle("prosemirror-dropcursor-inline",!i),!r||r==document.body&&"static"==getComputedStyle(r).position)s=-pageXOffset,o=-pageYOffset;else{let e=r.getBoundingClientRect();s=e.left-r.scrollLeft,o=e.top-r.scrollTop}this.element.style.left=e.left-s+"px",this.element.style.top=e.top-o+"px",this.element.style.width=e.right-e.left+"px",this.element.style.height=e.bottom-e.top+"px"}scheduleRemoval(e){clearTimeout(this.timeout),this.timeout=setTimeout((()=>this.setCursor(null)),e)}dragover(e){if(!this.editorView.editable)return;let i=this.editorView.posAtCoords({left:e.clientX,top:e.clientY}),s=i&&i.inside>=0&&this.editorView.state.doc.nodeAt(i.inside),o=s&&s.type.spec.disableDropCursor,r="function"==typeof o?o(this.editorView,i,e):o;if(i&&!r){let e=i.pos;if(this.editorView.dragging&&this.editorView.dragging.slice){let i=t.dropPoint(this.editorView.state.doc,e,this.editorView.dragging.slice);null!=i&&(e=i)}this.setCursor(e),this.scheduleRemoval(5e3)}}dragend(){this.scheduleRemoval(20)}drop(){this.scheduleRemoval(20)}dragleave(e){e.target!=this.editorView.dom&&this.editorView.dom.contains(e.relatedTarget)||this.setCursor(null)}}exports.dropCursor=function(t={}){return new e.Plugin({view:e=>new i(e,t)})};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../node_modules/prosemirror-dropcursor/dist/index.js"],"sourcesContent":["import { Plugin } from 'prosemirror-state';\nimport { dropPoint } from 'prosemirror-transform';\n\n/**\nCreate a plugin that, when added to a ProseMirror instance,\ncauses a decoration to show up at the drop position when something\nis dragged over the editor.\n\nNodes may add a `disableDropCursor` property to their spec to\ncontrol the showing of a drop cursor inside them. This may be a\nboolean or a function, which will be called with a view and a\nposition, and should return a boolean.\n*/\nfunction dropCursor(options = {}) {\n return new Plugin({\n view(editorView) { return new DropCursorView(editorView, options); }\n });\n}\nclass DropCursorView {\n constructor(editorView, options) {\n var _a;\n this.editorView = editorView;\n this.cursorPos = null;\n this.element = null;\n this.timeout = -1;\n this.width = (_a = options.width) !== null && _a !== void 0 ? _a : 1;\n this.color = options.color === false ? undefined : (options.color || \"black\");\n this.class = options.class;\n this.handlers = [\"dragover\", \"dragend\", \"drop\", \"dragleave\"].map(name => {\n let handler = (e) => { this[name](e); };\n editorView.dom.addEventListener(name, handler);\n return { name, handler };\n });\n }\n destroy() {\n this.handlers.forEach(({ name, handler }) => this.editorView.dom.removeEventListener(name, handler));\n }\n update(editorView, prevState) {\n if (this.cursorPos != null && prevState.doc != editorView.state.doc) {\n if (this.cursorPos > editorView.state.doc.content.size)\n this.setCursor(null);\n else\n this.updateOverlay();\n }\n }\n setCursor(pos) {\n if (pos == this.cursorPos)\n return;\n this.cursorPos = pos;\n if (pos == null) {\n this.element.parentNode.removeChild(this.element);\n this.element = null;\n }\n else {\n this.updateOverlay();\n }\n }\n updateOverlay() {\n let $pos = this.editorView.state.doc.resolve(this.cursorPos);\n let isBlock = !$pos.parent.inlineContent, rect;\n if (isBlock) {\n let before = $pos.nodeBefore, after = $pos.nodeAfter;\n if (before || after) {\n let node = this.editorView.nodeDOM(this.cursorPos - (before ? before.nodeSize : 0));\n if (node) {\n let nodeRect = node.getBoundingClientRect();\n let top = before ? nodeRect.bottom : nodeRect.top;\n if (before && after)\n top = (top + this.editorView.nodeDOM(this.cursorPos).getBoundingClientRect().top) / 2;\n rect = { left: nodeRect.left, right: nodeRect.right, top: top - this.width / 2, bottom: top + this.width / 2 };\n }\n }\n }\n if (!rect) {\n let coords = this.editorView.coordsAtPos(this.cursorPos);\n rect = { left: coords.left - this.width / 2, right: coords.left + this.width / 2, top: coords.top, bottom: coords.bottom };\n }\n let parent = this.editorView.dom.offsetParent;\n if (!this.element) {\n this.element = parent.appendChild(document.createElement(\"div\"));\n if (this.class)\n this.element.className = this.class;\n this.element.style.cssText = \"position: absolute; z-index: 50; pointer-events: none;\";\n if (this.color) {\n this.element.style.backgroundColor = this.color;\n }\n }\n this.element.classList.toggle(\"prosemirror-dropcursor-block\", isBlock);\n this.element.classList.toggle(\"prosemirror-dropcursor-inline\", !isBlock);\n let parentLeft, parentTop;\n if (!parent || parent == document.body && getComputedStyle(parent).position == \"static\") {\n parentLeft = -pageXOffset;\n parentTop = -pageYOffset;\n }\n else {\n let rect = parent.getBoundingClientRect();\n parentLeft = rect.left - parent.scrollLeft;\n parentTop = rect.top - parent.scrollTop;\n }\n this.element.style.left = (rect.left - parentLeft) + \"px\";\n this.element.style.top = (rect.top - parentTop) + \"px\";\n this.element.style.width = (rect.right - rect.left) + \"px\";\n this.element.style.height = (rect.bottom - rect.top) + \"px\";\n }\n scheduleRemoval(timeout) {\n clearTimeout(this.timeout);\n this.timeout = setTimeout(() => this.setCursor(null), timeout);\n }\n dragover(event) {\n if (!this.editorView.editable)\n return;\n let pos = this.editorView.posAtCoords({ left: event.clientX, top: event.clientY });\n let node = pos && pos.inside >= 0 && this.editorView.state.doc.nodeAt(pos.inside);\n let disableDropCursor = node && node.type.spec.disableDropCursor;\n let disabled = typeof disableDropCursor == \"function\" ? disableDropCursor(this.editorView, pos, event) : disableDropCursor;\n if (pos && !disabled) {\n let target = pos.pos;\n if (this.editorView.dragging && this.editorView.dragging.slice) {\n let point = dropPoint(this.editorView.state.doc, target, this.editorView.dragging.slice);\n if (point != null)\n target = point;\n }\n this.setCursor(target);\n this.scheduleRemoval(5000);\n }\n }\n dragend() {\n this.scheduleRemoval(20);\n }\n drop() {\n this.scheduleRemoval(20);\n }\n dragleave(event) {\n if (event.target == this.editorView.dom || !this.editorView.dom.contains(event.relatedTarget))\n this.setCursor(null);\n }\n}\n\nexport { dropCursor };\n"],"names":["dropCursor","options","Plugin","view","editorView","DropCursorView","constructor","_a","this","cursorPos","element","timeout","width","color","undefined","class","handlers","map","name","handler","e","dom","addEventListener","destroy","forEach","removeEventListener","update","prevState","doc","state","content","size","setCursor","updateOverlay","pos","parentNode","removeChild","rect","$pos","resolve","isBlock","parent","inlineContent","before","nodeBefore","after","nodeAfter","node","nodeDOM","nodeSize","nodeRect","getBoundingClientRect","top","bottom","left","right","coords","coordsAtPos","parentLeft","parentTop","offsetParent","appendChild","document","createElement","className","style","cssText","backgroundColor","classList","toggle","body","getComputedStyle","position","pageXOffset","pageYOffset","scrollLeft","scrollTop","height","scheduleRemoval","clearTimeout","setTimeout","dragover","event","editable","posAtCoords","clientX","clientY","inside","nodeAt","disableDropCursor","type","spec","disabled","target","dragging","slice","point","dropPoint","dragend","drop","dragleave","contains","relatedTarget"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../node_modules/prosemirror-dropcursor/dist/index.js"],"sourcesContent":["import { Plugin } from 'prosemirror-state';\nimport { dropPoint } from 'prosemirror-transform';\n\n/**\nCreate a plugin that, when added to a ProseMirror instance,\ncauses a decoration to show up at the drop position when something\nis dragged over the editor.\n\nNodes may add a `disableDropCursor` property to their spec to\ncontrol the showing of a drop cursor inside them. This may be a\nboolean or a function, which will be called with a view and a\nposition, and should return a boolean.\n*/\nfunction dropCursor(options = {}) {\n return new Plugin({\n view(editorView) { return new DropCursorView(editorView, options); }\n });\n}\nclass DropCursorView {\n constructor(editorView, options) {\n var _a;\n this.editorView = editorView;\n this.cursorPos = null;\n this.element = null;\n this.timeout = -1;\n this.width = (_a = options.width) !== null && _a !== void 0 ? _a : 1;\n this.color = options.color === false ? undefined : (options.color || \"black\");\n this.class = options.class;\n this.handlers = [\"dragover\", \"dragend\", \"drop\", \"dragleave\"].map(name => {\n let handler = (e) => { this[name](e); };\n editorView.dom.addEventListener(name, handler);\n return { name, handler };\n });\n }\n destroy() {\n this.handlers.forEach(({ name, handler }) => this.editorView.dom.removeEventListener(name, handler));\n }\n update(editorView, prevState) {\n if (this.cursorPos != null && prevState.doc != editorView.state.doc) {\n if (this.cursorPos > editorView.state.doc.content.size)\n this.setCursor(null);\n else\n this.updateOverlay();\n }\n }\n setCursor(pos) {\n if (pos == this.cursorPos)\n return;\n this.cursorPos = pos;\n if (pos == null) {\n this.element.parentNode.removeChild(this.element);\n this.element = null;\n }\n else {\n this.updateOverlay();\n }\n }\n updateOverlay() {\n let $pos = this.editorView.state.doc.resolve(this.cursorPos);\n let isBlock = !$pos.parent.inlineContent, rect;\n if (isBlock) {\n let before = $pos.nodeBefore, after = $pos.nodeAfter;\n if (before || after) {\n let node = this.editorView.nodeDOM(this.cursorPos - (before ? before.nodeSize : 0));\n if (node) {\n let nodeRect = node.getBoundingClientRect();\n let top = before ? nodeRect.bottom : nodeRect.top;\n if (before && after)\n top = (top + this.editorView.nodeDOM(this.cursorPos).getBoundingClientRect().top) / 2;\n rect = { left: nodeRect.left, right: nodeRect.right, top: top - this.width / 2, bottom: top + this.width / 2 };\n }\n }\n }\n if (!rect) {\n let coords = this.editorView.coordsAtPos(this.cursorPos);\n rect = { left: coords.left - this.width / 2, right: coords.left + this.width / 2, top: coords.top, bottom: coords.bottom };\n }\n let parent = this.editorView.dom.offsetParent;\n if (!this.element) {\n this.element = parent.appendChild(document.createElement(\"div\"));\n if (this.class)\n this.element.className = this.class;\n this.element.style.cssText = \"position: absolute; z-index: 50; pointer-events: none;\";\n if (this.color) {\n this.element.style.backgroundColor = this.color;\n }\n }\n this.element.classList.toggle(\"prosemirror-dropcursor-block\", isBlock);\n this.element.classList.toggle(\"prosemirror-dropcursor-inline\", !isBlock);\n let parentLeft, parentTop;\n if (!parent || parent == document.body && getComputedStyle(parent).position == \"static\") {\n parentLeft = -pageXOffset;\n parentTop = -pageYOffset;\n }\n else {\n let rect = parent.getBoundingClientRect();\n parentLeft = rect.left - parent.scrollLeft;\n parentTop = rect.top - parent.scrollTop;\n }\n this.element.style.left = (rect.left - parentLeft) + \"px\";\n this.element.style.top = (rect.top - parentTop) + \"px\";\n this.element.style.width = (rect.right - rect.left) + \"px\";\n this.element.style.height = (rect.bottom - rect.top) + \"px\";\n }\n scheduleRemoval(timeout) {\n clearTimeout(this.timeout);\n this.timeout = setTimeout(() => this.setCursor(null), timeout);\n }\n dragover(event) {\n if (!this.editorView.editable)\n return;\n let pos = this.editorView.posAtCoords({ left: event.clientX, top: event.clientY });\n let node = pos && pos.inside >= 0 && this.editorView.state.doc.nodeAt(pos.inside);\n let disableDropCursor = node && node.type.spec.disableDropCursor;\n let disabled = typeof disableDropCursor == \"function\" ? disableDropCursor(this.editorView, pos, event) : disableDropCursor;\n if (pos && !disabled) {\n let target = pos.pos;\n if (this.editorView.dragging && this.editorView.dragging.slice) {\n let point = dropPoint(this.editorView.state.doc, target, this.editorView.dragging.slice);\n if (point != null)\n target = point;\n }\n this.setCursor(target);\n this.scheduleRemoval(5000);\n }\n }\n dragend() {\n this.scheduleRemoval(20);\n }\n drop() {\n this.scheduleRemoval(20);\n }\n dragleave(event) {\n if (event.target == this.editorView.dom || !this.editorView.dom.contains(event.relatedTarget))\n this.setCursor(null);\n }\n}\n\nexport { dropCursor };\n"],"names":["DropCursorView","constructor","editorView","options","_a","this","cursorPos","element","timeout","width","color","undefined","class","handlers","map","name","handler","e","dom","addEventListener","destroy","forEach","removeEventListener","update","prevState","doc","state","content","size","setCursor","updateOverlay","pos","parentNode","removeChild","rect","$pos","resolve","isBlock","parent","inlineContent","before","nodeBefore","after","nodeAfter","node","nodeDOM","nodeSize","nodeRect","getBoundingClientRect","top","bottom","left","right","coords","coordsAtPos","parentLeft","parentTop","offsetParent","appendChild","document","createElement","className","style","cssText","backgroundColor","classList","toggle","body","getComputedStyle","position","pageXOffset","pageYOffset","scrollLeft","scrollTop","height","scheduleRemoval","clearTimeout","setTimeout","dragover","event","editable","posAtCoords","clientX","clientY","inside","nodeAt","disableDropCursor","type","spec","disabled","target","dragging","slice","point","dropPoint","dragend","drop","dragleave","contains","relatedTarget","Plugin","view"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../prosemirror-keymap/dist/index.js"),t=require("../../prosemirror-state/dist/index.js"),r=require("../../prosemirror-model/dist/index.js"),n=require("../../prosemirror-view/dist/index.js");class o extends t.Selection{constructor(e){super(e,e)}map(e,r){let n=e.resolve(r.map(this.head));return o.valid(n)?new o(n):t.Selection.near(n)}content(){return r.Slice.empty}eq(e){return e instanceof o&&e.head==this.head}toJSON(){return{type:"gapcursor",pos:this.head}}static fromJSON(e,t){if("number"!=typeof t.pos)throw new RangeError("Invalid input for GapCursor.fromJSON");return new o(e.resolve(t.pos))}getBookmark(){return new i(this.anchor)}static valid(e){let t=e.parent;if(t.isTextblock||!function(e){for(let t=e.depth;t>=0;t--){let r=e.index(t),n=e.node(t);if(0!=r)for(let e=n.child(r-1);;e=e.lastChild){if(0==e.childCount&&!e.inlineContent||e.isAtom||e.type.spec.isolating)return!0;if(e.inlineContent)return!1}else if(n.type.spec.isolating)return!0}return!0}(e)||!function(e){for(let t=e.depth;t>=0;t--){let r=e.indexAfter(t),n=e.node(t);if(r!=n.childCount)for(let e=n.child(r);;e=e.firstChild){if(0==e.childCount&&!e.inlineContent||e.isAtom||e.type.spec.isolating)return!0;if(e.inlineContent)return!1}else if(n.type.spec.isolating)return!0}return!0}(e))return!1;let r=t.type.spec.allowGapCursor;if(null!=r)return r;let n=t.contentMatchAt(e.index()).defaultType;return n&&n.isTextblock}static findGapCursorFrom(e,r,n=!1){e:for(;;){if(!n&&o.valid(e))return e;let i=e.pos,l=null;for(let t=e.depth;;t--){let n=e.node(t);if(r>0?e.indexAfter(t)<n.childCount:e.index(t)>0){l=n.child(r>0?e.indexAfter(t):e.index(t)-1);break}if(0==t)return null;i+=r;let s=e.doc.resolve(i);if(o.valid(s))return s}for(;;){let s=r>0?l.firstChild:l.lastChild;if(!s){if(l.isAtom&&!l.isText&&!t.NodeSelection.isSelectable(l)){e=e.doc.resolve(i+l.nodeSize*r),n=!1;continue e}break}l=s,i+=r;let c=e.doc.resolve(i);if(o.valid(c))return c}return null}}}o.prototype.visible=!1,o.findFrom=o.findGapCursorFrom,t.Selection.jsonID("gapcursor",o);class i{constructor(e){this.pos=e}map(e){return new i(e.map(this.pos))}resolve(e){let r=e.resolve(this.pos);return o.valid(r)?new o(r):t.Selection.near(r)}}const l=e.keydownHandler({ArrowLeft:s("horiz",-1),ArrowRight:s("horiz",1),ArrowUp:s("vert",-1),ArrowDown:s("vert",1)});function s(e,r){const n="vert"==e?r>0?"down":"up":r>0?"right":"left";return function(e,i,l){let s=e.selection,c=r>0?s.$to:s.$from,a=s.empty;if(s instanceof t.TextSelection){if(!l.endOfTextblock(n)||0==c.depth)return!1;a=!1,c=e.doc.resolve(r>0?c.after():c.before())}let d=o.findGapCursorFrom(c,r,a);return!!d&&(i&&i(e.tr.setSelection(new o(d))),!0)}}function c(e,r,n){if(!e||!e.editable)return!1;let i=e.state.doc.resolve(r);if(!o.valid(i))return!1;let l=e.posAtCoords({left:n.clientX,top:n.clientY});return!(l&&l.inside>-1&&t.NodeSelection.isSelectable(e.state.doc.nodeAt(l.inside)))&&(e.dispatch(e.state.tr.setSelection(new o(i))),!0)}function a(e,n){if("insertCompositionText"!=n.inputType||!(e.state.selection instanceof o))return!1;let{$from:i}=e.state.selection,l=i.parent.contentMatchAt(i.index()).findWrapping(e.state.schema.nodes.text);if(!l)return!1;let s=r.Fragment.empty;for(let e=l.length-1;e>=0;e--)s=r.Fragment.from(l[e].createAndFill(null,s));let c=e.state.tr.replace(i.pos,i.pos,new r.Slice(s,0,0));return c.setSelection(t.TextSelection.near(c.doc.resolve(i.pos+1))),e.dispatch(c),!1}function d(e){if(!(e.selection instanceof o))return null;let t=document.createElement("div");return t.className="ProseMirror-gapcursor",n.DecorationSet.create(e.doc,[n.Decoration.widget(e.selection.head,t,{key:"gapcursor"})])}exports.GapCursor=o,exports.gapCursor=function(){return new t.Plugin({props:{decorations:d,createSelectionBetween:(e,t,r)=>t.pos==r.pos&&o.valid(r)?new o(r):null,handleClick:c,handleKeyDown:l,handleDOMEvents:{beforeinput:a}}})};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../node_modules/prosemirror-gapcursor/dist/index.js"],"sourcesContent":["import { keydownHandler } from 'prosemirror-keymap';\nimport { Selection, NodeSelection, TextSelection, Plugin } from 'prosemirror-state';\nimport { Slice, Fragment } from 'prosemirror-model';\nimport { DecorationSet, Decoration } from 'prosemirror-view';\n\n/**\nGap cursor selections are represented using this class. Its\n`$anchor` and `$head` properties both point at the cursor position.\n*/\nclass GapCursor extends Selection {\n /**\n Create a gap cursor.\n */\n constructor($pos) {\n super($pos, $pos);\n }\n map(doc, mapping) {\n let $pos = doc.resolve(mapping.map(this.head));\n return GapCursor.valid($pos) ? new GapCursor($pos) : Selection.near($pos);\n }\n content() { return Slice.empty; }\n eq(other) {\n return other instanceof GapCursor && other.head == this.head;\n }\n toJSON() {\n return { type: \"gapcursor\", pos: this.head };\n }\n /**\n @internal\n */\n static fromJSON(doc, json) {\n if (typeof json.pos != \"number\")\n throw new RangeError(\"Invalid input for GapCursor.fromJSON\");\n return new GapCursor(doc.resolve(json.pos));\n }\n /**\n @internal\n */\n getBookmark() { return new GapBookmark(this.anchor); }\n /**\n @internal\n */\n static valid($pos) {\n let parent = $pos.parent;\n if (parent.isTextblock || !closedBefore($pos) || !closedAfter($pos))\n return false;\n let override = parent.type.spec.allowGapCursor;\n if (override != null)\n return override;\n let deflt = parent.contentMatchAt($pos.index()).defaultType;\n return deflt && deflt.isTextblock;\n }\n /**\n @internal\n */\n static findGapCursorFrom($pos, dir, mustMove = false) {\n search: for (;;) {\n if (!mustMove && GapCursor.valid($pos))\n return $pos;\n let pos = $pos.pos, next = null;\n // Scan up from this position\n for (let d = $pos.depth;; d--) {\n let parent = $pos.node(d);\n if (dir > 0 ? $pos.indexAfter(d) < parent.childCount : $pos.index(d) > 0) {\n next = parent.child(dir > 0 ? $pos.indexAfter(d) : $pos.index(d) - 1);\n break;\n }\n else if (d == 0) {\n return null;\n }\n pos += dir;\n let $cur = $pos.doc.resolve(pos);\n if (GapCursor.valid($cur))\n return $cur;\n }\n // And then down into the next node\n for (;;) {\n let inside = dir > 0 ? next.firstChild : next.lastChild;\n if (!inside) {\n if (next.isAtom && !next.isText && !NodeSelection.isSelectable(next)) {\n $pos = $pos.doc.resolve(pos + next.nodeSize * dir);\n mustMove = false;\n continue search;\n }\n break;\n }\n next = inside;\n pos += dir;\n let $cur = $pos.doc.resolve(pos);\n if (GapCursor.valid($cur))\n return $cur;\n }\n return null;\n }\n }\n}\nGapCursor.prototype.visible = false;\nGapCursor.findFrom = GapCursor.findGapCursorFrom;\nSelection.jsonID(\"gapcursor\", GapCursor);\nclass GapBookmark {\n constructor(pos) {\n this.pos = pos;\n }\n map(mapping) {\n return new GapBookmark(mapping.map(this.pos));\n }\n resolve(doc) {\n let $pos = doc.resolve(this.pos);\n return GapCursor.valid($pos) ? new GapCursor($pos) : Selection.near($pos);\n }\n}\nfunction closedBefore($pos) {\n for (let d = $pos.depth; d >= 0; d--) {\n let index = $pos.index(d), parent = $pos.node(d);\n // At the start of this parent, look at next one\n if (index == 0) {\n if (parent.type.spec.isolating)\n return true;\n continue;\n }\n // See if the node before (or its first ancestor) is closed\n for (let before = parent.child(index - 1);; before = before.lastChild) {\n if ((before.childCount == 0 && !before.inlineContent) || before.isAtom || before.type.spec.isolating)\n return true;\n if (before.inlineContent)\n return false;\n }\n }\n // Hit start of document\n return true;\n}\nfunction closedAfter($pos) {\n for (let d = $pos.depth; d >= 0; d--) {\n let index = $pos.indexAfter(d), parent = $pos.node(d);\n if (index == parent.childCount) {\n if (parent.type.spec.isolating)\n return true;\n continue;\n }\n for (let after = parent.child(index);; after = after.firstChild) {\n if ((after.childCount == 0 && !after.inlineContent) || after.isAtom || after.type.spec.isolating)\n return true;\n if (after.inlineContent)\n return false;\n }\n }\n return true;\n}\n\n/**\nCreate a gap cursor plugin. When enabled, this will capture clicks\nnear and arrow-key-motion past places that don't have a normally\nselectable position nearby, and create a gap cursor selection for\nthem. The cursor is drawn as an element with class\n`ProseMirror-gapcursor`. You can either include\n`style/gapcursor.css` from the package's directory or add your own\nstyles to make it visible.\n*/\nfunction gapCursor() {\n return new Plugin({\n props: {\n decorations: drawGapCursor,\n createSelectionBetween(_view, $anchor, $head) {\n return $anchor.pos == $head.pos && GapCursor.valid($head) ? new GapCursor($head) : null;\n },\n handleClick,\n handleKeyDown,\n handleDOMEvents: { beforeinput: beforeinput }\n }\n });\n}\nconst handleKeyDown = keydownHandler({\n \"ArrowLeft\": arrow(\"horiz\", -1),\n \"ArrowRight\": arrow(\"horiz\", 1),\n \"ArrowUp\": arrow(\"vert\", -1),\n \"ArrowDown\": arrow(\"vert\", 1)\n});\nfunction arrow(axis, dir) {\n const dirStr = axis == \"vert\" ? (dir > 0 ? \"down\" : \"up\") : (dir > 0 ? \"right\" : \"left\");\n return function (state, dispatch, view) {\n let sel = state.selection;\n let $start = dir > 0 ? sel.$to : sel.$from, mustMove = sel.empty;\n if (sel instanceof TextSelection) {\n if (!view.endOfTextblock(dirStr) || $start.depth == 0)\n return false;\n mustMove = false;\n $start = state.doc.resolve(dir > 0 ? $start.after() : $start.before());\n }\n let $found = GapCursor.findGapCursorFrom($start, dir, mustMove);\n if (!$found)\n return false;\n if (dispatch)\n dispatch(state.tr.setSelection(new GapCursor($found)));\n return true;\n };\n}\nfunction handleClick(view, pos, event) {\n if (!view || !view.editable)\n return false;\n let $pos = view.state.doc.resolve(pos);\n if (!GapCursor.valid($pos))\n return false;\n let clickPos = view.posAtCoords({ left: event.clientX, top: event.clientY });\n if (clickPos && clickPos.inside > -1 && NodeSelection.isSelectable(view.state.doc.nodeAt(clickPos.inside)))\n return false;\n view.dispatch(view.state.tr.setSelection(new GapCursor($pos)));\n return true;\n}\n// This is a hack that, when a composition starts while a gap cursor\n// is active, quickly creates an inline context for the composition to\n// happen in, to avoid it being aborted by the DOM selection being\n// moved into a valid position.\nfunction beforeinput(view, event) {\n if (event.inputType != \"insertCompositionText\" || !(view.state.selection instanceof GapCursor))\n return false;\n let { $from } = view.state.selection;\n let insert = $from.parent.contentMatchAt($from.index()).findWrapping(view.state.schema.nodes.text);\n if (!insert)\n return false;\n let frag = Fragment.empty;\n for (let i = insert.length - 1; i >= 0; i--)\n frag = Fragment.from(insert[i].createAndFill(null, frag));\n let tr = view.state.tr.replace($from.pos, $from.pos, new Slice(frag, 0, 0));\n tr.setSelection(TextSelection.near(tr.doc.resolve($from.pos + 1)));\n view.dispatch(tr);\n return false;\n}\nfunction drawGapCursor(state) {\n if (!(state.selection instanceof GapCursor))\n return null;\n let node = document.createElement(\"div\");\n node.className = \"ProseMirror-gapcursor\";\n return DecorationSet.create(state.doc, [Decoration.widget(state.selection.head, node, { key: \"gapcursor\" })]);\n}\n\nexport { GapCursor, gapCursor };\n"],"names":["GapCursor","Selection","constructor","$pos","super","map","doc","mapping","resolve","this","head","valid","near","content","Slice","empty","eq","other","toJSON","type","pos","fromJSON","json","RangeError","getBookmark","GapBookmark","anchor","parent","isTextblock","d","depth","index","node","before","child","lastChild","childCount","inlineContent","isAtom","spec","isolating","closedBefore","indexAfter","after","firstChild","closedAfter","override","allowGapCursor","deflt","contentMatchAt","defaultType","findGapCursorFrom","dir","mustMove","search","next","$cur","inside","isText","NodeSelection","isSelectable","nodeSize","prototype","visible","findFrom","jsonID","gapCursor","Plugin","props","decorations","drawGapCursor","createSelectionBetween","_view","$anchor","$head","handleClick","handleKeyDown","handleDOMEvents","beforeinput","keydownHandler","ArrowLeft","arrow","ArrowRight","ArrowUp","ArrowDown","axis","dirStr","state","dispatch","view","sel","selection","$start","$to","$from","TextSelection","endOfTextblock","$found","tr","setSelection","event","editable","clickPos","posAtCoords","left","clientX","top","clientY","nodeAt","inputType","insert","findWrapping","schema","nodes","text","frag","Fragment","i","length","from","createAndFill","replace","document","createElement","className","DecorationSet","create","Decoration","widget","key"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../node_modules/prosemirror-gapcursor/dist/index.js"],"sourcesContent":["import { keydownHandler } from 'prosemirror-keymap';\nimport { Selection, NodeSelection, TextSelection, Plugin } from 'prosemirror-state';\nimport { Slice, Fragment } from 'prosemirror-model';\nimport { DecorationSet, Decoration } from 'prosemirror-view';\n\n/**\nGap cursor selections are represented using this class. Its\n`$anchor` and `$head` properties both point at the cursor position.\n*/\nclass GapCursor extends Selection {\n /**\n Create a gap cursor.\n */\n constructor($pos) {\n super($pos, $pos);\n }\n map(doc, mapping) {\n let $pos = doc.resolve(mapping.map(this.head));\n return GapCursor.valid($pos) ? new GapCursor($pos) : Selection.near($pos);\n }\n content() { return Slice.empty; }\n eq(other) {\n return other instanceof GapCursor && other.head == this.head;\n }\n toJSON() {\n return { type: \"gapcursor\", pos: this.head };\n }\n /**\n @internal\n */\n static fromJSON(doc, json) {\n if (typeof json.pos != \"number\")\n throw new RangeError(\"Invalid input for GapCursor.fromJSON\");\n return new GapCursor(doc.resolve(json.pos));\n }\n /**\n @internal\n */\n getBookmark() { return new GapBookmark(this.anchor); }\n /**\n @internal\n */\n static valid($pos) {\n let parent = $pos.parent;\n if (parent.isTextblock || !closedBefore($pos) || !closedAfter($pos))\n return false;\n let override = parent.type.spec.allowGapCursor;\n if (override != null)\n return override;\n let deflt = parent.contentMatchAt($pos.index()).defaultType;\n return deflt && deflt.isTextblock;\n }\n /**\n @internal\n */\n static findGapCursorFrom($pos, dir, mustMove = false) {\n search: for (;;) {\n if (!mustMove && GapCursor.valid($pos))\n return $pos;\n let pos = $pos.pos, next = null;\n // Scan up from this position\n for (let d = $pos.depth;; d--) {\n let parent = $pos.node(d);\n if (dir > 0 ? $pos.indexAfter(d) < parent.childCount : $pos.index(d) > 0) {\n next = parent.child(dir > 0 ? $pos.indexAfter(d) : $pos.index(d) - 1);\n break;\n }\n else if (d == 0) {\n return null;\n }\n pos += dir;\n let $cur = $pos.doc.resolve(pos);\n if (GapCursor.valid($cur))\n return $cur;\n }\n // And then down into the next node\n for (;;) {\n let inside = dir > 0 ? next.firstChild : next.lastChild;\n if (!inside) {\n if (next.isAtom && !next.isText && !NodeSelection.isSelectable(next)) {\n $pos = $pos.doc.resolve(pos + next.nodeSize * dir);\n mustMove = false;\n continue search;\n }\n break;\n }\n next = inside;\n pos += dir;\n let $cur = $pos.doc.resolve(pos);\n if (GapCursor.valid($cur))\n return $cur;\n }\n return null;\n }\n }\n}\nGapCursor.prototype.visible = false;\nGapCursor.findFrom = GapCursor.findGapCursorFrom;\nSelection.jsonID(\"gapcursor\", GapCursor);\nclass GapBookmark {\n constructor(pos) {\n this.pos = pos;\n }\n map(mapping) {\n return new GapBookmark(mapping.map(this.pos));\n }\n resolve(doc) {\n let $pos = doc.resolve(this.pos);\n return GapCursor.valid($pos) ? new GapCursor($pos) : Selection.near($pos);\n }\n}\nfunction closedBefore($pos) {\n for (let d = $pos.depth; d >= 0; d--) {\n let index = $pos.index(d), parent = $pos.node(d);\n // At the start of this parent, look at next one\n if (index == 0) {\n if (parent.type.spec.isolating)\n return true;\n continue;\n }\n // See if the node before (or its first ancestor) is closed\n for (let before = parent.child(index - 1);; before = before.lastChild) {\n if ((before.childCount == 0 && !before.inlineContent) || before.isAtom || before.type.spec.isolating)\n return true;\n if (before.inlineContent)\n return false;\n }\n }\n // Hit start of document\n return true;\n}\nfunction closedAfter($pos) {\n for (let d = $pos.depth; d >= 0; d--) {\n let index = $pos.indexAfter(d), parent = $pos.node(d);\n if (index == parent.childCount) {\n if (parent.type.spec.isolating)\n return true;\n continue;\n }\n for (let after = parent.child(index);; after = after.firstChild) {\n if ((after.childCount == 0 && !after.inlineContent) || after.isAtom || after.type.spec.isolating)\n return true;\n if (after.inlineContent)\n return false;\n }\n }\n return true;\n}\n\n/**\nCreate a gap cursor plugin. When enabled, this will capture clicks\nnear and arrow-key-motion past places that don't have a normally\nselectable position nearby, and create a gap cursor selection for\nthem. The cursor is drawn as an element with class\n`ProseMirror-gapcursor`. You can either include\n`style/gapcursor.css` from the package's directory or add your own\nstyles to make it visible.\n*/\nfunction gapCursor() {\n return new Plugin({\n props: {\n decorations: drawGapCursor,\n createSelectionBetween(_view, $anchor, $head) {\n return $anchor.pos == $head.pos && GapCursor.valid($head) ? new GapCursor($head) : null;\n },\n handleClick,\n handleKeyDown,\n handleDOMEvents: { beforeinput: beforeinput }\n }\n });\n}\nconst handleKeyDown = keydownHandler({\n \"ArrowLeft\": arrow(\"horiz\", -1),\n \"ArrowRight\": arrow(\"horiz\", 1),\n \"ArrowUp\": arrow(\"vert\", -1),\n \"ArrowDown\": arrow(\"vert\", 1)\n});\nfunction arrow(axis, dir) {\n const dirStr = axis == \"vert\" ? (dir > 0 ? \"down\" : \"up\") : (dir > 0 ? \"right\" : \"left\");\n return function (state, dispatch, view) {\n let sel = state.selection;\n let $start = dir > 0 ? sel.$to : sel.$from, mustMove = sel.empty;\n if (sel instanceof TextSelection) {\n if (!view.endOfTextblock(dirStr) || $start.depth == 0)\n return false;\n mustMove = false;\n $start = state.doc.resolve(dir > 0 ? $start.after() : $start.before());\n }\n let $found = GapCursor.findGapCursorFrom($start, dir, mustMove);\n if (!$found)\n return false;\n if (dispatch)\n dispatch(state.tr.setSelection(new GapCursor($found)));\n return true;\n };\n}\nfunction handleClick(view, pos, event) {\n if (!view || !view.editable)\n return false;\n let $pos = view.state.doc.resolve(pos);\n if (!GapCursor.valid($pos))\n return false;\n let clickPos = view.posAtCoords({ left: event.clientX, top: event.clientY });\n if (clickPos && clickPos.inside > -1 && NodeSelection.isSelectable(view.state.doc.nodeAt(clickPos.inside)))\n return false;\n view.dispatch(view.state.tr.setSelection(new GapCursor($pos)));\n return true;\n}\n// This is a hack that, when a composition starts while a gap cursor\n// is active, quickly creates an inline context for the composition to\n// happen in, to avoid it being aborted by the DOM selection being\n// moved into a valid position.\nfunction beforeinput(view, event) {\n if (event.inputType != \"insertCompositionText\" || !(view.state.selection instanceof GapCursor))\n return false;\n let { $from } = view.state.selection;\n let insert = $from.parent.contentMatchAt($from.index()).findWrapping(view.state.schema.nodes.text);\n if (!insert)\n return false;\n let frag = Fragment.empty;\n for (let i = insert.length - 1; i >= 0; i--)\n frag = Fragment.from(insert[i].createAndFill(null, frag));\n let tr = view.state.tr.replace($from.pos, $from.pos, new Slice(frag, 0, 0));\n tr.setSelection(TextSelection.near(tr.doc.resolve($from.pos + 1)));\n view.dispatch(tr);\n return false;\n}\nfunction drawGapCursor(state) {\n if (!(state.selection instanceof GapCursor))\n return null;\n let node = document.createElement(\"div\");\n node.className = \"ProseMirror-gapcursor\";\n return DecorationSet.create(state.doc, [Decoration.widget(state.selection.head, node, { key: \"gapcursor\" })]);\n}\n\nexport { GapCursor, gapCursor };\n"],"names":["GapCursor","Selection","constructor","$pos","super","map","doc","mapping","resolve","this","head","valid","near","content","Slice","empty","eq","other","toJSON","type","pos","fromJSON","json","RangeError","getBookmark","GapBookmark","anchor","parent","isTextblock","d","depth","index","node","before","child","lastChild","childCount","inlineContent","isAtom","spec","isolating","closedBefore","indexAfter","after","firstChild","closedAfter","override","allowGapCursor","deflt","contentMatchAt","defaultType","findGapCursorFrom","dir","mustMove","search","next","$cur","inside","isText","NodeSelection","isSelectable","nodeSize","prototype","visible","findFrom","jsonID","handleKeyDown","keydownHandler","ArrowLeft","arrow","ArrowRight","ArrowUp","ArrowDown","axis","dirStr","state","dispatch","view","sel","selection","$start","$to","$from","TextSelection","endOfTextblock","$found","tr","setSelection","handleClick","event","editable","clickPos","posAtCoords","left","clientX","top","clientY","nodeAt","beforeinput","inputType","insert","findWrapping","schema","nodes","text","frag","Fragment","i","length","from","createAndFill","replace","drawGapCursor","document","createElement","className","DecorationSet","create","Decoration","widget","key","Plugin","props","decorations","createSelectionBetween","_view","$anchor","$head","handleDOMEvents"],"mappings":"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"}
|