@milaboratories/uikit 2.3.13 → 2.3.15

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.
Files changed (118) hide show
  1. package/.turbo/turbo-build.log +53 -40
  2. package/.turbo/turbo-type-check.log +1 -1
  3. package/CHANGELOG.md +17 -0
  4. package/dist/components/DataTable/TableComponent.vue.js +23 -23
  5. package/dist/components/PlAccordion/{ExpandTransition.vue2.js → ExpandTransition.vue.js} +1 -1
  6. package/dist/components/PlAccordion/ExpandTransition.vue.js.map +1 -0
  7. package/dist/components/PlAccordion/ExpandTransition.vue3.js +1 -1
  8. package/dist/components/PlAccordion/PlAccordionSection.vue2.js +1 -1
  9. package/dist/components/PlAutocomplete/PlAutocomplete.vue.js +1 -1
  10. package/dist/components/PlBtnGhost/PlBtnGhost.vue.js +1 -1
  11. package/dist/components/PlConfirmDialog.vue.d.ts +22 -0
  12. package/dist/components/PlConfirmDialog.vue.d.ts.map +1 -0
  13. package/dist/components/PlConfirmDialog.vue.js +63 -0
  14. package/dist/components/PlConfirmDialog.vue.js.map +1 -0
  15. package/dist/components/PlConfirmDialog.vue2.js +5 -0
  16. package/dist/components/PlConfirmDialog.vue2.js.map +1 -0
  17. package/dist/components/PlDialogModal/PlDialogModal.vue.d.ts +8 -4
  18. package/dist/components/PlDialogModal/PlDialogModal.vue.d.ts.map +1 -1
  19. package/dist/components/PlDialogModal/PlDialogModal.vue.js +38 -38
  20. package/dist/components/PlDialogModal/PlDialogModal.vue.js.map +1 -1
  21. package/dist/components/PlDropdown/PlDropdown.vue.js +1 -1
  22. package/dist/components/PlDropdownLegacy/PlDropdownLegacy.vue.js +1 -1
  23. package/dist/components/PlDropdownLine/PlDropdownLine.vue.d.ts +1 -1
  24. package/dist/components/PlDropdownLine/PlDropdownLine.vue.d.ts.map +1 -1
  25. package/dist/components/PlDropdownMulti/PlDropdownMulti.vue.js +1 -1
  26. package/dist/components/PlDropdownRef/PlDropdownRef.vue.d.ts +1 -1
  27. package/dist/components/PlDropdownRef/PlDropdownRef.vue.d.ts.map +1 -1
  28. package/dist/components/PlEditableTitle/PlEditableTitle.vue.d.ts +4 -0
  29. package/dist/components/PlEditableTitle/PlEditableTitle.vue.d.ts.map +1 -1
  30. package/dist/components/PlEditableTitle/PlEditableTitle.vue.js +47 -43
  31. package/dist/components/PlEditableTitle/PlEditableTitle.vue.js.map +1 -1
  32. package/dist/components/PlElementList/PlElementList.vue.d.ts.map +1 -1
  33. package/dist/components/PlElementList/PlElementList.vue2.js +20 -16
  34. package/dist/components/PlElementList/PlElementList.vue2.js.map +1 -1
  35. package/dist/components/PlElementList/PlElementListItem.vue.d.ts.map +1 -1
  36. package/dist/components/PlElementList/PlElementListItem.vue2.js +10 -9
  37. package/dist/components/PlElementList/PlElementListItem.vue2.js.map +1 -1
  38. package/dist/components/PlElementList/PlElementListItem.vue3.js +29 -29
  39. package/dist/components/PlElementList/utils.d.ts.map +1 -1
  40. package/dist/components/PlElementList/utils.js +4 -3
  41. package/dist/components/PlElementList/utils.js.map +1 -1
  42. package/dist/components/PlFileInput/PlFileInput.vue.js +1 -1
  43. package/dist/components/PlSidebar/PlSidebarGroup.vue.d.ts +20 -0
  44. package/dist/components/PlSidebar/PlSidebarGroup.vue.d.ts.map +1 -0
  45. package/dist/components/PlSidebar/PlSidebarGroup.vue.js +10 -0
  46. package/dist/components/PlSidebar/PlSidebarGroup.vue.js.map +1 -0
  47. package/dist/components/PlSidebar/PlSidebarGroup.vue2.js +21 -0
  48. package/dist/components/PlSidebar/PlSidebarGroup.vue2.js.map +1 -0
  49. package/dist/components/PlSidebar/PlSidebarGroup.vue3.js +11 -0
  50. package/dist/components/PlSidebar/PlSidebarGroup.vue3.js.map +1 -0
  51. package/dist/components/PlSidebar/PlSidebarItem.vue.d.ts +30 -0
  52. package/dist/components/PlSidebar/PlSidebarItem.vue.d.ts.map +1 -0
  53. package/dist/components/PlSidebar/PlSidebarItem.vue.js +10 -0
  54. package/dist/components/PlSidebar/PlSidebarItem.vue.js.map +1 -0
  55. package/dist/components/PlSidebar/PlSidebarItem.vue2.js +39 -0
  56. package/dist/components/PlSidebar/PlSidebarItem.vue2.js.map +1 -0
  57. package/dist/components/PlSidebar/PlSidebarItem.vue3.js +17 -0
  58. package/dist/components/PlSidebar/PlSidebarItem.vue3.js.map +1 -0
  59. package/dist/components/PlSidebar/index.d.ts +3 -0
  60. package/dist/components/PlSidebar/index.d.ts.map +1 -0
  61. package/dist/components/PlSlideModal/PlPureSlideModal.vue.d.ts +22 -0
  62. package/dist/components/PlSlideModal/PlPureSlideModal.vue.d.ts.map +1 -0
  63. package/dist/components/PlSlideModal/PlPureSlideModal.vue.js +150 -0
  64. package/dist/components/PlSlideModal/PlPureSlideModal.vue.js.map +1 -0
  65. package/dist/components/PlSlideModal/PlPureSlideModal.vue2.js +5 -0
  66. package/dist/components/PlSlideModal/PlPureSlideModal.vue2.js.map +1 -0
  67. package/dist/components/PlSlideModal/PlSlideModal.vue.d.ts +3 -42
  68. package/dist/components/PlSlideModal/PlSlideModal.vue.d.ts.map +1 -1
  69. package/dist/components/PlSlideModal/PlSlideModal.vue.js +7 -162
  70. package/dist/components/PlSlideModal/PlSlideModal.vue.js.map +1 -1
  71. package/dist/components/PlSlideModal/PlSlideModal.vue2.js +45 -2
  72. package/dist/components/PlSlideModal/PlSlideModal.vue2.js.map +1 -1
  73. package/dist/components/PlSlideModal/PlSlideModal.vue3.js +9 -0
  74. package/dist/components/PlSlideModal/PlSlideModal.vue3.js.map +1 -0
  75. package/dist/components/PlSlideModal/index.d.ts +1 -0
  76. package/dist/components/PlSlideModal/index.d.ts.map +1 -1
  77. package/dist/components/PlSlideModal/props.d.ts +20 -0
  78. package/dist/components/PlSlideModal/props.d.ts.map +1 -0
  79. package/dist/components/PlSlideModal/props.js +10 -0
  80. package/dist/components/PlSlideModal/props.js.map +1 -0
  81. package/dist/components/PlTextArea/PlTextArea.vue.js +1 -1
  82. package/dist/components/PlTextField/PlTextField.vue.js +1 -1
  83. package/dist/composition/useConfirm.d.ts +8 -0
  84. package/dist/composition/useConfirm.d.ts.map +1 -0
  85. package/dist/composition/useConfirm.js +23 -0
  86. package/dist/composition/useConfirm.js.map +1 -0
  87. package/dist/generated/components/svg/images/{SvgRequired.vue.js → SvgRequired.vue2.js} +1 -1
  88. package/dist/generated/components/svg/images/SvgRequired.vue2.js.map +1 -0
  89. package/dist/index.d.ts +49 -47
  90. package/dist/index.d.ts.map +1 -1
  91. package/dist/index.js +202 -194
  92. package/dist/index.js.map +1 -1
  93. package/dist/lib/model/common/dist/index.js +10 -10
  94. package/dist/node_modules/.pnpm/@vueuse_core@13.3.0_vue@3.5.13_typescript@5.6.3_/node_modules/@vueuse/core/index.js +1 -1
  95. package/dist/node_modules/.pnpm/@vueuse_shared@13.3.0_vue@3.5.13_typescript@5.6.3_/node_modules/@vueuse/shared/index.js +3 -3
  96. package/dist/sdk/model/dist/index.js +113 -113
  97. package/dist/sdk/model/dist/index.js.map +1 -1
  98. package/package.json +4 -3
  99. package/src/assets/variables.scss +4 -1
  100. package/src/components/PlBtnGhost/pl-btn-ghost.scss +0 -7
  101. package/src/components/PlConfirmDialog.vue +55 -0
  102. package/src/components/PlDialogModal/PlDialogModal.vue +6 -2
  103. package/src/components/PlEditableTitle/PlEditableTitle.vue +13 -2
  104. package/src/components/PlElementList/PlElementList.vue +14 -6
  105. package/src/components/PlElementList/PlElementListItem.vue +6 -4
  106. package/src/components/PlElementList/utils.ts +2 -0
  107. package/src/components/PlSidebar/PlSidebarGroup.vue +35 -0
  108. package/src/components/PlSidebar/PlSidebarItem.vue +59 -0
  109. package/src/components/PlSidebar/index.ts +2 -0
  110. package/src/components/PlSlideModal/PlPureSlideModal.vue +57 -0
  111. package/src/components/PlSlideModal/PlSlideModal.vue +31 -75
  112. package/src/components/PlSlideModal/index.ts +1 -0
  113. package/src/components/PlSlideModal/pl-slide-modal.scss +5 -4
  114. package/src/components/PlSlideModal/props.ts +25 -0
  115. package/src/composition/useConfirm.ts +35 -0
  116. package/src/index.ts +51 -47
  117. package/dist/components/PlAccordion/ExpandTransition.vue2.js.map +0 -1
  118. package/dist/generated/components/svg/images/SvgRequired.vue.js.map +0 -1
