bitboss-ui 2.0.4 → 2.0.5

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 (222) hide show
  1. package/dist/index105.js +5 -5
  2. package/dist/index113.js +1 -1
  3. package/dist/index115.js +4 -4
  4. package/dist/index117.js +1 -1
  5. package/dist/index12.js +1 -1
  6. package/dist/index121.js +1 -1
  7. package/dist/index122.js +1 -1
  8. package/dist/index123.js +1 -1
  9. package/dist/index125.js +1 -1
  10. package/dist/index127.js +2 -2
  11. package/dist/index14.js +3 -3
  12. package/dist/index16.js +2 -2
  13. package/dist/index18.js +14 -14
  14. package/dist/index197.js +81 -2
  15. package/dist/index197.js.map +1 -1
  16. package/dist/index198.js +3 -158
  17. package/dist/index198.js.map +1 -1
  18. package/dist/index199.js +5 -84
  19. package/dist/index199.js.map +1 -1
  20. package/dist/index20.js +15 -15
  21. package/dist/{index209.js → index200.js} +3 -3
  22. package/dist/{index209.js.map → index200.js.map} +1 -1
  23. package/dist/index201.js +16 -2
  24. package/dist/index201.js.map +1 -1
  25. package/dist/index202.js +19 -4
  26. package/dist/index202.js.map +1 -1
  27. package/dist/index203.js +19 -2
  28. package/dist/index203.js.map +1 -1
  29. package/dist/index204.js +27 -81
  30. package/dist/index204.js.map +1 -1
  31. package/dist/index205.js +3 -126
  32. package/dist/index205.js.map +1 -1
  33. package/dist/index206.js +2 -5
  34. package/dist/index206.js.map +1 -1
  35. package/dist/index207.js +8 -123
  36. package/dist/index207.js.map +1 -1
  37. package/dist/index208.js +249 -19
  38. package/dist/index208.js.map +1 -1
  39. package/dist/index210.js +51 -15
  40. package/dist/index210.js.map +1 -1
  41. package/dist/index211.js +37 -2
  42. package/dist/index211.js.map +1 -1
  43. package/dist/index212.js +5 -2
  44. package/dist/index212.js.map +1 -1
  45. package/dist/index213.js +41 -35
  46. package/dist/index213.js.map +1 -1
  47. package/dist/index214.js +2 -174
  48. package/dist/index214.js.map +1 -1
  49. package/dist/index215.js +4 -6
  50. package/dist/index215.js.map +1 -1
  51. package/dist/index216.js +2 -42
  52. package/dist/index216.js.map +1 -1
  53. package/dist/index217.js +5 -0
  54. package/dist/index217.js.map +1 -0
  55. package/dist/index218.js +41 -12
  56. package/dist/index218.js.map +1 -1
  57. package/dist/index22.js +5 -5
  58. package/dist/index220.js +13 -369
  59. package/dist/index220.js.map +1 -1
  60. package/dist/index221.js +158 -8
  61. package/dist/index221.js.map +1 -1
  62. package/dist/index222.js +84 -3
  63. package/dist/index222.js.map +1 -1
  64. package/dist/index224.js +3 -19
  65. package/dist/index224.js.map +1 -1
  66. package/dist/index225.js +34 -26
  67. package/dist/index225.js.map +1 -1
  68. package/dist/index226.js +6 -3
  69. package/dist/index226.js.map +1 -1
  70. package/dist/index227.js +7 -249
  71. package/dist/index227.js.map +1 -1
  72. package/dist/index228.js +129 -0
  73. package/dist/index228.js.map +1 -0
  74. package/dist/index229.js +122 -51
  75. package/dist/index229.js.map +1 -1
  76. package/dist/index230.js +2 -37
  77. package/dist/index230.js.map +1 -1
  78. package/dist/index231.js +174 -5
  79. package/dist/index231.js.map +1 -1
  80. package/dist/index232.js +5 -41
  81. package/dist/index232.js.map +1 -1
  82. package/dist/index233.js +369 -3
  83. package/dist/index233.js.map +1 -1
  84. package/dist/index234.js +3 -2
  85. package/dist/index234.js.map +1 -1
  86. package/dist/index235.js +18 -3
  87. package/dist/index235.js.map +1 -1
  88. package/dist/index236.js +105 -17
  89. package/dist/index236.js.map +1 -1
  90. package/dist/{index239.js → index238.js} +2 -2
  91. package/dist/{index239.js.map → index238.js.map} +1 -1
  92. package/dist/index24.js +1 -1
  93. package/dist/index240.js +5 -0
  94. package/dist/index240.js.map +1 -0
  95. package/dist/index243.js +224 -4
  96. package/dist/index243.js.map +1 -1
  97. package/dist/index244.js +281 -6
  98. package/dist/index244.js.map +1 -1
  99. package/dist/index245.js +6 -16
  100. package/dist/index245.js.map +1 -1
  101. package/dist/index246.js +2 -9
  102. package/dist/index246.js.map +1 -1
  103. package/dist/index247.js +2 -23
  104. package/dist/index247.js.map +1 -1
  105. package/dist/index248.js +2 -3
  106. package/dist/index248.js.map +1 -1
  107. package/dist/index249.js +2 -12
  108. package/dist/index249.js.map +1 -1
  109. package/dist/index250.js +2 -9
  110. package/dist/index250.js.map +1 -1
  111. package/dist/index251.js +2 -9
  112. package/dist/index251.js.map +1 -1
  113. package/dist/index252.js +3 -17
  114. package/dist/index252.js.map +1 -1
  115. package/dist/index253.js +2 -281
  116. package/dist/index253.js.map +1 -1
  117. package/dist/index254.js +2 -6
  118. package/dist/index254.js.map +1 -1
  119. package/dist/index255.js +2 -2
  120. package/dist/index256.js +28 -2
  121. package/dist/index256.js.map +1 -1
  122. package/dist/index257.js +22 -2
  123. package/dist/index257.js.map +1 -1
  124. package/dist/index259.js +7 -2
  125. package/dist/index259.js.map +1 -1
  126. package/dist/index26.js +3 -3
  127. package/dist/index260.js +4 -126
  128. package/dist/index260.js.map +1 -1
  129. package/dist/index261.js +7 -429
  130. package/dist/index261.js.map +1 -1
  131. package/dist/index262.js +23 -3
  132. package/dist/index262.js.map +1 -1
  133. package/dist/index263.js +6 -0
  134. package/dist/index263.js.map +1 -0
  135. package/dist/index265.js +5 -21
  136. package/dist/index265.js.map +1 -1
  137. package/dist/index266.js +19 -0
  138. package/dist/index266.js.map +1 -0
  139. package/dist/index268.js +3 -200
  140. package/dist/index268.js.map +1 -1
  141. package/dist/index269.js +11 -435
  142. package/dist/index269.js.map +1 -1
  143. package/dist/index270.js +7 -125
  144. package/dist/index270.js.map +1 -1
  145. package/dist/index271.js +9 -89
  146. package/dist/index271.js.map +1 -1
  147. package/dist/index272.js +17 -2
  148. package/dist/index272.js.map +1 -1
  149. package/dist/index273.js +431 -2
  150. package/dist/index273.js.map +1 -1
  151. package/dist/index274.js +89 -3
  152. package/dist/index274.js.map +1 -1
  153. package/dist/index275.js +2 -2
  154. package/dist/index275.js.map +1 -1
  155. package/dist/index276.js +69 -2
  156. package/dist/index276.js.map +1 -1
  157. package/dist/index277.js +5 -2
  158. package/dist/index277.js.map +1 -1
  159. package/dist/index278.js +197 -25
  160. package/dist/index278.js.map +1 -1
  161. package/dist/index279.js +2 -22
  162. package/dist/index279.js.map +1 -1
  163. package/dist/index28.js +2 -2
  164. package/dist/index280.js +129 -0
  165. package/dist/index280.js.map +1 -0
  166. package/dist/index281.js +22 -2
  167. package/dist/index281.js.map +1 -1
  168. package/dist/index283.js +434 -67
  169. package/dist/index283.js.map +1 -1
  170. package/dist/index284.js +121 -218
  171. package/dist/index284.js.map +1 -1
  172. package/dist/index285.js +1 -1
  173. package/dist/index286.js +1 -1
  174. package/dist/index287.js +1 -1
  175. package/dist/index290.js +7 -4
  176. package/dist/index290.js.map +1 -1
  177. package/dist/index291.js +19 -4
  178. package/dist/index291.js.map +1 -1
  179. package/dist/index292.js +6 -58
  180. package/dist/index292.js.map +1 -1
  181. package/dist/index293.js +4 -11
  182. package/dist/index293.js.map +1 -1
  183. package/dist/index294.js +4 -35
  184. package/dist/index294.js.map +1 -1
  185. package/dist/index295.js +58 -6
  186. package/dist/index295.js.map +1 -1
  187. package/dist/index296.js +34 -18
  188. package/dist/index296.js.map +1 -1
  189. package/dist/index297.js +10 -6
  190. package/dist/index297.js.map +1 -1
  191. package/dist/index298.js +1 -1
  192. package/dist/index30.js +2 -2
  193. package/dist/index32.js +3 -3
  194. package/dist/index34.js +13 -13
  195. package/dist/index36.js +4 -4
  196. package/dist/index38.js +2 -2
  197. package/dist/index40.js +2 -2
  198. package/dist/index42.js +6 -6
  199. package/dist/index44.js +2 -2
  200. package/dist/index46.js +2 -2
  201. package/dist/index52.js +1 -1
  202. package/dist/index54.js +1 -1
  203. package/dist/index70.js +4 -4
  204. package/dist/index74.js +2 -2
  205. package/dist/index76.js +1 -1
  206. package/dist/index79.js +2 -2
  207. package/dist/index83.js +3 -3
  208. package/dist/index85.js +1 -1
  209. package/dist/style.css +1 -1
  210. package/package.json +2 -2
  211. package/dist/index219.js +0 -8
  212. package/dist/index219.js.map +0 -1
  213. package/dist/index223.js +0 -10
  214. package/dist/index223.js.map +0 -1
  215. package/dist/index237.js +0 -109
  216. package/dist/index237.js.map +0 -1
  217. package/dist/index258.js +0 -5
  218. package/dist/index258.js.map +0 -1
  219. package/dist/index264.js +0 -10
  220. package/dist/index264.js.map +0 -1
  221. package/dist/index282.js +0 -8
  222. package/dist/index282.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index221.js","sources":["../src/composables/useLogger.ts"],"sourcesContent":["const prefix = `bitboss-ui | `;\n\nexport const useLogger = () => {\n\treturn {\n\t\twarn: (message: string) => console.warn(`${prefix}${message}`),\n\t\terror: (message: string) => console.error(`${prefix}${message}`),\n\t\tthrow: (message: string) => {\n\t\t\tthrow new Error(`${prefix}${message}`);\n\t\t},\n\t};\n};\n"],"names":["prefix","useLogger","message"],"mappings":"AAAA,MAAMA,IAAS,iBAEFC,IAAY,OACjB;AAAA,EACN,MAAM,CAACC,MAAoB,QAAQ,KAAK,GAAGF,CAAM,GAAGE,CAAO,EAAE;AAAA,EAC7D,OAAO,CAACA,MAAoB,QAAQ,MAAM,GAAGF,CAAM,GAAGE,CAAO,EAAE;AAAA,EAC/D,OAAO,CAACA,MAAoB;AAC3B,UAAM,IAAI,MAAM,GAAGF,CAAM,GAAGE,CAAO,EAAE;AAAA,EACtC;AAAA;"}
