@enos5/enos-vue-default 1.10.10 → 1.11.1
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/dist/{code-DUVB4tIV.js → code-BK8o2dAP.js} +2 -2
- package/dist/{code-DUVB4tIV.js.map → code-BK8o2dAP.js.map} +1 -1
- package/dist/components/InputGroup.vue.d.ts +2 -2
- package/dist/components/TableList.vue.d.ts +11 -0
- package/dist/components/TableSearch.vue.d.ts +11 -0
- package/dist/components/TinyEditor.vue.d.ts +1 -1
- package/dist/{default-1TOd8dTK.js → default-C4FT6dfa.js} +2 -2
- package/dist/{default-1TOd8dTK.js.map → default-C4FT6dfa.js.map} +1 -1
- package/dist/{dom-jAfhtA8C.js → dom-DWHiyR3v.js} +2 -2
- package/dist/{dom-jAfhtA8C.js.map → dom-DWHiyR3v.js.map} +1 -1
- package/dist/{image-BGRj_Ccg.js → image-BaKhUKgQ.js} +2 -2
- package/dist/{image-BGRj_Ccg.js.map → image-BaKhUKgQ.js.map} +1 -1
- package/dist/index.js +1 -1
- package/dist/index.node.js +1 -1
- package/dist/{link-BxDzytzM.js → link-BOMcpPKJ.js} +2 -2
- package/dist/{link-BxDzytzM.js.map → link-BOMcpPKJ.js.map} +1 -1
- package/dist/{lists-BATjTmGn.js → lists-CbzaQ5ui.js} +2 -2
- package/dist/{lists-BATjTmGn.js.map → lists-CbzaQ5ui.js.map} +1 -1
- package/dist/{plugin-DivPJd-4.js → plugin-DRrNUku-.js} +154 -67
- package/dist/plugin-DRrNUku-.js.map +1 -0
- package/dist/{silver-DkukrlK0.js → silver-d01FSbql.js} +2 -2
- package/dist/{silver-DkukrlK0.js.map → silver-d01FSbql.js.map} +1 -1
- package/dist/styles.css +21 -40
- package/dist/{table-BHzeP3X1.js → table-1U0Gbp89.js} +2 -2
- package/dist/{table-BHzeP3X1.js.map → table-1U0Gbp89.js.map} +1 -1
- package/dist/{tinymce-CkB_b7FZ.js → tinymce-CNM1pVpN.js} +2 -2
- package/dist/{tinymce-CkB_b7FZ.js.map → tinymce-CNM1pVpN.js.map} +1 -1
- package/package.json +1 -1
- package/dist/plugin-DivPJd-4.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lists-BATjTmGn.js","names":[],"sources":["../../../node_modules/tinymce/plugins/lists/plugin.js","../../../node_modules/tinymce/plugins/lists/index.js"],"sourcesContent":["/**\n * TinyMCE version 8.6.0 (2026-06-03)\n */\n\n(function () {\n 'use strict';\n\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n const get = (editor) => ({\n backspaceDelete: (isForward) => {\n editor.execCommand('mceListBackspaceDelete', false, isForward);\n }\n });\n\n /* eslint-disable @typescript-eslint/no-wrapper-object-types */\n const isSimpleType = (type) => (value) => typeof value === type;\n const isNullable = (a) => a === null || a === undefined;\n const isNonNullable = (a) => !isNullable(a);\n const isFunction = isSimpleType('function');\n\n const constant = (value) => {\n return () => {\n return value;\n };\n };\n const tripleEquals = (a, b) => {\n return a === b;\n };\n const never = constant(false);\n\n /**\n * The `Optional` type represents a value (of any type) that potentially does\n * not exist. Any `Optional<T>` can either be a `Some<T>` (in which case the\n * value does exist) or a `None` (in which case the value does not exist). This\n * module defines a whole lot of FP-inspired utility functions for dealing with\n * `Optional` objects.\n *\n * Comparison with null or undefined:\n * - We don't get fancy null coalescing operators with `Optional`\n * - We do get fancy helper functions with `Optional`\n * - `Optional` support nesting, and allow for the type to still be nullable (or\n * another `Optional`)\n * - There is no option to turn off strict-optional-checks like there is for\n * strict-null-checks\n */\n class Optional {\n tag;\n value;\n // Sneaky optimisation: every instance of Optional.none is identical, so just\n // reuse the same object\n static singletonNone = new Optional(false);\n // The internal representation has a `tag` and a `value`, but both are\n // private: able to be console.logged, but not able to be accessed by code\n constructor(tag, value) {\n this.tag = tag;\n this.value = value;\n }\n // --- Identities ---\n /**\n * Creates a new `Optional<T>` that **does** contain a value.\n */\n static some(value) {\n return new Optional(true, value);\n }\n /**\n * Create a new `Optional<T>` that **does not** contain a value. `T` can be\n * any type because we don't actually have a `T`.\n */\n static none() {\n return Optional.singletonNone;\n }\n /**\n * Perform a transform on an `Optional` type. Regardless of whether this\n * `Optional` contains a value or not, `fold` will return a value of type `U`.\n * If this `Optional` does not contain a value, the `U` will be created by\n * calling `onNone`. If this `Optional` does contain a value, the `U` will be\n * created by calling `onSome`.\n *\n * For the FP enthusiasts in the room, this function:\n * 1. Could be used to implement all of the functions below\n * 2. Forms a catamorphism\n */\n fold(onNone, onSome) {\n if (this.tag) {\n return onSome(this.value);\n }\n else {\n return onNone();\n }\n }\n /**\n * Determine if this `Optional` object contains a value.\n */\n isSome() {\n return this.tag;\n }\n /**\n * Determine if this `Optional` object **does not** contain a value.\n */\n isNone() {\n return !this.tag;\n }\n // --- Functor (name stolen from Haskell / maths) ---\n /**\n * Perform a transform on an `Optional` object, **if** there is a value. If\n * you provide a function to turn a T into a U, this is the function you use\n * to turn an `Optional<T>` into an `Optional<U>`. If this **does** contain\n * a value then the output will also contain a value (that value being the\n * output of `mapper(this.value)`), and if this **does not** contain a value\n * then neither will the output.\n */\n map(mapper) {\n if (this.tag) {\n return Optional.some(mapper(this.value));\n }\n else {\n return Optional.none();\n }\n }\n // --- Monad (name stolen from Haskell / maths) ---\n /**\n * Perform a transform on an `Optional` object, **if** there is a value.\n * Unlike `map`, here the transform itself also returns an `Optional`.\n */\n bind(binder) {\n if (this.tag) {\n return binder(this.value);\n }\n else {\n return Optional.none();\n }\n }\n // --- Traversable (name stolen from Haskell / maths) ---\n /**\n * For a given predicate, this function finds out if there **exists** a value\n * inside this `Optional` object that meets the predicate. In practice, this\n * means that for `Optional`s that do not contain a value it returns false (as\n * no predicate-meeting value exists).\n */\n exists(predicate) {\n return this.tag && predicate(this.value);\n }\n /**\n * For a given predicate, this function finds out if **all** the values inside\n * this `Optional` object meet the predicate. In practice, this means that\n * for `Optional`s that do not contain a value it returns true (as all 0\n * objects do meet the predicate).\n */\n forall(predicate) {\n return !this.tag || predicate(this.value);\n }\n filter(predicate) {\n if (!this.tag || predicate(this.value)) {\n return this;\n }\n else {\n return Optional.none();\n }\n }\n // --- Getters ---\n /**\n * Get the value out of the inside of the `Optional` object, using a default\n * `replacement` value if the provided `Optional` object does not contain a\n * value.\n */\n getOr(replacement) {\n return this.tag ? this.value : replacement;\n }\n /**\n * Get the value out of the inside of the `Optional` object, using a default\n * `replacement` value if the provided `Optional` object does not contain a\n * value. Unlike `getOr`, in this method the `replacement` object is also\n * `Optional` - meaning that this method will always return an `Optional`.\n */\n or(replacement) {\n return this.tag ? this : replacement;\n }\n /**\n * Get the value out of the inside of the `Optional` object, using a default\n * `replacement` value if the provided `Optional` object does not contain a\n * value. Unlike `getOr`, in this method the `replacement` value is\n * \"thunked\" - that is to say that you don't pass a value to `getOrThunk`, you\n * pass a function which (if called) will **return** the `value` you want to\n * use.\n */\n getOrThunk(thunk) {\n return this.tag ? this.value : thunk();\n }\n /**\n * Get the value out of the inside of the `Optional` object, using a default\n * `replacement` value if the provided Optional object does not contain a\n * value.\n *\n * Unlike `or`, in this method the `replacement` value is \"thunked\" - that is\n * to say that you don't pass a value to `orThunk`, you pass a function which\n * (if called) will **return** the `value` you want to use.\n *\n * Unlike `getOrThunk`, in this method the `replacement` value is also\n * `Optional`, meaning that this method will always return an `Optional`.\n */\n orThunk(thunk) {\n return this.tag ? this : thunk();\n }\n /**\n * Get the value out of the inside of the `Optional` object, throwing an\n * exception if the provided `Optional` object does not contain a value.\n *\n * WARNING:\n * You should only be using this function if you know that the `Optional`\n * object **is not** empty (otherwise you're throwing exceptions in production\n * code, which is bad).\n *\n * In tests this is more acceptable.\n *\n * Prefer other methods to this, such as `.each`.\n */\n getOrDie(message) {\n if (!this.tag) {\n throw new Error(message ?? 'Called getOrDie on None');\n }\n else {\n return this.value;\n }\n }\n // --- Interop with null and undefined ---\n /**\n * Creates an `Optional` value from a nullable (or undefined-able) input.\n * Null, or undefined, is converted to `None`, and anything else is converted\n * to `Some`.\n */\n static from(value) {\n return isNonNullable(value) ? Optional.some(value) : Optional.none();\n }\n /**\n * Converts an `Optional` to a nullable type, by getting the value if it\n * exists, or returning `null` if it does not.\n */\n getOrNull() {\n return this.tag ? this.value : null;\n }\n /**\n * Converts an `Optional` to an undefined-able type, by getting the value if\n * it exists, or returning `undefined` if it does not.\n */\n getOrUndefined() {\n return this.value;\n }\n // --- Utilities ---\n /**\n * If the `Optional` contains a value, perform an action on that value.\n * Unlike the rest of the methods on this type, `.each` has side-effects. If\n * you want to transform an `Optional<T>` **into** something, then this is not\n * the method for you. If you want to use an `Optional<T>` to **do**\n * something, then this is the method for you - provided you're okay with not\n * doing anything in the case where the `Optional` doesn't have a value inside\n * it. If you're not sure whether your use-case fits into transforming\n * **into** something or **doing** something, check whether it has a return\n * value. If it does, you should be performing a transform.\n */\n each(worker) {\n if (this.tag) {\n worker(this.value);\n }\n }\n /**\n * Turn the `Optional` object into an array that contains all of the values\n * stored inside the `Optional`. In practice, this means the output will have\n * either 0 or 1 elements.\n */\n toArray() {\n return this.tag ? [this.value] : [];\n }\n /**\n * Turn the `Optional` object into a string for debugging or printing. Not\n * recommended for production code, but good for debugging. Also note that\n * these days an `Optional` object can be logged to the console directly, and\n * its inner value (if it exists) will be visible.\n */\n toString() {\n return this.tag ? `some(${this.value})` : 'none()';\n }\n }\n\n const nativeSlice = Array.prototype.slice;\n const exists = (xs, pred) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return true;\n }\n }\n return false;\n };\n const map = (xs, f) => {\n // pre-allocating array size when it's guaranteed to be known\n // http://jsperf.com/push-allocated-vs-dynamic/22\n const len = xs.length;\n const r = new Array(len);\n for (let i = 0; i < len; i++) {\n const x = xs[i];\n r[i] = f(x, i);\n }\n return r;\n };\n // Unwound implementing other functions in terms of each.\n // The code size is roughly the same, and it should allow for better optimisation.\n // const each = function<T, U>(xs: T[], f: (x: T, i?: number, xs?: T[]) => void): void {\n const each = (xs, f) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n f(x, i);\n }\n };\n const foldl = (xs, f, acc) => {\n each(xs, (x, i) => {\n acc = f(acc, x, i);\n });\n return acc;\n };\n const findUntil = (xs, pred, until) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return Optional.some(x);\n }\n else if (until(x, i)) {\n break;\n }\n }\n return Optional.none();\n };\n const find = (xs, pred) => {\n return findUntil(xs, pred, never);\n };\n const reverse = (xs) => {\n const r = nativeSlice.call(xs, 0);\n r.reverse();\n return r;\n };\n isFunction(Array.from) ? Array.from : (x) => nativeSlice.call(x);\n\n /**\n * **Is** the value stored inside this Optional object equal to `rhs`?\n */\n const is = (lhs, rhs, comparator = tripleEquals) => lhs.exists((left) => comparator(left, rhs));\n\n const blank = (r) => (s) => s.replace(r, '');\n /** removes all leading and trailing spaces */\n const trim = blank(/^\\s+|\\s+$/g);\n const isNotEmpty = (s) => s.length > 0;\n const isEmpty = (s) => !isNotEmpty(s);\n\n // Example: 'AB' -> 28\n const parseAlphabeticBase26 = (str) => {\n const chars = reverse(trim(str).split(''));\n const values = map(chars, (char, i) => {\n const charValue = char.toUpperCase().charCodeAt(0) - 'A'.charCodeAt(0) + 1;\n return Math.pow(26, i) * charValue;\n });\n return foldl(values, (sum, v) => sum + v, 0);\n };\n // Example: 28 -> 'AB'\n const composeAlphabeticBase26 = (value) => {\n value--;\n if (value < 0) {\n return '';\n }\n else {\n const remainder = value % 26;\n const quotient = Math.floor(value / 26);\n const rest = composeAlphabeticBase26(quotient);\n const char = String.fromCharCode('A'.charCodeAt(0) + remainder);\n return rest + char;\n }\n };\n const isUppercase = (str) => /^[A-Z]+$/.test(str);\n const isLowercase = (str) => /^[a-z]+$/.test(str);\n const isNumeric = (str) => /^[0-9]+$/.test(str);\n const deduceListType = (start) => {\n if (isNumeric(start)) {\n return 2 /* ListType.Numeric */;\n }\n else if (isUppercase(start)) {\n return 0 /* ListType.UpperAlpha */;\n }\n else if (isLowercase(start)) {\n return 1 /* ListType.LowerAlpha */;\n }\n else if (isEmpty(start)) {\n return 3 /* ListType.None */;\n }\n else {\n return 4 /* ListType.Unknown */;\n }\n };\n const parseStartValue = (start) => {\n switch (deduceListType(start)) {\n case 2 /* ListType.Numeric */:\n return Optional.some({\n listStyleType: Optional.none(),\n start\n });\n case 0 /* ListType.UpperAlpha */:\n return Optional.some({\n listStyleType: Optional.some('upper-alpha'),\n start: parseAlphabeticBase26(start).toString()\n });\n case 1 /* ListType.LowerAlpha */:\n return Optional.some({\n listStyleType: Optional.some('lower-alpha'),\n start: parseAlphabeticBase26(start).toString()\n });\n case 3 /* ListType.None */:\n return Optional.some({\n listStyleType: Optional.none(),\n start: ''\n });\n case 4 /* ListType.Unknown */:\n return Optional.none();\n }\n };\n const parseDetail = (detail) => {\n const start = parseInt(detail.start, 10);\n if (is(detail.listStyleType, 'upper-alpha')) {\n return composeAlphabeticBase26(start);\n }\n else if (is(detail.listStyleType, 'lower-alpha')) {\n return composeAlphabeticBase26(start).toLowerCase();\n }\n else {\n return detail.start;\n }\n };\n\n const option = (name) => (editor) => editor.options.get(name);\n const getForcedRootBlock = option('forced_root_block');\n\n const isCustomList = (list) => /\\btox\\-/.test(list.className);\n const matchNodeNames = (regex) => (node) => isNonNullable(node) && regex.test(node.nodeName);\n const matchNodeName = (name) => (node) => isNonNullable(node) && node.nodeName.toLowerCase() === name;\n const isListNode = matchNodeNames(/^(OL|UL|DL)$/);\n const isTableCellNode = matchNodeNames(/^(TH|TD)$/);\n const isListItemNode = matchNodeNames(/^(LI|DT|DD)$/);\n const inList = (parents, listName) => findUntil(parents, isListNode, isTableCellNode)\n .exists((list) => list.nodeName === listName && !isCustomList(list));\n const setNodeChangeHandler = (editor, nodeChangeHandler) => {\n const initialNode = editor.selection.getNode();\n // Set the initial state\n nodeChangeHandler({\n parents: editor.dom.getParents(initialNode),\n element: initialNode\n });\n editor.on('NodeChange', nodeChangeHandler);\n return () => editor.off('NodeChange', nodeChangeHandler);\n };\n const isWithinNonEditable = (editor, element) => element !== null && !editor.dom.isEditable(element);\n const isWithinNonEditableList = (editor, element) => {\n const parentList = editor.dom.getParent(element, 'ol,ul,dl');\n return isWithinNonEditable(editor, parentList) || !editor.selection.isEditable();\n };\n const isOlNode = matchNodeName('ol');\n const listNames = ['OL', 'UL', 'DL'];\n const listSelector = listNames.join(',');\n const getParentList = (editor, node) => {\n const selectionStart = node || editor.selection.getStart(true);\n return editor.dom.getParent(selectionStart, listSelector, getClosestListHost(editor, selectionStart, editor.selection.isCollapsed()));\n };\n const getClosestListHost = (editor, elm, isCollapsed) => {\n const parentBlocks = editor.dom.getParents(elm, editor.dom.isBlock);\n const isNotForcedRootBlock = (elm) => elm.nodeName.toLowerCase() !== getForcedRootBlock(editor);\n const parentBlock = find(parentBlocks, (elm) => (!isCollapsed || isNotForcedRootBlock(elm)) && isListHost(editor.schema, elm));\n return parentBlock.getOr(editor.getBody());\n };\n const isListHost = (schema, node) => !isListNode(node) && !isListItemNode(node) && exists(listNames, (listName) => schema.isValidChild(node.nodeName, listName));\n\n const open = (editor) => {\n // Find the current list and skip opening if the selection isn't in an ordered list\n const currentList = getParentList(editor);\n if (!isOlNode(currentList) || isWithinNonEditableList(editor, currentList)) {\n return;\n }\n editor.windowManager.open({\n title: 'List Properties',\n body: {\n type: 'panel',\n items: [\n {\n type: 'input',\n name: 'start',\n label: 'Start list at number',\n inputMode: 'numeric'\n }\n ]\n },\n initialData: {\n start: parseDetail({\n start: editor.dom.getAttrib(currentList, 'start', '1'),\n listStyleType: Optional.from(editor.dom.getStyle(currentList, 'list-style-type'))\n })\n },\n buttons: [\n {\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n },\n {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }\n ],\n onSubmit: (api) => {\n const data = api.getData();\n parseStartValue(data.start).each((detail) => {\n editor.execCommand('mceListUpdate', false, {\n attrs: {\n start: detail.start === '1' ? '' : detail.start\n },\n styles: {\n 'list-style-type': detail.listStyleType.getOr('')\n }\n });\n });\n api.close();\n }\n });\n };\n\n const register$2 = (editor) => {\n editor.addCommand('mceListProps', () => {\n open(editor);\n });\n };\n\n const setupToggleButtonHandler = (editor, listName) => (api) => {\n const toggleButtonHandler = (e) => {\n api.setActive(inList(e.parents, listName));\n api.setEnabled(!isWithinNonEditableList(editor, e.element) && editor.selection.isEditable());\n };\n api.setEnabled(editor.selection.isEditable());\n return setNodeChangeHandler(editor, toggleButtonHandler);\n };\n const register$1 = (editor) => {\n const exec = (command) => () => editor.execCommand(command);\n if (!editor.hasPlugin('advlist')) {\n editor.ui.registry.addToggleButton('numlist', {\n icon: 'ordered-list',\n active: false,\n tooltip: 'Numbered list',\n onAction: exec('InsertOrderedList'),\n onSetup: setupToggleButtonHandler(editor, 'OL')\n });\n editor.ui.registry.addToggleButton('bullist', {\n icon: 'unordered-list',\n active: false,\n tooltip: 'Bullet list',\n onAction: exec('InsertUnorderedList'),\n onSetup: setupToggleButtonHandler(editor, 'UL')\n });\n }\n };\n\n const setupMenuButtonHandler = (editor, listName) => (api) => {\n const menuButtonHandler = (e) => api.setEnabled(inList(e.parents, listName) && !isWithinNonEditableList(editor, e.element));\n return setNodeChangeHandler(editor, menuButtonHandler);\n };\n const register = (editor) => {\n const listProperties = {\n text: 'List properties...',\n icon: 'ordered-list',\n onAction: () => editor.execCommand('mceListProps'),\n onSetup: setupMenuButtonHandler(editor, 'OL')\n };\n editor.ui.registry.addMenuItem('listprops', listProperties);\n editor.ui.registry.addContextMenu('lists', {\n update: (node) => {\n const parentList = getParentList(editor, node);\n return isOlNode(parentList) ? ['listprops'] : [];\n }\n });\n };\n\n var Plugin = () => {\n global.add('lists', (editor) => {\n register$2(editor);\n register$1(editor);\n register(editor);\n return get(editor);\n });\n };\n\n Plugin();\n /** *****\n * DO NOT EXPORT ANYTHING\n *\n * IF YOU DO ROLLUP WILL LEAVE A GLOBAL ON THE PAGE\n *******/\n\n})();\n","// Exports the \"lists\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/lists')\n// ES2015:\n// import 'tinymce/plugins/lists'\nrequire('./plugin.js');"],"x_google_ignoreList":[0,1],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lists-CbzaQ5ui.js","names":[],"sources":["../../../node_modules/tinymce/plugins/lists/plugin.js","../../../node_modules/tinymce/plugins/lists/index.js"],"sourcesContent":["/**\n * TinyMCE version 8.6.0 (2026-06-03)\n */\n\n(function () {\n 'use strict';\n\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n const get = (editor) => ({\n backspaceDelete: (isForward) => {\n editor.execCommand('mceListBackspaceDelete', false, isForward);\n }\n });\n\n /* eslint-disable @typescript-eslint/no-wrapper-object-types */\n const isSimpleType = (type) => (value) => typeof value === type;\n const isNullable = (a) => a === null || a === undefined;\n const isNonNullable = (a) => !isNullable(a);\n const isFunction = isSimpleType('function');\n\n const constant = (value) => {\n return () => {\n return value;\n };\n };\n const tripleEquals = (a, b) => {\n return a === b;\n };\n const never = constant(false);\n\n /**\n * The `Optional` type represents a value (of any type) that potentially does\n * not exist. Any `Optional<T>` can either be a `Some<T>` (in which case the\n * value does exist) or a `None` (in which case the value does not exist). This\n * module defines a whole lot of FP-inspired utility functions for dealing with\n * `Optional` objects.\n *\n * Comparison with null or undefined:\n * - We don't get fancy null coalescing operators with `Optional`\n * - We do get fancy helper functions with `Optional`\n * - `Optional` support nesting, and allow for the type to still be nullable (or\n * another `Optional`)\n * - There is no option to turn off strict-optional-checks like there is for\n * strict-null-checks\n */\n class Optional {\n tag;\n value;\n // Sneaky optimisation: every instance of Optional.none is identical, so just\n // reuse the same object\n static singletonNone = new Optional(false);\n // The internal representation has a `tag` and a `value`, but both are\n // private: able to be console.logged, but not able to be accessed by code\n constructor(tag, value) {\n this.tag = tag;\n this.value = value;\n }\n // --- Identities ---\n /**\n * Creates a new `Optional<T>` that **does** contain a value.\n */\n static some(value) {\n return new Optional(true, value);\n }\n /**\n * Create a new `Optional<T>` that **does not** contain a value. `T` can be\n * any type because we don't actually have a `T`.\n */\n static none() {\n return Optional.singletonNone;\n }\n /**\n * Perform a transform on an `Optional` type. Regardless of whether this\n * `Optional` contains a value or not, `fold` will return a value of type `U`.\n * If this `Optional` does not contain a value, the `U` will be created by\n * calling `onNone`. If this `Optional` does contain a value, the `U` will be\n * created by calling `onSome`.\n *\n * For the FP enthusiasts in the room, this function:\n * 1. Could be used to implement all of the functions below\n * 2. Forms a catamorphism\n */\n fold(onNone, onSome) {\n if (this.tag) {\n return onSome(this.value);\n }\n else {\n return onNone();\n }\n }\n /**\n * Determine if this `Optional` object contains a value.\n */\n isSome() {\n return this.tag;\n }\n /**\n * Determine if this `Optional` object **does not** contain a value.\n */\n isNone() {\n return !this.tag;\n }\n // --- Functor (name stolen from Haskell / maths) ---\n /**\n * Perform a transform on an `Optional` object, **if** there is a value. If\n * you provide a function to turn a T into a U, this is the function you use\n * to turn an `Optional<T>` into an `Optional<U>`. If this **does** contain\n * a value then the output will also contain a value (that value being the\n * output of `mapper(this.value)`), and if this **does not** contain a value\n * then neither will the output.\n */\n map(mapper) {\n if (this.tag) {\n return Optional.some(mapper(this.value));\n }\n else {\n return Optional.none();\n }\n }\n // --- Monad (name stolen from Haskell / maths) ---\n /**\n * Perform a transform on an `Optional` object, **if** there is a value.\n * Unlike `map`, here the transform itself also returns an `Optional`.\n */\n bind(binder) {\n if (this.tag) {\n return binder(this.value);\n }\n else {\n return Optional.none();\n }\n }\n // --- Traversable (name stolen from Haskell / maths) ---\n /**\n * For a given predicate, this function finds out if there **exists** a value\n * inside this `Optional` object that meets the predicate. In practice, this\n * means that for `Optional`s that do not contain a value it returns false (as\n * no predicate-meeting value exists).\n */\n exists(predicate) {\n return this.tag && predicate(this.value);\n }\n /**\n * For a given predicate, this function finds out if **all** the values inside\n * this `Optional` object meet the predicate. In practice, this means that\n * for `Optional`s that do not contain a value it returns true (as all 0\n * objects do meet the predicate).\n */\n forall(predicate) {\n return !this.tag || predicate(this.value);\n }\n filter(predicate) {\n if (!this.tag || predicate(this.value)) {\n return this;\n }\n else {\n return Optional.none();\n }\n }\n // --- Getters ---\n /**\n * Get the value out of the inside of the `Optional` object, using a default\n * `replacement` value if the provided `Optional` object does not contain a\n * value.\n */\n getOr(replacement) {\n return this.tag ? this.value : replacement;\n }\n /**\n * Get the value out of the inside of the `Optional` object, using a default\n * `replacement` value if the provided `Optional` object does not contain a\n * value. Unlike `getOr`, in this method the `replacement` object is also\n * `Optional` - meaning that this method will always return an `Optional`.\n */\n or(replacement) {\n return this.tag ? this : replacement;\n }\n /**\n * Get the value out of the inside of the `Optional` object, using a default\n * `replacement` value if the provided `Optional` object does not contain a\n * value. Unlike `getOr`, in this method the `replacement` value is\n * \"thunked\" - that is to say that you don't pass a value to `getOrThunk`, you\n * pass a function which (if called) will **return** the `value` you want to\n * use.\n */\n getOrThunk(thunk) {\n return this.tag ? this.value : thunk();\n }\n /**\n * Get the value out of the inside of the `Optional` object, using a default\n * `replacement` value if the provided Optional object does not contain a\n * value.\n *\n * Unlike `or`, in this method the `replacement` value is \"thunked\" - that is\n * to say that you don't pass a value to `orThunk`, you pass a function which\n * (if called) will **return** the `value` you want to use.\n *\n * Unlike `getOrThunk`, in this method the `replacement` value is also\n * `Optional`, meaning that this method will always return an `Optional`.\n */\n orThunk(thunk) {\n return this.tag ? this : thunk();\n }\n /**\n * Get the value out of the inside of the `Optional` object, throwing an\n * exception if the provided `Optional` object does not contain a value.\n *\n * WARNING:\n * You should only be using this function if you know that the `Optional`\n * object **is not** empty (otherwise you're throwing exceptions in production\n * code, which is bad).\n *\n * In tests this is more acceptable.\n *\n * Prefer other methods to this, such as `.each`.\n */\n getOrDie(message) {\n if (!this.tag) {\n throw new Error(message ?? 'Called getOrDie on None');\n }\n else {\n return this.value;\n }\n }\n // --- Interop with null and undefined ---\n /**\n * Creates an `Optional` value from a nullable (or undefined-able) input.\n * Null, or undefined, is converted to `None`, and anything else is converted\n * to `Some`.\n */\n static from(value) {\n return isNonNullable(value) ? Optional.some(value) : Optional.none();\n }\n /**\n * Converts an `Optional` to a nullable type, by getting the value if it\n * exists, or returning `null` if it does not.\n */\n getOrNull() {\n return this.tag ? this.value : null;\n }\n /**\n * Converts an `Optional` to an undefined-able type, by getting the value if\n * it exists, or returning `undefined` if it does not.\n */\n getOrUndefined() {\n return this.value;\n }\n // --- Utilities ---\n /**\n * If the `Optional` contains a value, perform an action on that value.\n * Unlike the rest of the methods on this type, `.each` has side-effects. If\n * you want to transform an `Optional<T>` **into** something, then this is not\n * the method for you. If you want to use an `Optional<T>` to **do**\n * something, then this is the method for you - provided you're okay with not\n * doing anything in the case where the `Optional` doesn't have a value inside\n * it. If you're not sure whether your use-case fits into transforming\n * **into** something or **doing** something, check whether it has a return\n * value. If it does, you should be performing a transform.\n */\n each(worker) {\n if (this.tag) {\n worker(this.value);\n }\n }\n /**\n * Turn the `Optional` object into an array that contains all of the values\n * stored inside the `Optional`. In practice, this means the output will have\n * either 0 or 1 elements.\n */\n toArray() {\n return this.tag ? [this.value] : [];\n }\n /**\n * Turn the `Optional` object into a string for debugging or printing. Not\n * recommended for production code, but good for debugging. Also note that\n * these days an `Optional` object can be logged to the console directly, and\n * its inner value (if it exists) will be visible.\n */\n toString() {\n return this.tag ? `some(${this.value})` : 'none()';\n }\n }\n\n const nativeSlice = Array.prototype.slice;\n const exists = (xs, pred) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return true;\n }\n }\n return false;\n };\n const map = (xs, f) => {\n // pre-allocating array size when it's guaranteed to be known\n // http://jsperf.com/push-allocated-vs-dynamic/22\n const len = xs.length;\n const r = new Array(len);\n for (let i = 0; i < len; i++) {\n const x = xs[i];\n r[i] = f(x, i);\n }\n return r;\n };\n // Unwound implementing other functions in terms of each.\n // The code size is roughly the same, and it should allow for better optimisation.\n // const each = function<T, U>(xs: T[], f: (x: T, i?: number, xs?: T[]) => void): void {\n const each = (xs, f) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n f(x, i);\n }\n };\n const foldl = (xs, f, acc) => {\n each(xs, (x, i) => {\n acc = f(acc, x, i);\n });\n return acc;\n };\n const findUntil = (xs, pred, until) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return Optional.some(x);\n }\n else if (until(x, i)) {\n break;\n }\n }\n return Optional.none();\n };\n const find = (xs, pred) => {\n return findUntil(xs, pred, never);\n };\n const reverse = (xs) => {\n const r = nativeSlice.call(xs, 0);\n r.reverse();\n return r;\n };\n isFunction(Array.from) ? Array.from : (x) => nativeSlice.call(x);\n\n /**\n * **Is** the value stored inside this Optional object equal to `rhs`?\n */\n const is = (lhs, rhs, comparator = tripleEquals) => lhs.exists((left) => comparator(left, rhs));\n\n const blank = (r) => (s) => s.replace(r, '');\n /** removes all leading and trailing spaces */\n const trim = blank(/^\\s+|\\s+$/g);\n const isNotEmpty = (s) => s.length > 0;\n const isEmpty = (s) => !isNotEmpty(s);\n\n // Example: 'AB' -> 28\n const parseAlphabeticBase26 = (str) => {\n const chars = reverse(trim(str).split(''));\n const values = map(chars, (char, i) => {\n const charValue = char.toUpperCase().charCodeAt(0) - 'A'.charCodeAt(0) + 1;\n return Math.pow(26, i) * charValue;\n });\n return foldl(values, (sum, v) => sum + v, 0);\n };\n // Example: 28 -> 'AB'\n const composeAlphabeticBase26 = (value) => {\n value--;\n if (value < 0) {\n return '';\n }\n else {\n const remainder = value % 26;\n const quotient = Math.floor(value / 26);\n const rest = composeAlphabeticBase26(quotient);\n const char = String.fromCharCode('A'.charCodeAt(0) + remainder);\n return rest + char;\n }\n };\n const isUppercase = (str) => /^[A-Z]+$/.test(str);\n const isLowercase = (str) => /^[a-z]+$/.test(str);\n const isNumeric = (str) => /^[0-9]+$/.test(str);\n const deduceListType = (start) => {\n if (isNumeric(start)) {\n return 2 /* ListType.Numeric */;\n }\n else if (isUppercase(start)) {\n return 0 /* ListType.UpperAlpha */;\n }\n else if (isLowercase(start)) {\n return 1 /* ListType.LowerAlpha */;\n }\n else if (isEmpty(start)) {\n return 3 /* ListType.None */;\n }\n else {\n return 4 /* ListType.Unknown */;\n }\n };\n const parseStartValue = (start) => {\n switch (deduceListType(start)) {\n case 2 /* ListType.Numeric */:\n return Optional.some({\n listStyleType: Optional.none(),\n start\n });\n case 0 /* ListType.UpperAlpha */:\n return Optional.some({\n listStyleType: Optional.some('upper-alpha'),\n start: parseAlphabeticBase26(start).toString()\n });\n case 1 /* ListType.LowerAlpha */:\n return Optional.some({\n listStyleType: Optional.some('lower-alpha'),\n start: parseAlphabeticBase26(start).toString()\n });\n case 3 /* ListType.None */:\n return Optional.some({\n listStyleType: Optional.none(),\n start: ''\n });\n case 4 /* ListType.Unknown */:\n return Optional.none();\n }\n };\n const parseDetail = (detail) => {\n const start = parseInt(detail.start, 10);\n if (is(detail.listStyleType, 'upper-alpha')) {\n return composeAlphabeticBase26(start);\n }\n else if (is(detail.listStyleType, 'lower-alpha')) {\n return composeAlphabeticBase26(start).toLowerCase();\n }\n else {\n return detail.start;\n }\n };\n\n const option = (name) => (editor) => editor.options.get(name);\n const getForcedRootBlock = option('forced_root_block');\n\n const isCustomList = (list) => /\\btox\\-/.test(list.className);\n const matchNodeNames = (regex) => (node) => isNonNullable(node) && regex.test(node.nodeName);\n const matchNodeName = (name) => (node) => isNonNullable(node) && node.nodeName.toLowerCase() === name;\n const isListNode = matchNodeNames(/^(OL|UL|DL)$/);\n const isTableCellNode = matchNodeNames(/^(TH|TD)$/);\n const isListItemNode = matchNodeNames(/^(LI|DT|DD)$/);\n const inList = (parents, listName) => findUntil(parents, isListNode, isTableCellNode)\n .exists((list) => list.nodeName === listName && !isCustomList(list));\n const setNodeChangeHandler = (editor, nodeChangeHandler) => {\n const initialNode = editor.selection.getNode();\n // Set the initial state\n nodeChangeHandler({\n parents: editor.dom.getParents(initialNode),\n element: initialNode\n });\n editor.on('NodeChange', nodeChangeHandler);\n return () => editor.off('NodeChange', nodeChangeHandler);\n };\n const isWithinNonEditable = (editor, element) => element !== null && !editor.dom.isEditable(element);\n const isWithinNonEditableList = (editor, element) => {\n const parentList = editor.dom.getParent(element, 'ol,ul,dl');\n return isWithinNonEditable(editor, parentList) || !editor.selection.isEditable();\n };\n const isOlNode = matchNodeName('ol');\n const listNames = ['OL', 'UL', 'DL'];\n const listSelector = listNames.join(',');\n const getParentList = (editor, node) => {\n const selectionStart = node || editor.selection.getStart(true);\n return editor.dom.getParent(selectionStart, listSelector, getClosestListHost(editor, selectionStart, editor.selection.isCollapsed()));\n };\n const getClosestListHost = (editor, elm, isCollapsed) => {\n const parentBlocks = editor.dom.getParents(elm, editor.dom.isBlock);\n const isNotForcedRootBlock = (elm) => elm.nodeName.toLowerCase() !== getForcedRootBlock(editor);\n const parentBlock = find(parentBlocks, (elm) => (!isCollapsed || isNotForcedRootBlock(elm)) && isListHost(editor.schema, elm));\n return parentBlock.getOr(editor.getBody());\n };\n const isListHost = (schema, node) => !isListNode(node) && !isListItemNode(node) && exists(listNames, (listName) => schema.isValidChild(node.nodeName, listName));\n\n const open = (editor) => {\n // Find the current list and skip opening if the selection isn't in an ordered list\n const currentList = getParentList(editor);\n if (!isOlNode(currentList) || isWithinNonEditableList(editor, currentList)) {\n return;\n }\n editor.windowManager.open({\n title: 'List Properties',\n body: {\n type: 'panel',\n items: [\n {\n type: 'input',\n name: 'start',\n label: 'Start list at number',\n inputMode: 'numeric'\n }\n ]\n },\n initialData: {\n start: parseDetail({\n start: editor.dom.getAttrib(currentList, 'start', '1'),\n listStyleType: Optional.from(editor.dom.getStyle(currentList, 'list-style-type'))\n })\n },\n buttons: [\n {\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n },\n {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }\n ],\n onSubmit: (api) => {\n const data = api.getData();\n parseStartValue(data.start).each((detail) => {\n editor.execCommand('mceListUpdate', false, {\n attrs: {\n start: detail.start === '1' ? '' : detail.start\n },\n styles: {\n 'list-style-type': detail.listStyleType.getOr('')\n }\n });\n });\n api.close();\n }\n });\n };\n\n const register$2 = (editor) => {\n editor.addCommand('mceListProps', () => {\n open(editor);\n });\n };\n\n const setupToggleButtonHandler = (editor, listName) => (api) => {\n const toggleButtonHandler = (e) => {\n api.setActive(inList(e.parents, listName));\n api.setEnabled(!isWithinNonEditableList(editor, e.element) && editor.selection.isEditable());\n };\n api.setEnabled(editor.selection.isEditable());\n return setNodeChangeHandler(editor, toggleButtonHandler);\n };\n const register$1 = (editor) => {\n const exec = (command) => () => editor.execCommand(command);\n if (!editor.hasPlugin('advlist')) {\n editor.ui.registry.addToggleButton('numlist', {\n icon: 'ordered-list',\n active: false,\n tooltip: 'Numbered list',\n onAction: exec('InsertOrderedList'),\n onSetup: setupToggleButtonHandler(editor, 'OL')\n });\n editor.ui.registry.addToggleButton('bullist', {\n icon: 'unordered-list',\n active: false,\n tooltip: 'Bullet list',\n onAction: exec('InsertUnorderedList'),\n onSetup: setupToggleButtonHandler(editor, 'UL')\n });\n }\n };\n\n const setupMenuButtonHandler = (editor, listName) => (api) => {\n const menuButtonHandler = (e) => api.setEnabled(inList(e.parents, listName) && !isWithinNonEditableList(editor, e.element));\n return setNodeChangeHandler(editor, menuButtonHandler);\n };\n const register = (editor) => {\n const listProperties = {\n text: 'List properties...',\n icon: 'ordered-list',\n onAction: () => editor.execCommand('mceListProps'),\n onSetup: setupMenuButtonHandler(editor, 'OL')\n };\n editor.ui.registry.addMenuItem('listprops', listProperties);\n editor.ui.registry.addContextMenu('lists', {\n update: (node) => {\n const parentList = getParentList(editor, node);\n return isOlNode(parentList) ? ['listprops'] : [];\n }\n });\n };\n\n var Plugin = () => {\n global.add('lists', (editor) => {\n register$2(editor);\n register$1(editor);\n register(editor);\n return get(editor);\n });\n };\n\n Plugin();\n /** *****\n * DO NOT EXPORT ANYTHING\n *\n * IF YOU DO ROLLUP WILL LEAVE A GLOBAL ON THE PAGE\n *******/\n\n})();\n","// Exports the \"lists\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/lists')\n// ES2015:\n// import 'tinymce/plugins/lists'\nrequire('./plugin.js');"],"x_google_ignoreList":[0,1],"mappings":"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"}
|
|
@@ -1045,10 +1045,16 @@ var _sfc_main$27 = /*@__PURE__*/ Object.assign({ inheritAttrs: false }, {
|
|
|
1045
1045
|
const triggerRef = ref(null);
|
|
1046
1046
|
const triggerValueRef = ref(null);
|
|
1047
1047
|
const dropdownMenuRef = ref(null);
|
|
1048
|
-
const dropdownStyle = ref({
|
|
1048
|
+
const dropdownStyle = ref({
|
|
1049
|
+
position: "absolute",
|
|
1050
|
+
left: "0px",
|
|
1051
|
+
top: "0px",
|
|
1052
|
+
visibility: "hidden"
|
|
1053
|
+
});
|
|
1049
1054
|
const teleportTarget = ref("body");
|
|
1050
1055
|
const isDarkMode = ref(false);
|
|
1051
1056
|
const isMounted = ref(false);
|
|
1057
|
+
const isDropdownReady = ref(false);
|
|
1052
1058
|
const searchQuery = ref("");
|
|
1053
1059
|
const searchInputRef = ref(null);
|
|
1054
1060
|
const highlightedOptionValue = ref(null);
|
|
@@ -1058,6 +1064,9 @@ var _sfc_main$27 = /*@__PURE__*/ Object.assign({ inheritAttrs: false }, {
|
|
|
1058
1064
|
const triggerValuePointerStartX = ref(0);
|
|
1059
1065
|
const shouldSuppressTriggerClick = ref(false);
|
|
1060
1066
|
let typeaheadResetTimeout = null;
|
|
1067
|
+
let positionFrame = null;
|
|
1068
|
+
let revealFrame = null;
|
|
1069
|
+
let resizeObserver = null;
|
|
1061
1070
|
const isObjectOption = (option) => typeof option === "object" && option !== null;
|
|
1062
1071
|
const optionValue = (option) => {
|
|
1063
1072
|
if (isObjectOption(option)) return option[props.valueKey];
|
|
@@ -1241,7 +1250,7 @@ var _sfc_main$27 = /*@__PURE__*/ Object.assign({ inheritAttrs: false }, {
|
|
|
1241
1250
|
if (!props.disabled) isOpen.value = !isOpen.value;
|
|
1242
1251
|
};
|
|
1243
1252
|
const syncTeleportTarget = () => {
|
|
1244
|
-
teleportTarget.value = rootRef.value?.closest("
|
|
1253
|
+
teleportTarget.value = rootRef.value?.closest("dialog") ?? document.body;
|
|
1245
1254
|
};
|
|
1246
1255
|
const selectOption = (option) => {
|
|
1247
1256
|
emit("update:modelValue", normalizeEmittedValue(optionValue(option)));
|
|
@@ -1262,39 +1271,97 @@ var _sfc_main$27 = /*@__PURE__*/ Object.assign({ inheritAttrs: false }, {
|
|
|
1262
1271
|
emit("update:modelValue", normalizeEmittedValues(currentValues));
|
|
1263
1272
|
};
|
|
1264
1273
|
const updateDropdownPosition = () => {
|
|
1265
|
-
if (!triggerRef.value) return;
|
|
1274
|
+
if (!isOpen.value || !triggerRef.value || !dropdownMenuRef.value) return;
|
|
1266
1275
|
const rect = triggerRef.value.getBoundingClientRect();
|
|
1267
|
-
const teleportElement = teleportTarget.value instanceof HTMLElement ? teleportTarget.value : null;
|
|
1268
1276
|
const viewportWidth = window.innerWidth;
|
|
1269
1277
|
const viewportHeight = window.innerHeight;
|
|
1270
|
-
const
|
|
1271
|
-
const
|
|
1272
|
-
const
|
|
1273
|
-
const
|
|
1274
|
-
const
|
|
1275
|
-
|
|
1276
|
-
|
|
1278
|
+
const gap = 8;
|
|
1279
|
+
const portalElement = teleportTarget.value instanceof HTMLElement ? teleportTarget.value : null;
|
|
1280
|
+
const isBodyPortal = !portalElement || portalElement === document.body;
|
|
1281
|
+
const portalRect = isBodyPortal ? null : portalElement.getBoundingClientRect();
|
|
1282
|
+
const portalScrollLeft = isBodyPortal ? window.scrollX : portalElement.scrollLeft;
|
|
1283
|
+
const portalScrollTop = isBodyPortal ? window.scrollY : portalElement.scrollTop;
|
|
1284
|
+
if (!(rect.bottom > 0 && rect.top < viewportHeight && rect.right > 0 && rect.left < viewportWidth)) {
|
|
1277
1285
|
dropdownStyle.value = {
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
width: `${width}px`,
|
|
1281
|
-
maxHeight: `${maxHeight}px`,
|
|
1282
|
-
pointerEvents: "auto",
|
|
1283
|
-
zIndex: "9999",
|
|
1284
|
-
...shouldOpenUpward ? { bottom: `${containerRect.bottom - rect.top + 1}px` } : { top: `${rect.bottom - containerRect.top - 1}px` }
|
|
1286
|
+
...dropdownStyle.value,
|
|
1287
|
+
visibility: "hidden"
|
|
1285
1288
|
};
|
|
1286
1289
|
return;
|
|
1287
1290
|
}
|
|
1291
|
+
const spaceBelow = Math.max(viewportHeight - rect.bottom - gap, 0);
|
|
1292
|
+
const spaceAbove = Math.max(rect.top - gap, 0);
|
|
1293
|
+
const measuredHeight = dropdownMenuRef.value.offsetHeight;
|
|
1294
|
+
const shouldOpenUpward = measuredHeight > spaceBelow && spaceAbove > spaceBelow;
|
|
1295
|
+
const maxHeight = Math.min(240, shouldOpenUpward ? spaceAbove : spaceBelow);
|
|
1296
|
+
const menuHeight = Math.min(measuredHeight || maxHeight, maxHeight);
|
|
1297
|
+
const maxWidth = Math.max(viewportWidth - gap * 2, 0);
|
|
1298
|
+
const width = Math.min(Math.max(rect.width, 160), maxWidth);
|
|
1299
|
+
const leftInViewport = Math.max(gap, Math.min(rect.left, viewportWidth - width - gap));
|
|
1300
|
+
const left = isBodyPortal ? leftInViewport + window.scrollX : leftInViewport - portalRect.left + portalScrollLeft;
|
|
1301
|
+
const triggerTop = isBodyPortal ? rect.top + window.scrollY : rect.top - portalRect.top + portalScrollTop;
|
|
1302
|
+
const triggerBottom = isBodyPortal ? rect.bottom + window.scrollY : rect.bottom - portalRect.top + portalScrollTop;
|
|
1303
|
+
const top = shouldOpenUpward ? triggerTop - menuHeight - 1 : triggerBottom - 1;
|
|
1288
1304
|
dropdownStyle.value = {
|
|
1289
|
-
position: "
|
|
1290
|
-
left: `${
|
|
1305
|
+
position: "absolute",
|
|
1306
|
+
left: `${left}px`,
|
|
1307
|
+
top: `${Math.max(portalScrollTop + gap, top)}px`,
|
|
1291
1308
|
width: `${width}px`,
|
|
1292
1309
|
maxHeight: `${maxHeight}px`,
|
|
1293
1310
|
pointerEvents: "auto",
|
|
1294
1311
|
zIndex: "9999",
|
|
1295
|
-
|
|
1312
|
+
visibility: isDropdownReady.value ? "visible" : "hidden"
|
|
1296
1313
|
};
|
|
1297
1314
|
};
|
|
1315
|
+
const scheduleDropdownPositionUpdate = () => {
|
|
1316
|
+
if (!isOpen.value || positionFrame !== null) return;
|
|
1317
|
+
positionFrame = window.requestAnimationFrame(() => {
|
|
1318
|
+
positionFrame = null;
|
|
1319
|
+
updateDropdownPosition();
|
|
1320
|
+
});
|
|
1321
|
+
};
|
|
1322
|
+
const handleDropdownScroll = (event) => {
|
|
1323
|
+
if (!isOpen.value) return;
|
|
1324
|
+
const scrollTarget = event.target;
|
|
1325
|
+
const portalElement = teleportTarget.value instanceof HTMLElement ? teleportTarget.value : null;
|
|
1326
|
+
if (!(!portalElement || portalElement === document.body ? scrollTarget === document || scrollTarget === document.documentElement || scrollTarget === document.body : scrollTarget === portalElement)) isOpen.value = false;
|
|
1327
|
+
};
|
|
1328
|
+
const cancelDropdownFrames = () => {
|
|
1329
|
+
if (positionFrame !== null) {
|
|
1330
|
+
window.cancelAnimationFrame(positionFrame);
|
|
1331
|
+
positionFrame = null;
|
|
1332
|
+
}
|
|
1333
|
+
if (revealFrame !== null) {
|
|
1334
|
+
window.cancelAnimationFrame(revealFrame);
|
|
1335
|
+
revealFrame = null;
|
|
1336
|
+
}
|
|
1337
|
+
};
|
|
1338
|
+
const disconnectResizeObserver = () => {
|
|
1339
|
+
resizeObserver?.disconnect();
|
|
1340
|
+
resizeObserver = null;
|
|
1341
|
+
};
|
|
1342
|
+
const refreshDropdownPosition = async () => {
|
|
1343
|
+
if (!isOpen.value) return;
|
|
1344
|
+
cancelDropdownFrames();
|
|
1345
|
+
isDropdownReady.value = false;
|
|
1346
|
+
dropdownStyle.value = {
|
|
1347
|
+
...dropdownStyle.value,
|
|
1348
|
+
visibility: "hidden"
|
|
1349
|
+
};
|
|
1350
|
+
await nextTick();
|
|
1351
|
+
updateDropdownPosition();
|
|
1352
|
+
if (typeof ResizeObserver !== "undefined") {
|
|
1353
|
+
disconnectResizeObserver();
|
|
1354
|
+
resizeObserver = new ResizeObserver(scheduleDropdownPositionUpdate);
|
|
1355
|
+
resizeObserver.observe(triggerRef.value);
|
|
1356
|
+
resizeObserver.observe(dropdownMenuRef.value);
|
|
1357
|
+
}
|
|
1358
|
+
revealFrame = window.requestAnimationFrame(() => {
|
|
1359
|
+
revealFrame = null;
|
|
1360
|
+
if (!isOpen.value) return;
|
|
1361
|
+
isDropdownReady.value = true;
|
|
1362
|
+
updateDropdownPosition();
|
|
1363
|
+
});
|
|
1364
|
+
};
|
|
1298
1365
|
const closeDropdown = (event) => {
|
|
1299
1366
|
const clickedInsideTrigger = rootRef.value?.contains(event.target);
|
|
1300
1367
|
const clickedInsideMenu = dropdownMenuRef.value?.contains(event.target);
|
|
@@ -1451,10 +1518,12 @@ var _sfc_main$27 = /*@__PURE__*/ Object.assign({ inheritAttrs: false }, {
|
|
|
1451
1518
|
document.addEventListener("selectionchange", syncTriggerValueSelection);
|
|
1452
1519
|
document.addEventListener("keydown", handleDropdownKeydown, true);
|
|
1453
1520
|
document.addEventListener("keydown", handleTypeaheadKeydown, true);
|
|
1454
|
-
window.addEventListener("resize",
|
|
1455
|
-
window.addEventListener("scroll",
|
|
1521
|
+
window.addEventListener("resize", scheduleDropdownPositionUpdate);
|
|
1522
|
+
window.addEventListener("scroll", handleDropdownScroll, true);
|
|
1456
1523
|
});
|
|
1457
1524
|
onBeforeUnmount(() => {
|
|
1525
|
+
cancelDropdownFrames();
|
|
1526
|
+
disconnectResizeObserver();
|
|
1458
1527
|
clearTypeaheadQuery();
|
|
1459
1528
|
document.removeEventListener("click", closeDropdown);
|
|
1460
1529
|
document.removeEventListener("pointermove", handleTriggerValuePointerMove);
|
|
@@ -1462,11 +1531,14 @@ var _sfc_main$27 = /*@__PURE__*/ Object.assign({ inheritAttrs: false }, {
|
|
|
1462
1531
|
document.removeEventListener("selectionchange", syncTriggerValueSelection);
|
|
1463
1532
|
document.removeEventListener("keydown", handleDropdownKeydown, true);
|
|
1464
1533
|
document.removeEventListener("keydown", handleTypeaheadKeydown, true);
|
|
1465
|
-
window.removeEventListener("resize",
|
|
1466
|
-
window.removeEventListener("scroll",
|
|
1534
|
+
window.removeEventListener("resize", scheduleDropdownPositionUpdate);
|
|
1535
|
+
window.removeEventListener("scroll", handleDropdownScroll, true);
|
|
1467
1536
|
});
|
|
1468
1537
|
watch(isOpen, async (open) => {
|
|
1469
1538
|
if (!open) {
|
|
1539
|
+
cancelDropdownFrames();
|
|
1540
|
+
disconnectResizeObserver();
|
|
1541
|
+
isDropdownReady.value = false;
|
|
1470
1542
|
resetTriggerValueSelectionState();
|
|
1471
1543
|
searchQuery.value = "";
|
|
1472
1544
|
highlightedOptionValue.value = null;
|
|
@@ -1476,8 +1548,7 @@ var _sfc_main$27 = /*@__PURE__*/ Object.assign({ inheritAttrs: false }, {
|
|
|
1476
1548
|
clearTypeaheadQuery();
|
|
1477
1549
|
syncTeleportTarget();
|
|
1478
1550
|
syncDarkMode();
|
|
1479
|
-
await
|
|
1480
|
-
updateDropdownPosition();
|
|
1551
|
+
await refreshDropdownPosition();
|
|
1481
1552
|
if (props.searchable) {
|
|
1482
1553
|
await nextTick();
|
|
1483
1554
|
await syncHighlightedOption();
|
|
@@ -1490,6 +1561,7 @@ var _sfc_main$27 = /*@__PURE__*/ Object.assign({ inheritAttrs: false }, {
|
|
|
1490
1561
|
watch(filteredOptions, async () => {
|
|
1491
1562
|
if (!isOpen.value || !props.searchable) return;
|
|
1492
1563
|
await syncHighlightedOption();
|
|
1564
|
+
scheduleDropdownPositionUpdate();
|
|
1493
1565
|
});
|
|
1494
1566
|
watch(() => props.modelValue, () => {
|
|
1495
1567
|
if (!isSelectingTriggerValue.value && triggerValueRef.value) triggerValueRef.value.scrollLeft = 0;
|
|
@@ -1521,12 +1593,12 @@ var _sfc_main$27 = /*@__PURE__*/ Object.assign({ inheritAttrs: false }, {
|
|
|
1521
1593
|
key: 0,
|
|
1522
1594
|
to: teleportTarget.value
|
|
1523
1595
|
}, [createVNode(Transition, {
|
|
1524
|
-
"enter-active-class": "transition-
|
|
1525
|
-
"enter-from-class": "opacity-0
|
|
1526
|
-
"enter-to-class": "opacity-100
|
|
1527
|
-
"leave-active-class": "transition-
|
|
1528
|
-
"leave-from-class": "opacity-100
|
|
1529
|
-
"leave-to-class": "opacity-0
|
|
1596
|
+
"enter-active-class": "transition-opacity duration-150 ease-out",
|
|
1597
|
+
"enter-from-class": "opacity-0",
|
|
1598
|
+
"enter-to-class": "opacity-100",
|
|
1599
|
+
"leave-active-class": "transition-opacity duration-100 ease-in",
|
|
1600
|
+
"leave-from-class": "opacity-100",
|
|
1601
|
+
"leave-to-class": "opacity-0"
|
|
1530
1602
|
}, {
|
|
1531
1603
|
default: withCtx(() => [isOpen.value ? (openBlock(), createElementBlock("div", {
|
|
1532
1604
|
key: 0,
|
|
@@ -1534,7 +1606,10 @@ var _sfc_main$27 = /*@__PURE__*/ Object.assign({ inheritAttrs: false }, {
|
|
|
1534
1606
|
ref: dropdownMenuRef,
|
|
1535
1607
|
class: normalizeClass([{ dark: isDarkMode.value }, props.ui.dropdownRoot]),
|
|
1536
1608
|
style: normalizeStyle(dropdownStyle.value)
|
|
1537
|
-
}, [createElementVNode("div", {
|
|
1609
|
+
}, [createElementVNode("div", {
|
|
1610
|
+
class: normalizeClass(dropdownClasses.value),
|
|
1611
|
+
style: normalizeStyle({ maxHeight: dropdownStyle.value.maxHeight })
|
|
1612
|
+
}, [
|
|
1538
1613
|
__props.searchable ? withDirectives((openBlock(), createElementBlock("input", {
|
|
1539
1614
|
key: 0,
|
|
1540
1615
|
ref_key: "searchInputRef",
|
|
@@ -1582,7 +1657,7 @@ var _sfc_main$27 = /*@__PURE__*/ Object.assign({ inheritAttrs: false }, {
|
|
|
1582
1657
|
style: normalizeStyle(darkTextStyle.value)
|
|
1583
1658
|
}, toDisplayString(optionText(option)), 5))], 42, _hoisted_3$12);
|
|
1584
1659
|
}), 128))
|
|
1585
|
-
],
|
|
1660
|
+
], 6)], 6)) : createCommentVNode("", true)]),
|
|
1586
1661
|
_: 1
|
|
1587
1662
|
})], 8, ["to"])) : createCommentVNode("", true)], 2);
|
|
1588
1663
|
};
|
|
@@ -1930,7 +2005,7 @@ var _hoisted_3$11 = [
|
|
|
1930
2005
|
var _hoisted_4$8 = { class: "flex items-center justify-between" };
|
|
1931
2006
|
var _hoisted_5$6 = { key: 0 };
|
|
1932
2007
|
var _hoisted_6$6 = { key: 1 };
|
|
1933
|
-
var _hoisted_7$
|
|
2008
|
+
var _hoisted_7$5 = { key: 2 };
|
|
1934
2009
|
var DateRangeInput_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
|
|
1935
2010
|
__name: "DateRangeInput",
|
|
1936
2011
|
props: {
|
|
@@ -2285,7 +2360,7 @@ var DateRangeInput_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
|
|
|
2285
2360
|
onMouseleave: handleDateLeave
|
|
2286
2361
|
}, toDisplayString(day.date.getDate()), 43, _hoisted_3$11)]);
|
|
2287
2362
|
}), 128))]),
|
|
2288
|
-
createElementVNode("div", { class: normalizeClass(["mt-4 pt-4 border-t border-neutral-200 dark:border-neutral-800", props.ui.footer]) }, [createElementVNode("div", _hoisted_4$8, [createElementVNode("div", { class: normalizeClass(["text-xs text-neutral-500 dark:text-neutral-400", props.ui.footerText]) }, [startDate.value && endDate.value ? (openBlock(), createElementBlock("div", _hoisted_5$6, " Range: " + toDisplayString(daysBetween.value) + " days ", 1)) : startDate.value ? (openBlock(), createElementBlock("div", _hoisted_6$6, " Select end date ")) : (openBlock(), createElementBlock("div", _hoisted_7$
|
|
2363
|
+
createElementVNode("div", { class: normalizeClass(["mt-4 pt-4 border-t border-neutral-200 dark:border-neutral-800", props.ui.footer]) }, [createElementVNode("div", _hoisted_4$8, [createElementVNode("div", { class: normalizeClass(["text-xs text-neutral-500 dark:text-neutral-400", props.ui.footerText]) }, [startDate.value && endDate.value ? (openBlock(), createElementBlock("div", _hoisted_5$6, " Range: " + toDisplayString(daysBetween.value) + " days ", 1)) : startDate.value ? (openBlock(), createElementBlock("div", _hoisted_6$6, " Select end date ")) : (openBlock(), createElementBlock("div", _hoisted_7$5, " Select start date "))], 2), startDate.value || endDate.value ? (openBlock(), createElementBlock("button", {
|
|
2289
2364
|
key: 0,
|
|
2290
2365
|
type: "button",
|
|
2291
2366
|
class: normalizeClass(["text-xs text-red-600 hover:text-red-700 dark:text-red-400 dark:hover:text-red-300 transition-colors", props.ui.clearButton]),
|
|
@@ -2740,18 +2815,18 @@ var _sfc_main$18 = {
|
|
|
2740
2815
|
});
|
|
2741
2816
|
};
|
|
2742
2817
|
const loadTinyMce = async () => {
|
|
2743
|
-
const tinymceModule = await import("./tinymce-
|
|
2818
|
+
const tinymceModule = await import("./tinymce-CNM1pVpN.js").then((m) => /* @__PURE__ */ __toESM(m.default));
|
|
2744
2819
|
const tinymce = tinymceModule.default ?? tinymceModule;
|
|
2745
2820
|
if (typeof globalThis !== "undefined" && !globalThis.tinymce) globalThis.tinymce = tinymce;
|
|
2746
2821
|
await Promise.all([
|
|
2747
|
-
import("./dom-
|
|
2748
|
-
import("./default-
|
|
2749
|
-
import("./silver-
|
|
2750
|
-
import("./code-
|
|
2751
|
-
import("./image-
|
|
2752
|
-
import("./link-
|
|
2753
|
-
import("./lists-
|
|
2754
|
-
import("./table-
|
|
2822
|
+
import("./dom-DWHiyR3v.js"),
|
|
2823
|
+
import("./default-C4FT6dfa.js"),
|
|
2824
|
+
import("./silver-d01FSbql.js"),
|
|
2825
|
+
import("./code-BK8o2dAP.js"),
|
|
2826
|
+
import("./image-BaKhUKgQ.js"),
|
|
2827
|
+
import("./link-BOMcpPKJ.js"),
|
|
2828
|
+
import("./lists-CbzaQ5ui.js"),
|
|
2829
|
+
import("./table-1U0Gbp89.js")
|
|
2755
2830
|
]);
|
|
2756
2831
|
isEditorReady.value = true;
|
|
2757
2832
|
};
|
|
@@ -2873,8 +2948,8 @@ var _hoisted_3$9 = { class: "min-w-0 flex-1" };
|
|
|
2873
2948
|
var _hoisted_4$7 = { class: "flex items-start gap-3" };
|
|
2874
2949
|
var _hoisted_5$5 = { class: "min-w-0 flex-1" };
|
|
2875
2950
|
var _hoisted_6$5 = ["disabled", "aria-label"];
|
|
2876
|
-
var _hoisted_7$
|
|
2877
|
-
var _hoisted_8$
|
|
2951
|
+
var _hoisted_7$4 = { class: "mt-4 space-y-4" };
|
|
2952
|
+
var _hoisted_8$2 = ["aria-label", "aria-valuenow"];
|
|
2878
2953
|
var _hoisted_9$1 = {
|
|
2879
2954
|
key: 0,
|
|
2880
2955
|
class: "absolute inset-0 bg-[linear-gradient(to_right,#fff,transparent)]"
|
|
@@ -3427,7 +3502,7 @@ var ColorPicker_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
|
|
|
3427
3502
|
"aria-label": unref(t)("Pick color from screen"),
|
|
3428
3503
|
onClick: pickFromScreen
|
|
3429
3504
|
}, [createVNode(unref(EyeDropperIcon), { class: "size-5" })], 10, _hoisted_6$5)) : createCommentVNode("", true)
|
|
3430
|
-
]), createElementVNode("div", _hoisted_7$
|
|
3505
|
+
]), createElementVNode("div", _hoisted_7$4, [
|
|
3431
3506
|
createElementVNode("div", {
|
|
3432
3507
|
ref_key: "saturationRef",
|
|
3433
3508
|
ref: saturationRef,
|
|
@@ -3448,7 +3523,7 @@ var ColorPicker_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
|
|
|
3448
3523
|
class: normalizeClass(["pointer-events-none absolute size-4 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white shadow-[0_0_0_1px_rgba(0,0,0,0.3)]", props.ui.saturationHandle]),
|
|
3449
3524
|
style: normalizeStyle(saturationHandleStyle.value)
|
|
3450
3525
|
}, null, 6)
|
|
3451
|
-
], 46, _hoisted_8$
|
|
3526
|
+
], 46, _hoisted_8$2),
|
|
3452
3527
|
createElementVNode("div", _hoisted_11, [!isRainbowVariant.value ? (openBlock(), createElementBlock("div", _hoisted_12, [createElementVNode("div", { class: normalizeClass(["flex items-center justify-between text-xs font-medium text-neutral-500 dark:text-neutral-400", props.ui.sectionLabel]) }, [createElementVNode("label", { for: fieldId.value ? `${fieldId.value}-hue` : void 0 }, toDisplayString(unref(t)("Hue")), 9, _hoisted_13), createElementVNode("span", null, toDisplayString(Math.round(hue.value)) + "°", 1)], 2), createElementVNode("input", {
|
|
3453
3528
|
id: fieldId.value ? `${fieldId.value}-hue` : void 0,
|
|
3454
3529
|
type: "range",
|
|
@@ -4361,7 +4436,7 @@ var _hoisted_3$8 = { class: "mx-auto flex size-12 shrink-0 items-center justify-
|
|
|
4361
4436
|
var _hoisted_4$6 = { class: "mt-3 text-center sm:mt-0 sm:ms-4 sm:text-start" };
|
|
4362
4437
|
var _hoisted_5$4 = { class: "text-lg font-medium text-neutral-950 dark:text-neutral-50" };
|
|
4363
4438
|
var _hoisted_6$4 = { class: "mt-4 text-sm text-neutral-600 dark:text-neutral-200" };
|
|
4364
|
-
var _hoisted_7$
|
|
4439
|
+
var _hoisted_7$3 = { class: "flex flex-col-reverse gap-4 border-t border-neutral-200 bg-neutral-50 px-6 py-4 text-end dark:border-neutral-800 dark:bg-neutral-900/60 lg:flex-row lg:justify-end lg:gap-0" };
|
|
4365
4440
|
var _sfc_main$13 = {
|
|
4366
4441
|
__name: "ConfirmationModal",
|
|
4367
4442
|
props: {
|
|
@@ -4401,7 +4476,7 @@ var _sfc_main$13 = {
|
|
|
4401
4476
|
position: __props.position,
|
|
4402
4477
|
onClose: close
|
|
4403
4478
|
}, {
|
|
4404
|
-
default: withCtx(() => [createElementVNode("div", _hoisted_1$17, [createElementVNode("div", _hoisted_2$11, [createElementVNode("div", _hoisted_3$8, [createVNode(unref(ExclamationTriangleIcon), { class: "size-6 text-red-600 dark:text-neutral-100" })]), createElementVNode("div", _hoisted_4$6, [createElementVNode("h3", _hoisted_5$4, [renderSlot(_ctx.$slots, "title")]), createElementVNode("div", _hoisted_6$4, [renderSlot(_ctx.$slots, "content")])])])]), createElementVNode("div", _hoisted_7$
|
|
4479
|
+
default: withCtx(() => [createElementVNode("div", _hoisted_1$17, [createElementVNode("div", _hoisted_2$11, [createElementVNode("div", _hoisted_3$8, [createVNode(unref(ExclamationTriangleIcon), { class: "size-6 text-red-600 dark:text-neutral-100" })]), createElementVNode("div", _hoisted_4$6, [createElementVNode("h3", _hoisted_5$4, [renderSlot(_ctx.$slots, "title")]), createElementVNode("div", _hoisted_6$4, [renderSlot(_ctx.$slots, "content")])])])]), createElementVNode("div", _hoisted_7$3, [renderSlot(_ctx.$slots, "footer")])]),
|
|
4405
4480
|
_: 3
|
|
4406
4481
|
}, 8, [
|
|
4407
4482
|
"show",
|
|
@@ -5468,7 +5543,7 @@ var _hoisted_3$4 = { class: "flex items-center gap-3" };
|
|
|
5468
5543
|
var _hoisted_4$3 = { class: "text-sm font-medium text-neutral-700 dark:text-neutral-100" };
|
|
5469
5544
|
var _hoisted_5$3 = { class: "flex flex-wrap items-center gap-2" };
|
|
5470
5545
|
var _hoisted_6$3 = ["onClick"];
|
|
5471
|
-
var _hoisted_7$
|
|
5546
|
+
var _hoisted_7$2 = { class: "text-xs text-neutral-500 dark:text-neutral-200" };
|
|
5472
5547
|
var _sfc_main$4 = {
|
|
5473
5548
|
__name: "SortControls",
|
|
5474
5549
|
props: {
|
|
@@ -5524,7 +5599,7 @@ var _sfc_main$4 = {
|
|
|
5524
5599
|
class: "w-3 h-3 ml-1 inline"
|
|
5525
5600
|
})) : createCommentVNode("", true)
|
|
5526
5601
|
], 10, _hoisted_6$3);
|
|
5527
|
-
}), 128))])]), createElementVNode("div", _hoisted_7$
|
|
5602
|
+
}), 128))])]), createElementVNode("div", _hoisted_7$2, toDisplayString(__props.count) + " " + toDisplayString(__props.countLabel), 1)])]);
|
|
5528
5603
|
};
|
|
5529
5604
|
}
|
|
5530
5605
|
};
|
|
@@ -5590,25 +5665,23 @@ var _sfc_main$3 = {
|
|
|
5590
5665
|
//#endregion
|
|
5591
5666
|
//#region src/components/TableSearch.vue
|
|
5592
5667
|
var _hoisted_1$4 = { class: "flex flex-col items-start gap-4 lg:flex-row lg:flex-wrap lg:items-center lg:justify-between" };
|
|
5593
|
-
var _hoisted_2$3 = {
|
|
5594
|
-
var _hoisted_3$3 = { class: "min-w-0 flex-1" };
|
|
5595
|
-
var _hoisted_4$2 = {
|
|
5668
|
+
var _hoisted_2$3 = {
|
|
5596
5669
|
key: 0,
|
|
5597
5670
|
class: "flex shrink-0 flex-col items-start gap-3 sm:flex-row sm:items-center lg:w-auto"
|
|
5598
5671
|
};
|
|
5599
|
-
var
|
|
5672
|
+
var _hoisted_3$3 = {
|
|
5600
5673
|
key: 0,
|
|
5601
5674
|
class: "flex items-center"
|
|
5602
5675
|
};
|
|
5603
|
-
var
|
|
5676
|
+
var _hoisted_4$2 = {
|
|
5604
5677
|
key: 1,
|
|
5605
5678
|
class: "flex items-center text-xs text-neutral-500 dark:text-neutral-400 sm:w-auto sm:text-sm lg:w-auto"
|
|
5606
5679
|
};
|
|
5607
|
-
var
|
|
5680
|
+
var _hoisted_5$2 = {
|
|
5608
5681
|
key: 0,
|
|
5609
5682
|
class: "ml-2"
|
|
5610
5683
|
};
|
|
5611
|
-
var
|
|
5684
|
+
var _hoisted_6$2 = { class: "font-medium text-neutral-700 dark:text-neutral-200" };
|
|
5612
5685
|
var _sfc_main$2 = {
|
|
5613
5686
|
__name: "TableSearch",
|
|
5614
5687
|
props: {
|
|
@@ -5656,6 +5729,11 @@ var _sfc_main$2 = {
|
|
|
5656
5729
|
type: String,
|
|
5657
5730
|
default: "server",
|
|
5658
5731
|
validator: (value) => ["client", "server"].includes(value)
|
|
5732
|
+
},
|
|
5733
|
+
searchFieldsLayout: {
|
|
5734
|
+
type: String,
|
|
5735
|
+
default: "inline",
|
|
5736
|
+
validator: (value) => ["inline", "stacked"].includes(value)
|
|
5659
5737
|
}
|
|
5660
5738
|
},
|
|
5661
5739
|
emits: ["update:modelValue", "update:showDeleted"],
|
|
@@ -5670,8 +5748,10 @@ var _sfc_main$2 = {
|
|
|
5670
5748
|
get: () => props.showDeleted,
|
|
5671
5749
|
set: (value) => emit("update:showDeleted", value)
|
|
5672
5750
|
});
|
|
5751
|
+
const searchContentClasses = computed(() => props.searchFieldsLayout === "stacked" ? "flex w-full min-w-0 flex-1 flex-col gap-3" : "flex w-full min-w-0 flex-1 flex-col gap-3 lg:flex-row lg:items-center");
|
|
5752
|
+
const searchFieldsClasses = computed(() => props.searchFieldsLayout === "stacked" ? "w-full min-w-0" : "min-w-0 flex-1");
|
|
5673
5753
|
return (_ctx, _cache) => {
|
|
5674
|
-
return openBlock(), createElementBlock("div", { class: normalizeClass(__props.cardClass) }, [createElementVNode("div", _hoisted_1$4, [createElementVNode("div",
|
|
5754
|
+
return openBlock(), createElementBlock("div", { class: normalizeClass(__props.cardClass) }, [createElementVNode("div", _hoisted_1$4, [createElementVNode("div", { class: normalizeClass(searchContentClasses.value) }, [__props.searchbar ? (openBlock(), createBlock(_sfc_main$16, {
|
|
5675
5755
|
key: 0,
|
|
5676
5756
|
modelValue: model.value,
|
|
5677
5757
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => model.value = $event),
|
|
@@ -5681,14 +5761,14 @@ var _sfc_main$2 = {
|
|
|
5681
5761
|
}, {
|
|
5682
5762
|
"leading-icon": withCtx(() => [createVNode(unref(Search), { class: "h-5 w-5" })]),
|
|
5683
5763
|
_: 1
|
|
5684
|
-
}, 8, ["modelValue", "placeholder"])) : createCommentVNode("", true), createElementVNode("div",
|
|
5685
|
-
__props.showDeletedToggle ? (openBlock(), createElementBlock("div",
|
|
5764
|
+
}, 8, ["modelValue", "placeholder"])) : createCommentVNode("", true), createElementVNode("div", { class: normalizeClass(searchFieldsClasses.value) }, [renderSlot(_ctx.$slots, "search-fields")], 2)], 2), __props.showDeletedToggle || __props.count !== null || _ctx.$slots.controls ? (openBlock(), createElementBlock("div", _hoisted_2$3, [
|
|
5765
|
+
__props.showDeletedToggle ? (openBlock(), createElementBlock("div", _hoisted_3$3, [createVNode(_sfc_main$20, {
|
|
5686
5766
|
modelValue: showDeletedModel.value,
|
|
5687
5767
|
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => showDeletedModel.value = $event),
|
|
5688
5768
|
label: __props.showDeletedLabel
|
|
5689
5769
|
}, null, 8, ["modelValue", "label"])])) : createCommentVNode("", true),
|
|
5690
5770
|
renderSlot(_ctx.$slots, "controls"),
|
|
5691
|
-
__props.count !== null ? (openBlock(), createElementBlock("div",
|
|
5771
|
+
__props.count !== null ? (openBlock(), createElementBlock("div", _hoisted_4$2, [createElementVNode("span", null, toDisplayString(__props.count) + " " + toDisplayString(__props.countLabel), 1), model.value ? (openBlock(), createElementBlock("span", _hoisted_5$2, [createTextVNode(toDisplayString(__props.queryLabel) + " ", 1), createElementVNode("span", _hoisted_6$2, " \"" + toDisplayString(model.value) + "\" ", 1)])) : createCommentVNode("", true)])) : createCommentVNode("", true)
|
|
5692
5772
|
])) : createCommentVNode("", true)])], 2);
|
|
5693
5773
|
};
|
|
5694
5774
|
}
|
|
@@ -5818,6 +5898,11 @@ var _sfc_main$1 = {
|
|
|
5818
5898
|
type: String,
|
|
5819
5899
|
default: "server",
|
|
5820
5900
|
validator: (value) => ["client", "server"].includes(value)
|
|
5901
|
+
},
|
|
5902
|
+
searchFieldsLayout: {
|
|
5903
|
+
type: String,
|
|
5904
|
+
default: "inline",
|
|
5905
|
+
validator: (value) => ["inline", "stacked"].includes(value)
|
|
5821
5906
|
}
|
|
5822
5907
|
},
|
|
5823
5908
|
emits: [
|
|
@@ -5913,6 +5998,7 @@ var _sfc_main$1 = {
|
|
|
5913
5998
|
"show-deleted-toggle": __props.searchShowDeletedToggle,
|
|
5914
5999
|
"show-deleted-label": __props.searchShowDeletedLabel,
|
|
5915
6000
|
"search-mode": __props.searchMode,
|
|
6001
|
+
"search-fields-layout": __props.searchFieldsLayout,
|
|
5916
6002
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchQuery.value = $event),
|
|
5917
6003
|
"onUpdate:showDeleted": updateSearchShowDeleted
|
|
5918
6004
|
}, createSlots({ _: 2 }, [_ctx.$slots["search-fields"] ? {
|
|
@@ -5932,7 +6018,8 @@ var _sfc_main$1 = {
|
|
|
5932
6018
|
"show-deleted",
|
|
5933
6019
|
"show-deleted-toggle",
|
|
5934
6020
|
"show-deleted-label",
|
|
5935
|
-
"search-mode"
|
|
6021
|
+
"search-mode",
|
|
6022
|
+
"search-fields-layout"
|
|
5936
6023
|
])) : createCommentVNode("", true), createElementVNode("div", { class: normalizeClass(["bg-white/90 backdrop-blur-sm dark:bg-neutral-950/90", __props.isCard ? "animate-fadeIn rounded-2xl border border-neutral-200 shadow-sm dark:border-neutral-800 md:mx-0 overflow-hidden" : ""]) }, [createElementVNode("div", { class: normalizeClass(["overflow-x-auto", __props.isCard ? "rounded-t-xl" : ""]) }, [createElementVNode("table", { class: normalizeClass(joinClasses("min-w-full divide-y divide-neutral-200 dark:divide-neutral-800", __props.tableClass)) }, [createElementVNode("thead", { class: normalizeClass(joinClasses("bg-neutral-50/80 dark:bg-neutral-900/80", __props.theadClass)) }, [createElementVNode("tr", { class: normalizeClass(__props.headerRowClass) }, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.columns, (column) => {
|
|
5937
6024
|
return openBlock(), createElementBlock(Fragment, { key: column.key }, [column.sortable ? (openBlock(), createBlock(_sfc_main$3, {
|
|
5938
6025
|
key: 0,
|
|
@@ -6725,4 +6812,4 @@ var plugin_default = { install(app) {
|
|
|
6725
6812
|
//#endregion
|
|
6726
6813
|
export { SectionTitle_default as $, _sfc_main$12 as A, _sfc_main$22 as B, _sfc_main$5 as C, _sfc_main$9 as D, _sfc_main$8 as E, ColorPicker_default as F, _sfc_main$27 as G, DateRangeInput_default as H, _sfc_main$18 as I, _sfc_main$30 as J, _sfc_main$28 as K, _sfc_main$19 as L, _sfc_main$14 as M, _sfc_main$15 as N, _sfc_main$10 as O, _sfc_main$16 as P, _sfc_main$34 as Q, _sfc_main$20 as R, useSidebar as S, _sfc_main$7 as T, DateInput_default as U, _sfc_main$23 as V, _sfc_main$26 as W, _sfc_main$32 as X, _sfc_main$31 as Y, _sfc_main$33 as Z, SidebarGroupContent_default as _, _sfc_main$1 as a, __commonJSMin as at, SidebarContent_default as b, _sfc_main$4 as c, SidebarMenuItem_default as d, _sfc_main$36 as et, SidebarMenuButton_default as f, SidebarGroupLabel_default as g, SidebarHeader_default as h, _sfc_main as i, _sfc_main$40 as it, _sfc_main$13 as j, _sfc_main$11 as k, SidebarTrigger_default as l, SidebarInset_default as m, ToastContainer_default as n, _sfc_main$38 as nt, _sfc_main$2 as o, SidebarMenu_default as p, _sfc_main$29 as q, Toast_default as r, _sfc_main$39 as rt, _sfc_main$3 as s, plugin_default as t, _sfc_main$37 as tt, SidebarProvider_default as u, SidebarGroup_default as v, _sfc_main$6 as w, Sidebar_default as x, SidebarFooter_default as y, _sfc_main$21 as z };
|
|
6727
6814
|
|
|
6728
|
-
//# sourceMappingURL=plugin-
|
|
6815
|
+
//# sourceMappingURL=plugin-DRrNUku-.js.map
|