@@ -24,4 +24,4 @@ const f = /* @__PURE__ */ n({
24
24
  export {
25
25
  f as default
26
26
  };
27
- //# sourceMappingURL=ExpandTransition.vue2.js.map
27
+ //# sourceMappingURL=ExpandTransition.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpandTransition.vue.js","sources":["../../../src/components/PlAccordion/ExpandTransition.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nconst onStart = (el: Element) => {\n el.classList.add('expand-collapse-fix');\n (el as HTMLElement).style.setProperty('--component-height', el.scrollHeight + 'px');\n};\n\nconst onAfter = (el: Element) => {\n (el as HTMLElement).style.removeProperty('--component-height');\n el.classList.remove('expand-collapse-fix');\n};\n</script>\n\n<template>\n <Transition name=\"expand-collapse\" @enter=\"onStart\" @leave=\"onStart\" @after-enter=\"onAfter\" @after-leave=\"onAfter\">\n <slot/>\n </Transition>\n</template>\n\n<style>\n.expand-collapse-fix {\n overflow: hidden;\n}\n\n.expand-collapse-enter-active,\n.expand-collapse-leave-active {\n transition:\n height 0.2s ease-in-out,\n opacity 0.2s ease-in-out;\n height: var(--component-height);\n}\n\n.expand-collapse-enter-from,\n.expand-collapse-leave-to {\n opacity: 0.5;\n height: 0;\n}\n</style>\n"],"names":["onStart","el","onAfter"],"mappings":";;;;AACM,UAAAA,IAAU,CAACC,MAAgB;AAC5B,MAAAA,EAAA,UAAU,IAAI,qBAAqB,GACrCA,EAAmB,MAAM,YAAY,sBAAsBA,EAAG,eAAe,IAAI;AAAA,IACpF,GAEMC,IAAU,CAACD,MAAgB;AAC9B,MAAAA,EAAmB,MAAM,eAAe,oBAAoB,GAC1DA,EAAA,UAAU,OAAO,qBAAqB;AAAA,IAC3C;;;;;;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  (function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".expand-collapse-fix{overflow:hidden}.expand-collapse-enter-active,.expand-collapse-leave-active{transition:height .2s ease-in-out,opacity .2s ease-in-out;height:var(--component-height)}.expand-collapse-enter-from,.expand-collapse-leave-to{opacity:.5;height:0}")),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
2
- import o from "./ExpandTransition.vue2.js";
2
+ import o from "./ExpandTransition.vue.js";
3
3
 
4
4
  export {
5
5
  o as default
@@ -3,7 +3,7 @@ import { defineComponent as M, mergeModels as V, inject as i, toRef as m, useMod
3
3
  import { uniqueId as B } from "../../lib/util/helpers/dist/index.js";
4
4
  import N from "../PlIcon16/PlIcon16.vue.js";
5
5
  import P from "../PlSectionSeparator/PlSectionSeparator.vue.js";
6
- import _ from "./ExpandTransition.vue2.js";
6
+ import _ from "./ExpandTransition.vue.js";
7
7
 
8
8
  const b = { class: "pl-accordion-section" }, E = /* @__PURE__ */ M({
9
9
  __name: "PlAccordionSection",
@@ -15,7 +15,7 @@ import Oe from "../PlIcon16/PlIcon16.vue.js";
15
15
  import xe from "../PlIcon24/PlIcon24.vue.js";
16
16
  import Ee from "../../utils/DropdownOverlay/DropdownOverlay.vue.js";
17
17
  import { useWatchFetch as H } from "../../composition/useWatchFetch.js";
18
- import Ve from "../../generated/components/svg/images/SvgRequired.vue.js";
18
+ import Ve from "../../generated/components/svg/images/SvgRequired.vue2.js";
19
19
  import { getErrorMessage as Ae } from "../../helpers/error.js";
20
20
  import { debouncedRef as Ce } from "../../node_modules/.pnpm/@vueuse_shared@13.3.0_vue@3.5.13_typescript@5.6.3_/node_modules/@vueuse/shared/index.js";
21
21
  const De = ["tabindex"], Re = { class: "pl-autocomplete__container" }, Fe = { class: "pl-autocomplete__field" }, Me = ["disabled", "placeholder"], $e = {
@@ -1,4 +1,4 @@
1
- (function(){"use strict";try{if(typeof document<"u"){var t=document.createElement("style");t.appendChild(document.createTextNode(".pl-btn-ghost{--font-size: 14px;--border-radius: 6px;--button-height: 40px;--focus-shadow: 0 0 0 0 transparent;--btn-disabled-bg: var(--color-dis-01);--color-text: var(--txt-00);--shape-shadow: 0 0 0 0 transparent;--append-shadow: 0 0 0 0 transparent;--drop-shadow: 0 0 0 0 transparent;--active-shadow: 0 0 0 0 transparent;--main-padding: 0 12px;text-transform:capitalize;position:relative;overflow:hidden;display:flex;flex-direction:row;justify-content:space-between;align-items:center;white-space:nowrap;gap:8px;padding:var(--main-padding);color:var(--color-text);font-weight:600;font-size:var(--font-size);font-family:var(--font-family-base);line-height:16px;height:var(--button-height);min-height:var(--button-height);border-radius:var(--border-radius);outline:none;-webkit-user-select:none;user-select:none;transition:box-shadow .05s ease-in-out;box-shadow:var(--focus-shadow),var(--append-shadow),var(--shape-shadow),var(--active-shadow),var(--drop-shadow)}.pl-btn-ghost.justifyCenter{justify-content:center}.pl-btn-ghost.round{border-radius:50%;width:var(--button-height);min-width:var(--button-height);padding:0;justify-content:center}.pl-btn-ghost.small{--button-height: 32px;--main-padding: 0 8px}.pl-btn-ghost.medium{--main-padding: 0 16px}.pl-btn-ghost.large{--button-height: 56px;--border-radius: 8px;--font-size: 16px;--main-padding: 0 18px}.pl-btn-ghost.large .mask{--mask-size: 24px}.pl-btn-ghost:disabled{--color-text: var(--dis-00);--icon-color: var(--dis-00)}.pl-btn-ghost:disabled *{color:var(--color-text)}.pl-btn-ghost:not([disabled]){cursor:pointer}.pl-btn-ghost:not([disabled]).hover{background:var(--color-btn-hover)}.pl-btn-ghost:not([disabled]):hover{background:var(--color-btn-hover)}.pl-btn-ghost:focus-visible{--focus-shadow: inset 0 0 0 2px var(--border-color-focus)}.pl-btn-ghost .icon{display:block;width:16px;height:16px}.pl-btn-ghost.loading{box-shadow:none!important}.pl-btn-ghost.loading .mask-loading{display:block;animation:spin 4s linear infinite}.pl-btn-ghost.reverse{flex-direction:row-reverse}.pl-btn-ghost>span{display:inline-flex}.pl-btn-ghost{--color-text: var(--txt-01);--color-btn-hover: var(--btn-sec-hover-grey);--btn-min-width: auto;gap:10px;background:transparent;border:none;width:fit-content;min-width:var(--btn-min-width)}[data-theme=dark] .pl-btn-ghost{--mask-icon-bg-color: #fff}[data-theme=dark] .pl-btn-ghost:hover{--color-text: #87E087}.pl-btn-ghost:disabled{--color-text: var(--btn-disabled-bg);--icon-color: var(--dis-01);box-shadow:none!important;cursor:auto}.pl-btn-ghost.loading{--color-text: var(--btn-disabled-bg)}")),document.head.appendChild(t)}}catch(o){console.error("vite-plugin-css-injected-by-js",o)}})();
1
+ (function(){"use strict";try{if(typeof document<"u"){var t=document.createElement("style");t.appendChild(document.createTextNode(".pl-btn-ghost{--font-size: 14px;--border-radius: 6px;--button-height: 40px;--focus-shadow: 0 0 0 0 transparent;--btn-disabled-bg: var(--color-dis-01);--color-text: var(--txt-00);--shape-shadow: 0 0 0 0 transparent;--append-shadow: 0 0 0 0 transparent;--drop-shadow: 0 0 0 0 transparent;--active-shadow: 0 0 0 0 transparent;--main-padding: 0 12px;text-transform:capitalize;position:relative;overflow:hidden;display:flex;flex-direction:row;justify-content:space-between;align-items:center;white-space:nowrap;gap:8px;padding:var(--main-padding);color:var(--color-text);font-weight:600;font-size:var(--font-size);font-family:var(--font-family-base);line-height:16px;height:var(--button-height);min-height:var(--button-height);border-radius:var(--border-radius);outline:none;-webkit-user-select:none;user-select:none;transition:box-shadow .05s ease-in-out;box-shadow:var(--focus-shadow),var(--append-shadow),var(--shape-shadow),var(--active-shadow),var(--drop-shadow)}.pl-btn-ghost.justifyCenter{justify-content:center}.pl-btn-ghost.round{border-radius:50%;width:var(--button-height);min-width:var(--button-height);padding:0;justify-content:center}.pl-btn-ghost.small{--button-height: 32px;--main-padding: 0 8px}.pl-btn-ghost.medium{--main-padding: 0 16px}.pl-btn-ghost.large{--button-height: 56px;--border-radius: 8px;--font-size: 16px;--main-padding: 0 18px}.pl-btn-ghost.large .mask{--mask-size: 24px}.pl-btn-ghost:disabled{--color-text: var(--dis-00);--icon-color: var(--dis-00)}.pl-btn-ghost:disabled *{color:var(--color-text)}.pl-btn-ghost:not([disabled]){cursor:pointer}.pl-btn-ghost:not([disabled]).hover{background:var(--color-btn-hover)}.pl-btn-ghost:not([disabled]):hover{background:var(--color-btn-hover)}.pl-btn-ghost:focus-visible{--focus-shadow: inset 0 0 0 2px var(--border-color-focus)}.pl-btn-ghost .icon{display:block;width:16px;height:16px}.pl-btn-ghost.loading{box-shadow:none!important}.pl-btn-ghost.loading .mask-loading{display:block;animation:spin 4s linear infinite}.pl-btn-ghost.reverse{flex-direction:row-reverse}.pl-btn-ghost>span{display:inline-flex}.pl-btn-ghost{--color-text: var(--txt-01);--color-btn-hover: var(--btn-sec-hover-grey);--btn-min-width: auto;gap:10px;background:transparent;border:none;width:fit-content;min-width:var(--btn-min-width)}.pl-btn-ghost:disabled{--color-text: var(--btn-disabled-bg);--icon-color: var(--dis-01);box-shadow:none!important;cursor:auto}.pl-btn-ghost.loading{--color-text: var(--btn-disabled-bg)}")),document.head.appendChild(t)}}catch(o){console.error("vite-plugin-css-injected-by-js",o)}})();
2
2
  import { defineComponent as y, computed as a, ref as c, useSlots as z, createElementBlock as r, openBlock as o, mergeProps as B, createCommentVNode as i, renderSlot as s, unref as n, createBlock as d } from "vue";
3
3
 
4
4
  import u from "../PlIcon24/PlIcon24.vue.js";
@@ -0,0 +1,22 @@
1
+ type __VLS_Props = {
2
+ opened?: boolean;
3
+ title: string;
4
+ message: string;
5
+ confirmLabel: string;
6
+ cancelLabel: string;
7
+ onConfirm?: () => void;
8
+ onCancel?: () => void;
9
+ };
10
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
11
+ cancel: () => any;
12
+ confirm: () => any;
13
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
14
+ onCancel?: (() => any) | undefined;
15
+ onConfirm?: (() => any) | undefined;
16
+ }>, {
17
+ onCancel: () => void;
18
+ opened: boolean;
19
+ onConfirm: () => void;
20
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
21
+ export default _default;
22
+ //# sourceMappingURL=PlConfirmDialog.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlConfirmDialog.vue.d.ts","sourceRoot":"","sources":["../../src/components/PlConfirmDialog.vue"],"names":[],"mappings":"AA6DA,KAAK,WAAW,GAAG;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;;;;;;;;cADW,MAAM,IAAI;YANZ,OAAO;eAKJ,MAAM,IAAI;;AA+I1B,wBASG"}
@@ -0,0 +1,63 @@
1
+ import { defineComponent as C, createBlock as _, openBlock as b, unref as i, withModifiers as m, withCtx as n, createVNode as f, createTextVNode as l, toDisplayString as a } from "vue";
2
+ import k from "./PlBtnPrimary/PlBtnPrimary.vue.js";
3
+ import V from "./PlBtnSecondary/PlBtnSecondary.vue.js";
4
+ import g from "./PlDialogModal/PlDialogModal.vue.js";
5
+ const v = /* @__PURE__ */ C({
6
+ __name: "PlConfirmDialog",
7
+ props: {
8
+ opened: { type: Boolean, default: !0 },
9
+ title: {},
10
+ message: {},
11
+ confirmLabel: {},
12
+ cancelLabel: {},
13
+ onConfirm: { type: Function, default: void 0 },
14
+ onCancel: { type: Function, default: void 0 }
15
+ },
16
+ emits: ["confirm", "cancel"],
17
+ setup(r, { emit: s }) {
18
+ const e = r, c = s, d = () => {
19
+ var o;
20
+ c("confirm"), (o = e.onConfirm) == null || o.call(e);
21
+ }, u = () => {
22
+ var o;
23
+ c("cancel"), (o = e.onCancel) == null || o.call(e);
24
+ };
25
+ return (o, t) => (b(), _(i(g), {
26
+ modelValue: e.opened,
27
+ "onUpdate:modelValue": t[0] || (t[0] = (p) => e.opened = p),
28
+ closable: !1,
29
+ onClick: t[1] || (t[1] = m(() => {
30
+ }, ["stop"]))
31
+ }, {
32
+ title: n(() => [
33
+ l(a(o.title), 1)
34
+ ]),
35
+ default: n(() => [
36
+ l(a(o.message), 1)
37
+ ]),
38
+ actions: n(() => [
39
+ f(i(k), {
40
+ onClick: m(d, ["stop"])
41
+ }, {
42
+ default: n(() => [
43
+ l(a(e.confirmLabel), 1)
44
+ ]),
45
+ _: 1
46
+ }),
47
+ f(i(V), {
48
+ onClick: m(u, ["stop"])
49
+ }, {
50
+ default: n(() => [
51
+ l(a(e.cancelLabel), 1)
52
+ ]),
53
+ _: 1
54
+ })
55
+ ]),
56
+ _: 1
57
+ }, 8, ["modelValue"]));
58
+ }
59
+ });
60
+ export {
61
+ v as default
62
+ };
63
+ //# sourceMappingURL=PlConfirmDialog.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlConfirmDialog.vue.js","sources":["../../src/components/PlConfirmDialog.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { PlBtnPrimary } from './PlBtnPrimary';\nimport { PlBtnSecondary } from './PlBtnSecondary';\nimport { PlDialogModal } from './PlDialogModal';\n\nconst props = withDefaults(\n defineProps<{\n opened?: boolean;\n title: string;\n message: string;\n confirmLabel: string;\n cancelLabel: string;\n onConfirm?: () => void;\n onCancel?: () => void;\n }>(), {\n opened: true,\n onCancel: undefined,\n onConfirm: undefined,\n },\n);\n\nconst emits = defineEmits<{\n confirm: [];\n cancel: [];\n}>();\n\nconst handleConfirm = () => {\n emits('confirm');\n props.onConfirm?.();\n};\n\nconst handleCancel = () => {\n emits('cancel');\n props.onCancel?.();\n};\n</script>\n\n<template>\n <PlDialogModal v-model=\"props.opened\" :closable=\"false\" @click.stop>\n <template #title>\n {{ title }}\n </template>\n <template #default>\n {{ message }}\n </template>\n <template #actions>\n <PlBtnPrimary @click.stop=\"handleConfirm\">\n {{ props.confirmLabel }}\n </PlBtnPrimary>\n <PlBtnSecondary @click.stop=\"handleCancel\">\n {{ props.cancelLabel }}\n </PlBtnSecondary>\n </template>\n </PlDialogModal>\n</template>\n"],"names":["props","__props","emits","__emit","handleConfirm","_a","handleCancel"],"mappings":";;;;;;;;;;;;;;;;;AAKA,UAAMA,IAAQC,GAgBRC,IAAQC,GAKRC,IAAgB,MAAM;;AAC1B,MAAAF,EAAM,SAAS,IACfG,IAAAL,EAAM,cAAN,QAAAK,EAAA,KAAAL;AAAA,IACF,GAEMM,IAAe,MAAM;;AACzB,MAAAJ,EAAM,QAAQ,IACdG,IAAAL,EAAM,aAAN,QAAAK,EAAA,KAAAL;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,5 @@
1
+ import f from "./PlConfirmDialog.vue.js";
2
+ export {
3
+ f as default
4
+ };
5
+ //# sourceMappingURL=PlConfirmDialog.vue2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlConfirmDialog.vue2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -104,10 +104,14 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<{
104
104
  actionsHasTopBorder: boolean;
105
105
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
106
106
  modal: HTMLDivElement;
107
- }, any>, {
108
- title?(_: {}): any;
109
- default?(_: {}): any;
110
- actions?(_: {}): any;
107
+ }, any>, Readonly<{
108
+ title?: () => unknown;
109
+ default?: () => unknown;
110
+ actions?: () => unknown;
111
+ }> & {
112
+ title?: () => unknown;
113
+ default?: () => unknown;
114
+ actions?: () => unknown;
111
115
  }>;
112
116
  export default _default;
113
117
  type __VLS_WithTemplateSlots<T, S> = T & {
@@ -1 +1 @@
1
- {"version":3,"file":"PlDialogModal.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlDialogModal/PlDialogModal.vue"],"names":[],"mappings":"AAyJA,OAAO,wBAAwB,CAAC;AAGhC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;;IASpC;;OAEG;gBACS,OAAO;IACnB;;OAEG;YACK,MAAM;IACd;;OAEG;aACM,MAAM;IACf;;OAEG;gBACS,MAAM;IAClB;;OAEG;gBACS,MAAM;IAClB;;OAEG;eACQ,OAAO;IAClB;;OAEG;uBACgB,OAAO;IAC1B;;OAEG;yBACkB,OAAO;IAC5B;;OAEG;0BACmB,OAAO;IAC7B;;OAEG;0BACmB,OAAO;IAC7B;;OAEG;WACI,IAAI,GAAG,SAAS;;;;IA3CvB;;OAEG;gBACS,OAAO;IACnB;;OAEG;YACK,MAAM;IACd;;OAEG;aACM,MAAM;IACf;;OAEG;gBACS,MAAM;IAClB;;OAEG;gBACS,MAAM;IAClB;;OAEG;eACQ,OAAO;IAClB;;OAEG;uBACgB,OAAO;IAC1B;;OAEG;yBACkB,OAAO;IAC5B;;OAEG;0BACmB,OAAO;IAC7B;;OAEG;0BACmB,OAAO;IAC7B;;OAEG;WACI,IAAI,GAAG,SAAS;;;;;YAhCd,MAAM;WAJP,MAAM;eAYF,MAAM;eAJN,MAAM;cAQP,OAAO;sBAIC,OAAO;yBAQJ,OAAO;;;;mBA4KL,GAAG;qBACD,GAAG;qBACH,GAAG;;AAvNjC,wBAwQK;AAcL,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"PlDialogModal.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlDialogModal/PlDialogModal.vue"],"names":[],"mappings":"AA6JA,OAAO,wBAAwB,CAAC;AAGhC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;;IAapC;;OAEG;gBACS,OAAO;IACnB;;OAEG;YACK,MAAM;IACd;;OAEG;aACM,MAAM;IACf;;OAEG;gBACS,MAAM;IAClB;;OAEG;gBACS,MAAM;IAClB;;OAEG;eACQ,OAAO;IAClB;;OAEG;uBACgB,OAAO;IAC1B;;OAEG;yBACkB,OAAO;IAC5B;;OAEG;0BACmB,OAAO;IAC7B;;OAEG;0BACmB,OAAO;IAC7B;;OAEG;WACI,IAAI,GAAG,SAAS;;;;IA3CvB;;OAEG;gBACS,OAAO;IACnB;;OAEG;YACK,MAAM;IACd;;OAEG;aACM,MAAM;IACf;;OAEG;gBACS,MAAM;IAClB;;OAEG;gBACS,MAAM;IAClB;;OAEG;eACQ,OAAO;IAClB;;OAEG;uBACgB,OAAO;IAC1B;;OAEG;yBACkB,OAAO;IAC5B;;OAEG;0BACmB,OAAO;IAC7B;;OAEG;0BACmB,OAAO;IAC7B;;OAEG;WACI,IAAI,GAAG,SAAS;;;;;YAhCd,MAAM;WAJP,MAAM;eAYF,MAAM;eAJN,MAAM;cAQP,OAAO;sBAIC,OAAO;yBAQJ,OAAO;;;;YA3CvB,MAAM,OAAO;cACX,MAAM,OAAO;cACb,MAAM,OAAO;;YAFf,MAAM,OAAO;cACX,MAAM,OAAO;cACb,MAAM,OAAO;;AAJzB,wBAsQK;AAcL,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -1,15 +1,15 @@
1
1
  (function(){"use strict";try{if(typeof document<"u"){var o=document.createElement("style");o.appendChild(document.createTextNode(".pl-dialog-modal{--padding-top: 24px;--border-radius: 16px;--title-padding: 24px 24px 0 24px;min-height:400px;max-height:calc(100vh - 48px);max-width:calc(100% - 48px);min-width:448px;position:absolute;top:50%;left:50%;transform:translateY(-50%) translate(-50%);background-color:#fff;padding-top:var(--padding-top);display:flex;flex-direction:column;box-shadow:0 2px 8px #24223d1f;border-radius:var(--border-radius)}.pl-dialog-modal.has-title{--padding-top: 0}.pl-dialog-modal.has-content{--title-padding: 24px}.pl-dialog-modal__title{display:flex;align-items:center;font-family:var(--font-family-base);font-size:28px;font-style:normal;font-weight:500;line-height:32px;letter-spacing:-.56px;padding:var(--title-padding)}.pl-dialog-modal__content{flex:1;display:flex;flex-direction:column;gap:24px;padding:16px 24px 40px;min-height:0;line-height:20px;--thumb-color: var(--ic-02);overflow-y:auto}.pl-dialog-modal__content::-webkit-scrollbar{width:var(--scrollbar-width, 6px);height:5px;background-color:transparent;display:block}.pl-dialog-modal__content::-webkit-scrollbar-thumb{background:var(--thumb-color);border-radius:5px}.pl-dialog-modal__content::-webkit-scrollbar-thumb:hover{--thumb-color: var(--border-color-focus)}.pl-dialog-modal__content.no-content-gutters{padding:0}.pl-dialog-modal__content.no-top-content-gutter{padding-top:0}.pl-dialog-modal__actions{display:flex;align-items:center;gap:6px;min-height:88px;padding:0 24px}.pl-dialog-modal__actions button{min-width:160px}.pl-dialog-modal__actions.has-top-border{border-top:1px solid var(--border-color-div-grey)}.pl-dialog-modal .alert-error{background-color:var(--txt-error);color:#fff;font-weight:500;padding:12px;border-radius:6px}.pl-dialog-modal .alert-warning{background-color:#fee0a3;font-weight:500;padding:12px;border-radius:6px}.pl-dialog-modal__shadow{position:absolute;z-index:var(--z-dialog);top:var(--title-bar-height);left:0;right:0;bottom:0;background-color:#000000a3}.pl-dialog-modal .close-modal-btn{position:absolute;top:4px;right:4px}")),document.head.appendChild(o)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
2
- import { defineComponent as H, useSlots as _, ref as v, computed as V, createBlock as c, openBlock as t, Teleport as w, createVNode as b, Transition as x, withCtx as T, createElementBlock as r, createCommentVNode as l, createElementVNode as f, mergeProps as $, unref as n, withModifiers as E, renderSlot as m, normalizeClass as h } from "vue";
3
- import { useEventListener as G } from "../../composition/useEventListener.js";
2
+ import { defineComponent as B, useSlots as H, ref as _, computed as v, createBlock as p, openBlock as t, Teleport as V, createVNode as w, Transition as b, withCtx as x, createElementBlock as u, createCommentVNode as l, createElementVNode as c, mergeProps as T, withModifiers as $, renderSlot as r, normalizeClass as f } from "vue";
3
+ import { useEventListener as E } from "../../composition/useEventListener.js";
4
4
 
5
- import O from "../../utils/PlCloseModalBtn.vue.js";
6
- const z = {
5
+ import G from "../../utils/PlCloseModalBtn.vue.js";
6
+ const O = {
7
7
  key: 1,
8
8
  class: "pl-dialog-modal__title"
9
- }, M = {
9
+ }, z = {
10
10
  inheritAttrs: !1
11
- }, D = /* @__PURE__ */ H({
12
- ...M,
11
+ }, A = /* @__PURE__ */ B({
12
+ ...z,
13
13
  __name: "PlDialogModal",
14
14
  props: {
15
15
  modelValue: { type: Boolean },
@@ -25,63 +25,63 @@ const z = {
25
25
  size: { default: void 0 }
26
26
  },
27
27
  emits: ["update:modelValue"],
28
- setup(g, { emit: y }) {
29
- const o = _(), i = y, s = g, d = v(), k = V(() => {
30
- const { width: e, height: a, minHeight: p, maxHeight: B, size: u } = s;
31
- return u === "small" ? {
28
+ setup(h, { emit: g }) {
29
+ const o = H(), i = g, n = h, s = _(), y = v(() => {
30
+ const { width: e, height: a, minHeight: m, maxHeight: C, size: d } = n;
31
+ return d === "small" ? {
32
32
  width: "448px",
33
33
  height: "440px",
34
34
  minHeight: "auto",
35
35
  maxHeight: "auto"
36
- } : u === "medium" ? {
36
+ } : d === "medium" ? {
37
37
  width: "720px",
38
38
  height: "720px",
39
39
  minHeight: "auto",
40
40
  maxHeight: "auto"
41
- } : u === "large" ? {
41
+ } : d === "large" ? {
42
42
  width: "1080px",
43
43
  height: "880px",
44
44
  minHeight: "auto",
45
45
  maxHeight: "auto"
46
- } : { width: e, height: a, minHeight: p, maxHeight: B };
46
+ } : { width: e, height: a, minHeight: m, maxHeight: C };
47
47
  });
48
- function C(e) {
49
- d.value && s.closeOnOutsideClick && document.contains(e.target) && !d.value.contains(e.target) && i("update:modelValue", !1);
48
+ function k(e) {
49
+ s.value && n.closeOnOutsideClick && document.contains(e.target) && !s.value.contains(e.target) && i("update:modelValue", !1);
50
50
  }
51
- return G(document.body, "keyup", (e) => {
52
- s.modelValue && e.code === "Escape" && i("update:modelValue", !1);
53
- }), (e, a) => (t(), c(w, { to: "body" }, [
54
- b(x, { name: "dialog" }, {
55
- default: T(() => [
56
- e.modelValue ? (t(), r("div", {
51
+ return E(document.body, "keyup", (e) => {
52
+ n.modelValue && e.code === "Escape" && i("update:modelValue", !1);
53
+ }), (e, a) => (t(), p(V, { to: "body" }, [
54
+ w(b, { name: "dialog" }, {
55
+ default: x(() => [
56
+ e.modelValue ? (t(), u("div", {
57
57
  key: 0,
58
58
  class: "pl-dialog-modal__shadow",
59
- onClick: C
59
+ onClick: k
60
60
  }, [
61
- f("div", $(e.$attrs, {
61
+ c("div", T(e.$attrs, {
62
62
  ref_key: "modal",
63
- ref: d,
64
- class: ["pl-dialog-modal", { "has-title": n(o).title, "has-content": n(o).default }],
65
- style: k.value
63
+ ref: s,
64
+ class: ["pl-dialog-modal", { "has-title": o.title, "has-content": o.default }],
65
+ style: y.value
66
66
  }), [
67
- e.closable ? (t(), c(O, {
67
+ e.closable ? (t(), p(G, {
68
68
  key: 0,
69
69
  class: "close-modal-btn",
70
- onClick: a[0] || (a[0] = E((p) => i("update:modelValue", !1), ["stop"]))
70
+ onClick: a[0] || (a[0] = $((m) => i("update:modelValue", !1), ["stop"]))
71
71
  })) : l("", !0),
72
- n(o).title ? (t(), r("div", z, [
73
- m(e.$slots, "title")
72
+ o.title ? (t(), u("div", O, [
73
+ r(e.$slots, "title")
74
74
  ])) : l("", !0),
75
- f("div", {
76
- class: h(["pl-dialog-modal__content", { "no-content-gutters": e.noContentGutters, "no-top-content-gutter": e.noTopContentGutter }])
75
+ c("div", {
76
+ class: f(["pl-dialog-modal__content", { "no-content-gutters": e.noContentGutters, "no-top-content-gutter": e.noTopContentGutter }])
77
77
  }, [
78
- m(e.$slots, "default")
78
+ r(e.$slots, "default")
79
79
  ], 2),
80
- n(o).actions ? (t(), r("div", {
80
+ o.actions ? (t(), u("div", {
81
81
  key: 2,
82
- class: h(["pl-dialog-modal__actions", { "has-top-border": e.actionsHasTopBorder }])
82
+ class: f(["pl-dialog-modal__actions", { "has-top-border": e.actionsHasTopBorder }])
83
83
  }, [
84
- m(e.$slots, "actions")
84
+ r(e.$slots, "actions")
85
85
  ], 2)) : l("", !0)
86
86
  ], 16)
87
87
  ])) : l("", !0)
@@ -92,6 +92,6 @@ const z = {
92
92
  }
93
93
  });
94
94
  export {
95
- D as default
95
+ A as default
96
96
  };
97
97
  //# sourceMappingURL=PlDialogModal.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlDialogModal.vue.js","sources":["../../../src/components/PlDialogModal/PlDialogModal.vue"],"sourcesContent":["<script lang=\"ts\">\nexport default {\n inheritAttrs: false,\n};\n</script>\n\n<script lang=\"ts\" setup>\nimport { useEventListener } from '../../composition/useEventListener';\nimport './pl-dialog-modal.scss';\nimport { computed, ref, useSlots } from 'vue';\nimport PlCloseModalBtn from '../../utils/PlCloseModalBtn.vue';\nimport type { Size } from '../../types';\n\nconst slots = useSlots();\n\nconst emit = defineEmits(['update:modelValue']);\n\nconst props = withDefaults(\n defineProps<{\n /**\n * Determines whether the modal is open\n */\n modelValue: boolean;\n /**\n * css width (default value is `448px`)\n */\n width?: string;\n /**\n * css height (default value is `auto`)\n */\n height?: string;\n /**\n * css min-height (default value is `auto`)\n */\n minHeight?: string;\n /**\n * css min-height (default value is `auto` but recommended is 440px)\n */\n maxHeight?: string;\n /**\n * Enables a button to close the modal (default: `true`)\n */\n closable?: boolean;\n /**\n * If `true` content gutters are removed\n */\n noContentGutters?: boolean;\n /**\n * If `true` top content gutter is removed\n */\n noTopContentGutter?: boolean;\n /**\n * Actions slot has a top border (default: `true`)\n */\n actionsHasTopBorder?: boolean;\n /**\n * If `true`, the modal window closes when clicking outside the modal area (default: `true`)\n */\n closeOnOutsideClick?: boolean;\n /**\n * Predefined size (standard small | medium | large). Takes precedence over (min|max)(width|height) properties. Not defined by default.\n */\n size?: Size | undefined;\n }>(),\n {\n width: '448px',\n minHeight: 'auto',\n maxHeight: 'auto',\n height: 'auto',\n closable: true,\n noContentGutters: false,\n actionsHasTopBorder: true,\n size: undefined,\n },\n);\n\nconst modal = ref<HTMLElement>();\n\nconst style = computed(() => {\n const { width, height, minHeight, maxHeight, size } = props;\n\n if (size === 'small') {\n return {\n width: '448px',\n height: '440px',\n minHeight: 'auto',\n maxHeight: 'auto',\n };\n }\n\n if (size === 'medium') {\n return {\n width: '720px',\n height: '720px',\n minHeight: 'auto',\n maxHeight: 'auto',\n };\n }\n\n if (size === 'large') {\n return {\n width: '1080px',\n height: '880px',\n minHeight: 'auto',\n maxHeight: 'auto',\n };\n }\n\n return { width, height, minHeight, maxHeight };\n});\n\nfunction onClickShadow(ev: Event) {\n if (modal.value && props.closeOnOutsideClick && document.contains(ev.target as Node) && !modal.value.contains(ev.target as Node)) {\n emit('update:modelValue', false);\n }\n}\n\nuseEventListener(document.body, 'keyup', (ev) => {\n if (props.modelValue && ev.code === 'Escape') {\n emit('update:modelValue', false);\n }\n});\n</script>\n\n<template>\n <Teleport to=\"body\">\n <Transition name=\"dialog\">\n <div v-if=\"modelValue\" class=\"pl-dialog-modal__shadow\" @click=\"onClickShadow\">\n <div\n v-bind=\"$attrs\"\n ref=\"modal\"\n class=\"pl-dialog-modal\"\n :class=\"{ 'has-title': slots.title, 'has-content': slots.default }\"\n :style=\"style\"\n >\n <PlCloseModalBtn v-if=\"closable\" class=\"close-modal-btn\" @click.stop=\"emit('update:modelValue', false)\" />\n <div v-if=\"slots.title\" class=\"pl-dialog-modal__title\">\n <slot name=\"title\" />\n </div>\n <div class=\"pl-dialog-modal__content\" :class=\"{ 'no-content-gutters': noContentGutters, 'no-top-content-gutter': noTopContentGutter }\">\n <slot />\n </div>\n <div v-if=\"slots.actions\" class=\"pl-dialog-modal__actions\" :class=\"{ 'has-top-border': actionsHasTopBorder }\">\n <slot name=\"actions\" />\n </div>\n </div>\n </div>\n </Transition>\n </Teleport>\n</template>\n"],"names":["__default__","slots","useSlots","emit","__emit","props","__props","modal","ref","style","computed","width","height","minHeight","maxHeight","size","onClickShadow","ev","useEventListener"],"mappings":";;;;;;;GACeA,IAAA;AAAA,EACb,cAAc;AAChB;;;;;;;;;;;;;;;;;;AAUA,UAAMC,IAAQC,EAAS,GAEjBC,IAAOC,GAEPC,IAAQC,GA2DRC,IAAQC,EAAiB,GAEzBC,IAAQC,EAAS,MAAM;AAC3B,YAAM,EAAE,OAAAC,GAAO,QAAAC,GAAQ,WAAAC,GAAW,WAAAC,GAAW,MAAAC,MAASV;AAEtD,aAAIU,MAAS,UACJ;AAAA,QACL,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,WAAW;AAAA,MACb,IAGEA,MAAS,WACJ;AAAA,QACL,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,WAAW;AAAA,MACb,IAGEA,MAAS,UACJ;AAAA,QACL,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,WAAW;AAAA,MACb,IAGK,EAAE,OAAAJ,GAAO,QAAAC,GAAQ,WAAAC,GAAW,WAAAC,EAAU;AAAA,IAAA,CAC9C;AAED,aAASE,EAAcC,GAAW;AAChC,MAAIV,EAAM,SAASF,EAAM,uBAAuB,SAAS,SAASY,EAAG,MAAc,KAAK,CAACV,EAAM,MAAM,SAASU,EAAG,MAAc,KAC7Hd,EAAK,qBAAqB,EAAK;AAAA,IACjC;AAGF,WAAAe,EAAiB,SAAS,MAAM,SAAS,CAACD,MAAO;AAC/C,MAAIZ,EAAM,cAAcY,EAAG,SAAS,YAClCd,EAAK,qBAAqB,EAAK;AAAA,IACjC,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"PlDialogModal.vue.js","sources":["../../../src/components/PlDialogModal/PlDialogModal.vue"],"sourcesContent":["<script lang=\"ts\">\nexport default {\n inheritAttrs: false,\n};\n</script>\n\n<script lang=\"ts\" setup>\nimport { useEventListener } from '../../composition/useEventListener';\nimport './pl-dialog-modal.scss';\nimport { computed, ref } from 'vue';\nimport PlCloseModalBtn from '../../utils/PlCloseModalBtn.vue';\nimport type { Size } from '../../types';\n\nconst slots = defineSlots<{\n title?: () => unknown;\n default?: () => unknown;\n actions?: () => unknown;\n}>();\n\nconst emit = defineEmits(['update:modelValue']);\n\nconst props = withDefaults(\n defineProps<{\n /**\n * Determines whether the modal is open\n */\n modelValue: boolean;\n /**\n * css width (default value is `448px`)\n */\n width?: string;\n /**\n * css height (default value is `auto`)\n */\n height?: string;\n /**\n * css min-height (default value is `auto`)\n */\n minHeight?: string;\n /**\n * css min-height (default value is `auto` but recommended is 440px)\n */\n maxHeight?: string;\n /**\n * Enables a button to close the modal (default: `true`)\n */\n closable?: boolean;\n /**\n * If `true` content gutters are removed\n */\n noContentGutters?: boolean;\n /**\n * If `true` top content gutter is removed\n */\n noTopContentGutter?: boolean;\n /**\n * Actions slot has a top border (default: `true`)\n */\n actionsHasTopBorder?: boolean;\n /**\n * If `true`, the modal window closes when clicking outside the modal area (default: `true`)\n */\n closeOnOutsideClick?: boolean;\n /**\n * Predefined size (standard small | medium | large). Takes precedence over (min|max)(width|height) properties. Not defined by default.\n */\n size?: Size | undefined;\n }>(),\n {\n width: '448px',\n minHeight: 'auto',\n maxHeight: 'auto',\n height: 'auto',\n closable: true,\n noContentGutters: false,\n actionsHasTopBorder: true,\n size: undefined,\n },\n);\n\nconst modal = ref<HTMLElement>();\n\nconst style = computed(() => {\n const { width, height, minHeight, maxHeight, size } = props;\n\n if (size === 'small') {\n return {\n width: '448px',\n height: '440px',\n minHeight: 'auto',\n maxHeight: 'auto',\n };\n }\n\n if (size === 'medium') {\n return {\n width: '720px',\n height: '720px',\n minHeight: 'auto',\n maxHeight: 'auto',\n };\n }\n\n if (size === 'large') {\n return {\n width: '1080px',\n height: '880px',\n minHeight: 'auto',\n maxHeight: 'auto',\n };\n }\n\n return { width, height, minHeight, maxHeight };\n});\n\nfunction onClickShadow(ev: Event) {\n if (modal.value && props.closeOnOutsideClick && document.contains(ev.target as Node) && !modal.value.contains(ev.target as Node)) {\n emit('update:modelValue', false);\n }\n}\n\nuseEventListener(document.body, 'keyup', (ev) => {\n if (props.modelValue && ev.code === 'Escape') {\n emit('update:modelValue', false);\n }\n});\n</script>\n\n<template>\n <Teleport to=\"body\">\n <Transition name=\"dialog\">\n <div v-if=\"modelValue\" class=\"pl-dialog-modal__shadow\" @click=\"onClickShadow\">\n <div\n v-bind=\"$attrs\"\n ref=\"modal\"\n class=\"pl-dialog-modal\"\n :class=\"{ 'has-title': slots.title, 'has-content': slots.default }\"\n :style=\"style\"\n >\n <PlCloseModalBtn v-if=\"closable\" class=\"close-modal-btn\" @click.stop=\"emit('update:modelValue', false)\" />\n <div v-if=\"slots.title\" class=\"pl-dialog-modal__title\">\n <slot name=\"title\" />\n </div>\n <div class=\"pl-dialog-modal__content\" :class=\"{ 'no-content-gutters': noContentGutters, 'no-top-content-gutter': noTopContentGutter }\">\n <slot />\n </div>\n <div v-if=\"slots.actions\" class=\"pl-dialog-modal__actions\" :class=\"{ 'has-top-border': actionsHasTopBorder }\">\n <slot name=\"actions\" />\n </div>\n </div>\n </div>\n </Transition>\n </Teleport>\n</template>\n"],"names":["__default__","slots","_useSlots","emit","__emit","props","__props","modal","ref","style","computed","width","height","minHeight","maxHeight","size","onClickShadow","ev","useEventListener"],"mappings":";;;;;;;GACeA,IAAA;AAAA,EACb,cAAc;AAChB;;;;;;;;;;;;;;;;;;AAUA,UAAMC,IAAQC,EAIV,GAEEC,IAAOC,GAEPC,IAAQC,GA2DRC,IAAQC,EAAiB,GAEzBC,IAAQC,EAAS,MAAM;AAC3B,YAAM,EAAE,OAAAC,GAAO,QAAAC,GAAQ,WAAAC,GAAW,WAAAC,GAAW,MAAAC,MAASV;AAEtD,aAAIU,MAAS,UACJ;AAAA,QACL,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,WAAW;AAAA,MACb,IAGEA,MAAS,WACJ;AAAA,QACL,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,WAAW;AAAA,MACb,IAGEA,MAAS,UACJ;AAAA,QACL,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,WAAW;AAAA,MACb,IAGK,EAAE,OAAAJ,GAAO,QAAAC,GAAQ,WAAAC,GAAW,WAAAC,EAAU;AAAA,IAAA,CAC9C;AAED,aAASE,EAAcC,GAAW;AAChC,MAAIV,EAAM,SAASF,EAAM,uBAAuB,SAAS,SAASY,EAAG,MAAc,KAAK,CAACV,EAAM,MAAM,SAASU,EAAG,MAAc,KAC7Hd,EAAK,qBAAqB,EAAK;AAAA,IACjC;AAGF,WAAAe,EAAiB,SAAS,MAAM,SAAS,CAACD,MAAO;AAC/C,MAAIZ,EAAM,cAAcY,EAAG,SAAS,YAClCd,EAAK,qBAAqB,EAAK;AAAA,IACjC,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -12,7 +12,7 @@ import we from "../LongText.vue.js";
12
12
  import { normalizeListOptions as _e } from "../../helpers/utils.js";
13
13
  import ke from "../PlIcon16/PlIcon16.vue.js";
14
14
  import ye from "../PlIcon24/PlIcon24.vue.js";
15
- import ge from "../../generated/components/svg/images/SvgRequired.vue.js";
15
+ import ge from "../../generated/components/svg/images/SvgRequired.vue2.js";
16
16
  import { getErrorMessage as Ie } from "../../helpers/error.js";
17
17
  import be from "./OptionList.vue.js";
18
18
  import { useGroupBy as Ve } from "./useGroupBy.js";
@@ -14,7 +14,7 @@ import we from "../LongText.vue.js";
14
14
  import ke from "../PlIcon16/PlIcon16.vue.js";
15
15
  import ye from "../PlIcon24/PlIcon24.vue.js";
16
16
  import { normalizeListOptions as Ie } from "../../helpers/utils.js";
17
- import ge from "../../generated/components/svg/images/SvgRequired.vue.js";
17
+ import ge from "../../generated/components/svg/images/SvgRequired.vue2.js";
18
18
  import { getErrorMessage as Ve } from "../../helpers/error.js";
19
19
  const be = { class: "ui-dropdown__envelope" }, Ce = ["tabindex"], Ee = { class: "ui-dropdown__container" }, Le = { class: "ui-dropdown__field" }, Se = ["disabled", "placeholder"], xe = { class: "ui-dropdown__controls" }, Ae = { key: 0 }, Oe = {
20
20
  key: 0,
@@ -41,8 +41,8 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
41
41
  }>, {
42
42
  mode: "list" | "tabs";
43
43
  placeholder: string;
44
- prefix: string;
45
44
  clearable: boolean;
45
+ prefix: string;
46
46
  tabsContainerStyles: string | false | import('vue').CSSProperties | StyleValue[] | null;
47
47
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
48
48
  container: HTMLDivElement;
@@ -1 +1 @@
1
- {"version":3,"file":"PlDropdownLine.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlDropdownLine/PlDropdownLine.vue"],"names":[],"mappings":"AAkUA,OAAO,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAUtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAM9C,KAAK,WAAW,GAAG;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,UAAU,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AA8OJ,iBAAS,cAAc;WAsMT,OAAO,IAA6B;;;;;;;;YAbvB,GAAG;;;;;;YACH,GAAG;;;;;;;EAiB7B;AA4BD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;UAzdV,MAAM,GAAG,MAAM;iBADR,MAAM;YAFX,MAAM;eAKH,OAAO;;;;;kBAierB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"PlDropdownLine.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlDropdownLine/PlDropdownLine.vue"],"names":[],"mappings":"AAkUA,OAAO,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAUtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAM9C,KAAK,WAAW,GAAG;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,UAAU,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AA8OJ,iBAAS,cAAc;WAsMT,OAAO,IAA6B;;;;;;;;YAbvB,GAAG;;;;;;YACH,GAAG;;;;;;;EAiB7B;AA4BD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;UAzdV,MAAM,GAAG,MAAM;iBADR,MAAM;eAGR,OAAO;YALV,MAAM;;;;;kBAsejB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -11,7 +11,7 @@ import { deepEqual as k, deepIncludes as x } from "../../helpers/objects.js";
11
11
  import { normalizeListOptions as pe } from "../../helpers/utils.js";
12
12
  import fe from "../../utils/DropdownOverlay/DropdownOverlay.vue.js";
13
13
  import me from "../PlIcon24/PlIcon24.vue.js";
14
- import ve from "../../generated/components/svg/images/SvgRequired.vue.js";
14
+ import ve from "../../generated/components/svg/images/SvgRequired.vue2.js";
15
15
  import { getErrorMessage as he } from "../../helpers/error.js";
16
16
  const _e = ["tabindex"], we = { class: "pl-dropdown-multi__container" }, ye = { class: "pl-dropdown-multi__field" }, ke = ["disabled", "placeholder"], be = {
17
17
  key: 0,
@@ -113,10 +113,10 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<{
113
113
  required: boolean;
114
114
  disabled: boolean;
115
115
  helper: string;
116
+ loadingOptionsHelper: string;
116
117
  placeholder: string;
117
118
  clearable: boolean;
118
119
  optionSize: "small" | "medium";
119
- loadingOptionsHelper: string;
120
120
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>, {
121
121
  tooltip?(_: {}): any;
122
122
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"PlDropdownRef.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlDropdownRef/PlDropdownRef.vue"],"names":[],"mappings":"AAgHA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAKvD;;GAEG;;IAcC;;OAEG;gBACS,QAAQ,GAAG,SAAS;IAChC;;OAEG;YACK,MAAM;IACd;;OAEG;cACO,QAAQ,CAAC,SAAS,EAAE,CAAC;IAC/B;;OAEG;aACM,MAAM;IACf;;OAEG;2BACoB,MAAM;IAC7B;;OAEG;YACK,OAAO;IACf;;OAEG;kBACW,MAAM;IACpB;;OAEG;gBACS,OAAO;IACnB;;OAEG;eACQ,OAAO;IAClB;;OAEG;eACQ,OAAO;IAClB;;OAEG;iBACU,OAAO,GAAG,QAAQ;;;;;;;;;IA3C/B;;OAEG;gBACS,QAAQ,GAAG,SAAS;IAChC;;OAEG;YACK,MAAM;IACd;;OAEG;cACO,QAAQ,CAAC,SAAS,EAAE,CAAC;IAC/B;;OAEG;aACM,MAAM;IACf;;OAEG;2BACoB,MAAM;IAC7B;;OAEG;YACK,OAAO;IACf;;OAEG;kBACW,MAAM;IACpB;;OAEG;gBACS,OAAO;IACnB;;OAEG;eACQ,OAAO;IAClB;;OAEG;eACQ,OAAO;IAClB;;OAEG;iBACU,OAAO,GAAG,QAAQ;;;;;;;;;aAhCrB,QAAQ,CAAC,SAAS,EAAE,CAAC;WAJvB,MAAM;;cA4BH,OAAO;cAIP,OAAO;YAxBT,MAAM;iBAYD,MAAM;eAIR,OAAO;gBAYN,OAAO,GAAG,QAAQ;0BAxBR,MAAM;;qBA+GJ,GAAG;;AA/IhC,wBA4LK;AAcL,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"PlDropdownRef.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlDropdownRef/PlDropdownRef.vue"],"names":[],"mappings":"AAgHA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAKvD;;GAEG;;IAcC;;OAEG;gBACS,QAAQ,GAAG,SAAS;IAChC;;OAEG;YACK,MAAM;IACd;;OAEG;cACO,QAAQ,CAAC,SAAS,EAAE,CAAC;IAC/B;;OAEG;aACM,MAAM;IACf;;OAEG;2BACoB,MAAM;IAC7B;;OAEG;YACK,OAAO;IACf;;OAEG;kBACW,MAAM;IACpB;;OAEG;gBACS,OAAO;IACnB;;OAEG;eACQ,OAAO;IAClB;;OAEG;eACQ,OAAO;IAClB;;OAEG;iBACU,OAAO,GAAG,QAAQ;;;;;;;;;IA3C/B;;OAEG;gBACS,QAAQ,GAAG,SAAS;IAChC;;OAEG;YACK,MAAM;IACd;;OAEG;cACO,QAAQ,CAAC,SAAS,EAAE,CAAC;IAC/B;;OAEG;aACM,MAAM;IACf;;OAEG;2BACoB,MAAM;IAC7B;;OAEG;YACK,OAAO;IACf;;OAEG;kBACW,MAAM;IACpB;;OAEG;gBACS,OAAO;IACnB;;OAEG;eACQ,OAAO;IAClB;;OAEG;eACQ,OAAO;IAClB;;OAEG;iBACU,OAAO,GAAG,QAAQ;;;;;;;;;aAhCrB,QAAQ,CAAC,SAAS,EAAE,CAAC;WAJvB,MAAM;;cA4BH,OAAO;cAIP,OAAO;YAxBT,MAAM;0BAIQ,MAAM;iBAQf,MAAM;eAIR,OAAO;gBAYN,OAAO,GAAG,QAAQ;;qBAuFN,GAAG;;AA/IhC,wBA4LK;AAcL,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -19,6 +19,10 @@ type __VLS_Props = {
19
19
  * Min title length
20
20
  */
21
21
  minLength?: number;
22
+ /**
23
+ * If true, input will be focused on mount
24
+ */
25
+ autofocus?: boolean;
22
26
  };
23
27
  type __VLS_PublicProps = {
24
28
  modelValue?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"PlEditableTitle.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlEditableTitle/PlEditableTitle.vue"],"names":[],"mappings":"AAgGA,KAAK,WAAW,GAAG;IACf;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAsDJ,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,WAAW,CAAC;;;;;;cArED,MAAM;iBAJH,MAAM;YAQX,MAAM;eAIH,MAAM;eAIN,MAAM;;;;AAoItB,wBAUG"}
1
+ {"version":3,"file":"PlEditableTitle.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlEditableTitle/PlEditableTitle.vue"],"names":[],"mappings":"AA2GA,KAAK,WAAW,GAAG;IACf;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AA6DJ,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,WAAW,CAAC;;;;;;cAhFD,MAAM;iBAJH,MAAM;YAQX,MAAM;eAIH,MAAM;eAIN,MAAM;;;;AA+ItB,wBAUG"}
@@ -1,79 +1,83 @@
1
- import { defineComponent as L, mergeModels as M, useModel as k, computed as w, ref as E, createElementBlock as i, openBlock as s, normalizeStyle as V, normalizeClass as d, unref as t, createElementVNode as h, createCommentVNode as c, withDirectives as b, toDisplayString as g, withKeys as v, vModelText as C } from "vue";
2
- import { useTransformedModel as T } from "../../composition/useTransformedModel.js";
3
- import u from "./pl-editable-title.module.scss.js";
4
- const S = { key: 0 }, W = ["placeholder"], K = /* @__PURE__ */ L({
1
+ import { defineComponent as L, mergeModels as M, useModel as k, ref as w, computed as E, onMounted as V, createElementBlock as s, openBlock as u, normalizeStyle as b, normalizeClass as d, unref as o, createElementVNode as c, createCommentVNode as h, withDirectives as C, toDisplayString as g, withKeys as v, vModelText as T } from "vue";
2
+ import { useTransformedModel as B } from "../../composition/useTransformedModel.js";
3
+ import m from "./pl-editable-title.module.scss.js";
4
+ const S = { key: 0 }, W = ["placeholder"], N = /* @__PURE__ */ L({
5
5
  __name: "PlEditableTitle",
6
6
  props: /* @__PURE__ */ M({
7
7
  placeholder: { default: "Title" },
8
8
  maxWidth: { default: "80%" },
9
9
  prefix: { default: void 0 },
10
10
  maxLength: { default: 1e3 },
11
- minLength: { default: void 0 }
11
+ minLength: { default: void 0 },
12
+ autofocus: { type: Boolean }
12
13
  }, {
13
14
  modelValue: {},
14
15
  modelModifiers: {}
15
16
  }),
16
17
  emits: ["update:modelValue"],
17
- setup(m) {
18
- const a = k(m, "modelValue"), n = m, e = T(a, {
18
+ setup(f) {
19
+ const a = k(f, "modelValue"), r = f, t = B(a, {
19
20
  update() {
20
21
  return !1;
21
22
  },
22
- parse: (r) => {
23
- if (typeof r != "string")
23
+ parse: (e) => {
24
+ if (typeof e != "string")
24
25
  throw Error("value should be a string");
25
- if (n.maxLength && r.length > n.maxLength)
26
- throw Error(`Max title length is ${n.maxLength} characters`);
27
- if (n.minLength && r.length < n.minLength)
28
- throw Error(`Min title length is ${n.minLength} characters`);
29
- return r.trim();
26
+ if (r.maxLength && e.length > r.maxLength)
27
+ throw Error(`Max title length is ${r.maxLength} characters`);
28
+ if (r.minLength && e.length < r.minLength)
29
+ throw Error(`Min title length is ${r.minLength} characters`);
30
+ return e.trim();
30
31
  }
31
- }), x = w(() => ({
32
- maxWidth: n.maxWidth ?? "80%"
33
- })), y = () => {
34
- a.value = e.value && !e.error ? e.value : a.value, e.reset();
35
- }, p = E();
36
- return (r, o) => (s(), i("div", {
37
- class: d(["pl-editable-title", t(u).component]),
38
- style: V(x.value)
32
+ }), i = w(), y = E(() => ({
33
+ maxWidth: r.maxWidth ?? "80%"
34
+ })), x = () => {
35
+ a.value = t.value && !t.error ? t.value : a.value, t.reset();
36
+ };
37
+ return V(() => {
38
+ var e;
39
+ r.autofocus && ((e = i.value) == null || e.focus());
40
+ }), (e, l) => (u(), s("div", {
41
+ class: d(["pl-editable-title", o(m).component]),
42
+ style: b(y.value)
39
43
  }, [
40
- h("div", {
41
- class: d(t(u).container),
42
- onClick: o[3] || (o[3] = () => {
43
- var l;
44
- return (l = p.value) == null ? void 0 : l.focus();
44
+ c("div", {
45
+ class: d(o(m).container),
46
+ onClick: l[3] || (l[3] = () => {
47
+ var n;
48
+ return (n = i.value) == null ? void 0 : n.focus();
45
49
  })
46
50
  }, [
47
- r.prefix ? (s(), i("span", S, g(r.prefix.trim()) + " ", 1)) : c("", !0),
48
- b(h("input", {
51
+ e.prefix ? (u(), s("span", S, g(e.prefix.trim()) + " ", 1)) : h("", !0),
52
+ C(c("input", {
49
53
  ref_key: "inputRef",
50
- ref: p,
51
- "onUpdate:modelValue": o[0] || (o[0] = (l) => t(e).value = l),
52
- placeholder: r.placeholder,
53
- onFocusout: y,
54
+ ref: i,
55
+ "onUpdate:modelValue": l[0] || (l[0] = (n) => o(t).value = n),
56
+ placeholder: e.placeholder,
57
+ onFocusout: x,
54
58
  onKeydown: [
55
- o[1] || (o[1] = v(
59
+ l[1] || (l[1] = v(
56
60
  //@ts-ignore
57
- (...l) => t(e).reset && t(e).reset(...l),
61
+ (...n) => o(t).reset && o(t).reset(...n),
58
62
  ["escape"]
59
63
  )),
60
- o[2] || (o[2] = v((l) => {
61
- var f;
62
- return (f = l.target) == null ? void 0 : f.blur();
64
+ l[2] || (l[2] = v((n) => {
65
+ var p;
66
+ return (p = n.target) == null ? void 0 : p.blur();
63
67
  }, ["enter"]))
64
68
  ]
65
69
  }, null, 40, W), [
66
- [C, t(e).value]
70
+ [T, o(t).value]
67
71
  ])
68
72
  ], 2),
69
- t(e).error ? (s(), i("div", {
73
+ o(t).error ? (u(), s("div", {
70
74
  key: 0,
71
- class: d(t(u).error)
72
- }, g(t(e).error), 3)) : c("", !0)
75
+ class: d(o(m).error)
76
+ }, g(o(t).error), 3)) : h("", !0)
73
77
  ], 6));
74
78
  }
75
79
  });
76
80
  export {
77
- K as default
81
+ N as default
78
82
  };
79
83
  //# sourceMappingURL=PlEditableTitle.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlEditableTitle.vue.js","sources":["../../../src/components/PlEditableTitle/PlEditableTitle.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useTransformedModel } from '../../composition/useTransformedModel';\nimport style from './pl-editable-title.module.scss';\nimport { computed, ref } from 'vue';\n\nconst model = defineModel<string>();\n\nconst props = withDefaults(\n defineProps<{\n /**\n * Standard input placeholder\n */\n placeholder?: string;\n /**\n * Any css `width` value (px, %), default is 80%\n */\n maxWidth?: string;\n /**\n * Fixed non-editable prefix\n */\n prefix?: string;\n /**\n * Max title length (default is 1000)\n */\n maxLength?: number;\n /**\n * Min title length\n */\n minLength?: number;\n }>(),\n {\n placeholder: 'Title',\n maxWidth: '80%',\n prefix: undefined,\n maxLength: 1000,\n minLength: undefined,\n },\n);\n\nconst local = useTransformedModel(model, {\n update() {\n return false;\n },\n parse: (v): string => {\n if (typeof v !== 'string') {\n throw Error('value should be a string');\n }\n\n if (props.maxLength && v.length > props.maxLength) {\n throw Error(`Max title length is ${props.maxLength} characters`);\n }\n\n if (props.minLength && v.length < props.minLength) {\n throw Error(`Min title length is ${props.minLength} characters`);\n }\n\n return v.trim();\n },\n});\n\nconst computedStyle = computed(() => ({\n maxWidth: props.maxWidth ?? '80%',\n}));\n\nconst save = () => {\n model.value = local.value && !local.error ? local.value : model.value;\n local.reset();\n};\n\nconst inputRef = ref<HTMLInputElement>();\n</script>\n\n<template>\n <div class=\"pl-editable-title\" :class=\"style.component\" :style=\"computedStyle\">\n <div :class=\"style.container\" @click=\"() => inputRef?.focus()\">\n <span v-if=\"prefix\">{{ prefix.trim() }}&nbsp;</span>\n <input\n ref=\"inputRef\"\n v-model=\"local.value\"\n :placeholder=\"placeholder\"\n @focusout=\"save\"\n @keydown.escape=\"local.reset\"\n @keydown.enter=\"(ev) => (ev.target as HTMLInputElement)?.blur()\"\n />\n </div>\n <div v-if=\"local.error\" :class=\"style.error\">{{ local.error }}</div>\n </div>\n</template>\n"],"names":["model","_useModel","__props","props","local","useTransformedModel","v","computedStyle","computed","save","inputRef","ref"],"mappings":";;;;;;;;;;;;;;;;;AAKM,UAAAA,IAAQC,EAAmBC,GAAA,YAAC,GAE5BC,IAAQD,GAgCRE,IAAQC,EAAoBL,GAAO;AAAA,MACvC,SAAS;AACA,eAAA;AAAA,MACT;AAAA,MACA,OAAO,CAACM,MAAc;AAChB,YAAA,OAAOA,KAAM;AACf,gBAAM,MAAM,0BAA0B;AAGxC,YAAIH,EAAM,aAAaG,EAAE,SAASH,EAAM;AACtC,gBAAM,MAAM,uBAAuBA,EAAM,SAAS,aAAa;AAGjE,YAAIA,EAAM,aAAaG,EAAE,SAASH,EAAM;AACtC,gBAAM,MAAM,uBAAuBA,EAAM,SAAS,aAAa;AAGjE,eAAOG,EAAE,KAAK;AAAA,MAAA;AAAA,IAChB,CACD,GAEKC,IAAgBC,EAAS,OAAO;AAAA,MACpC,UAAUL,EAAM,YAAY;AAAA,IAAA,EAC5B,GAEIM,IAAO,MAAM;AACX,MAAAT,EAAA,QAAQI,EAAM,SAAS,CAACA,EAAM,QAAQA,EAAM,QAAQJ,EAAM,OAChEI,EAAM,MAAM;AAAA,IACd,GAEMM,IAAWC,EAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"PlEditableTitle.vue.js","sources":["../../../src/components/PlEditableTitle/PlEditableTitle.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useTransformedModel } from '../../composition/useTransformedModel';\nimport style from './pl-editable-title.module.scss';\nimport { computed, onMounted, ref } from 'vue';\n\nconst model = defineModel<string>();\n\nconst props = withDefaults(\n defineProps<{\n /**\n * Standard input placeholder\n */\n placeholder?: string;\n /**\n * Any css `width` value (px, %), default is 80%\n */\n maxWidth?: string;\n /**\n * Fixed non-editable prefix\n */\n prefix?: string;\n /**\n * Max title length (default is 1000)\n */\n maxLength?: number;\n /**\n * Min title length\n */\n minLength?: number;\n /**\n * If true, input will be focused on mount\n */\n autofocus?: boolean;\n }>(),\n {\n placeholder: 'Title',\n maxWidth: '80%',\n prefix: undefined,\n maxLength: 1000,\n minLength: undefined,\n },\n);\n\nconst local = useTransformedModel(model, {\n update() {\n return false;\n },\n parse: (v): string => {\n if (typeof v !== 'string') {\n throw Error('value should be a string');\n }\n\n if (props.maxLength && v.length > props.maxLength) {\n throw Error(`Max title length is ${props.maxLength} characters`);\n }\n\n if (props.minLength && v.length < props.minLength) {\n throw Error(`Min title length is ${props.minLength} characters`);\n }\n\n return v.trim();\n },\n});\n\nconst inputRef = ref<HTMLInputElement>();\n\nconst computedStyle = computed(() => ({\n maxWidth: props.maxWidth ?? '80%',\n}));\n\nconst save = () => {\n model.value = local.value && !local.error ? local.value : model.value;\n local.reset();\n};\n\nonMounted(() => {\n if (props.autofocus) {\n inputRef.value?.focus();\n }\n});\n\n</script>\n\n<template>\n <div class=\"pl-editable-title\" :class=\"style.component\" :style=\"computedStyle\">\n <div :class=\"style.container\" @click=\"() => inputRef?.focus()\">\n <span v-if=\"prefix\">{{ prefix.trim() }}&nbsp;</span>\n <input\n ref=\"inputRef\"\n v-model=\"local.value\"\n :placeholder=\"placeholder\"\n @focusout=\"save\"\n @keydown.escape=\"local.reset\"\n @keydown.enter=\"(ev) => (ev.target as HTMLInputElement)?.blur()\"\n />\n </div>\n <div v-if=\"local.error\" :class=\"style.error\">{{ local.error }}</div>\n </div>\n</template>\n"],"names":["model","_useModel","__props","props","local","useTransformedModel","v","inputRef","ref","computedStyle","computed","save","onMounted","_a"],"mappings":";;;;;;;;;;;;;;;;;;AAKM,UAAAA,IAAQC,EAAmBC,GAAA,YAAC,GAE5BC,IAAQD,GAoCRE,IAAQC,EAAoBL,GAAO;AAAA,MACvC,SAAS;AACA,eAAA;AAAA,MACT;AAAA,MACA,OAAO,CAACM,MAAc;AAChB,YAAA,OAAOA,KAAM;AACf,gBAAM,MAAM,0BAA0B;AAGxC,YAAIH,EAAM,aAAaG,EAAE,SAASH,EAAM;AACtC,gBAAM,MAAM,uBAAuBA,EAAM,SAAS,aAAa;AAGjE,YAAIA,EAAM,aAAaG,EAAE,SAASH,EAAM;AACtC,gBAAM,MAAM,uBAAuBA,EAAM,SAAS,aAAa;AAGjE,eAAOG,EAAE,KAAK;AAAA,MAAA;AAAA,IAChB,CACD,GAEKC,IAAWC,EAAsB,GAEjCC,IAAgBC,EAAS,OAAO;AAAA,MACpC,UAAUP,EAAM,YAAY;AAAA,IAAA,EAC5B,GAEIQ,IAAO,MAAM;AACX,MAAAX,EAAA,QAAQI,EAAM,SAAS,CAACA,EAAM,QAAQA,EAAM,QAAQJ,EAAM,OAChEI,EAAM,MAAM;AAAA,IACd;AAEA,WAAAQ,EAAU,MAAM;;AACd,MAAIT,EAAM,eACRU,IAAAN,EAAS,UAAT,QAAAM,EAAgB;AAAA,IAClB,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}