@nhtio/lucid-resourceful-vue-components 0.1.0-master-9802f3a9 → 0.1.0-master-a0be600a

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 (135) hide show
  1. package/{VChip-COQck2AV.mjs → VChip-CD7B99FX.mjs} +2 -2
  2. package/{VChip-COQck2AV.mjs.map → VChip-CD7B99FX.mjs.map} +1 -1
  3. package/{VDatePicker-DJFZcev9.mjs → VDatePicker-B5v5MFIN.mjs} +4 -4
  4. package/{VDatePicker-DJFZcev9.mjs.map → VDatePicker-B5v5MFIN.mjs.map} +1 -1
  5. package/{VDialog-JGibK5Rl.mjs → VDialog-lUcuwX2n.mjs} +3 -3
  6. package/{VDialog-JGibK5Rl.mjs.map → VDialog-lUcuwX2n.mjs.map} +1 -1
  7. package/{VEmptyState-DKODfacQ.mjs → VEmptyState-CAdMrRGA.mjs} +2 -2
  8. package/{VEmptyState-DKODfacQ.mjs.map → VEmptyState-CAdMrRGA.mjs.map} +1 -1
  9. package/{VHover-DGMoUvi7.mjs → VHover-BCXXvhJf.mjs} +3 -3
  10. package/{VHover-DGMoUvi7.mjs.map → VHover-BCXXvhJf.mjs.map} +1 -1
  11. package/{VListItem-ZmExdT37.mjs → VListItem-Cc2-RZ21.mjs} +3 -3
  12. package/{VListItem-ZmExdT37.mjs.map → VListItem-Cc2-RZ21.mjs.map} +1 -1
  13. package/{VMenu-DCDIKpqX.mjs → VMenu-DifPtEI3.mjs} +3 -3
  14. package/{VMenu-DCDIKpqX.mjs.map → VMenu-DifPtEI3.mjs.map} +1 -1
  15. package/{VPicker-CAvKVtUE.mjs → VPicker-CGSCX2jB.mjs} +4 -4
  16. package/{VPicker-CAvKVtUE.mjs.map → VPicker-CGSCX2jB.mjs.map} +1 -1
  17. package/{VRadioGroup-BPByWwud.mjs → VRadioGroup-Bnw59gfS.mjs} +4 -4
  18. package/{VRadioGroup-BPByWwud.mjs.map → VRadioGroup-Bnw59gfS.mjs.map} +1 -1
  19. package/{VRow-BwokRy3H.mjs → VRow-1b4yScY2.mjs} +2 -2
  20. package/{VRow-BwokRy3H.mjs.map → VRow-1b4yScY2.mjs.map} +1 -1
  21. package/{VSheet-CHO05eqU.mjs → VSheet-CuYNSxEn.mjs} +2 -2
  22. package/{VSheet-CHO05eqU.mjs.map → VSheet-CuYNSxEn.mjs.map} +1 -1
  23. package/{actions-CpgDJP6D.mjs → actions-Dn25U_rd.mjs} +12 -12
  24. package/{actions-CpgDJP6D.mjs.map → actions-Dn25U_rd.mjs.map} +1 -1
  25. package/{alert-C-iwLX_v.mjs → alert-D7IVL2r2.mjs} +11 -11
  26. package/{alert-C-iwLX_v.mjs.map → alert-D7IVL2r2.mjs.map} +1 -1
  27. package/{bigint-DatNMKMQ.mjs → bigint-wE2NM5Oz.mjs} +7 -7
  28. package/{bigint-DatNMKMQ.mjs.map → bigint-wE2NM5Oz.mjs.map} +1 -1
  29. package/{boolean-B0IH8K9C.mjs → boolean-B6lfu2lQ.mjs} +10 -10
  30. package/{boolean-B0IH8K9C.mjs.map → boolean-B6lfu2lQ.mjs.map} +1 -1
  31. package/{clipboard-DWKPq79h.mjs → clipboard-Bs9IxB_1.mjs} +7 -7
  32. package/{clipboard-DWKPq79h.mjs.map → clipboard-Bs9IxB_1.mjs.map} +1 -1
  33. package/{common-Dzn-bQuK.mjs → common-D62o_zAA.mjs} +15 -15
  34. package/{common-Dzn-bQuK.mjs.map → common-D62o_zAA.mjs.map} +1 -1
  35. package/components/autorefresh_controller.mjs +1 -1
  36. package/components/control_button.mjs +1 -1
  37. package/components/control_button_bar.mjs +2 -2
  38. package/components/control_menu.mjs +1 -1
  39. package/components/custom_field.mjs +1 -1
  40. package/components/exporter.mjs +1 -1
  41. package/components/fields/bigint.mjs +1 -1
  42. package/components/fields/boolean.mjs +1 -1
  43. package/components/fields/date.mjs +1 -1
  44. package/components/fields/date_time.mjs +1 -1
  45. package/components/fields/enum.mjs +1 -1
  46. package/components/fields/integer.mjs +1 -1
  47. package/components/fields/number.mjs +1 -1
  48. package/components/fields/string.mjs +1 -1
  49. package/components/fields/unsigned_integer.mjs +1 -1
  50. package/components/fields.mjs +9 -9
  51. package/components/form_with_validation.mjs +1 -1
  52. package/components/resourceful_alerter.mjs +1 -1
  53. package/components/resourceful_index.mjs +1 -1
  54. package/components/resourceful_record.mjs +2 -2
  55. package/components/resourceful_record_default_form.mjs +1 -1
  56. package/components/resourceful_record_form.mjs +1 -1
  57. package/components/sortable.mjs +1 -1
  58. package/components/svg_icon.mjs +1 -1
  59. package/components/timezone_picker.mjs +1 -1
  60. package/components.mjs +23 -23
  61. package/composables.mjs +11 -11
  62. package/{custom-B_tvJRGH.mjs → custom-GeZLHpx7.mjs} +7 -7
  63. package/{custom-B_tvJRGH.mjs.map → custom-GeZLHpx7.mjs.map} +1 -1
  64. package/{date-4kOMkpPK.mjs → date-BSCbYrys.mjs} +10 -10
  65. package/{date-4kOMkpPK.mjs.map → date-BSCbYrys.mjs.map} +1 -1
  66. package/{date_time-D96QVf1U.mjs → date_time-DUUNvRa-.mjs} +18 -18
  67. package/{date_time-D96QVf1U.mjs.map → date_time-DUUNvRa-.mjs.map} +1 -1
  68. package/{display-D5DX6q0x.mjs → display-BEkjokHp.mjs} +4 -4
  69. package/{display-D5DX6q0x.mjs.map → display-BEkjokHp.mjs.map} +1 -1
  70. package/{display-XSB3T9Jj.mjs → display-BeKXT2GD.mjs} +3 -3
  71. package/{display-XSB3T9Jj.mjs.map → display-BeKXT2GD.mjs.map} +1 -1
  72. package/{enum-0BP9v0N5.mjs → enum-D8RGbgmx.mjs} +9 -9
  73. package/{enum-0BP9v0N5.mjs.map → enum-D8RGbgmx.mjs.map} +1 -1
  74. package/{exceptions-eIayR6I-.mjs → exceptions-DV9UeCpK.mjs} +2 -2
  75. package/{exceptions-eIayR6I-.mjs.map → exceptions-DV9UeCpK.mjs.map} +1 -1
  76. package/exceptions.mjs +2 -2
  77. package/factories.mjs +2 -2
  78. package/{field_composer-ohZKjFvR.mjs → field_composer-DLz7bt12.mjs} +3 -3
  79. package/{field_composer-ohZKjFvR.mjs.map → field_composer-DLz7bt12.mjs.map} +1 -1
  80. package/{form-Bn6xP2j6.mjs → form-staLyXxV.mjs} +15 -15
  81. package/{form-Bn6xP2j6.mjs.map → form-staLyXxV.mjs.map} +1 -1
  82. package/{guards-2UyYIEIu.mjs → guards-DmJaSA6N.mjs} +2 -2
  83. package/{guards-2UyYIEIu.mjs.map → guards-DmJaSA6N.mjs.map} +1 -1
  84. package/guards.mjs +4 -4
  85. package/helpers.mjs +12 -12
  86. package/{http-BCSx8rC5.mjs → http-D8NGvFos.mjs} +5 -2
  87. package/{http-BCSx8rC5.mjs.map → http-D8NGvFos.mjs.map} +1 -1
  88. package/{http-BPAApU10.mjs → http-DfPLq6ce.mjs} +2 -2
  89. package/{http-BPAApU10.mjs.map → http-DfPLq6ce.mjs.map} +1 -1
  90. package/http.mjs +1 -1
  91. package/{index-CGcmZuao.mjs → index-BWB0B_nb.mjs} +15 -15
  92. package/{index-CGcmZuao.mjs.map → index-BWB0B_nb.mjs.map} +1 -1
  93. package/{index-dd1icY6k.mjs → index-BaNgIAb2.mjs} +43 -43
  94. package/{index-dd1icY6k.mjs.map → index-BaNgIAb2.mjs.map} +1 -1
  95. package/{index-BL6_XmCt.mjs → index-Bp4lfHSa.mjs} +8 -8
  96. package/{index-BL6_XmCt.mjs.map → index-Bp4lfHSa.mjs.map} +1 -1
  97. package/{index-BACipeG5.mjs → index-CXEuIK4B.mjs} +6 -6
  98. package/{index-BACipeG5.mjs.map → index-CXEuIK4B.mjs.map} +1 -1
  99. package/{index-CIi2Afdj.mjs → index-DGH0FZ_f.mjs} +8 -8
  100. package/{index-CIi2Afdj.mjs.map → index-DGH0FZ_f.mjs.map} +1 -1
  101. package/{index-BPddr1wp.mjs → index-DWcM0xl9.mjs} +3 -3
  102. package/{index-BPddr1wp.mjs.map → index-DWcM0xl9.mjs.map} +1 -1
  103. package/{index-BzKOotZB.mjs → index-DYzvn7Sf.mjs} +4 -4
  104. package/{index-BzKOotZB.mjs.map → index-DYzvn7Sf.mjs.map} +1 -1
  105. package/{index-omu1xByg.mjs → index-N2lUoQbz.mjs} +8 -8
  106. package/{index-omu1xByg.mjs.map → index-N2lUoQbz.mjs.map} +1 -1
  107. package/{index-BfgMbbzT.mjs → index-_7fLQjhW.mjs} +3 -3
  108. package/{index-BfgMbbzT.mjs.map → index-_7fLQjhW.mjs.map} +1 -1
  109. package/index.mjs +37 -37
  110. package/{integer-DUt4-3uq.mjs → integer-Cj8Jn6JJ.mjs} +3 -3
  111. package/{integer-DUt4-3uq.mjs.map → integer-Cj8Jn6JJ.mjs.map} +1 -1
  112. package/{ioc-De3kv3aq.mjs → ioc-BSX3tx4i.mjs} +2 -2
  113. package/{ioc-De3kv3aq.mjs.map → ioc-BSX3tx4i.mjs.map} +1 -1
  114. package/ioc.mjs +1 -1
  115. package/{mdi-CicdOYKA.mjs → mdi-C_p8wc7S.mjs} +12 -12
  116. package/{mdi-CicdOYKA.mjs.map → mdi-C_p8wc7S.mjs.map} +1 -1
  117. package/{number-UcQrSUBH.mjs → number-BXcyky8d.mjs} +8 -8
  118. package/{number-UcQrSUBH.mjs.map → number-BXcyky8d.mjs.map} +1 -1
  119. package/package.json +5 -5
  120. package/{props-DtG7gC-5.mjs → props-Cf7gqpvS.mjs} +4 -4
  121. package/{props-DtG7gC-5.mjs.map → props-Cf7gqpvS.mjs.map} +1 -1
  122. package/{props-KjN-Kdb9.mjs → props-DZgIOjfJ.mjs} +4 -4
  123. package/{props-KjN-Kdb9.mjs.map → props-DZgIOjfJ.mjs.map} +1 -1
  124. package/{renderers-B4GBzuIN.mjs → renderers-DeN9bBU8.mjs} +14 -14
  125. package/{renderers-B4GBzuIN.mjs.map → renderers-DeN9bBU8.mjs.map} +1 -1
  126. package/{string-C4_hGKOb.mjs → string-B2DiBetY.mjs} +13 -13
  127. package/{string-C4_hGKOb.mjs.map → string-B2DiBetY.mjs.map} +1 -1
  128. package/{unsigned_integer-59LqwDCe.mjs → unsigned_integer-IpXl23fH.mjs} +4 -4
  129. package/{unsigned_integer-59LqwDCe.mjs.map → unsigned_integer-IpXl23fH.mjs.map} +1 -1
  130. package/{utils-C5k3feJf.mjs → utils-DBVrNuOO.mjs} +2 -2
  131. package/{utils-C5k3feJf.mjs.map → utils-DBVrNuOO.mjs.map} +1 -1
  132. package/{validation-D4B5S8pa.mjs → validation-D6aDAuWD.mjs} +5 -5
  133. package/{validation-D4B5S8pa.mjs.map → validation-D6aDAuWD.mjs.map} +1 -1
  134. package/{vendor-nhtio-vuetifiable-D1pLdLSx.mjs → vendor-nhtio-vuetifiable-CBXbDsg0.mjs} +8 -8
  135. package/{vendor-nhtio-vuetifiable-D1pLdLSx.mjs.map → vendor-nhtio-vuetifiable-CBXbDsg0.mjs.map} +1 -1