1
+ {"version":3,"file":"index221.js","sources":["../src/composables/useOptions.ts"],"sourcesContent":["import {\n\tcomputed,\n\tnextTick,\n\tonBeforeMount,\n\tonBeforeUnmount,\n\tref,\n\twatch,\n\ttype Ref,\n} from 'vue';\nimport type { Option as BaseOption } from '@/types/Option';\nimport { last } from '@/utilities/functions/last';\nimport { useArray } from './useArray';\nimport { uniqBy } from '@/utilities/functions/uniqBy';\nimport { useItemValue } from './useItemValue';\nimport { useItemText } from './useItemText';\nimport { hash } from '@/utilities/functions/hash';\nimport { isNotNil } from '@/utilities/functions/isNotNil';\nimport { waitFor } from '@/utilities/functions/waitFor';\nimport { isNil } from '@/utilities/functions/isNil';\n\ntype Options = {\n\tmultiple: boolean;\n\tstash: boolean;\n\titemText: string | ((item: any) => string) | undefined;\n\titemValue: string | ((item: any) => string) | undefined;\n\tmodelValue: Ref<any>;\n\tresetQueryOnOptionSelected: boolean;\n\temit: any;\n\titems: Ref<any>;\n\tenforceCoherence: boolean;\n\tprefill: boolean;\n\tmodelValueDebounceTime: number;\n\tdepsDebounceTime: number;\n\tdependencies: Ref<any[]>;\n\tqueryDebounceTime: number;\n\tdisabled: Ref<boolean>;\n};\n\nexport const useOptions = (params: Options) => {\n\tconst query = ref<string>('');\n\n\tconst lastEmittedValue = ref();\n\tconst updateModelValue = (value: any) => {\n\t\tlastEmittedValue.value = value;\n\t\tparams.emit('update:modelValue', value);\n\t};\n\n\tconst internalItems = ref<any[]>([]);\n\tconst {\n\t\tarray: innerStash,\n\t\tadd: addToStash,\n\t\tremove: removeFromStash,\n\t\tset: setStash,\n\t} = useArray<BaseOption>();\n\n\tconst {\n\t\tarray: manualItems,\n\t\tadd: addToManualItems,\n\t\tremove: removeFromManualItems,\n\t} = useArray<BaseOption>();\n\n\tconst { getItemText } = useItemText();\n\tconst { getItemValue } = useItemValue();\n\tconst createOption = (item: any): BaseOption => {\n\t\tconst disabled = !!(params.disabled.value || item.disabled);\n\t\tconst text = getItemText(item, params.itemText);\n\t\tconst value = getItemValue(item, params.itemValue);\n\n\t\t// Undefined is not supported\n\t\tif (value === undefined)\n\t\t\tthrow new Error(\n\t\t\t\t'The result of extracting \"value\" from option was undefined. Affected item is ' +\n\t\t\t\t\tJSON.stringify(item) +\n\t\t\t\t\t' please check itemValue property is correct.'\n\t\t\t);\n\t\tconst valueHash = hash(value);\n\t\tconst selected = false;\n\t\treturn {\n\t\t\titem,\n\t\t\ttext,\n\t\t\tvalue,\n\t\t\tvalueHash,\n\t\t\tdisabled,\n\t\t\tselected,\n\t\t};\n\t};\n\n\tconst setSelected = (o: BaseOption) => {\n\t\to.selected = isNotNil(modelValueIndexedByHash.value[o.valueHash]);\n\t\treturn o;\n\t};\n\tconst options = computed<BaseOption[]>(() => {\n\t\tconst base = ([] as BaseOption[]).concat(\n\t\t\tinternalItems.value.map((item) => {\n\t\t\t\treturn setSelected(createOption(item));\n\t\t\t}),\n\t\t\tmanualItems.value.map(setSelected),\n\t\t\tinnerStash.value.map(setSelected)\n\t\t);\n\t\treturn uniqBy(base, (o) => o.valueHash);\n\t});\n\n\tconst selectOption = (option: BaseOption) => {\n\t\tif (params.multiple) {\n\t\t\tupdateModelValue(params.modelValue.value.concat(option.value));\n\t\t\tif (params.stash) {\n\t\t\t\taddToStash(option);\n\t\t\t}\n\n\t\t\tif (params.resetQueryOnOptionSelected) {\n\t\t\t\talignQueryToState();\n\t\t\t}\n\t\t} else {\n\t\t\tif (params.stash) {\n\t\t\t\tsetStash(option);\n\t\t\t}\n\t\t\tupdateModelValue(option.value);\n\t\t\tnextTick(() => alignQueryToState());\n\t\t}\n\t};\n\tconst unselectOption = (option: BaseOption) => {\n\t\tremoveFromManualItems((o) => o.valueHash !== option.valueHash);\n\t\tremoveFromStash((o) => o.valueHash !== option.valueHash);\n\t\tif (params.multiple) {\n\t\t\tconst copy = { ...modelValueIndexedByHash.value };\n\t\t\tdelete copy[option.valueHash];\n\t\t\tupdateModelValue(Object.values(copy));\n\t\t} else {\n\t\t\tupdateModelValue(null);\n\t\t\talignQueryToState();\n\t\t}\n\t};\n\n\t/**\n\t * Indexes modelValue to a map of hash - value pairs so we can easily track which values are selected\n\t */\n\tconst modelValueIndexedByHash = computed(() => {\n\t\tconst map: Record<string, any> = {};\n\t\tconst arr = [].concat(params.modelValue.value);\n\t\tfor (let index = 0; index < arr.length; index++) {\n\t\t\tconst element = arr[index];\n\t\t\tmap[hash(element)] = element;\n\t\t}\n\t\treturn map;\n\t});\n\n\tconst getOptions = async ({ prefill = false }) => {\n\t\tlet items: any[] = [];\n\t\tif (Array.isArray(params.items.value)) {\n\t\t\titems = params.items.value;\n\t\t} else {\n\t\t\tif (typeof params.items.value === 'function') {\n\t\t\t\tconst order = ++innerLoading.value;\n\t\t\t\ttry {\n\t\t\t\t\titems = await params.items.value(\n\t\t\t\t\t\tquery.value,\n\t\t\t\t\t\tprefill,\n\t\t\t\t\t\tparams.modelValue.value\n\t\t\t\t\t);\n\t\t\t\t\t// If by the time this resolves another call has already been made discard this result\n\t\t\t\t\tif (order < innerLoading.value) {\n\t\t\t\t\t\tawait waitFor(() => order === innerLoading.value);\n\t\t\t\t\t\titems = internalItems.value;\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.error(error);\n\t\t\t\t}\n\t\t\t\tinnerLoading.value--;\n\t\t\t}\n\t\t}\n\t\tinternalItems.value = items as any;\n\t};\n\n\t/**\n\t * Indexes options by their hash so they can be retrieved\n\t */\n\tconst optionsIndexedByHash = computed(() => {\n\t\tconst map: Record<string, BaseOption> = {};\n\t\tfor (let index = 0; index < options.value.length; index++) {\n\t\t\tconst element = options.value[index];\n\t\t\tconst { valueHash } = element;\n\t\t\tmap[valueHash] = element;\n\t\t}\n\t\treturn {\n\t\t\tget: (value: any) => {\n\t\t\t\treturn map[hash(value)];\n\t\t\t},\n\t\t};\n\t});\n\n\t/**\n\t * For every item in modelValue find the linked option if it exists.\n\t * This is used to display chips.\n\t */\n\tconst selectedOptions = computed(() => {\n\t\treturn [].concat(params.modelValue.value).reduce((acc, h) => {\n\t\t\tconst found = optionsIndexedByHash.value.get(h);\n\t\t\tif (found) {\n\t\t\t\tacc.push(found);\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, [] as BaseOption[]);\n\t});\n\n\tconst valueIsSelected = (value: any) =>\n\t\tisNotNil(optionsIndexedByHash.value.get(value));\n\n\tconst alignQueryToState = () => {\n\t\tif (params.multiple) {\n\t\t\tquery.value = '';\n\t\t\treturn;\n\t\t}\n\t\tlet option: BaseOption | undefined;\n\t\tif (selectedOptions.value) {\n\t\t\toption = last(selectedOptions.value);\n\t\t}\n\t\tquery.value = option?.text || '';\n\t};\n\n\t/**\n\t * Add an option to the manual items and then reset the query\n\t */\n\tconst addCurrentQueryToManualItems = () => {\n\t\tconst text = query.value.trim();\n\t\tconst option = createOption(text);\n\t\taddToManualItems(option);\n\t\talignQueryToState();\n\t};\n\n\t/**\n\t * Use a number accumulator because if the fn takes 5 seconds\n\t * and after 2 seconds another search is run\n\t * When the first returns the second is still out for 2 seconds\n\t * and we want to track them both.\n\t * Debounce will not be enough.\n\t */\n\tconst innerLoading = ref(0);\n\n\t/**\n\t * Coherent values are values that have an option they can be linked to.\n\t * Divide coherent and incoherent values.\n\t */\n\n\tconst coherenceStatus = computed(() => {\n\t\treturn [].concat(params.modelValue.value).reduce(\n\t\t\t(acc, curr) => {\n\t\t\t\tif (valueIsSelected(curr)) {\n\t\t\t\t\tacc.coherent.push(curr);\n\t\t\t\t} else {\n\t\t\t\t\tacc.incoherent.push(curr);\n\t\t\t\t}\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t{ coherent: [], incoherent: [] }\n\t\t);\n\t});\n\n\t/**\n\t * Model value is considered coherent when:\n\t * - multiple mode is empty\n\t * - single mode is null\n\t */\n\tconst modelValueIsCoherent = computed(() => {\n\t\tif (params.multiple && !params.modelValue.value.length) return true;\n\t\telse if (!params.multiple && isNil(params.modelValue.value)) return true;\n\t\treturn !coherenceStatus.value.incoherent.length;\n\t});\n\n\t/**\n\t * Realign selection state to the passed settings.\n\t * If modelValue has any value that is not coherent while\n\t * coherence is enforced the value should be removed\n\t */\n\tconst alignToCoherenceSettings = () => {\n\t\tif (params.enforceCoherence && !modelValueIsCoherent.value) {\n\t\t\tif (!params.multiple) updateModelValue(null);\n\t\t\telse updateModelValue(coherenceStatus.value.coherent);\n\t\t}\n\t};\n\n\t/**\n\t * Prefilling is the phase where the component understands it needs\n\t * to update its inner items due to a change in state, whether dependencies have changed, items or modelValue have changed.\n\t * It can be intended as the component aligning itself to what state is passed to it.\n\t */\n\tconst hasPrefilled = ref(false);\n\tconst isPrefilling = ref(false);\n\tconst prefillItems = async () => {\n\t\tisPrefilling.value = true;\n\t\tawait getOptions({ prefill: true });\n\t\talignToCoherenceSettings();\n\t\talignQueryToState();\n\t\thasPrefilled.value = true;\n\t\tisPrefilling.value = false;\n\t};\n\n\tonBeforeMount(async () => {\n\t\tif (params.prefill) {\n\t\t\tawait prefillItems();\n\t\t\tif (params.stash) {\n\t\t\t\tsetStash(...selectedOptions.value);\n\t\t\t}\n\t\t}\n\t});\n\n\t/**\n\t * Triggered on input when items is a function.\n\t */\n\n\tlet timeout: ReturnType<typeof setTimeout>;\n\tconst searchByQuery = () => {\n\t\tif (timeout) clearTimeout(timeout);\n\t\ttimeout = setTimeout(async () => {\n\t\t\ttry {\n\t\t\t\tawait getOptions({ prefill: false });\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(error);\n\t\t\t}\n\t\t}, params.queryDebounceTime);\n\t};\n\tonBeforeUnmount(() => clearTimeout(timeout));\n\n\t/**\n\t * When modelValue changes split behavior for single and multiple selection:\n\t */\n\tlet modelValueTimeout: ReturnType<typeof setTimeout>;\n\twatch(\n\t\t() => params.modelValue.value,\n\t\t() => {\n\t\t\tif (modelValueIsCoherent.value) return;\n\t\t\tif (modelValueTimeout) clearTimeout(modelValueTimeout);\n\t\t\tmodelValueTimeout = setTimeout(async () => {\n\t\t\t\tprefillItems();\n\t\t\t}, params.modelValueDebounceTime);\n\t\t}\n\t);\n\n\t/**\n\t * START DEPENDENCY HANDLING\n\t * Explicit dependencies (props.dependencies) and implicit dependencies (props.items)\n\t * need to trigger a pipeline of realignment whenever they change\n\t */\n\tlet depsTimeout: ReturnType<typeof setTimeout>;\n\n\tconst handleDependencyChange = async (current: any, previous: any) => {\n\t\t// Circumvent arrays defined in the template by the parent triggering the watcher\n\t\tif (hash(previous) === hash(current)) return;\n\t\t// Do not track until prefill completes\n\t\tif (!hasPrefilled.value) return;\n\t\tif (depsTimeout) clearTimeout(depsTimeout);\n\t\tdepsTimeout = setTimeout(async () => {\n\t\t\tawait prefillItems();\n\t\t}, params.depsDebounceTime);\n\t};\n\n\t/**\n\t * This is triggered to refresh static items whenever the passed array changes.\n\t * If the parent defines an array in the template this is triggered\n\t * at every render so we take counter measures\n\t * Even if the entire array changes all the previously selected values are still in the stash.\n\t */\n\twatch(() => params.items.value, handleDependencyChange);\n\n\t/**\n\t * When dependencies change\n\t * If the input has not been prefilled yet just return\n\t * Check dependencies are the same by value and not reference\n\t * Otherwise we search again for options as they might be different base on dependencies.\n\t * If coherence is enforced we set the state accordingly\n\t */\n\twatch(() => params.dependencies.value, handleDependencyChange);\n\n\t/**\n\t * END DEPENDENCIES HANDLING\n\t */\n\n\treturn {\n\t\taddCurrentQueryToManualItems,\n\t\talignQueryToState,\n\t\tgetOptions,\n\t\thasPrefilled,\n\t\tinnerLoading,\n\t\tisPrefilling,\n\t\tmanualItems,\n\t\toptions,\n\t\tprefillItems,\n\t\tquery,\n\t\tsearchByQuery,\n\t\tselectedOptions,\n\t\tselectOption,\n\t\tsetStash,\n\t\tunselectOption,\n\t\tupdateModelValue,\n\t\tvalueIsSelected,\n\t\tinternalItems,\n\t};\n};\n"],"names":["useOptions","params","query","ref","lastEmittedValue","updateModelValue","value","internalItems","innerStash","addToStash","removeFromStash","setStash","useArray","manualItems","addToManualItems","removeFromManualItems","getItemText","useItemText","getItemValue","useItemValue","createOption","item","disabled","text","valueHash","hash","setSelected","o","isNotNil","modelValueIndexedByHash","options","computed","base","uniqBy","selectOption","option","alignQueryToState","nextTick","unselectOption","copy","map","arr","index","element","getOptions","prefill","items","order","innerLoading","waitFor","error","optionsIndexedByHash","selectedOptions","acc","h","found","valueIsSelected","last","addCurrentQueryToManualItems","coherenceStatus","curr","modelValueIsCoherent","isNil","alignToCoherenceSettings","hasPrefilled","isPrefilling","prefillItems","onBeforeMount","timeout","searchByQuery","onBeforeUnmount","modelValueTimeout","watch","depsTimeout","handleDependencyChange","current","previous"],"mappings":"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"}
package/dist/index222.js CHANGED
@@ -1,6 +1,87 @@
1
- import t from "./index271.js";
2
- const r = t;
1
+ import { defineComponent as b, openBlock as n, createElementBlock as s, normalizeClass as r, createElementVNode as l, renderSlot as t, createTextVNode as o, toDisplayString as d, createCommentVNode as h, Fragment as c, renderList as m } from "vue";
2
+ const p = { class: "bb-cr-container__container" }, u = {
3
+ key: 0,
4
+ class: "bb-cr-container__loading-container"
5
+ }, g = {
6
+ key: 1,
7
+ class: "bb-cr-container__no-data-container"
8
+ }, _ = /* @__PURE__ */ b({
9
+ __name: "OptionsContainer",
10
+ props: {
11
+ direction: {},
12
+ hasErrors: { type: Boolean },
13
+ hideLabel: { type: Boolean },
14
+ loadingText: {},
15
+ loading: { type: Boolean },
16
+ noDataText: {},
17
+ options: {}
18
+ },
19
+ setup(k) {
20
+ return (a, $) => (n(), s("span", {
21
+ ref: "container",
22
+ class: r(["bb-cr-container", {
23
+ "bb-cr-container--errors": a.hasErrors,
24
+ "bb-cr-container--horizontal": a.direction === "horizontal",
25
+ "bb-cr-container--vertical": a.direction === "vertical"
26
+ }])
27
+ }, [
28
+ l("span", p, [
29
+ t(a.$slots, "prepend"),
30
+ !a.options.length && a.loading ? (n(), s("span", u, [
31
+ t(a.$slots, "loading", {}, () => [
32
+ o(d(a.loadingText), 1)
33
+ ])
34
+ ])) : a.options.length ? h("", !0) : (n(), s("span", g, [
35
+ t(a.$slots, "no-data", {}, () => [
36
+ o(d(a.noDataText), 1)
37
+ ])
38
+ ])),
39
+ (n(!0), s(c, null, m(a.options, (e, i) => (n(), s(c, {
40
+ key: (e == null ? void 0 : e.id) || i
41
+ }, [
42
+ t(a.$slots, "option:prepend", {
43
+ id: e.valueHash,
44
+ checked: !!e.selected,
45
+ disabled: !!e.disabled,
46
+ item: e.item,
47
+ text: e.text
48
+ }),
49
+ l("label", {
50
+ class: r(["bb-cr-container-option", { "bb-base-radio-selected": e.selected }])
51
+ }, [
52
+ t(a.$slots, "input", {
53
+ index: i,
54
+ option: e
55
+ }),
56
+ l("span", {
57
+ class: r({
58
+ "bb-cr-container-option__text": !0,
59
+ "bb-cr-container-option__text--hidden": a.hideLabel
60
+ })
61
+ }, [
62
+ t(a.$slots, "label", {
63
+ checked: !!e.selected,
64
+ item: e.item,
65
+ text: e.text
66
+ }, () => [
67
+ o(d(e.text), 1)
68
+ ])
69
+ ], 2)
70
+ ], 2),
71
+ t(a.$slots, "option:append", {
72
+ id: e.valueHash,
73
+ checked: !!e.selected,
74
+ disabled: !!e.disabled,
75
+ item: e.item,
76
+ text: e.text
77
+ })
78
+ ], 64))), 128)),
79
+ t(a.$slots, "append")
80
+ ])
81
+ ], 2));
82
+ }
83
+ });
3
84
  export {
4
- r as throttle
85
+ _ as default
5
86
  };