@@ -1,11 +1,11 @@
1
- import { a as useI18n, e as useCron } from "./ioc-De3kv3aq.mjs";
2
- import { S as SvgIcon } from "./index-BPddr1wp.mjs";
3
- import { m as mdiRefreshAuto } from "./mdi-CicdOYKA.mjs";
4
- import { C as ControlMenu } from "./index-CIi2Afdj.mjs";
5
- import { p as printfExports } from "./http-BCSx8rC5.mjs";
6
- import { m as makeControlMenuControlButtonProps } from "./props-DtG7gC-5.mjs";
1
+ import { a as useI18n, e as useCron } from "./ioc-BSX3tx4i.mjs";
2
+ import { S as SvgIcon } from "./index-DWcM0xl9.mjs";
3
+ import { m as mdiRefreshAuto } from "./mdi-C_p8wc7S.mjs";
4
+ import { C as ControlMenu } from "./index-DGH0FZ_f.mjs";
5
+ import { p as printfExports } from "./http-D8NGvFos.mjs";
6
+ import { m as makeControlMenuControlButtonProps } from "./props-Cf7gqpvS.mjs";
7
7
  import { defineComponent, toRefs, ref, computed, watch, onBeforeUnmount, h } from "vue";
8
- import { V as VListItem } from "./VListItem-ZmExdT37.mjs";
8
+ import { V as VListItem } from "./VListItem-Cc2-RZ21.mjs";
9
9
  const AutoRefeshController = defineComponent({
10
10
  name: "AutoRefeshController",
11
11
  props: makeControlMenuControlButtonProps(),
@@ -87,4 +87,4 @@ const AutoRefeshController = defineComponent({
87
87
  export {
88
88
  AutoRefeshController as A
89
89
  };
90
- //# sourceMappingURL=index-BL6_XmCt.mjs.map
90
+ //# sourceMappingURL=index-Bp4lfHSa.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-BL6_XmCt.mjs","sources":["../src/private/autorefresh-controller/index.ts"],"sourcesContent":["import { useI18n } from '../ioc'\nimport { useCron } from '../ioc'\nimport { SvgIcon } from '../svg-icon'\nimport { mdiRefreshAuto } from '@mdi/js'\nimport { ControlMenu } from '../control-menu'\nimport { printf as format } from 'fast-printf'\nimport { VListItem } from 'vuetify/components/VList'\nimport { makeControlMenuControlButtonProps } from '../control-menu/props'\nimport { defineComponent, h, toRefs, ref, watch, computed, onBeforeUnmount } from 'vue'\nimport type { ControlMenuProps } from '../control-menu/props'\n\nexport const AutoRefeshController = defineComponent({\n name: 'AutoRefeshController',\n props: makeControlMenuControlButtonProps(),\n emits: ['triggered'],\n setup(props, { emit }) {\n const { color, density, size } = toRefs(props)\n const t = useI18n()\n const cron = useCron()\n const crontab = ref<string | null>(null)\n const options = [\n { crontab: null, label: t('general.off') },\n { crontab: '*/5 * * * * *', label: format('5%s', t('abbreviations.seconds')) },\n { crontab: '*/10 * * * * *', label: format('10%s', t('abbreviations.seconds')) },\n { crontab: '*/30 * * * * *', label: format('30%s', t('abbreviations.seconds')) },\n { crontab: '* * * * *', label: format('1%s', t('abbreviations.minutes')) },\n { crontab: '*/5 * * * *', label: format('5%s', t('abbreviations.minutes')) },\n { crontab: '*/15 * * * *', label: format('15%s', t('abbreviations.minutes')) },\n { crontab: '*/30 * * * *', label: format('30%s', t('abbreviations.minutes')) },\n { crontab: '0 * * * *', label: format('1%s', t('abbreviations.hours')) },\n { crontab: '0 */2 * * *', label: format('2%s', t('abbreviations.hours')) },\n { crontab: '0 */3 * * *', label: format('3%s', t('abbreviations.hours')) },\n { crontab: '0 */4 * * *', label: format('4%s', t('abbreviations.hours')) },\n { crontab: '0 */6 * * *', label: format('6%s', t('abbreviations.hours')) },\n { crontab: '0 */8 * * *', label: format('8%s', t('abbreviations.hours')) },\n { crontab: '0 */12 * * *', label: format('12%s', t('abbreviations.hours')) },\n ]\n const currentOption = computed(() => {\n return options.find((opt) => opt.crontab === crontab.value) || options[0]\n })\n const doTrigger = () => {\n emit('triggered')\n }\n watch(\n crontab,\n (is, was) => {\n if (cron) {\n if (was) {\n cron.$off(was, doTrigger)\n }\n if (is) {\n cron.$on(is, doTrigger)\n }\n }\n },\n { immediate: true }\n )\n onBeforeUnmount(() => {\n if (cron && crontab.value) {\n cron.$off(crontab.value, doTrigger)\n }\n })\n const controlMenuBindings = computed<ControlMenuProps>(\n () =>\n ({\n icon: h(SvgIcon, { d: mdiRefreshAuto }) as any,\n cta: currentOption.value.label,\n activator: {\n color: color.value,\n density: density.value,\n size: size.value,\n // dividePrependIcon: true,\n },\n }) satisfies ControlMenuProps\n )\n return () =>\n h(ControlMenu, controlMenuBindings.value, () =>\n options.map((o) =>\n h(VListItem, {\n title: o.label,\n onClick: () => {\n crontab.value = o.crontab\n },\n active: o.crontab === crontab.value,\n })\n )\n )\n },\n})\n"],"names":["format"],"mappings":"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"}
1
+ {"version":3,"file":"index-Bp4lfHSa.mjs","sources":["../src/private/autorefresh-controller/index.ts"],"sourcesContent":["import { useI18n } from '../ioc'\nimport { useCron } from '../ioc'\nimport { SvgIcon } from '../svg-icon'\nimport { mdiRefreshAuto } from '@mdi/js'\nimport { ControlMenu } from '../control-menu'\nimport { printf as format } from 'fast-printf'\nimport { VListItem } from 'vuetify/components/VList'\nimport { makeControlMenuControlButtonProps } from '../control-menu/props'\nimport { defineComponent, h, toRefs, ref, watch, computed, onBeforeUnmount } from 'vue'\nimport type { ControlMenuProps } from '../control-menu/props'\n\nexport const AutoRefeshController = defineComponent({\n name: 'AutoRefeshController',\n props: makeControlMenuControlButtonProps(),\n emits: ['triggered'],\n setup(props, { emit }) {\n const { color, density, size } = toRefs(props)\n const t = useI18n()\n const cron = useCron()\n const crontab = ref<string | null>(null)\n const options = [\n { crontab: null, label: t('general.off') },\n { crontab: '*/5 * * * * *', label: format('5%s', t('abbreviations.seconds')) },\n { crontab: '*/10 * * * * *', label: format('10%s', t('abbreviations.seconds')) },\n { crontab: '*/30 * * * * *', label: format('30%s', t('abbreviations.seconds')) },\n { crontab: '* * * * *', label: format('1%s', t('abbreviations.minutes')) },\n { crontab: '*/5 * * * *', label: format('5%s', t('abbreviations.minutes')) },\n { crontab: '*/15 * * * *', label: format('15%s', t('abbreviations.minutes')) },\n { crontab: '*/30 * * * *', label: format('30%s', t('abbreviations.minutes')) },\n { crontab: '0 * * * *', label: format('1%s', t('abbreviations.hours')) },\n { crontab: '0 */2 * * *', label: format('2%s', t('abbreviations.hours')) },\n { crontab: '0 */3 * * *', label: format('3%s', t('abbreviations.hours')) },\n { crontab: '0 */4 * * *', label: format('4%s', t('abbreviations.hours')) },\n { crontab: '0 */6 * * *', label: format('6%s', t('abbreviations.hours')) },\n { crontab: '0 */8 * * *', label: format('8%s', t('abbreviations.hours')) },\n { crontab: '0 */12 * * *', label: format('12%s', t('abbreviations.hours')) },\n ]\n const currentOption = computed(() => {\n return options.find((opt) => opt.crontab === crontab.value) || options[0]\n })\n const doTrigger = () => {\n emit('triggered')\n }\n watch(\n crontab,\n (is, was) => {\n if (cron) {\n if (was) {\n cron.$off(was, doTrigger)\n }\n if (is) {\n cron.$on(is, doTrigger)\n }\n }\n },\n { immediate: true }\n )\n onBeforeUnmount(() => {\n if (cron && crontab.value) {\n cron.$off(crontab.value, doTrigger)\n }\n })\n const controlMenuBindings = computed<ControlMenuProps>(\n () =>\n ({\n icon: h(SvgIcon, { d: mdiRefreshAuto }) as any,\n cta: currentOption.value.label,\n activator: {\n color: color.value,\n density: density.value,\n size: size.value,\n // dividePrependIcon: true,\n },\n }) satisfies ControlMenuProps\n )\n return () =>\n h(ControlMenu, controlMenuBindings.value, () =>\n options.map((o) =>\n h(VListItem, {\n title: o.label,\n onClick: () => {\n crontab.value = o.crontab\n },\n active: o.crontab === crontab.value,\n })\n )\n )\n },\n})\n"],"names":["format"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { h as getDefaultsForPropFactory, a as useSlot } from "./utils-C5k3feJf.mjs";
2
- import { p as propsFactory, m as makeComponentProps, n as makeElevationProps, q as makeDensityProps, b as IconValue, a as pick, c as convertToUnit, u as useRender } from "./vendor-nhtio-vuetifiable-D1pLdLSx.mjs";
3
- import { k as useBrowser } from "./ioc-De3kv3aq.mjs";
1
+ import { h as getDefaultsForPropFactory, a as useSlot } from "./utils-DBVrNuOO.mjs";
2
+ import { p as propsFactory, e as makeComponentProps, n as makeElevationProps, q as makeDensityProps, b as IconValue, a as pick, c as convertToUnit, u as useRender } from "./vendor-nhtio-vuetifiable-CBXbDsg0.mjs";
3
+ import { k as useBrowser } from "./ioc-BSX3tx4i.mjs";
4
4
  import { ref, onMounted, onBeforeUnmount, computed, defineComponent, toRefs, mergeProps, h } from "vue";
5
- import { N as VBtnGroup, c as VBtn, d as VIcon } from "./display-XSB3T9Jj.mjs";
6
- import { V as VChip } from "./VChip-COQck2AV.mjs";
5
+ import { N as VBtnGroup, c as VBtn, d as VIcon } from "./display-BeKXT2GD.mjs";
6
+ import { V as VChip } from "./VChip-CD7B99FX.mjs";
7
7
  const makeControlButtonProps = propsFactory(
8
8
  {
9
9
  cta: {
@@ -281,4 +281,4 @@ export {
281
281
  makeControlButtonProps as m,
282
282
  useMountedInBrowser as u
283
283
  };
284
- //# sourceMappingURL=index-BACipeG5.mjs.map
284
+ //# sourceMappingURL=index-CXEuIK4B.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-BACipeG5.mjs","sources":["../src/private/control-button/props.ts","../src/private/common/composables.ts","../src/private/control-button/index.ts"],"sourcesContent":["import { pick } from '@nhtio/vuetifiable/util/helpers'\nimport { getDefaultsForPropFactory } from '../common/utils'\nimport { IconValue } from '@nhtio/vuetifiable/composables/icons'\nimport { propsFactory } from '@nhtio/vuetifiable/util/propsFactory'\nimport { makeDensityProps } from '@nhtio/vuetifiable/composables/density'\nimport { makeElevationProps } from '@nhtio/vuetifiable/composables/elevation'\nimport { makeComponentProps } from '@nhtio/vuetifiable/composables/component'\nimport type { HTMLAttributes } from 'vue'\nimport type { RouteLocationRaw } from 'vue-router'\nimport type { PropType, ExtractPublicPropTypes } from 'vue'\nimport type { JSXComponent } from '@nhtio/vuetifiable/util/defineComponent'\nimport type { makeVBtnGroupProps } from '@nhtio/vuetifiable/components/VBtnGroup/VBtnGroup'\n\nexport interface ControlButtonState {\n disabled?: boolean | undefined\n loading?: boolean | undefined\n}\n\nexport interface ControlButtonBadgeProps {\n content?: string | undefined | null | JSXComponent\n color?: string | undefined\n}\n\nexport const makeControlButtonProps = propsFactory(\n {\n cta: {\n type: String as PropType<string | undefined>,\n default: undefined,\n },\n color: {\n type: String as PropType<string | undefined>,\n default: undefined,\n },\n prependIcon: {\n type: IconValue as PropType<IconValue | undefined>,\n default: undefined,\n },\n appendIcon: {\n type: IconValue as PropType<IconValue | undefined>,\n default: undefined,\n },\n dividePrependIcon: {\n type: Boolean,\n default: false,\n },\n divideAppendIcon: {\n type: Boolean,\n default: false,\n },\n state: {\n type: Object as PropType<ControlButtonState>,\n default: () => ({}),\n },\n badge: {\n type: Object as PropType<ControlButtonBadgeProps>,\n default: () => ({}),\n },\n type: {\n type: String,\n default: 'button',\n },\n to: {\n type: Object as PropType<RouteLocationRaw | null | undefined>,\n default: null,\n },\n target: {\n type: String as PropType<string | undefined>,\n default: undefined,\n },\n size: {\n type: String as PropType<'x-small' | 'small' | 'medium' | 'large' | 'x-large'>,\n default: 'x-small',\n },\n height: {\n type: [String, Number] as PropType<string | number | null>,\n default: '24',\n },\n ...makeDensityProps(),\n ...makeElevationProps({\n elevation: 2,\n }),\n ...makeComponentProps(),\n inOverflowMenu: {\n type: Boolean,\n default: false,\n },\n },\n 'ControlButton'\n)\n\nexport const defaultControlButtonProps = {\n ...getDefaultsForPropFactory(makeControlButtonProps),\n color: 'surface-light',\n}\n\nexport type ControlButtonProps = ExtractPublicPropTypes<ReturnType<typeof makeControlButtonProps>> &\n HTMLAttributes\n\nexport type VBtnGroupProps = ExtractPublicPropTypes<ReturnType<typeof makeVBtnGroupProps>>\n\nexport const makeControlButtonOverrideProps = propsFactory(\n {\n ...pick(makeControlButtonProps(), ['cta', 'color', 'prependIcon', 'appendIcon', 'to']),\n },\n 'ControlButtonOverrideProps'\n)\n\nexport const defaultControlButtonOverrideProps = getDefaultsForPropFactory(\n makeControlButtonOverrideProps\n)\nexport type ControlButtonOverrideProps = ExtractPublicPropTypes<\n ReturnType<typeof makeControlButtonOverrideProps>\n>\n","import { useBrowser } from '../ioc'\nimport { ref, computed, onMounted, onBeforeUnmount } from 'vue'\n\nexport const useMountedInBrowser = () => {\n const browser = useBrowser()\n const isMountedInBrowser = ref(false)\n onMounted(() => {\n if (!browser.ssr) {\n isMountedInBrowser.value = true\n }\n })\n onBeforeUnmount(() => {\n isMountedInBrowser.value = false\n })\n return computed(() => isMountedInBrowser.value)\n}\n","import { useSlot } from '../common/utils'\nimport { VBtn } from 'vuetify/components/VBtn'\nimport { VIcon } from 'vuetify/components/VIcon'\nimport { VChip } from 'vuetify/components/VChip'\nimport { makeControlButtonProps } from './props'\nimport { VBtnGroup } from 'vuetify/components/VBtnGroup'\nimport { useMountedInBrowser } from '../common/composables'\nimport { useRender } from '@nhtio/vuetifiable/util/useRender'\nimport { convertToUnit } from '@nhtio/vuetifiable/util/helpers'\nimport { defineComponent, h, computed, toRefs, mergeProps, SlotsType } from 'vue'\nimport type { StyleValue } from 'vue'\nimport type { VBtnGroupProps, ControlButtonState } from './props'\n\ntype ControlButtonSlots = {\n prepend: (state: ControlButtonState) => any\n cta: (state: ControlButtonState) => any\n append: (state: ControlButtonState) => any\n}\n\nexport const ControlButton = defineComponent({\n name: 'ControlButton',\n props: makeControlButtonProps(),\n emits: ['click'],\n slots: Object as SlotsType<ControlButtonSlots>,\n setup(props, { emit, slots }) {\n const {\n cta,\n color,\n prependIcon,\n dividePrependIcon,\n appendIcon,\n divideAppendIcon,\n state,\n badge,\n type,\n to,\n target,\n size,\n height,\n density,\n elevation,\n inOverflowMenu,\n class: classProp,\n } = toRefs(props)\n const mountedInBrowser = useMountedInBrowser()\n const vBtnGroupStyleBindings = computed<StyleValue | undefined>(() => {\n if (height.value) {\n return {\n height: convertToUnit(height.value),\n }\n }\n return undefined\n })\n const vBtnGroupBindings = computed<VBtnGroupProps>(() => ({\n divided: true,\n color: color.value,\n density: density.value,\n style: vBtnGroupStyleBindings.value,\n elevation: elevation.value,\n ...mergeProps(\n { class: classProp.value },\n {\n class: [\n {\n 'w-100': inOverflowMenu.value,\n },\n ],\n }\n ),\n }))\n const prependSlot = useSlot<ControlButtonSlots>('prepend', slots)\n const ctaSlot = useSlot<ControlButtonSlots>('cta', slots)\n const appendSlot = useSlot<ControlButtonSlots>('append', slots)\n const isNavigable = computed(() => 'object' === typeof to.value && to.value !== null)\n const onOriginalClick = (e?: Event) => {\n if (e && !['submit', 'reset'].includes(type.value) && !isNavigable.value) {\n e.preventDefault()\n e.stopPropagation()\n }\n if (\n !state.value.disabled &&\n !state.value.loading &&\n !['submit', 'reset'].includes(type.value) &&\n !isNavigable.value\n ) {\n emit('click', e)\n }\n }\n useRender(() =>\n !mountedInBrowser.value\n ? h('div')\n : h(VBtnGroup, vBtnGroupBindings.value, () => [\n // if there is a prepended icon & it is divided, render it as a separate button\n prependIcon.value && dividePrependIcon.value\n ? h(VBtn, {\n size: size.value,\n disabled: state.value.disabled || false,\n readonly: state.value.loading || false,\n icon: prependIcon.value,\n onClick: onOriginalClick,\n class: ['px-3'],\n type: type.value,\n to: to.value || undefined,\n target: to.value && target.value ? target.value : undefined,\n })\n : null,\n // if there is not a prepended icon & there is a prepended slot & it is divided, render it as a separate button\n !prependIcon.value && dividePrependIcon.value && prependSlot\n ? h(\n VBtn,\n {\n size: size.value,\n disabled: state.value.disabled || false,\n readonly: state.value.loading || false,\n onClick: onOriginalClick,\n type: type.value,\n to: to.value || undefined,\n target: to.value && target.value ? target.value : undefined,\n },\n () => prependSlot(state.value)\n )\n : null,\n // render the main CTA button\n h(\n VBtn,\n {\n size: size.value,\n disabled: state.value.disabled || false,\n loading: state.value.loading || false,\n onClick: onOriginalClick,\n type: type.value,\n to: to.value || undefined,\n target: to.value && target.value ? target.value : undefined,\n class: [\n 'cta-main-btn',\n {\n 'flex-grow-1': inOverflowMenu.value,\n },\n ],\n },\n () => [\n // if there is a prepended icon & it is not divided, render it inside the main button\n prependIcon.value && !dividePrependIcon.value\n ? h(VIcon, {\n icon: prependIcon.value,\n class: [\n {\n 'me-2': cta.value || slots.cta,\n },\n ],\n })\n : null,\n // if there is not a prepended icon & there is a prepended slot & it is not divided, render it inside the main button\n !prependIcon.value && !dividePrependIcon.value && prependSlot\n ? prependSlot(state.value)\n : null,\n // if there is a cta slot, render it\n ctaSlot ? ctaSlot(state.value) : null,\n // if there is no cta slot but there is a cta prop value, render it\n !ctaSlot && cta.value ? h('span', {}, cta.value) : null,\n // if there is badge content, render the badge\n 'undefined' !== typeof badge.value.content && null !== badge.value.content\n ? h(\n VChip,\n {\n size: size.value,\n color: badge.value.color,\n class: ['ms-2'],\n variant: 'elevated' as const,\n density: 'comfortable' as const,\n },\n () => badge.value.content\n )\n : null,\n // if there is an appended slot & it is not divided, render it inside the main button\n appendIcon.value && !divideAppendIcon.value\n ? h(VIcon, {\n icon: appendIcon.value,\n class: ['ms-2'],\n })\n : null,\n // if there is not an appended icon & there is an appended slot & it is not divided, render it inside the main button\n !appendIcon.value && !divideAppendIcon.value && appendSlot\n ? appendSlot(state.value)\n : null,\n ]\n ),\n // if there is an appended icon & it is divided, render it as a separate button\n appendIcon.value && divideAppendIcon.value\n ? h(VBtn, {\n size: size.value,\n disabled: state.value.disabled || false,\n readonly: state.value.loading || false,\n icon: appendIcon.value,\n onClick: onOriginalClick,\n class: ['px-3'],\n type: type.value,\n to: to.value || undefined,\n target: to.value && target.value ? target.value : undefined,\n })\n : null,\n // if there is not an appended icon & there is an appended slot & it is divided, render it as a separate button\n !appendIcon.value && divideAppendIcon.value && appendSlot\n ? h(\n VBtn,\n {\n size: size.value,\n disabled: state.value.disabled || false,\n loading: state.value.loading || false,\n onClick: onOriginalClick,\n type: type.value,\n to: to.value || undefined,\n target: to.value && target.value ? target.value : undefined,\n },\n () => appendSlot(state.value)\n )\n : null,\n ])\n )\n return {}\n },\n})\n\nexport type ControlButton = InstanceType<typeof ControlButton>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index-CXEuIK4B.mjs","sources":["../src/private/control-button/props.ts","../src/private/common/composables.ts","../src/private/control-button/index.ts"],"sourcesContent":["import { pick } from '@nhtio/vuetifiable/util/helpers'\nimport { getDefaultsForPropFactory } from '../common/utils'\nimport { IconValue } from '@nhtio/vuetifiable/composables/icons'\nimport { propsFactory } from '@nhtio/vuetifiable/util/propsFactory'\nimport { makeDensityProps } from '@nhtio/vuetifiable/composables/density'\nimport { makeElevationProps } from '@nhtio/vuetifiable/composables/elevation'\nimport { makeComponentProps } from '@nhtio/vuetifiable/composables/component'\nimport type { HTMLAttributes } from 'vue'\nimport type { RouteLocationRaw } from 'vue-router'\nimport type { PropType, ExtractPublicPropTypes } from 'vue'\nimport type { JSXComponent } from '@nhtio/vuetifiable/util/defineComponent'\nimport type { makeVBtnGroupProps } from '@nhtio/vuetifiable/components/VBtnGroup/VBtnGroup'\n\nexport interface ControlButtonState {\n disabled?: boolean | undefined\n loading?: boolean | undefined\n}\n\nexport interface ControlButtonBadgeProps {\n content?: string | undefined | null | JSXComponent\n color?: string | undefined\n}\n\nexport const makeControlButtonProps = propsFactory(\n {\n cta: {\n type: String as PropType<string | undefined>,\n default: undefined,\n },\n color: {\n type: String as PropType<string | undefined>,\n default: undefined,\n },\n prependIcon: {\n type: IconValue as PropType<IconValue | undefined>,\n default: undefined,\n },\n appendIcon: {\n type: IconValue as PropType<IconValue | undefined>,\n default: undefined,\n },\n dividePrependIcon: {\n type: Boolean,\n default: false,\n },\n divideAppendIcon: {\n type: Boolean,\n default: false,\n },\n state: {\n type: Object as PropType<ControlButtonState>,\n default: () => ({}),\n },\n badge: {\n type: Object as PropType<ControlButtonBadgeProps>,\n default: () => ({}),\n },\n type: {\n type: String,\n default: 'button',\n },\n to: {\n type: Object as PropType<RouteLocationRaw | null | undefined>,\n default: null,\n },\n target: {\n type: String as PropType<string | undefined>,\n default: undefined,\n },\n size: {\n type: String as PropType<'x-small' | 'small' | 'medium' | 'large' | 'x-large'>,\n default: 'x-small',\n },\n height: {\n type: [String, Number] as PropType<string | number | null>,\n default: '24',\n },\n ...makeDensityProps(),\n ...makeElevationProps({\n elevation: 2,\n }),\n ...makeComponentProps(),\n inOverflowMenu: {\n type: Boolean,\n default: false,\n },\n },\n 'ControlButton'\n)\n\nexport const defaultControlButtonProps = {\n ...getDefaultsForPropFactory(makeControlButtonProps),\n color: 'surface-light',\n}\n\nexport type ControlButtonProps = ExtractPublicPropTypes<ReturnType<typeof makeControlButtonProps>> &\n HTMLAttributes\n\nexport type VBtnGroupProps = ExtractPublicPropTypes<ReturnType<typeof makeVBtnGroupProps>>\n\nexport const makeControlButtonOverrideProps = propsFactory(\n {\n ...pick(makeControlButtonProps(), ['cta', 'color', 'prependIcon', 'appendIcon', 'to']),\n },\n 'ControlButtonOverrideProps'\n)\n\nexport const defaultControlButtonOverrideProps = getDefaultsForPropFactory(\n makeControlButtonOverrideProps\n)\nexport type ControlButtonOverrideProps = ExtractPublicPropTypes<\n ReturnType<typeof makeControlButtonOverrideProps>\n>\n","import { useBrowser } from '../ioc'\nimport { ref, computed, onMounted, onBeforeUnmount } from 'vue'\n\nexport const useMountedInBrowser = () => {\n const browser = useBrowser()\n const isMountedInBrowser = ref(false)\n onMounted(() => {\n if (!browser.ssr) {\n isMountedInBrowser.value = true\n }\n })\n onBeforeUnmount(() => {\n isMountedInBrowser.value = false\n })\n return computed(() => isMountedInBrowser.value)\n}\n","import { useSlot } from '../common/utils'\nimport { VBtn } from 'vuetify/components/VBtn'\nimport { VIcon } from 'vuetify/components/VIcon'\nimport { VChip } from 'vuetify/components/VChip'\nimport { makeControlButtonProps } from './props'\nimport { VBtnGroup } from 'vuetify/components/VBtnGroup'\nimport { useMountedInBrowser } from '../common/composables'\nimport { useRender } from '@nhtio/vuetifiable/util/useRender'\nimport { convertToUnit } from '@nhtio/vuetifiable/util/helpers'\nimport { defineComponent, h, computed, toRefs, mergeProps, SlotsType } from 'vue'\nimport type { StyleValue } from 'vue'\nimport type { VBtnGroupProps, ControlButtonState } from './props'\n\ntype ControlButtonSlots = {\n prepend: (state: ControlButtonState) => any\n cta: (state: ControlButtonState) => any\n append: (state: ControlButtonState) => any\n}\n\nexport const ControlButton = defineComponent({\n name: 'ControlButton',\n props: makeControlButtonProps(),\n emits: ['click'],\n slots: Object as SlotsType<ControlButtonSlots>,\n setup(props, { emit, slots }) {\n const {\n cta,\n color,\n prependIcon,\n dividePrependIcon,\n appendIcon,\n divideAppendIcon,\n state,\n badge,\n type,\n to,\n target,\n size,\n height,\n density,\n elevation,\n inOverflowMenu,\n class: classProp,\n } = toRefs(props)\n const mountedInBrowser = useMountedInBrowser()\n const vBtnGroupStyleBindings = computed<StyleValue | undefined>(() => {\n if (height.value) {\n return {\n height: convertToUnit(height.value),\n }\n }\n return undefined\n })\n const vBtnGroupBindings = computed<VBtnGroupProps>(() => ({\n divided: true,\n color: color.value,\n density: density.value,\n style: vBtnGroupStyleBindings.value,\n elevation: elevation.value,\n ...mergeProps(\n { class: classProp.value },\n {\n class: [\n {\n 'w-100': inOverflowMenu.value,\n },\n ],\n }\n ),\n }))\n const prependSlot = useSlot<ControlButtonSlots>('prepend', slots)\n const ctaSlot = useSlot<ControlButtonSlots>('cta', slots)\n const appendSlot = useSlot<ControlButtonSlots>('append', slots)\n const isNavigable = computed(() => 'object' === typeof to.value && to.value !== null)\n const onOriginalClick = (e?: Event) => {\n if (e && !['submit', 'reset'].includes(type.value) && !isNavigable.value) {\n e.preventDefault()\n e.stopPropagation()\n }\n if (\n !state.value.disabled &&\n !state.value.loading &&\n !['submit', 'reset'].includes(type.value) &&\n !isNavigable.value\n ) {\n emit('click', e)\n }\n }\n useRender(() =>\n !mountedInBrowser.value\n ? h('div')\n : h(VBtnGroup, vBtnGroupBindings.value, () => [\n // if there is a prepended icon & it is divided, render it as a separate button\n prependIcon.value && dividePrependIcon.value\n ? h(VBtn, {\n size: size.value,\n disabled: state.value.disabled || false,\n readonly: state.value.loading || false,\n icon: prependIcon.value,\n onClick: onOriginalClick,\n class: ['px-3'],\n type: type.value,\n to: to.value || undefined,\n target: to.value && target.value ? target.value : undefined,\n })\n : null,\n // if there is not a prepended icon & there is a prepended slot & it is divided, render it as a separate button\n !prependIcon.value && dividePrependIcon.value && prependSlot\n ? h(\n VBtn,\n {\n size: size.value,\n disabled: state.value.disabled || false,\n readonly: state.value.loading || false,\n onClick: onOriginalClick,\n type: type.value,\n to: to.value || undefined,\n target: to.value && target.value ? target.value : undefined,\n },\n () => prependSlot(state.value)\n )\n : null,\n // render the main CTA button\n h(\n VBtn,\n {\n size: size.value,\n disabled: state.value.disabled || false,\n loading: state.value.loading || false,\n onClick: onOriginalClick,\n type: type.value,\n to: to.value || undefined,\n target: to.value && target.value ? target.value : undefined,\n class: [\n 'cta-main-btn',\n {\n 'flex-grow-1': inOverflowMenu.value,\n },\n ],\n },\n () => [\n // if there is a prepended icon & it is not divided, render it inside the main button\n prependIcon.value && !dividePrependIcon.value\n ? h(VIcon, {\n icon: prependIcon.value,\n class: [\n {\n 'me-2': cta.value || slots.cta,\n },\n ],\n })\n : null,\n // if there is not a prepended icon & there is a prepended slot & it is not divided, render it inside the main button\n !prependIcon.value && !dividePrependIcon.value && prependSlot\n ? prependSlot(state.value)\n : null,\n // if there is a cta slot, render it\n ctaSlot ? ctaSlot(state.value) : null,\n // if there is no cta slot but there is a cta prop value, render it\n !ctaSlot && cta.value ? h('span', {}, cta.value) : null,\n // if there is badge content, render the badge\n 'undefined' !== typeof badge.value.content && null !== badge.value.content\n ? h(\n VChip,\n {\n size: size.value,\n color: badge.value.color,\n class: ['ms-2'],\n variant: 'elevated' as const,\n density: 'comfortable' as const,\n },\n () => badge.value.content\n )\n : null,\n // if there is an appended slot & it is not divided, render it inside the main button\n appendIcon.value && !divideAppendIcon.value\n ? h(VIcon, {\n icon: appendIcon.value,\n class: ['ms-2'],\n })\n : null,\n // if there is not an appended icon & there is an appended slot & it is not divided, render it inside the main button\n !appendIcon.value && !divideAppendIcon.value && appendSlot\n ? appendSlot(state.value)\n : null,\n ]\n ),\n // if there is an appended icon & it is divided, render it as a separate button\n appendIcon.value && divideAppendIcon.value\n ? h(VBtn, {\n size: size.value,\n disabled: state.value.disabled || false,\n readonly: state.value.loading || false,\n icon: appendIcon.value,\n onClick: onOriginalClick,\n class: ['px-3'],\n type: type.value,\n to: to.value || undefined,\n target: to.value && target.value ? target.value : undefined,\n })\n : null,\n // if there is not an appended icon & there is an appended slot & it is divided, render it as a separate button\n !appendIcon.value && divideAppendIcon.value && appendSlot\n ? h(\n VBtn,\n {\n size: size.value,\n disabled: state.value.disabled || false,\n loading: state.value.loading || false,\n onClick: onOriginalClick,\n type: type.value,\n to: to.value || undefined,\n target: to.value && target.value ? target.value : undefined,\n },\n () => appendSlot(state.value)\n )\n : null,\n ])\n )\n return {}\n },\n})\n\nexport type ControlButton = InstanceType<typeof ControlButton>\n"],"names":[],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  import { useDisplay } from "vuetify";
2
- import { S as SvgIcon } from "./index-BPddr1wp.mjs";
2
+ import { S as SvgIcon } from "./index-DWcM0xl9.mjs";
3
3
  import { d as deepmerge } from "./index-DGAy0amb.mjs";
4
- import { a as useSlot } from "./utils-C5k3feJf.mjs";
4
+ import { a as useSlot } from "./utils-DBVrNuOO.mjs";
5
5
  import { n as numeral } from "./numeral-DmC5bR5g.mjs";
6
- import { a as mdiMenuUp, b as mdiMenuDown, V as VCard } from "./mdi-CicdOYKA.mjs";
7
- import { C as ControlButton } from "./index-BACipeG5.mjs";
8
- import { u as useRender } from "./vendor-nhtio-vuetifiable-D1pLdLSx.mjs";
9
- import { a as makeControlMenuProps, d as defaultActivatorValues } from "./props-DtG7gC-5.mjs";
6
+ import { a as mdiMenuUp, b as mdiMenuDown, V as VCard } from "./mdi-C_p8wc7S.mjs";
7
+ import { C as ControlButton } from "./index-CXEuIK4B.mjs";
8
+ import { u as useRender } from "./vendor-nhtio-vuetifiable-CBXbDsg0.mjs";
9
+ import { a as makeControlMenuProps, d as defaultActivatorValues } from "./props-Cf7gqpvS.mjs";
10
10
  import { defineComponent, toRefs, ref, computed, h } from "vue";
11
- import { V as VMenu } from "./VMenu-DCDIKpqX.mjs";
11
+ import { V as VMenu } from "./VMenu-DifPtEI3.mjs";
12
12
  const ControlMenu = defineComponent({
13
13
  name: "ControlMenu",
14
14
  props: makeControlMenuProps(),
@@ -123,4 +123,4 @@ const ControlMenu = defineComponent({
123
123
  export {
124
124
  ControlMenu as C
125
125
  };
126
- //# sourceMappingURL=index-CIi2Afdj.mjs.map
126
+ //# sourceMappingURL=index-DGH0FZ_f.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-CIi2Afdj.mjs","sources":["../src/private/control-menu/index.ts"],"sourcesContent":["import { useDisplay } from 'vuetify'\nimport { SvgIcon } from '../svg-icon'\nimport { deepmerge } from 'deepmerge-ts'\nimport { useSlot } from '../common/utils'\nimport { default as numeral } from 'numeral'\nimport { VMenu } from 'vuetify/components/VMenu'\nimport { VCard } from 'vuetify/components/VCard'\nimport { mdiMenuUp, mdiMenuDown } from '@mdi/js'\nimport { ControlButton } from '../control-button'\nimport { useRender } from '@nhtio/vuetifiable/util/useRender'\nimport { makeControlMenuProps, defaultActivatorValues } from './props'\nimport { defineComponent, h, computed, toRefs, ref, SlotsType } from 'vue'\nimport type { ControlButtonProps, ControlButtonState } from '../control-button/props'\n\ntype ControMenuButtonSlots = {\n prepend: (state: ControlButtonState) => any\n cta: (state: ControlButtonState) => any\n append: (state: ControlButtonState) => any\n default: (args: { close: () => void }) => any\n}\n\nexport const ControlMenu = defineComponent({\n name: 'ControlMenu',\n props: makeControlMenuProps(),\n slots: Object as SlotsType<ControMenuButtonSlots>,\n setup(props, { slots }) {\n const {\n icon,\n cta,\n count,\n countFormat,\n activator,\n color,\n badgeColor,\n inOverflowMenu,\n disabled,\n noPadding,\n } = toRefs(props)\n const prependSlot = useSlot<ControMenuButtonSlots>('prepend', slots)\n const ctaSlot = useSlot<ControMenuButtonSlots>('cta', slots)\n const appendSlot = useSlot<ControMenuButtonSlots>('append', slots)\n const defaultSlot = useSlot<ControMenuButtonSlots>('default', slots)\n const { height } = useDisplay()\n const open = ref(false)\n const anchor = ref<ControlButton | null>(null)\n const vMenuBindings = computed(() => ({\n 'modelValue': open.value,\n 'onUpdate:modelValue': (value: boolean) => (open.value = value),\n 'closeOnBack': false,\n 'closeOnContentClick': false,\n 'contentClass': 'resourceful-option-menu-content',\n 'minWidth': 300,\n 'location': 'bottom start' as const,\n 'target': anchor.value ? anchor.value.$el : undefined,\n 'submenu': inOverflowMenu.value,\n }))\n const formattedCount = computed(() => numeral(count.value).format(countFormat.value))\n const showCount = computed(() => {\n const num = Number(count.value)\n return !Number.isNaN(num) && Math.abs(num) > 0\n })\n const menuPanelCardBindings = computed(() => ({\n color: color.value,\n minWidth: 300,\n minHeight: 20,\n maxHeight: Math.min(height.value - 200, 400),\n }))\n const doOpenMenu = () => (open.value = true)\n const close = () => (open.value = false)\n const controlButtonBindings = computed<ControlButtonProps>(() =>\n deepmerge(defaultActivatorValues, activator.value, {\n ref: anchor,\n prependIcon: icon.value,\n cta: cta.value,\n appendIcon: () => h(SvgIcon, { d: open.value ? mdiMenuUp : mdiMenuDown }),\n divideAppendIcon: true,\n badge: {\n color: badgeColor.value,\n content: showCount.value ? formattedCount.value : undefined,\n },\n class: inOverflowMenu.value ? [] : noPadding.value ? ['my-2', 'me-2'] : ['ma-2'],\n inOverflowMenu: inOverflowMenu.value,\n state: {\n disabled: disabled.value,\n },\n })\n )\n useRender(() =>\n h(\n 'div',\n {\n class: [{ 'w-100': inOverflowMenu.value }],\n },\n h(VMenu, vMenuBindings.value, {\n activator: ({ props: activatorProps }: { props: Record<string, any> }) =>\n h(\n ControlButton,\n {\n ...controlButtonBindings.value,\n ...activatorProps,\n inOverflowMenu: inOverflowMenu.value,\n },\n // eslint-disable-next-line @nht/require-function-slots-for-programmatic-components\n {\n cta: ctaSlot\n ? (state: ControlButtonState) =>\n ctaSlot({\n ...state,\n close,\n })\n : null,\n prepend: prependSlot\n ? (state: ControlButtonState) =>\n prependSlot({\n ...state,\n close,\n })\n : null,\n append: appendSlot\n ? (state: ControlButtonState) =>\n appendSlot({\n ...state,\n close,\n })\n : null,\n }\n ),\n default: () =>\n h(VCard, menuPanelCardBindings.value, () =>\n defaultSlot ? defaultSlot({ close }) : null\n ),\n })\n )\n )\n return {\n isOpen: open,\n open: doOpenMenu,\n close,\n }\n },\n})\n\nexport type ControlMenu = InstanceType<typeof ControlMenu>\n"],"names":[],"mappings":";;;;;;;;;;;AAqBO,MAAM,cAAc,gBAAgB;AAAA,EACzC,MAAM;AAAA,EACN,OAAO,qBAAA;AAAA,EACP,OAAO;AAAA,EACP,MAAM,OAAO,EAAE,SAAS;AACtB,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACE,OAAO,KAAK;AAChB,UAAM,cAAc,QAA+B,WAAW,KAAK;AACnE,UAAM,UAAU,QAA+B,OAAO,KAAK;AAC3D,UAAM,aAAa,QAA+B,UAAU,KAAK;AACjE,UAAM,cAAc,QAA+B,WAAW,KAAK;AACnE,UAAM,EAAE,OAAA,IAAW,WAAA;AACnB,UAAM,OAAO,IAAI,KAAK;AACtB,UAAM,SAAS,IAA0B,IAAI;AAC7C,UAAM,gBAAgB,SAAS,OAAO;AAAA,MACpC,cAAc,KAAK;AAAA,MACnB,uBAAuB,CAAC,UAAoB,KAAK,QAAQ;AAAA,MACzD,eAAe;AAAA,MACf,uBAAuB;AAAA,MACvB,gBAAgB;AAAA,MAChB,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,UAAU,OAAO,QAAQ,OAAO,MAAM,MAAM;AAAA,MAC5C,WAAW,eAAe;AAAA,IAAA,EAC1B;AACF,UAAM,iBAAiB,SAAS,MAAM,QAAQ,MAAM,KAAK,EAAE,OAAO,YAAY,KAAK,CAAC;AACpF,UAAM,YAAY,SAAS,MAAM;AAC/B,YAAM,MAAM,OAAO,MAAM,KAAK;AAC9B,aAAO,CAAC,OAAO,MAAM,GAAG,KAAK,KAAK,IAAI,GAAG,IAAI;AAAA,IAC/C,CAAC;AACD,UAAM,wBAAwB,SAAS,OAAO;AAAA,MAC5C,OAAO,MAAM;AAAA,MACb,UAAU;AAAA,MACV,WAAW;AAAA,MACX,WAAW,KAAK,IAAI,OAAO,QAAQ,KAAK,GAAG;AAAA,IAAA,EAC3C;AACF,UAAM,aAAa,MAAO,KAAK,QAAQ;AACvC,UAAM,QAAQ,MAAO,KAAK,QAAQ;AAClC,UAAM,wBAAwB;AAAA,MAA6B,MACzD,UAAU,wBAAwB,UAAU,OAAO;AAAA,QACjD,KAAK;AAAA,QACL,aAAa,KAAK;AAAA,QAClB,KAAK,IAAI;AAAA,QACT,YAAY,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,QAAQ,YAAY,aAAa;AAAA,QACxE,kBAAkB;AAAA,QAClB,OAAO;AAAA,UACL,OAAO,WAAW;AAAA,UAClB,SAAS,UAAU,QAAQ,eAAe,QAAQ;AAAA,QAAA;AAAA,QAEpD,OAAO,eAAe,QAAQ,CAAA,IAAK,UAAU,QAAQ,CAAC,QAAQ,MAAM,IAAI,CAAC,MAAM;AAAA,QAC/E,gBAAgB,eAAe;AAAA,QAC/B,OAAO;AAAA,UACL,UAAU,SAAS;AAAA,QAAA;AAAA,MACrB,CACD;AAAA,IAAA;AAEH;AAAA,MAAU,MACR;AAAA,QACE;AAAA,QACA;AAAA,UACE,OAAO,CAAC,EAAE,SAAS,eAAe,OAAO;AAAA,QAAA;AAAA,QAE3C,EAAE,OAAO,cAAc,OAAO;AAAA,UAC5B,WAAW,CAAC,EAAE,OAAO,qBACnB;AAAA,YACE;AAAA,YACA;AAAA,cACE,GAAG,sBAAsB;AAAA,cACzB,GAAG;AAAA,cACH,gBAAgB,eAAe;AAAA,YAAA;AAAA;AAAA,YAGjC;AAAA,cACE,KAAK,UACD,CAAC,UACC,QAAQ;AAAA,gBACN,GAAG;AAAA,gBACH;AAAA,cAAA,CACD,IACH;AAAA,cACJ,SAAS,cACL,CAAC,UACC,YAAY;AAAA,gBACV,GAAG;AAAA,gBACH;AAAA,cAAA,CACD,IACH;AAAA,cACJ,QAAQ,aACJ,CAAC,UACC,WAAW;AAAA,gBACT,GAAG;AAAA,gBACH;AAAA,cAAA,CACD,IACH;AAAA,YAAA;AAAA,UACN;AAAA,UAEJ,SAAS,MACP;AAAA,YAAE;AAAA,YAAO,sBAAsB;AAAA,YAAO,MACpC,cAAc,YAAY,EAAE,MAAA,CAAO,IAAI;AAAA,UAAA;AAAA,QACzC,CACH;AAAA,MAAA;AAAA,IACH;AAEF,WAAO;AAAA,MACL,QAAQ;AAAA,MACR,MAAM;AAAA,MACN;AAAA,IAAA;AAAA,EAEJ;AACF,CAAC;"}
1
+ {"version":3,"file":"index-DGH0FZ_f.mjs","sources":["../src/private/control-menu/index.ts"],"sourcesContent":["import { useDisplay } from 'vuetify'\nimport { SvgIcon } from '../svg-icon'\nimport { deepmerge } from 'deepmerge-ts'\nimport { useSlot } from '../common/utils'\nimport { default as numeral } from 'numeral'\nimport { VMenu } from 'vuetify/components/VMenu'\nimport { VCard } from 'vuetify/components/VCard'\nimport { mdiMenuUp, mdiMenuDown } from '@mdi/js'\nimport { ControlButton } from '../control-button'\nimport { useRender } from '@nhtio/vuetifiable/util/useRender'\nimport { makeControlMenuProps, defaultActivatorValues } from './props'\nimport { defineComponent, h, computed, toRefs, ref, SlotsType } from 'vue'\nimport type { ControlButtonProps, ControlButtonState } from '../control-button/props'\n\ntype ControMenuButtonSlots = {\n prepend: (state: ControlButtonState) => any\n cta: (state: ControlButtonState) => any\n append: (state: ControlButtonState) => any\n default: (args: { close: () => void }) => any\n}\n\nexport const ControlMenu = defineComponent({\n name: 'ControlMenu',\n props: makeControlMenuProps(),\n slots: Object as SlotsType<ControMenuButtonSlots>,\n setup(props, { slots }) {\n const {\n icon,\n cta,\n count,\n countFormat,\n activator,\n color,\n badgeColor,\n inOverflowMenu,\n disabled,\n noPadding,\n } = toRefs(props)\n const prependSlot = useSlot<ControMenuButtonSlots>('prepend', slots)\n const ctaSlot = useSlot<ControMenuButtonSlots>('cta', slots)\n const appendSlot = useSlot<ControMenuButtonSlots>('append', slots)\n const defaultSlot = useSlot<ControMenuButtonSlots>('default', slots)\n const { height } = useDisplay()\n const open = ref(false)\n const anchor = ref<ControlButton | null>(null)\n const vMenuBindings = computed(() => ({\n 'modelValue': open.value,\n 'onUpdate:modelValue': (value: boolean) => (open.value = value),\n 'closeOnBack': false,\n 'closeOnContentClick': false,\n 'contentClass': 'resourceful-option-menu-content',\n 'minWidth': 300,\n 'location': 'bottom start' as const,\n 'target': anchor.value ? anchor.value.$el : undefined,\n 'submenu': inOverflowMenu.value,\n }))\n const formattedCount = computed(() => numeral(count.value).format(countFormat.value))\n const showCount = computed(() => {\n const num = Number(count.value)\n return !Number.isNaN(num) && Math.abs(num) > 0\n })\n const menuPanelCardBindings = computed(() => ({\n color: color.value,\n minWidth: 300,\n minHeight: 20,\n maxHeight: Math.min(height.value - 200, 400),\n }))\n const doOpenMenu = () => (open.value = true)\n const close = () => (open.value = false)\n const controlButtonBindings = computed<ControlButtonProps>(() =>\n deepmerge(defaultActivatorValues, activator.value, {\n ref: anchor,\n prependIcon: icon.value,\n cta: cta.value,\n appendIcon: () => h(SvgIcon, { d: open.value ? mdiMenuUp : mdiMenuDown }),\n divideAppendIcon: true,\n badge: {\n color: badgeColor.value,\n content: showCount.value ? formattedCount.value : undefined,\n },\n class: inOverflowMenu.value ? [] : noPadding.value ? ['my-2', 'me-2'] : ['ma-2'],\n inOverflowMenu: inOverflowMenu.value,\n state: {\n disabled: disabled.value,\n },\n })\n )\n useRender(() =>\n h(\n 'div',\n {\n class: [{ 'w-100': inOverflowMenu.value }],\n },\n h(VMenu, vMenuBindings.value, {\n activator: ({ props: activatorProps }: { props: Record<string, any> }) =>\n h(\n ControlButton,\n {\n ...controlButtonBindings.value,\n ...activatorProps,\n inOverflowMenu: inOverflowMenu.value,\n },\n // eslint-disable-next-line @nht/require-function-slots-for-programmatic-components\n {\n cta: ctaSlot\n ? (state: ControlButtonState) =>\n ctaSlot({\n ...state,\n close,\n })\n : null,\n prepend: prependSlot\n ? (state: ControlButtonState) =>\n prependSlot({\n ...state,\n close,\n })\n : null,\n append: appendSlot\n ? (state: ControlButtonState) =>\n appendSlot({\n ...state,\n close,\n })\n : null,\n }\n ),\n default: () =>\n h(VCard, menuPanelCardBindings.value, () =>\n defaultSlot ? defaultSlot({ close }) : null\n ),\n })\n )\n )\n return {\n isOpen: open,\n open: doOpenMenu,\n close,\n }\n },\n})\n\nexport type ControlMenu = InstanceType<typeof ControlMenu>\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { k as useBrowser } from "./ioc-De3kv3aq.mjs";
1
+ import { k as useBrowser } from "./ioc-BSX3tx4i.mjs";
2
2
  import { defineComponent, toRefs, h } from "vue";
3
- import { s as stripUndefinedValuesFromObject } from "./utils-C5k3feJf.mjs";
3
+ import { s as stripUndefinedValuesFromObject } from "./utils-DBVrNuOO.mjs";
4
4
  const SvgIcon = defineComponent({
5
5
  name: "SvgIcon",
6
6
  props: {
@@ -38,4 +38,4 @@ export {
38
38
  SvgIcon as S,
39
39
  svgPathToIconValue as s
40
40
  };
41
- //# sourceMappingURL=index-BPddr1wp.mjs.map
41
+ //# sourceMappingURL=index-DWcM0xl9.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-BPddr1wp.mjs","sources":["../src/private/svg-icon/index.ts"],"sourcesContent":["import { useBrowser } from '../ioc'\nimport { defineComponent, h, toRefs } from 'vue'\nimport { stripUndefinedValuesFromObject } from '../common/utils'\nimport type { PropType, ComponentPublicInstance } from 'vue'\nimport type { IconValue } from '@nhtio/vuetifiable/composables/icons'\n\nexport const SvgIcon = defineComponent({\n name: 'SvgIcon',\n props: {\n d: {\n type: String as PropType<string>,\n required: true,\n },\n width: {\n type: [Number, String] as PropType<number | string | undefined>,\n default: undefined,\n },\n height: {\n type: [Number, String] as PropType<number | string | undefined>,\n default: undefined,\n },\n },\n setup(props) {\n const { d, width, height } = toRefs(props)\n const browser = useBrowser()\n return () =>\n h(\n 'svg',\n stripUndefinedValuesFromObject({\n xmlns: 'http://www.w3.org/2000/svg',\n xmlnsXlink: 'http://www.w3.org/1999/xlink',\n viewBox: '0 0 24 24',\n width:\n (width.value ?? (browser.browsers.safari && browser.platforms.ios))\n ? '100%'\n : undefined,\n height:\n (height.value ?? (browser.browsers.safari && browser.platforms.ios))\n ? '100%'\n : undefined,\n }),\n [h('path', { fill: 'currentColor', d: d.value })]\n )\n },\n})\n\nexport type SvgIcon = typeof SvgIcon & ComponentPublicInstance\n\nexport const svgPathToIconValue = (\n d: string,\n width?: number | string,\n height?: number | string\n): IconValue => h(SvgIcon, { d, width, height }) as unknown as IconValue\n"],"names":[],"mappings":";;;AAMO,MAAM,UAAU,gBAAgB;AAAA,EACrC,MAAM;AAAA,EACN,OAAO;AAAA,IACL,GAAG;AAAA,MACD,MAAM;AAAA,MACN,UAAU;AAAA,IAAA;AAAA,IAEZ,OAAO;AAAA,MACL,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,SAAS;AAAA,IAAA;AAAA,IAEX,QAAQ;AAAA,MACN,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,SAAS;AAAA,IAAA;AAAA,EACX;AAAA,EAEF,MAAM,OAAO;AACX,UAAM,EAAE,GAAG,OAAO,OAAA,IAAW,OAAO,KAAK;AACzC,UAAM,UAAU,WAAA;AAChB,WAAO,MACL;AAAA,MACE;AAAA,MACA,+BAA+B;AAAA,QAC7B,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,SAAS;AAAA,QACT,OACG,MAAM,UAAU,QAAQ,SAAS,UAAU,QAAQ,UAAU,OAC1D,SACA;AAAA,QACN,QACG,OAAO,UAAU,QAAQ,SAAS,UAAU,QAAQ,UAAU,OAC3D,SACA;AAAA,MAAA,CACP;AAAA,MACD,CAAC,EAAE,QAAQ,EAAE,MAAM,gBAAgB,GAAG,EAAE,OAAO,CAAC;AAAA,IAAA;AAAA,EAEtD;AACF,CAAC;AAIM,MAAM,qBAAqB,CAChC,GACA,OACA,WACc,EAAE,SAAS,EAAE,GAAG,OAAO,OAAA,CAAQ;"}
1
+ {"version":3,"file":"index-DWcM0xl9.mjs","sources":["../src/private/svg-icon/index.ts"],"sourcesContent":["import { useBrowser } from '../ioc'\nimport { defineComponent, h, toRefs } from 'vue'\nimport { stripUndefinedValuesFromObject } from '../common/utils'\nimport type { PropType, ComponentPublicInstance } from 'vue'\nimport type { IconValue } from '@nhtio/vuetifiable/composables/icons'\n\nexport const SvgIcon = defineComponent({\n name: 'SvgIcon',\n props: {\n d: {\n type: String as PropType<string>,\n required: true,\n },\n width: {\n type: [Number, String] as PropType<number | string | undefined>,\n default: undefined,\n },\n height: {\n type: [Number, String] as PropType<number | string | undefined>,\n default: undefined,\n },\n },\n setup(props) {\n const { d, width, height } = toRefs(props)\n const browser = useBrowser()\n return () =>\n h(\n 'svg',\n stripUndefinedValuesFromObject({\n xmlns: 'http://www.w3.org/2000/svg',\n xmlnsXlink: 'http://www.w3.org/1999/xlink',\n viewBox: '0 0 24 24',\n width:\n (width.value ?? (browser.browsers.safari && browser.platforms.ios))\n ? '100%'\n : undefined,\n height:\n (height.value ?? (browser.browsers.safari && browser.platforms.ios))\n ? '100%'\n : undefined,\n }),\n [h('path', { fill: 'currentColor', d: d.value })]\n )\n },\n})\n\nexport type SvgIcon = typeof SvgIcon & ComponentPublicInstance\n\nexport const svgPathToIconValue = (\n d: string,\n width?: number | string,\n height?: number | string\n): IconValue => h(SvgIcon, { d, width, height }) as unknown as IconValue\n"],"names":[],"mappings":";;;AAMO,MAAM,UAAU,gBAAgB;AAAA,EACrC,MAAM;AAAA,EACN,OAAO;AAAA,IACL,GAAG;AAAA,MACD,MAAM;AAAA,MACN,UAAU;AAAA,IAAA;AAAA,IAEZ,OAAO;AAAA,MACL,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,SAAS;AAAA,IAAA;AAAA,IAEX,QAAQ;AAAA,MACN,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,SAAS;AAAA,IAAA;AAAA,EACX;AAAA,EAEF,MAAM,OAAO;AACX,UAAM,EAAE,GAAG,OAAO,OAAA,IAAW,OAAO,KAAK;AACzC,UAAM,UAAU,WAAA;AAChB,WAAO,MACL;AAAA,MACE;AAAA,MACA,+BAA+B;AAAA,QAC7B,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,SAAS;AAAA,QACT,OACG,MAAM,UAAU,QAAQ,SAAS,UAAU,QAAQ,UAAU,OAC1D,SACA;AAAA,QACN,QACG,OAAO,UAAU,QAAQ,SAAS,UAAU,QAAQ,UAAU,OAC3D,SACA;AAAA,MAAA,CACP;AAAA,MACD,CAAC,EAAE,QAAQ,EAAE,MAAM,gBAAgB,GAAG,EAAE,OAAO,CAAC;AAAA,IAAA;AAAA,EAEtD;AACF,CAAC;AAIM,MAAM,qBAAqB,CAChC,GACA,OACA,WACc,EAAE,SAAS,EAAE,GAAG,OAAO,OAAA,CAAQ;"}
@@ -1,8 +1,8 @@
1
- import { i as useCurrentTimezone, h as useTimezoneZones } from "./ioc-De3kv3aq.mjs";
2
- import { s as parseColor, v as isParsableColor, w as darken, x as lighten, y as getForeground, R as RGBtoCSS } from "./vendor-nhtio-vuetifiable-D1pLdLSx.mjs";
1
+ import { i as useCurrentTimezone, h as useTimezoneZones } from "./ioc-BSX3tx4i.mjs";
2
+ import { s as parseColor, v as isParsableColor, w as darken, x as lighten, y as getForeground, R as RGBtoCSS } from "./vendor-nhtio-vuetifiable-CBXbDsg0.mjs";
3
3
  import { computed, toValue, toRaw, defineComponent, toRefs, ref, h } from "vue";
4
4
  import { useTheme } from "vuetify";
5
- import { i as isObject, p as propsAndEmitsFactory, g as getCamelAndMaybeKebabPropKeysFor } from "./utils-C5k3feJf.mjs";
5
+ import { i as isObject, p as propsAndEmitsFactory, g as getCamelAndMaybeKebabPropKeysFor } from "./utils-DBVrNuOO.mjs";
6
6
  const paths = [
7
7
  [
8
8
  "Etc/UTC-11",
@@ -2028,4 +2028,4 @@ export {
2028
2028
  getNormalizedBackgroundColor as g,
2029
2029
  useNormalizedColor as u
2030
2030
  };
2031
- //# sourceMappingURL=index-BzKOotZB.mjs.map
2031
+ //# sourceMappingURL=index-DYzvn7Sf.mjs.map