6
87
  //# sourceMappingURL=index222.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index222.js","sources":["../src/utilities/functions/throttle.ts"],"sourcesContent":["import t from 'lodash.throttle';\n\nexport const throttle = t;\n"],"names":["throttle"],"mappings":";AAEO,MAAMA,IAAW;"}
1
+ {"version":3,"file":"index222.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index224.js CHANGED
@@ -1,22 +1,6 @@
1
- import { getDefaultExportFromCjs as p, commonjsGlobal as s } from "./index254.js";
2
- import { __module as n } from "./index272.js";
3
- (function(u, l) {
4
- (function(c, e) {
5
- u.exports = e();
6
- })(s, function() {
7
- return function(c, e, r) {
8
- r.updateLocale = function(f, o) {
9
- var t = r.Ls[f];
10
- if (t) return (o ? Object.keys(o) : []).forEach(function(a) {
11
- t[a] = o[a];
12
- }), t;
13
- };
14
- };
15
- });
16
- })(n);
17
- var i = n.exports;
18
- const x = /* @__PURE__ */ p(i);
1
+ import t from "./index274.js";
2
+ const r = t;
19
3
  export {
20
- x as default
4
+ r as throttle
21
5
  };
22
6
  //# sourceMappingURL=index224.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index224.js","sources":["../node_modules/dayjs/plugin/updateLocale.js"],"sourcesContent":["!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_updateLocale=n()}(this,(function(){\"use strict\";return function(e,n,t){t.updateLocale=function(e,n){var o=t.Ls[e];if(o)return(n?Object.keys(n):[]).forEach((function(e){o[e]=n[e]})),o}}}));"],"names":["e","n","module","this","t","o"],"mappings":";;;AAAA,GAAC,SAASA,GAAEC,GAAE;AAAsD,IAAAC,EAAe,UAAAD,EAAuI;AAAA,EAAA,GAAEE,GAAM,WAAU;AAAc,WAAO,SAASH,GAAEC,GAAEG,GAAE;AAAC,MAAAA,EAAE,eAAa,SAASJ,GAAEC,GAAE;AAAC,YAAII,IAAED,EAAE,GAAGJ,CAAC;AAAE,YAAGK,EAAE,SAAOJ,IAAE,OAAO,KAAKA,CAAC,IAAE,CAAA,GAAI,QAAS,SAASD,GAAE;AAAC,UAAAK,EAAEL,CAAC,IAAEC,EAAED,CAAC;AAAA,QAAC,IAAIK;AAAA,MAAC;AAAA,IAAC;AAAA,EAAC;;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index224.js","sources":["../src/utilities/functions/throttle.ts"],"sourcesContent":["import t from 'lodash.throttle';\n\nexport const throttle = t;\n"],"names":["throttle"],"mappings":";AAEO,MAAMA,IAAW;"}
package/dist/index225.js CHANGED
@@ -1,30 +1,38 @@
1
- import { getDefaultExportFromCjs as c, commonjsGlobal as k } from "./index254.js";
2
- import { __module as n } from "./index273.js";
3
- (function(f, p) {
4
- (function(r, e) {
5
- f.exports = e();
6
- })(k, function() {
7
- var r = "week", e = "year";
8
- return function(w, u, a) {
9
- var o = u.prototype;
10
- o.week = function(t) {
11
- if (t === void 0 && (t = null), t !== null) return this.add(7 * (t - this.week()), "day");
12
- var s = this.$locale().yearStart || 1;
13
- if (this.month() === 11 && this.date() > 25) {
14
- var l = a(this).startOf(e).add(1, e).date(s), d = a(this).endOf(r);
15
- if (l.isBefore(d)) return 1;
1
+ import { unrefElement as m } from "./index127.js";
2
+ import { ref as u, watch as l } from "vue";
3
+ import { createFocusTrap as d } from "./index273.js";
4
+ import { tryOnScopeDispose as D } from "./index197.js";
5
+ function O(i, a = {}) {
6
+ let e;
7
+ const { immediate: f, ...n } = a, c = u(!1), s = u(!1), o = (t) => e && e.activate(t), r = (t) => e && e.deactivate(t), v = () => {
8
+ e && (e.pause(), s.value = !0);
9
+ }, p = () => {
10
+ e && (e.unpause(), s.value = !1);
11
+ };
12
+ return l(
13
+ () => m(i),
14
+ (t) => {
15
+ t && (e = d(t, {
16
+ ...n,
17
+ onActivate() {
18
+ c.value = !0, a.onActivate && a.onActivate();
19
+ },
20
+ onDeactivate() {
21
+ c.value = !1, a.onDeactivate && a.onDeactivate();
16
22
  }
17
- var h = a(this).startOf(e).date(s).startOf(r).subtract(1, "millisecond"), i = this.diff(h, r, !0);
18
- return i < 0 ? a(this).startOf("week").week() : Math.ceil(i);
19
- }, o.weeks = function(t) {
20
- return t === void 0 && (t = null), this.week(t);
21
- };
22
- };
23
- });
24
- })(n);
25
- var m = n.exports;
26
- const x = /* @__PURE__ */ c(m);
23
+ }), f && o());
24
+ },
25
+ { flush: "post" }
26
+ ), D(() => r()), {
27
+ hasFocus: c,
28
+ isPaused: s,
29
+ activate: o,
30
+ deactivate: r,
31
+ pause: v,
32
+ unpause: p
33
+ };
34
+ }
27
35
  export {
28
- x as default
36
+ O as useFocusTrap
29
37
  };
30
38
  //# sourceMappingURL=index225.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index225.js","sources":["../node_modules/dayjs/plugin/weekOfYear.js"],"sourcesContent":["!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekOfYear=t()}(this,(function(){\"use strict\";var e=\"week\",t=\"year\";return function(i,n,r){var f=n.prototype;f.week=function(i){if(void 0===i&&(i=null),null!==i)return this.add(7*(i-this.week()),\"day\");var n=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var f=r(this).startOf(t).add(1,t).date(n),s=r(this).endOf(e);if(f.isBefore(s))return 1}var a=r(this).startOf(t).date(n).startOf(e).subtract(1,\"millisecond\"),o=this.diff(a,e,!0);return o<0?r(this).startOf(\"week\").week():Math.ceil(o)},f.weeks=function(e){return void 0===e&&(e=null),this.week(e)}}}));"],"names":["e","t","module","this","i","n","r","f","s","a","o"],"mappings":";;;AAAA,GAAC,SAASA,GAAEC,GAAE;AAAsD,IAAAC,EAAe,UAAAD,EAAqI;AAAA,EAAA,GAAEE,GAAM,WAAU;AAAc,QAAIH,IAAE,QAAOC,IAAE;AAAO,WAAO,SAASG,GAAEC,GAAEC,GAAE;AAAC,UAAIC,IAAEF,EAAE;AAAU,MAAAE,EAAE,OAAK,SAASH,GAAE;AAAC,YAAYA,MAAT,WAAaA,IAAE,OAAaA,MAAP,KAAS,QAAO,KAAK,IAAI,KAAGA,IAAE,KAAK,KAAI,IAAI,KAAK;AAAE,YAAIC,IAAE,KAAK,QAAO,EAAG,aAAW;AAAE,YAAQ,KAAK,MAAO,MAAjB,MAAmB,KAAK,KAAI,IAAG,IAAG;AAAC,cAAIE,IAAED,EAAE,IAAI,EAAE,QAAQL,CAAC,EAAE,IAAI,GAAEA,CAAC,EAAE,KAAKI,CAAC,GAAEG,IAAEF,EAAE,IAAI,EAAE,MAAMN,CAAC;AAAE,cAAGO,EAAE,SAASC,CAAC,EAAE,QAAO;AAAA,QAAC;AAAC,YAAIC,IAAEH,EAAE,IAAI,EAAE,QAAQL,CAAC,EAAE,KAAKI,CAAC,EAAE,QAAQL,CAAC,EAAE,SAAS,GAAE,aAAa,GAAEU,IAAE,KAAK,KAAKD,GAAET,GAAE,EAAE;AAAE,eAAOU,IAAE,IAAEJ,EAAE,IAAI,EAAE,QAAQ,MAAM,EAAE,KAAI,IAAG,KAAK,KAAKI,CAAC;AAAA,MAAC,GAAEH,EAAE,QAAM,SAASP,GAAE;AAAC,eAAgBA,MAAT,WAAaA,IAAE,OAAM,KAAK,KAAKA,CAAC;AAAA,MAAC;AAAA,IAAC;AAAA,EAAC;;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index225.js","sources":["../node_modules/@vueuse/integrations/useFocusTrap.mjs"],"sourcesContent":["import { unrefElement, tryOnScopeDispose } from '@vueuse/core';\nimport { ref, watch } from 'vue-demi';\nimport { createFocusTrap } from 'focus-trap';\n\nfunction useFocusTrap(target, options = {}) {\n let trap;\n const { immediate, ...focusTrapOptions } = options;\n const hasFocus = ref(false);\n const isPaused = ref(false);\n const activate = (opts) => trap && trap.activate(opts);\n const deactivate = (opts) => trap && trap.deactivate(opts);\n const pause = () => {\n if (trap) {\n trap.pause();\n isPaused.value = true;\n }\n };\n const unpause = () => {\n if (trap) {\n trap.unpause();\n isPaused.value = false;\n }\n };\n watch(\n () => unrefElement(target),\n (el) => {\n if (!el)\n return;\n trap = createFocusTrap(el, {\n ...focusTrapOptions,\n onActivate() {\n hasFocus.value = true;\n if (options.onActivate)\n options.onActivate();\n },\n onDeactivate() {\n hasFocus.value = false;\n if (options.onDeactivate)\n options.onDeactivate();\n }\n });\n if (immediate)\n activate();\n },\n { flush: \"post\" }\n );\n tryOnScopeDispose(() => deactivate());\n return {\n hasFocus,\n isPaused,\n activate,\n deactivate,\n pause,\n unpause\n };\n}\n\nexport { useFocusTrap };\n"],"names":["useFocusTrap","target","options","trap","immediate","focusTrapOptions","hasFocus","ref","isPaused","activate","opts","deactivate","pause","unpause","watch","unrefElement","el","createFocusTrap","tryOnScopeDispose"],"mappings":";;;;AAIA,SAASA,EAAaC,GAAQC,IAAU,IAAI;AAC1C,MAAIC;AACJ,QAAM,EAAE,WAAAC,GAAW,GAAGC,EAAgB,IAAKH,GACrCI,IAAWC,EAAI,EAAK,GACpBC,IAAWD,EAAI,EAAK,GACpBE,IAAW,CAACC,MAASP,KAAQA,EAAK,SAASO,CAAI,GAC/CC,IAAa,CAACD,MAASP,KAAQA,EAAK,WAAWO,CAAI,GACnDE,IAAQ,MAAM;AAClB,IAAIT,MACFA,EAAK,MAAK,GACVK,EAAS,QAAQ;AAAA,EAEvB,GACQK,IAAU,MAAM;AACpB,IAAIV,MACFA,EAAK,QAAO,GACZK,EAAS,QAAQ;AAAA,EAEvB;AACE,SAAAM;AAAA,IACE,MAAMC,EAAad,CAAM;AAAA,IACzB,CAACe,MAAO;AACN,MAAKA,MAELb,IAAOc,EAAgBD,GAAI;AAAA,QACzB,GAAGX;AAAA,QACH,aAAa;AACX,UAAAC,EAAS,QAAQ,IACbJ,EAAQ,cACVA,EAAQ,WAAU;AAAA,QACrB;AAAA,QACD,eAAe;AACb,UAAAI,EAAS,QAAQ,IACbJ,EAAQ,gBACVA,EAAQ,aAAY;AAAA,QACvB;AAAA,MACT,CAAO,GACGE,KACFK;IACH;AAAA,IACD,EAAE,OAAO,OAAQ;AAAA,EACrB,GACES,EAAkB,MAAMP,EAAU,CAAE,GAC7B;AAAA,IACL,UAAAL;AAAA,IACA,UAAAE;AAAA,IACA,UAAAC;AAAA,IACA,YAAAE;AAAA,IACA,OAAAC;AAAA,IACA,SAAAC;AAAA,EACJ;AACA;","x_google_ignoreList":[0]}
package/dist/index226.js CHANGED
@@ -1,6 +1,9 @@
1
- import { hash as o } from "./index278.js";
2
- const t = (r, h = "bb") => `${h}${o(r)}`;
1
+ const o = (e, t = 50) => new Promise((r) => {
2
+ const n = setInterval(() => {
3
+ e() && (clearInterval(n), r());
4
+ }, t);
5
+ });
3
6
  export {
4
- t as hash
7
+ o as waitFor
5
8
  };
6
9
  //# sourceMappingURL=index226.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index226.js","sources":["../src/utilities/functions/hash.ts"],"sourcesContent":["import { hash as _h } from 'object-code';\n\nexport const hash = (value: any, prefix = 'bb') => {\n\treturn `${prefix}${_h(value)}`;\n};\n"],"names":["hash","value","prefix","_h"],"mappings":";AAEO,MAAMA,IAAO,CAACC,GAAYC,IAAS,SAClC,GAAGA,CAAM,GAAGC,EAAGF,CAAK,CAAC;"}
1
+ {"version":3,"file":"index226.js","sources":["../src/utilities/functions/waitFor.ts"],"sourcesContent":["/** Wait until iteratee returns true to resolve the promise */\nexport const waitFor: (\n\titeratee: () => boolean,\n\tinterval?: number\n) => Promise<void> = (iteratee, interval = 50) =>\n\tnew Promise((resolve) => {\n\t\tconst i = setInterval(() => {\n\t\t\tif (iteratee()) {\n\t\t\t\tclearInterval(i);\n\t\t\t\tresolve();\n\t\t\t}\n\t\t}, interval);\n\t});\n"],"names":["waitFor","iteratee","interval","resolve","i"],"mappings":"AACa,MAAAA,IAGQ,CAACC,GAAUC,IAAW,OAC1C,IAAI,QAAQ,CAACC,MAAY;AAClB,QAAAC,IAAI,YAAY,MAAM;AAC3B,IAAIH,QACH,cAAcG,CAAC,GACPD;KAEPD,CAAQ;AACZ,CAAC;"}
package/dist/index227.js CHANGED
@@ -1,252 +1,10 @@
1
- import { defineComponent as de, ref as A, computed as _, watch as le, openBlock as c, createElementBlock as u, normalizeClass as k, withKeys as f, withModifiers as p, createVNode as ce, withCtx as ue, createElementVNode as M, Fragment as O, renderList as S, toDisplayString as C, renderSlot as L, nextTick as fe } from "vue";
2
- import { chunk as pe } from "./index295.js";
3
- import { identity as be } from "./index211.js";
4
- import { isNotNil as me } from "./index129.js";
5
- import { last as ge } from "./index212.js";
6
- import { sort as T } from "./index296.js";
7
- import b from "./index206.js";
8
- import he from "./index231.js";
9
- const ye = ["onKeydown"], _e = { class: "bb-base-date-picker__header-container" }, ke = ["abbr"], Oe = ["id", "disabled", "tabindex"], Ce = /* @__PURE__ */ de({
10
- __name: "BaseDatePickerInputDaySelector",
11
- props: {
12
- cursor: {},
13
- current: { type: Boolean },
14
- disabled: { type: Boolean },
15
- firstDayOfWeek: {},
16
- modelValue: {},
17
- max: {},
18
- min: {},
19
- selectable: { type: Function },
20
- range: { type: Boolean },
21
- multiple: { type: Boolean },
22
- readonly: { type: Boolean }
23
- },
24
- emits: ["update:modelValue", "update:cursor"],
25
- setup(E, { emit: N }) {
26
- const a = E, s = N, g = A(null), x = b().startOf("day"), m = _(() => {
27
- let e = 1 / 0, r = -1 / 0, o = {};
28
- return a.modelValue && [].concat(a.modelValue).filter(be).map((i) => b(i).startOf("day")).map((i) => i.valueOf()).forEach((i, h) => {
29
- i < e && (e = i), i > r && (r = i), o[i] = h;
30
- }), {
31
- min: e,
32
- max: r,
33
- index: (t) => o[t.valueOf()],
34
- selected: (t) => me(o[t.valueOf()]),
35
- isFirstOfRange: (t) => t.valueOf() === e,
36
- isLastOfRange: (t) => t.valueOf() === r,
37
- isBetween: (t) => t.valueOf() > e && t.valueOf() < r
38
- };
39
- }), R = _(() => new Array(7).fill("").map((e, r) => b().day((r + a.firstDayOfWeek) % 7)).map((e) => ({
40
- accessibleLabel: e.format("dddd"),
41
- label: e.format("dd").slice(0, 1).toUpperCase(),
42
- id: e.toISOString(),
43
- original: e
44
- }))), v = _(() => {
45
- const e = a.cursor.year().toString(), r = a.cursor.month().toString();
46
- let t = a.cursor.clone().startOf("month").clone().startOf("week"), h = a.cursor.clone().endOf("month").clone().endOf("week"), Y = b(a.cursor).startOf("day"), D = [];
47
- for (let n = t; n.isBefore(h); n = n.add(1, "day"))
48
- D.push(n.clone());
49
- const Z = D.map((n) => {
50
- const y = n.toISOString(), ee = n.week().toString();
51
- let te = m.value.selected(n);
52
- const B = a.range && m.value.isFirstOfRange(n), I = a.range && m.value.isLastOfRange(n), re = a.range && !B && !I && m.value.isBetween(n), ae = n.month().toString() === r && n.year().toString() === e, oe = n.isSame(x), ne = n.isSame(Y), se = d(n), ie = n.get("D").toString();
53
- return {
54
- buttonId: "date_" + y,
55
- current: ne,
56
- disabled: se,
57
- first: B,
58
- highlighted: ae,
59
- id: y,
60
- label: ie,
61
- last: I,
62
- middle: re,
63
- original: n,
64
- selected: te,
65
- slotName: y,
66
- today: oe,
67
- week: ee
68
- };
69
- });
70
- return pe(Z, 7);
71
- }), d = (e) => {
72
- let r = !0;
73
- return a.min && r && (r = e.isSameOrAfter(b(a.min).startOf("day"))), a.max && r && (r = e.isSameOrBefore(b(a.max).startOf("day"))), typeof a.selectable == "function" && r && (r = a.selectable(e.toDate())), !r;
74
- }, w = A("left"), K = (e, r) => {
75
- e && r && (w.value = e.isBefore(r) ? "left" : "right");
76
- };
77
- le(
78
- () => a.cursor,
79
- (e, r) => {
80
- K(e, r);
81
- }
82
- );
83
- const V = (e) => s("update:cursor", e), l = async () => {
84
- if (!g.value) return;
85
- await fe();
86
- const e = ge([
87
- ...g.value.querySelectorAll(
88
- ".bb-base-date-picker__date--current button"
89
- )
90
- ]);
91
- e instanceof HTMLElement && e.focus();
92
- }, F = (e) => {
93
- if (!a.readonly && e.target instanceof HTMLButtonElement) {
94
- const [, r] = e.target.id.split("_"), o = b(r);
95
- if (a.cursor.month() !== o.month()) {
96
- V(o);
97
- return;
98
- }
99
- const t = v.value.flat().find((i) => i.id === r);
100
- if (t.disabled) return;
101
- V(o), H(t);
102
- }
103
- }, H = (e) => {
104
- a.range ? P(e) : a.multiple ? U(e) : W(e);
105
- }, P = (e) => {
106
- if (!Array.isArray(a.modelValue)) return;
107
- const r = e.original.toISOString();
108
- if (a.modelValue.length !== 1) s("update:modelValue", [r]);
109
- else {
110
- const o = T([a.modelValue[0], e.original.toISOString()]);
111
- s("update:modelValue", o);
112
- }
113
- }, U = (e) => {
114
- if (Array.isArray(a.modelValue))
115
- if (e.selected) {
116
- const r = e.original.toISOString(), o = a.modelValue.filter((t) => t !== r);
117
- s("update:modelValue", o);
118
- } else {
119
- const r = T([...a.modelValue, e.original.toISOString()]);
120
- s("update:modelValue", r);
121
- }
122
- }, W = (e) => {
123
- e.selected ? s("update:modelValue", null) : s("update:modelValue", e.original.toISOString());
124
- }, $ = () => {
125
- const e = a.cursor.clone().add(1, "day");
126
- d(e) || (s("update:cursor", e), l());
127
- }, j = () => {
128
- const e = a.cursor.clone().subtract(1, "day");
129
- d(e) || (s("update:cursor", e), l());
130
- }, q = () => {
131
- const e = a.cursor.clone().subtract(1, "week");
132
- d(e) || (s("update:cursor", e), l());
133
- }, z = () => {
134
- const e = a.cursor.clone().add(1, "week");
135
- d(e) || (s("update:cursor", e), l());
136
- }, G = () => {
137
- const e = a.cursor.clone().endOf("week");
138
- d(e) || (s("update:cursor", e), l());
139
- }, J = () => {
140
- const e = a.cursor.clone().startOf("week");
141
- d(e) || (s("update:cursor", e), l());
142
- }, Q = (e) => {
143
- if (e.shiftKey) {
144
- const r = a.cursor.clone().subtract(1, "year");
145
- if (d(r)) return;
146
- s("update:cursor", r);
147
- } else {
148
- const r = a.cursor.clone().subtract(1, "month");
149
- if (d(r)) return;
150
- s("update:cursor", r);
151
- }
152
- l();
153
- }, X = (e) => {
154
- if (e.shiftKey) {
155
- const r = a.cursor.clone().add(1, "year");
156
- if (d(r)) return;
157
- s("update:cursor", r);
158
- } else {
159
- const r = a.cursor.clone().add(1, "month");
160
- if (d(r)) return;
161
- s("update:cursor", r);
162
- }
163
- l();
164
- };
165
- return (e, r) => (c(), u("div", {
166
- ref_key: "calendar",
167
- ref: g,
168
- class: k(["bb-base-date-picker__days-selector", { "bb-base-date-picker__days-selector--hidden": !e.current }]),
169
- onKeydown: [
170
- f(p(z, ["prevent"]), ["down"]),
171
- f(p(G, ["prevent"]), ["end"]),
172
- f(p(J, ["prevent"]), ["home"]),
173
- f(p(j, ["prevent"]), ["left"]),
174
- f(p(X, ["prevent"]), ["page-down"]),
175
- f(p(Q, ["prevent"]), ["page-up"]),
176
- f(p($, ["prevent"]), ["right"]),
177
- f(p(q, ["prevent"]), ["up"])
178
- ]
179
- }, [
180
- ce(he, {
181
- direction: w.value,
182
- gap: 30
183
- }, {
184
- default: ue(() => [
185
- (c(), u("div", {
186
- key: e.cursor.month().toString(),
187
- class: "bb-base-date-picker__month"
188
- }, [
189
- M("div", _e, [
190
- (c(!0), u(O, null, S(R.value, (o) => (c(), u("div", {
191
- key: o.id,
192
- abbr: o.accessibleLabel,
193
- class: "bb-base-date-picker__header-cell"
194
- }, C(o.label), 9, ke))), 128))
195
- ]),
196
- (c(!0), u(O, null, S(v.value, (o) => (c(), u("div", {
197
- key: o[0].id,
198
- class: "bb-base-date-picker__week"
199
- }, [
200
- (c(!0), u(O, null, S(o, (t) => (c(), u("div", {
201
- key: t.id,
202
- class: k({
203
- "bb-base-date-picker__date--current": t.current,
204
- "bb-base-date-picker__date--disabled": e.disabled || t.disabled,
205
- "bb-base-date-picker__date--first": t.first,
206
- "bb-base-date-picker__date--highlighted": t.highlighted,
207
- "bb-base-date-picker__date--last": t.last,
208
- "bb-base-date-picker__date--middle": t.middle,
209
- "bb-base-date-picker__date--selected": t.selected,
210
- "bb-base-date-picker__date--today": t.today,
211
- "bb-base-date-picker__date": !0
212
- })
213
- }, [
214
- M("button", {
215
- id: t.buttonId,
216
- class: k("bb-base-date-picker__date-button"),
217
- disabled: e.disabled || t.disabled,
218
- tabindex: Number(t.current) - 1,
219
- type: "button",
220
- onClick: F
221
- }, C(t.label), 9, Oe),
222
- L(e.$slots, "day", {
223
- first: t.first,
224
- highlighted: t.highlighted,
225
- item: t.original,
226
- label: t.label,
227
- last: t.last,
228
- middle: t.middle,
229
- selected: t.selected
230
- }),
231
- L(e.$slots, t.slotName, {
232
- first: t.first,
233
- highlighted: t.highlighted,
234
- item: t.original,
235
- label: t.label,
236
- last: t.last,
237
- middle: t.middle,
238
- selected: t.selected
239
- })
240
- ], 2))), 128))
241
- ]))), 128))
242
- ]))
243
- ]),
244
- _: 3
245
- }, 8, ["direction"])
246
- ], 42, ye));
247
- }
248
- });
1
+ import { ref as e } from "vue";
2
+ const o = e(0), s = () => {
3
+ o.value++;
4
+ }, a = () => {
5
+ o.value--;
6
+ }, d = () => ({ openedModals: o, modalHasOpened: s, modalHasClosed: a });
249
7
  export {
250
- Ce as default
8
+ d as useModalsState
251
9
  };
252
10
  //# sourceMappingURL=index227.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index227.js","sources":["../src/components/BaseDatePicker/BaseDatePickerInputDaySelector.vue"],"sourcesContent":["<template>\n\t<div\n\t\tref=\"calendar\"\n\t\tclass=\"bb-base-date-picker__days-selector\"\n\t\t:class=\"{ 'bb-base-date-picker__days-selector--hidden': !current }\"\n\t\t@keydown.prevent.down=\"onArrowDown\"\n\t\t@keydown.prevent.end=\"onEnd\"\n\t\t@keydown.prevent.home=\"onHome\"\n\t\t@keydown.prevent.left=\"onArrowLeft\"\n\t\t@keydown.prevent.page-down=\"onPageDown\"\n\t\t@keydown.prevent.page-up=\"onPageUp\"\n\t\t@keydown.prevent.right=\"onArrowRight\"\n\t\t@keydown.prevent.up=\"onArrowUp\"\n\t>\n\t\t<SlideTransition :direction=\"direction\" :gap=\"30\">\n\t\t\t<div :key=\"cursor.month().toString()\" class=\"bb-base-date-picker__month\">\n\t\t\t\t<div class=\"bb-base-date-picker__header-container\">\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-for=\"header in mappedHeaders\"\n\t\t\t\t\t\t:key=\"header.id\"\n\t\t\t\t\t\t:abbr=\"header.accessibleLabel\"\n\t\t\t\t\t\tclass=\"bb-base-date-picker__header-cell\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ header.label }}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"week in dates\"\n\t\t\t\t\t:key=\"week[0].id\"\n\t\t\t\t\tclass=\"bb-base-date-picker__week\"\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-for=\"cell in week\"\n\t\t\t\t\t\t:key=\"cell.id\"\n\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t'bb-base-date-picker__date--current': cell.current,\n\t\t\t\t\t\t\t'bb-base-date-picker__date--disabled': disabled || cell.disabled,\n\t\t\t\t\t\t\t'bb-base-date-picker__date--first': cell.first,\n\t\t\t\t\t\t\t'bb-base-date-picker__date--highlighted': cell.highlighted,\n\t\t\t\t\t\t\t'bb-base-date-picker__date--last': cell.last,\n\t\t\t\t\t\t\t'bb-base-date-picker__date--middle': cell.middle,\n\t\t\t\t\t\t\t'bb-base-date-picker__date--selected': cell.selected,\n\t\t\t\t\t\t\t'bb-base-date-picker__date--today': cell.today,\n\t\t\t\t\t\t\t'bb-base-date-picker__date': true,\n\t\t\t\t\t\t}\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t:id=\"cell.buttonId\"\n\t\t\t\t\t\t\t:class=\"'bb-base-date-picker__date-button'\"\n\t\t\t\t\t\t\t:disabled=\"disabled || cell.disabled\"\n\t\t\t\t\t\t\t:tabindex=\"Number(cell.current) - 1\"\n\t\t\t\t\t\t\t:type=\"'button'\"\n\t\t\t\t\t\t\t@click=\"onButtonClick\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{ cell.label }}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t\t<slot\n\t\t\t\t\t\t\t:first=\"cell.first\"\n\t\t\t\t\t\t\t:highlighted=\"cell.highlighted\"\n\t\t\t\t\t\t\t:item=\"cell.original\"\n\t\t\t\t\t\t\t:label=\"cell.label\"\n\t\t\t\t\t\t\t:last=\"cell.last\"\n\t\t\t\t\t\t\t:middle=\"cell.middle\"\n\t\t\t\t\t\t\t:name=\"'day'\"\n\t\t\t\t\t\t\t:selected=\"cell.selected\"\n\t\t\t\t\t\t></slot>\n\t\t\t\t\t\t<slot\n\t\t\t\t\t\t\t:first=\"cell.first\"\n\t\t\t\t\t\t\t:highlighted=\"cell.highlighted\"\n\t\t\t\t\t\t\t:item=\"cell.original\"\n\t\t\t\t\t\t\t:label=\"cell.label\"\n\t\t\t\t\t\t\t:last=\"cell.last\"\n\t\t\t\t\t\t\t:middle=\"cell.middle\"\n\t\t\t\t\t\t\t:name=\"cell.slotName\"\n\t\t\t\t\t\t\t:selected=\"cell.selected\"\n\t\t\t\t\t\t></slot>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</SlideTransition>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { chunk } from '@/utilities/functions/chunk';\nimport { identity } from '@/utilities/functions/identity';\nimport { isNotNil } from '@/utilities/functions/isNotNil';\nimport { last } from '@/utilities/functions/last';\nimport { nextTick } from 'vue';\nimport { ref } from 'vue';\nimport { sort } from '@/utilities/functions/sort';\nimport { watch } from 'vue';\nimport dayjs from 'dayjs';\nimport SlideTransition from '../Transitions/Slide.vue';\nimport type { Dayjs } from 'dayjs';\n\ntype Props = {\n\tcursor: Dayjs;\n\tcurrent: boolean;\n\tdisabled: boolean;\n\tfirstDayOfWeek: number;\n\t/**\n\t * Used by v-model. Can be null, a single string, or an array of strings based on whether a range or single date is needed\n\t */\n\tmodelValue: string | string[] | null;\n\tmax?: Date | string | number;\n\tmin?: Date | string | number;\n\tselectable?: (date: Date) => boolean;\n\trange?: boolean;\n\tmultiple?: boolean;\n\treadonly?: boolean;\n};\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<{\n\t(event: 'update:modelValue', value: any): void;\n\t(event: 'update:cursor', value: Dayjs): void;\n}>();\n\nconst calendar = ref<HTMLElement | null>(null);\n\nconst today = dayjs().startOf('day');\n\nconst modelValueMetadata = computed(() => {\n\tlet min = Infinity;\n\tlet max = -Infinity;\n\tlet selected: { [key: number]: number } = {};\n\n\tif (props.modelValue) {\n\t\tconst arr = ([] as (string | Date)[])\n\t\t\t.concat(props.modelValue)\n\t\t\t.filter(identity)\n\t\t\t.map((value) => dayjs(value).startOf('day'))\n\t\t\t.map((date) => date.valueOf());\n\t\tarr.forEach((item, index) => {\n\t\t\tif (item < min) min = item;\n\t\t\tif (item > max) max = item;\n\t\t\tselected[item] = index;\n\t\t});\n\t}\n\treturn {\n\t\tmin,\n\t\tmax,\n\t\tindex: (date: Dayjs) => selected[date.valueOf()],\n\t\tselected: (date: Dayjs) => isNotNil(selected[date.valueOf()]),\n\t\tisFirstOfRange: (date: Dayjs) => date.valueOf() === min,\n\t\tisLastOfRange: (date: Dayjs) => date.valueOf() === max,\n\t\tisBetween: (date: Dayjs) => date.valueOf() > min && date.valueOf() < max,\n\t};\n});\n\nconst mappedHeaders = computed(() => {\n\treturn (\n\t\tnew Array(7)\n\t\t\t.fill('')\n\t\t\t// Sort days based on first day of the week\n\t\t\t.map((_, index) => dayjs().day((index + props.firstDayOfWeek) % 7))\n\t\t\t.map((day) => {\n\t\t\t\treturn {\n\t\t\t\t\taccessibleLabel: day.format('dddd'),\n\t\t\t\t\tlabel: day.format('dd').slice(0, 1).toUpperCase(),\n\t\t\t\t\tid: day.toISOString(),\n\t\t\t\t\toriginal: day,\n\t\t\t\t};\n\t\t\t})\n\t);\n});\n\ntype Cell = {\n\tbuttonId: string;\n\tcurrent: boolean;\n\tdisabled: boolean;\n\tfirst: boolean;\n\thighlighted: boolean;\n\tid: string;\n\tlabel: string;\n\tlast: boolean;\n\tmiddle: boolean;\n\toriginal: Dayjs;\n\tselected: boolean;\n\tslotName: string;\n\tweek: string;\n\ttoday: boolean;\n};\n\nconst dates = computed<Cell[][]>(() => {\n\tconst year = props.cursor.year().toString();\n\tconst month = props.cursor.month().toString();\n\tlet startOfMonth = props.cursor.clone().startOf('month');\n\tlet firstValueToDisplay = startOfMonth.clone().startOf('week');\n\tlet endOfMonth = props.cursor.clone().endOf('month');\n\tlet lastValueToDisplay = endOfMonth.clone().endOf('week');\n\tlet currentAtMidnight = dayjs(props.cursor).startOf('day');\n\tlet datesInPage: Dayjs[] = [];\n\tfor (\n\t\tlet index = firstValueToDisplay;\n\t\tindex.isBefore(lastValueToDisplay);\n\t\tindex = index.add(1, 'day')\n\t) {\n\t\tdatesInPage.push(index.clone());\n\t}\n\tconst mapped = datesInPage.map<Cell>((date) => {\n\t\tconst id = date.toISOString();\n\t\tconst week = date.week().toString();\n\t\tlet selected = modelValueMetadata.value.selected(date);\n\n\t\tconst first = props.range && modelValueMetadata.value.isFirstOfRange(date);\n\t\tconst last = props.range && modelValueMetadata.value.isLastOfRange(date);\n\t\tconst middle =\n\t\t\tprops.range &&\n\t\t\t!first &&\n\t\t\t!last &&\n\t\t\tmodelValueMetadata.value.isBetween(date);\n\t\tconst highlighted =\n\t\t\tdate.month().toString() === month && date.year().toString() === year;\n\t\tconst isToday = date.isSame(today);\n\t\tconst current = date.isSame(currentAtMidnight);\n\t\tconst disabled = isDateDisabled(date);\n\t\tconst label = date.get('D').toString();\n\t\tconst buttonId = 'date_' + id;\n\n\t\treturn {\n\t\t\tbuttonId,\n\t\t\tcurrent,\n\t\t\tdisabled,\n\t\t\tfirst,\n\t\t\thighlighted,\n\t\t\tid,\n\t\t\tlabel,\n\t\t\tlast,\n\t\t\tmiddle,\n\t\t\toriginal: date,\n\t\t\tselected,\n\t\t\tslotName: id,\n\t\t\ttoday: isToday,\n\t\t\tweek,\n\t\t};\n\t});\n\treturn chunk(mapped, 7);\n});\n\nconst isDateDisabled = (date: Dayjs) => {\n\tlet passing = true;\n\tif (props.min) {\n\t\tpassing &&= date.isSameOrAfter(dayjs(props.min).startOf('day'));\n\t}\n\tif (props.max) {\n\t\tpassing &&= date.isSameOrBefore(dayjs(props.max).startOf('day'));\n\t}\n\tif (typeof props.selectable === 'function') {\n\t\tpassing &&= props.selectable(date.toDate());\n\t}\n\treturn !passing;\n};\n\nconst direction = ref<'left' | 'right'>('left');\nconst setSlideDirection = (\n\tcurrent: Dayjs | undefined,\n\tprevious: Dayjs | undefined\n) => {\n\tif (current && previous) {\n\t\tdirection.value = current.isBefore(previous) ? 'left' : 'right';\n\t}\n};\n\nwatch(\n\t() => props.cursor,\n\t(current, previous) => {\n\t\tsetSlideDirection(current, previous);\n\t}\n);\n\nconst updateCursor = (date: Dayjs) => emit('update:cursor', date);\n\nconst focusOnCursor = async () => {\n\tif (!calendar.value) return;\n\tawait nextTick();\n\tconst el = last([\n\t\t...calendar.value.querySelectorAll(\n\t\t\t'.bb-base-date-picker__date--current button'\n\t\t),\n\t]);\n\tif (el instanceof HTMLElement) {\n\t\tel.focus();\n\t}\n};\n\nconst onButtonClick = (event: MouseEvent) => {\n\tif (props.readonly) return;\n\tif (event.target instanceof HTMLButtonElement) {\n\t\tconst [, id] = event.target.id.split('_');\n\t\tconst d = dayjs(id);\n\t\tif (props.cursor.month() !== d.month()) {\n\t\t\tupdateCursor(d);\n\t\t\treturn;\n\t\t}\n\t\tconst date = dates.value.flat().find((el) => el.id === id)!;\n\t\tif (date.disabled) return;\n\t\tupdateCursor(d);\n\t\tonDateSelected(date);\n\t}\n};\n\nconst onDateSelected = (date: Cell) => {\n\tif (props.range) onDateSelectedRange(date);\n\telse if (props.multiple) onDateSelectedMultiple(date);\n\telse onDateSelectedSingle(date);\n};\n\nconst onDateSelectedRange = (date: Cell) => {\n\tif (!Array.isArray(props.modelValue)) return;\n\tconst value = date.original.toISOString();\n\tif (props.modelValue.length !== 1) emit('update:modelValue', [value]);\n\telse {\n\t\tconst arr = sort([props.modelValue[0], date.original.toISOString()]);\n\t\temit('update:modelValue', arr);\n\t}\n};\nconst onDateSelectedMultiple = (date: Cell) => {\n\tif (!Array.isArray(props.modelValue)) return;\n\tif (date.selected) {\n\t\tconst asString = date.original.toISOString();\n\t\tconst valueToEmit = props.modelValue.filter((el) => el !== asString);\n\t\temit('update:modelValue', valueToEmit);\n\t} else {\n\t\tconst arr = sort([...props.modelValue, date.original.toISOString()]);\n\t\temit('update:modelValue', arr);\n\t}\n};\nconst onDateSelectedSingle = (date: Cell) => {\n\tif (date.selected) emit('update:modelValue', null);\n\telse emit('update:modelValue', date.original.toISOString());\n};\n\nconst onArrowRight = () => {\n\tconst date = props.cursor.clone().add(1, 'day');\n\tif (isDateDisabled(date)) return;\n\temit('update:cursor', date);\n\tfocusOnCursor();\n};\nconst onArrowLeft = () => {\n\tconst date = props.cursor.clone().subtract(1, 'day');\n\tif (isDateDisabled(date)) return;\n\temit('update:cursor', date);\n\tfocusOnCursor();\n};\nconst onArrowUp = () => {\n\tconst date = props.cursor.clone().subtract(1, 'week');\n\tif (isDateDisabled(date)) return;\n\temit('update:cursor', date);\n\tfocusOnCursor();\n};\nconst onArrowDown = () => {\n\tconst date = props.cursor.clone().add(1, 'week');\n\tif (isDateDisabled(date)) return;\n\temit('update:cursor', date);\n\tfocusOnCursor();\n};\nconst onEnd = () => {\n\tconst date = props.cursor.clone().endOf('week');\n\tif (isDateDisabled(date)) return;\n\temit('update:cursor', date);\n\tfocusOnCursor();\n};\nconst onHome = () => {\n\tconst date = props.cursor.clone().startOf('week');\n\tif (isDateDisabled(date)) return;\n\temit('update:cursor', date);\n\tfocusOnCursor();\n};\nconst onPageUp = (event: KeyboardEvent) => {\n\tif (event.shiftKey) {\n\t\tconst date = props.cursor.clone().subtract(1, 'year');\n\t\tif (isDateDisabled(date)) return;\n\t\temit('update:cursor', date);\n\t} else {\n\t\tconst date = props.cursor.clone().subtract(1, 'month');\n\t\tif (isDateDisabled(date)) return;\n\t\temit('update:cursor', date);\n\t}\n\tfocusOnCursor();\n};\nconst onPageDown = (event: KeyboardEvent) => {\n\tif (event.shiftKey) {\n\t\tconst date = props.cursor.clone().add(1, 'year');\n\t\tif (isDateDisabled(date)) return;\n\t\temit('update:cursor', date);\n\t} else {\n\t\tconst date = props.cursor.clone().add(1, 'month');\n\t\tif (isDateDisabled(date)) return;\n\t\temit('update:cursor', date);\n\t}\n\tfocusOnCursor();\n};\n</script>\n\n<style lang=\"postcss\">\n.bb-base-date-picker {\n\t--cell-height: 32px;\n\n\t&__days-selector {\n\t\t@apply opacity-100;\n\t\ttransition: opacity 500ms 150ms;\n\t\tposition: relative;\n\t\tmin-height: calc(var(--cell-height) * 7);\n\n\t\t&--hidden {\n\t\t\t@apply opacity-0;\n\t\t\ttransition: opacity 500ms 0ms;\n\t\t}\n\t}\n\t&__month {\n\t\t@apply absolute top-0 inline-block w-full;\n\t}\n\t&__header-container {\n\t\t@apply flex;\n\t}\n\t&__header-cell {\n\t\t@apply flex h-[--cell-height] flex-auto items-center justify-center text-xs font-semibold text-gray-700;\n\t}\n\t&__week {\n\t\t@apply flex;\n\t}\n\t&__date {\n\t\t@apply h-[--cell-height] flex-1 text-center text-xs text-[--bb-date-picker-other-day-btn-text] transition-colors;\n\n\t\t&.bb-base-date-picker__date--first:not([class*='--last']) {\n\t\t\t.bb-base-date-picker__date-button {\n\t\t\t}\n\t\t}\n\t\t&.bb-base-date-picker__date--middle {\n\t\t\tbackground-color: rgba(var(--bb-ui-primary-color), 0.1);\n\t\t\t.bb-base-date-picker__date-button {\n\t\t\t}\n\t\t}\n\t\t&.bb-base-date-picker__date--last:not([class*='--first']) {\n\t\t\t.bb-base-date-picker__date-button {\n\t\t\t}\n\t\t}\n\t\t&.bb-base-date-picker__date--highlighted {\n\t\t\t@apply text-[--bb-date-picker-day-btn-text];\n\n\t\t\t.bb-base-date-picker__date-button {\n\t\t\t\t@apply ring-[rgba(var(--bb-ui-primary-color),0.3)] focus-visible:outline-none focus-visible:ring;\n\t\t\t\t&:hover:not(:disabled) {\n\t\t\t\t\tbackground-color: rgba(var(--bb-ui-primary-color), 0.15);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t&.bb-base-date-picker__date--disabled {\n\t\t\t.bb-base-date-picker__date-button {\n\t\t\t\t@apply opacity-40;\n\t\t\t}\n\t\t}\n\t\t&.bb-base-date-picker__date--today {\n\t\t\t.bb-base-date-picker__date-button {\n\t\t\t\tcolor: rgba(var(--bb-ui-primary-color), 1);\n\t\t\t\tborder: 1px solid rgba(var(--bb-ui-primary-color), 0.2);\n\t\t\t}\n\t\t\t&.bb-base-date-picker__date--middle {\n\t\t\t\t.bb-base-date-picker__date-button {\n\t\t\t\t\tbackground-color: rgba(var(--bb-ui-primary-color), 0.2);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t&.bb-base-date-picker__date--current {\n\t\t\t.bb-base-date-picker__date-button:not(:disabled) {\n\t\t\t\t@apply text-black;\n\t\t\t\tbackground-color: rgba(var(--bb-ui-primary-color), 0.25);\n\t\t\t}\n\t\t}\n\t\t&.bb-base-date-picker__date--selected {\n\t\t\t.bb-base-date-picker__date-button {\n\t\t\t\t@apply text-[--bb-ui-primary-contrasting];\n\t\t\t\tbackground-color: rgba(var(--bb-ui-primary-color));\n\t\t\t\t&:hover:not(:disabled) {\n\t\t\t\t\tbackground-color: rgba(var(--bb-ui-primary-color));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&-button {\n\t\t\t@apply inline-block h-full w-[--cell-height] rounded-[--bb-date-picker-day-btn-radius] transition-all;\n\t\t\tbox-shadow: 0px 0px 0px black;\n\t\t\t&:hover:not(:disabled) {\n\t\t\t\tbackground-color: rgba(var(--bb-ui-primary-color), 0.05);\n\t\t\t}\n\t\t}\n\t}\n}\n</style>\n"],"names":["props","__props","emit","__emit","calendar","ref","today","dayjs","modelValueMetadata","computed","min","max","selected","identity","value","date","item","index","isNotNil","mappedHeaders","_","day","dates","year","month","firstValueToDisplay","lastValueToDisplay","currentAtMidnight","datesInPage","mapped","id","week","first","last","middle","highlighted","isToday","current","disabled","isDateDisabled","label","chunk","passing","direction","setSlideDirection","previous","watch","updateCursor","focusOnCursor","nextTick","el","onButtonClick","event","d","onDateSelected","onDateSelectedRange","onDateSelectedMultiple","arr","sort","asString","valueToEmit","onDateSelectedSingle","onArrowRight","onArrowLeft","onArrowUp","onArrowDown","onEnd","onHome","onPageUp","onPageDown"],"mappings":"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"}
1
+ {"version":3,"file":"index227.js","sources":["../src/composables/useModalsState.ts"],"sourcesContent":["import { ref } from 'vue';\n\nconst openedModals = ref(0);\n\nconst modalHasOpened = () => {\n\topenedModals.value++;\n};\n\nconst modalHasClosed = () => {\n\topenedModals.value--;\n};\nexport const useModalsState = () => {\n\treturn { openedModals, modalHasOpened, modalHasClosed };\n};\n"],"names":["openedModals","ref","modalHasOpened","modalHasClosed","useModalsState"],"mappings":";AAEA,MAAMA,IAAeC,EAAI,CAAC,GAEpBC,IAAiB,MAAM;AACf,EAAAF,EAAA;AACd,GAEMG,IAAiB,MAAM;AACf,EAAAH,EAAA;AACd,GACaI,IAAiB,OACtB,EAAE,cAAAJ,GAAc,gBAAAE,GAAgB,gBAAAC;"}