bitboss-ui 0.2.39 → 0.2.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index10.js +1 -4
- package/dist/index10.js.map +1 -1
- package/dist/index100.js +1 -4
- package/dist/index100.js.map +1 -1
- package/dist/index101.js +3 -3
- package/dist/index101.js.map +1 -1
- package/dist/index102.js +1 -4
- package/dist/index102.js.map +1 -1
- package/dist/index103.js +2 -2
- package/dist/index103.js.map +1 -1
- package/dist/index104.js +1 -4
- package/dist/index104.js.map +1 -1
- package/dist/index105.js.map +1 -1
- package/dist/index106.js +1 -4
- package/dist/index106.js.map +1 -1
- package/dist/index107.js.map +1 -1
- package/dist/index108.js +1 -4
- package/dist/index108.js.map +1 -1
- package/dist/index109.js +1 -1
- package/dist/index109.js.map +1 -1
- package/dist/index11.js +2 -2
- package/dist/index11.js.map +1 -1
- package/dist/index110.js +1 -4
- package/dist/index110.js.map +1 -1
- package/dist/index111.js +4 -4
- package/dist/index111.js.map +1 -1
- package/dist/index112.js +1 -4
- package/dist/index112.js.map +1 -1
- package/dist/index113.js +1 -1
- package/dist/index113.js.map +1 -1
- package/dist/index114.js +1 -4
- package/dist/index114.js.map +1 -1
- package/dist/index115.js.map +1 -1
- package/dist/index116.js +1 -1
- package/dist/index116.js.map +1 -1
- package/dist/index117.js +1 -1
- package/dist/index117.js.map +1 -1
- package/dist/index118.js +1 -1
- package/dist/index118.js.map +1 -1
- package/dist/index119.js +1 -1
- package/dist/index119.js.map +1 -1
- package/dist/index12.js +1 -4
- package/dist/index12.js.map +1 -1
- package/dist/index121.js +1 -1
- package/dist/index125.js +1 -1
- package/dist/index126.js +1 -1
- package/dist/index127.js +1 -1
- package/dist/index13.js.map +1 -1
- package/dist/index131.js +2 -2
- package/dist/index14.js +1 -4
- package/dist/index14.js.map +1 -1
- package/dist/index15.js +8 -8
- package/dist/index15.js.map +1 -1
- package/dist/index158.js +1 -4
- package/dist/index158.js.map +1 -1
- package/dist/index16.js +1 -4
- package/dist/index16.js.map +1 -1
- package/dist/index160.js +1 -4
- package/dist/index160.js.map +1 -1
- package/dist/index169.js +1 -4
- package/dist/index169.js.map +1 -1
- package/dist/index17.js +6 -6
- package/dist/index17.js.map +1 -1
- package/dist/index18.js +1 -4
- package/dist/index18.js.map +1 -1
- package/dist/index183.js +1 -4
- package/dist/index183.js.map +1 -1
- package/dist/index185.js +1 -4
- package/dist/index185.js.map +1 -1
- package/dist/index19.js +3 -3
- package/dist/index19.js.map +1 -1
- package/dist/index196.js +10 -2
- package/dist/index196.js.map +1 -1
- package/dist/index197.js +3 -4
- package/dist/index197.js.map +1 -1
- package/dist/index198.js +35 -2
- package/dist/index198.js.map +1 -1
- package/dist/index199.js +6 -3
- package/dist/index199.js.map +1 -1
- package/dist/index20.js +1 -4
- package/dist/index20.js.map +1 -1
- package/dist/index200.js +232 -32
- package/dist/index200.js.map +1 -1
- package/dist/index201.js +2 -6
- package/dist/index201.js.map +1 -1
- package/dist/index202.js +4 -2
- package/dist/index202.js.map +1 -1
- package/dist/index203.js +3 -2
- package/dist/index203.js.map +1 -1
- package/dist/index204.js +3 -5
- package/dist/index204.js.map +1 -1
- package/dist/index205.js +5 -16
- package/dist/index205.js.map +1 -1
- package/dist/index206.js +10 -10
- package/dist/index206.js.map +1 -1
- package/dist/index207.js +15 -18
- package/dist/index207.js.map +1 -1
- package/dist/index208.js +18 -19
- package/dist/index208.js.map +1 -1
- package/dist/index209.js +15 -24
- package/dist/index209.js.map +1 -1
- package/dist/index21.js +2 -2
- package/dist/index21.js.map +1 -1
- package/dist/index210.js +29 -8
- package/dist/index210.js.map +1 -1
- package/dist/index211.js +8 -2
- package/dist/index211.js.map +1 -1
- package/dist/index212.js +2 -235
- package/dist/index212.js.map +1 -1
- package/dist/index213.js +2 -3
- package/dist/index213.js.map +1 -1
- package/dist/index214.js +368 -3
- package/dist/index214.js.map +1 -1
- package/dist/index215.js +131 -375
- package/dist/index215.js.map +1 -1
- package/dist/index216.js +2 -134
- package/dist/index216.js.map +1 -1
- package/dist/index219.js +1 -1
- package/dist/index219.js.map +1 -1
- package/dist/index22.js +1 -4
- package/dist/index22.js.map +1 -1
- package/dist/index220.js +2 -2
- package/dist/index220.js.map +1 -1
- package/dist/index221.js +2 -10
- package/dist/index221.js.map +1 -1
- package/dist/index222.js +8 -27
- package/dist/index222.js.map +1 -1
- package/dist/index223.js +120 -16
- package/dist/index223.js.map +1 -1
- package/dist/index224.js +6 -9
- package/dist/index224.js.map +1 -1
- package/dist/index225.js +16 -120
- package/dist/index225.js.map +1 -1
- package/dist/index226.js +2 -2
- package/dist/index226.js.map +1 -1
- package/dist/index227.js +2 -4
- package/dist/index227.js.map +1 -1
- package/dist/index228.js +151 -426
- package/dist/index228.js.map +1 -1
- package/dist/index229.js +1 -91
- package/dist/index229.js.map +1 -1
- package/dist/index23.js +1 -1
- package/dist/index23.js.map +1 -1
- package/dist/index230.js +68 -199
- package/dist/index230.js.map +1 -1
- package/dist/index231.js +5 -295
- package/dist/index231.js.map +1 -1
- package/dist/index232.js +14 -5
- package/dist/index232.js.map +1 -1
- package/dist/index233.js +435 -2
- package/dist/index233.js.map +1 -1
- package/dist/index234.js +89 -2
- package/dist/index234.js.map +1 -1
- package/dist/index235.js +4 -2
- package/dist/index235.js.map +1 -1
- package/dist/index236.js +200 -2
- package/dist/index236.js.map +1 -1
- package/dist/index237.js +224 -2
- package/dist/index237.js.map +1 -1
- package/dist/index238.js +258 -2
- package/dist/index238.js.map +1 -1
- package/dist/index239.js +295 -2
- package/dist/index239.js.map +1 -1
- package/dist/index24.js +1 -4
- package/dist/index24.js.map +1 -1
- package/dist/index240.js +6 -160
- package/dist/index240.js.map +1 -1
- package/dist/index241.js +2 -2
- package/dist/index242.js +2 -69
- package/dist/index242.js.map +1 -1
- package/dist/index243.js +2 -5
- package/dist/index243.js.map +1 -1
- package/dist/index244.js +2 -224
- package/dist/index244.js.map +1 -1
- package/dist/index245.js +2 -258
- package/dist/index245.js.map +1 -1
- package/dist/index246.js +2 -2
- package/dist/index247.js +2 -117
- package/dist/index247.js.map +1 -1
- package/dist/index248.js +2 -106
- package/dist/index248.js.map +1 -1
- package/dist/index249.js +117 -2
- package/dist/index249.js.map +1 -1
- package/dist/index25.js +2 -2
- package/dist/index25.js.map +1 -1
- package/dist/index250.js +105 -37
- package/dist/index250.js.map +1 -1
- package/dist/index251.js +4 -2
- package/dist/index251.js.map +1 -1
- package/dist/index252.js +4 -2
- package/dist/index252.js.map +1 -1
- package/dist/index253.js +60 -14
- package/dist/index253.js.map +1 -1
- package/dist/index254.js +3 -2
- package/dist/index254.js.map +1 -1
- package/dist/index255.js +2 -3
- package/dist/index255.js.map +1 -1
- package/dist/index26.js +1 -4
- package/dist/index26.js.map +1 -1
- package/dist/index27.js.map +1 -1
- package/dist/index28.js +1 -4
- package/dist/index28.js.map +1 -1
- package/dist/index29.js +3 -3
- package/dist/index29.js.map +1 -1
- package/dist/index30.js +1 -4
- package/dist/index30.js.map +1 -1
- package/dist/index31.js +19 -19
- package/dist/index31.js.map +1 -1
- package/dist/index32.js +1 -4
- package/dist/index32.js.map +1 -1
- package/dist/index33.js +2 -2
- package/dist/index33.js.map +1 -1
- package/dist/index34.js +1 -4
- package/dist/index34.js.map +1 -1
- package/dist/index35.js +2 -2
- package/dist/index35.js.map +1 -1
- package/dist/index36.js +1 -4
- package/dist/index36.js.map +1 -1
- package/dist/index37.js.map +1 -1
- package/dist/index38.js +1 -4
- package/dist/index38.js.map +1 -1
- package/dist/index39.js.map +1 -1
- package/dist/index40.js +1 -4
- package/dist/index40.js.map +1 -1
- package/dist/index41.js.map +1 -1
- package/dist/index42.js +1 -4
- package/dist/index42.js.map +1 -1
- package/dist/index43.js.map +1 -1
- package/dist/index44.js +1 -4
- package/dist/index44.js.map +1 -1
- package/dist/index45.js.map +1 -1
- package/dist/index46.js +1 -4
- package/dist/index46.js.map +1 -1
- package/dist/index47.js +1 -1
- package/dist/index47.js.map +1 -1
- package/dist/index48.js +1 -4
- package/dist/index48.js.map +1 -1
- package/dist/index49.js +1 -1
- package/dist/index49.js.map +1 -1
- package/dist/index50.js +1 -4
- package/dist/index50.js.map +1 -1
- package/dist/index51.js.map +1 -1
- package/dist/index52.js +1 -4
- package/dist/index52.js.map +1 -1
- package/dist/index53.js.map +1 -1
- package/dist/index54.js +1 -4
- package/dist/index54.js.map +1 -1
- package/dist/index55.js.map +1 -1
- package/dist/index56.js +1 -4
- package/dist/index56.js.map +1 -1
- package/dist/index57.js.map +1 -1
- package/dist/index58.js +1 -4
- package/dist/index58.js.map +1 -1
- package/dist/index59.js.map +1 -1
- package/dist/index60.js +1 -4
- package/dist/index60.js.map +1 -1
- package/dist/index61.js.map +1 -1
- package/dist/index62.js +1 -4
- package/dist/index62.js.map +1 -1
- package/dist/index63.js.map +1 -1
- package/dist/index64.js +1 -4
- package/dist/index64.js.map +1 -1
- package/dist/index65.js +3 -3
- package/dist/index65.js.map +1 -1
- package/dist/index66.js +1 -4
- package/dist/index66.js.map +1 -1
- package/dist/index67.js.map +1 -1
- package/dist/index68.js +1 -4
- package/dist/index68.js.map +1 -1
- package/dist/index69.js +13 -13
- package/dist/index69.js.map +1 -1
- package/dist/index70.js +1 -4
- package/dist/index70.js.map +1 -1
- package/dist/index71.js.map +1 -1
- package/dist/index72.js +1 -1
- package/dist/index72.js.map +1 -1
- package/dist/index73.js.map +1 -1
- package/dist/index74.js +1 -4
- package/dist/index74.js.map +1 -1
- package/dist/index75.js +1 -1
- package/dist/index75.js.map +1 -1
- package/dist/index76.js +1 -4
- package/dist/index76.js.map +1 -1
- package/dist/index77.js.map +1 -1
- package/dist/index78.js +1 -4
- package/dist/index78.js.map +1 -1
- package/dist/index79.js +3 -3
- package/dist/index79.js.map +1 -1
- package/dist/index80.js +1 -4
- package/dist/index80.js.map +1 -1
- package/dist/index81.js +1 -1
- package/dist/index81.js.map +1 -1
- package/dist/index82.js +1 -4
- package/dist/index82.js.map +1 -1
- package/dist/index83.js.map +1 -1
- package/dist/index84.js +1 -4
- package/dist/index84.js.map +1 -1
- package/dist/index85.js.map +1 -1
- package/dist/index86.js +1 -4
- package/dist/index86.js.map +1 -1
- package/dist/index87.js.map +1 -1
- package/dist/index88.js +1 -4
- package/dist/index88.js.map +1 -1
- package/dist/index89.js.map +1 -1
- package/dist/index9.js.map +1 -1
- package/dist/index90.js +1 -4
- package/dist/index90.js.map +1 -1
- package/dist/index91.js.map +1 -1
- package/dist/index92.js +1 -4
- package/dist/index92.js.map +1 -1
- package/dist/index93.js.map +1 -1
- package/dist/index94.js +1 -4
- package/dist/index94.js.map +1 -1
- package/dist/index95.js.map +1 -1
- package/dist/index96.js +1 -4
- package/dist/index96.js.map +1 -1
- package/dist/index97.js.map +1 -1
- package/dist/index98.js +1 -4
- package/dist/index98.js.map +1 -1
- package/dist/index99.js.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +33 -35
package/dist/index33.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index33.js","sources":["../src/components/BaseSlider/BaseSlider.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, createElementVNode as _createElementVNode, normalizeProps as _normalizeProps, guardReactiveProps as _guardReactiveProps, normalizeStyle as _normalizeStyle, unref as _unref, mergeProps as _mergeProps, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"bb-base-slider__slider-container\" }\nconst _hoisted_2 = [\"id\", \"disabled\", \"name\", \"readonly\", \"value\"]\nconst _hoisted_3 = [\"aria-readonly\", \"aria-valuemax\", \"aria-valuemin\", \"aria-valuenow\", \"tabindex\"]\n\nimport { clamp } from '@/utilities/functions/clamp';\nimport { computed, onMounted, ref, watchEffect } from 'vue';\nimport { isCssColor } from '@/utilities/functions/isCssColor';\nimport { isNil } from '@/utilities/functions/isNil';\nimport { transposeValue } from '@/utilities/functions/percentage';\nimport type { InputHTMLAttributes, HTMLAttributes } from 'vue';\n\nexport type BaseSliderProps = {\n\t/**\n\t * Sets autofocus on page load.\n\t */\n\tautofocus?: InputHTMLAttributes['autofocus'];\n\n\t/**\n\t * Define a color for the component.\n\t *\n\t * Either a custom color or a coded color in common HEX, RGB, etc... format.\n\t */\n\tcolor?: string;\n\n\t/**\n\t * Disables the component\n\t */\n\tdisabled?: boolean;\n\n\t/**\n\t * Define if the component should be in an error state.\n\t * It usually attaches a CSS class for styling purposes.\n\t */\n\thasErrors?: boolean;\n\n\t/**\n\t * The identifier of the component.\n\t */\n\tid?: HTMLAttributes['id'];\n\n\t/**\n\t * Maximum value cap.\n\t */\n\tmax?: number;\n\n\t/**\n\t * Minimum value cap.\n\t */\n\tmin?: number;\n\n\t/**\n\t * Used by v-model.\n\t */\n\tmodelValue: number | string | null;\n\n\t/**\n\t * Defines the name of the input.\n\t */\n\tname?: InputHTMLAttributes['name'];\n\n\t/**\n\t * Sets the input in a readonly state.\n\t */\n\treadonly?: InputHTMLAttributes['readonly'];\n\n\t/**\n\t * The step attribute is a number that specifies the granularity that the value must adhere to.\n\t */\n\tstep?: number;\n};\n\nexport type BaseSliderEvents = {\n\t(e: 'click', event: MouseEvent): void;\n\t(e: 'end', value: BaseSliderProps['modelValue']): void;\n\t(e: 'focus', event: FocusEvent): void;\n\t(e: 'inactive'): void;\n\t(e: 'keydown', event: KeyboardEvent): void;\n\t(e: 'pointerdown', event: PointerEvent): void;\n\t(e: 'pointermove', event: PointerEvent): void;\n\t(e: 'pointerup', event: PointerEvent): void;\n\t(e: 'start', value: BaseSliderProps['modelValue']): void;\n\t(e: 'update:modelValue', event: number): void;\n};\n\nexport type BaseSliderSlots = {\n\tappend: (props: {}) => any;\n\n\tprepend: (props: {}) => any;\n};\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'BaseSlider',\n props: {\n autofocus: {},\n color: {},\n disabled: { type: Boolean },\n hasErrors: { type: Boolean },\n id: {},\n max: { default: 100 },\n min: { default: 0 },\n modelValue: { default: 0 },\n name: {},\n readonly: {},\n step: { default: 1 }\n },\n emits: [\"click\", \"end\", \"focus\", \"inactive\", \"keydown\", \"pointerdown\", \"pointermove\", \"pointerup\", \"start\", \"update:modelValue\"],\n setup(__props: any, { emit: __emit }) {\n\nconst props = __props;\n\nconst emit = __emit;\n\n\n\nconst container = ref<HTMLElement>();\nconst track = ref<HTMLElement>();\nconst thumb = ref<HTMLElement>();\nconst internalValue = ref(0);\n\nconst active = ref(false);\n\nonMounted(() => {\n\tif (props.autofocus) {\n\t\tthumb.value?.focus();\n\t}\n});\n\nwatchEffect(() => {\n\t// Useful for ranges from negative to positive\n\tlet value = isNil(props.modelValue) ? props.min : Number(props.modelValue);\n\tconst transposedValue = transposeValue({\n\t\tvalue,\n\t\ttargetBounds: { min: 0, max: 100 },\n\t\toriginalBounds: { min: props.min, max: props.max },\n\t\tstep: 1,\n\t});\n\tinternalValue.value = transposedValue;\n});\n\nlet thumbPressed = ref(false);\n// Listen on doc to avoid releasing if user leaves thumb while dragging\nconst onPointerdown = (event: PointerEvent) => {\n\tif (props.disabled || props.readonly) return;\n\tthumbPressed.value = true;\n\tdocument.addEventListener('pointermove', onPointermove);\n\tdocument.addEventListener('pointerup', onPointerup);\n\n\temit('pointerdown', event);\n\temit('start', props.modelValue);\n};\n\nconst onPointermove = (event: PointerEvent | MouseEvent) => {\n\tif (props.disabled || props.readonly) return;\n\tif (track.value) {\n\t\tconst trackPosition = track.value.getBoundingClientRect();\n\t\tconst clickOffset = event.clientX;\n\t\tconst trackStart = trackPosition.left;\n\t\tconst trackLength = trackPosition.width;\n\t\tconst transposed = transposeValue({\n\t\t\tvalue: clamp(clickOffset, trackStart, trackStart + trackLength),\n\t\t\toriginalBounds: { min: trackStart, max: trackStart + trackLength },\n\t\t\ttargetBounds: { min: props.min, max: props.max },\n\t\t\tstep: props.step,\n\t\t});\n\t\tif (event instanceof PointerEvent) {\n\t\t\temit('pointermove', event);\n\t\t} else {\n\t\t\temit('click', event);\n\t\t}\n\t\temit('update:modelValue', transposed);\n\t}\n};\n\nconst onPointerup = (event: PointerEvent) => {\n\tthumbPressed.value = false;\n\tdocument.removeEventListener('pointermove', onPointermove);\n\tdocument.removeEventListener('pointerup', onPointerup);\n\temit('pointerup', event);\n\temit('end', props.modelValue);\n};\nlet listeners = computed(() => (thumbPressed.value ? {} : { onPointerdown }));\n\nconst onKeydown = (event: KeyboardEvent) => {\n\temit('keydown', event);\n\tif (\n\t\tprops.disabled ||\n\t\tprops.readonly ||\n\t\t(event.key !== 'ArrowLeft' && event.key !== 'ArrowRight')\n\t)\n\t\treturn;\n\tlet value = Number(props.modelValue);\n\tif (event.key === 'ArrowLeft') {\n\t\tvalue = Math.max(value - props.step, props.min);\n\t} else if (event.key === 'ArrowRight') {\n\t\tvalue = Math.min(value + props.step, props.max);\n\t}\n\temit('update:modelValue', value);\n};\n\nconst onFocus = (event: FocusEvent) => {\n\temit('focus', event);\n\tif (!active.value) {\n\t\tactive.value = true;\n\t\tdocument.addEventListener('focusin', onDocumentFocus);\n\t\tdocument.addEventListener('click', onDocumentClick);\n\t}\n};\n\nconst onDocumentFocus = (event: FocusEvent) => {\n\tif (event.target instanceof HTMLElement) {\n\t\tif (!container.value?.contains(event.target)) {\n\t\t\tactive.value = false;\n\t\t\temit('inactive');\n\t\t\tdocument.removeEventListener('focusin', onDocumentFocus);\n\t\t\tdocument.removeEventListener('click', onDocumentClick);\n\t\t}\n\t}\n};\n\nconst onDocumentClick = (event: MouseEvent) => {\n\tif (event.target instanceof HTMLElement) {\n\t\tif (!container.value?.contains(event.target)) {\n\t\t\tactive.value = false;\n\t\t\temit('inactive');\n\t\t\tdocument.removeEventListener('focusin', onDocumentFocus);\n\t\t\tdocument.removeEventListener('click', onDocumentClick);\n\t\t}\n\t}\n};\n\nconst containerAttributes = {\n\tclass: {\n\t\t'bb-base-slider': true,\n\t\t'bb-base-slider--disabled': props.disabled,\n\t\t'bb-base-slider--errors': props.hasErrors,\n\t\t'bb-base-slider--readonly': props.readonly,\n\t\t[`bb-base-slider--${props.color}`]: props.color && !isCssColor(props.color),\n\t},\n\tonClick: (event: MouseEvent) => {\n\t\tonPointermove(event);\n\t\tthumb.value?.focus();\n\t},\n};\n\nconst sliderBackgroundAttributes = computed(() => {\n\tconst classes = 'bb-base-slider__track-background';\n\tconst style: Record<string, any> = {\n\t\twidth: `${internalValue.value}%`,\n\t};\n\tif (props.color && isCssColor(props.color)) {\n\t\tstyle.backgroundColor = props.color;\n\t}\n\treturn {\n\t\tclass: classes,\n\t\tstyle,\n\t};\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"span\", _mergeProps(containerAttributes, {\n ref_key: \"container\",\n ref: container\n }), [\n _renderSlot(_ctx.$slots, \"prepend\"),\n _createElementVNode(\"span\", _hoisted_1, [\n _createElementVNode(\"input\", {\n id: _ctx.id,\n disabled: _ctx.disabled,\n name: _ctx.name,\n readonly: _ctx.readonly,\n tabindex: -1,\n type: 'hidden',\n value: _ctx.modelValue\n }, null, 8, _hoisted_2),\n _createElementVNode(\"span\", {\n ref_key: \"track\",\n ref: track,\n class: \"bb-base-slider__track-container\"\n }, [\n _createElementVNode(\"span\", _normalizeProps(_guardReactiveProps(sliderBackgroundAttributes.value)), null, 16),\n _createElementVNode(\"span\", {\n class: \"bb-base-slider__track-fill\",\n style: _normalizeStyle({ width: `${100 - internalValue.value}%` })\n }, null, 4)\n ], 512),\n _createElementVNode(\"span\", _mergeProps(_unref(listeners), {\n ref_key: \"thumb\",\n ref: thumb,\n \"aria-label\": 'thumb-color',\n \"aria-orientation\": 'horizontal',\n \"aria-readonly\": !_ctx.readonly,\n \"aria-valuemax\": _ctx.max,\n \"aria-valuemin\": _ctx.min,\n \"aria-valuenow\": _ctx.modelValue ?? undefined,\n class: 'bb-base-slider__thumb-container',\n role: 'slider',\n style: { left: `${internalValue.value}%` },\n tabindex: _ctx.disabled ? -1 : 0,\n onFocus: onFocus,\n onKeydown: onKeydown\n }), [\n _createElementVNode(\"span\", {\n class: \"bb-base-slider__thumb\",\n style: _normalizeStyle({\n\t\t\t\t\t\ttransform: `translateY(-50%) translateX(-${internalValue.value}%)`,\n\t\t\t\t\t\tleft: `${internalValue.value}%`,\n\t\t\t\t\t})\n }, null, 4)\n ], 16, _hoisted_3)\n ]),\n _renderSlot(_ctx.$slots, \"append\")\n ], 16))\n}\n}\n\n})"],"names":["_hoisted_1","_hoisted_2","_hoisted_3","_sfc_main","_defineComponent","__props","__emit","props","emit","container","ref","track","thumb","internalValue","active","onMounted","_a","watchEffect","value","isNil","transposedValue","transposeValue","thumbPressed","onPointerdown","event","onPointermove","onPointerup","trackPosition","clickOffset","trackStart","trackLength","transposed","clamp","listeners","computed","onKeydown","onFocus","onDocumentFocus","onDocumentClick","containerAttributes","isCssColor","sliderBackgroundAttributes","classes","style","_ctx","_cache","_openBlock","_createElementBlock","_mergeProps","_renderSlot","_createElementVNode","_normalizeProps","_guardReactiveProps","_normalizeStyle","_unref"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index33.js","sources":["../src/components/BaseSlider/BaseSlider.vue"],"sourcesContent":["<template>\n\t<span v-bind=\"containerAttributes\" ref=\"container\">\n\t\t<slot name=\"prepend\"></slot>\n\t\t<span class=\"bb-base-slider__slider-container\">\n\t\t\t<input\n\t\t\t\t:id=\"id\"\n\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t:name=\"name\"\n\t\t\t\t:readonly=\"readonly\"\n\t\t\t\t:tabindex=\"-1\"\n\t\t\t\t:type=\"'hidden'\"\n\t\t\t\t:value=\"modelValue\"\n\t\t\t/>\n\t\t\t<span ref=\"track\" class=\"bb-base-slider__track-container\">\n\t\t\t\t<!-- Width will be value -->\n\t\t\t\t<span v-bind=\"sliderBackgroundAttributes\"></span>\n\t\t\t\t<span\n\t\t\t\t\tclass=\"bb-base-slider__track-fill\"\n\t\t\t\t\t:style=\"{ width: `${100 - internalValue}%` }\"\n\t\t\t\t></span>\n\t\t\t</span>\n\t\t\t<span\n\t\t\t\tv-bind=\"listeners\"\n\t\t\t\tref=\"thumb\"\n\t\t\t\t:aria-label=\"'thumb-color'\"\n\t\t\t\t:aria-orientation=\"'horizontal'\"\n\t\t\t\t:aria-readonly=\"!readonly\"\n\t\t\t\t:aria-valuemax=\"max\"\n\t\t\t\t:aria-valuemin=\"min\"\n\t\t\t\t:aria-valuenow=\"modelValue ?? undefined\"\n\t\t\t\t:class=\"'bb-base-slider__thumb-container'\"\n\t\t\t\t:role=\"'slider'\"\n\t\t\t\t:style=\"{ left: `${internalValue}%` }\"\n\t\t\t\t:tabindex=\"disabled ? -1 : 0\"\n\t\t\t\t@focus=\"onFocus\"\n\t\t\t\t@keydown=\"onKeydown\"\n\t\t\t>\n\t\t\t\t<!-- Dynamically traslate thumb so it doesn't overflow the track -->\n\t\t\t\t<span\n\t\t\t\t\tclass=\"bb-base-slider__thumb\"\n\t\t\t\t\t:style=\"{\n\t\t\t\t\t\ttransform: `translateY(-50%) translateX(-${internalValue}%)`,\n\t\t\t\t\t\tleft: `${internalValue}%`,\n\t\t\t\t\t}\"\n\t\t\t\t></span>\n\t\t\t</span>\n\t\t</span>\n\t\t<slot name=\"append\"></slot>\n\t</span>\n</template>\n\n<script setup lang=\"ts\">\nimport { clamp } from '@/utilities/functions/clamp';\nimport { computed, onMounted, ref, watchEffect } from 'vue';\nimport { isCssColor } from '@/utilities/functions/isCssColor';\nimport { isNil } from '@/utilities/functions/isNil';\nimport { transposeValue } from '@/utilities/functions/percentage';\nimport type { InputHTMLAttributes, HTMLAttributes } from 'vue';\n\nexport type BaseSliderProps = {\n\t/**\n\t * Sets autofocus on page load.\n\t */\n\tautofocus?: InputHTMLAttributes['autofocus'];\n\n\t/**\n\t * Define a color for the component.\n\t *\n\t * Either a custom color or a coded color in common HEX, RGB, etc... format.\n\t */\n\tcolor?: string;\n\n\t/**\n\t * Disables the component\n\t */\n\tdisabled?: boolean;\n\n\t/**\n\t * Define if the component should be in an error state.\n\t * It usually attaches a CSS class for styling purposes.\n\t */\n\thasErrors?: boolean;\n\n\t/**\n\t * The identifier of the component.\n\t */\n\tid?: HTMLAttributes['id'];\n\n\t/**\n\t * Maximum value cap.\n\t */\n\tmax?: number;\n\n\t/**\n\t * Minimum value cap.\n\t */\n\tmin?: number;\n\n\t/**\n\t * Used by v-model.\n\t */\n\tmodelValue: number | string | null;\n\n\t/**\n\t * Defines the name of the input.\n\t */\n\tname?: InputHTMLAttributes['name'];\n\n\t/**\n\t * Sets the input in a readonly state.\n\t */\n\treadonly?: InputHTMLAttributes['readonly'];\n\n\t/**\n\t * The step attribute is a number that specifies the granularity that the value must adhere to.\n\t */\n\tstep?: number;\n};\n\nconst props = withDefaults(defineProps<BaseSliderProps>(), {\n\tmax: 100,\n\tmin: 0,\n\tmodelValue: 0,\n\tstep: 1,\n});\n\nexport type BaseSliderEvents = {\n\t(e: 'click', event: MouseEvent): void;\n\t(e: 'end', value: BaseSliderProps['modelValue']): void;\n\t(e: 'focus', event: FocusEvent): void;\n\t(e: 'inactive'): void;\n\t(e: 'keydown', event: KeyboardEvent): void;\n\t(e: 'pointerdown', event: PointerEvent): void;\n\t(e: 'pointermove', event: PointerEvent): void;\n\t(e: 'pointerup', event: PointerEvent): void;\n\t(e: 'start', value: BaseSliderProps['modelValue']): void;\n\t(e: 'update:modelValue', event: number): void;\n};\n\nconst emit = defineEmits<BaseSliderEvents>();\n\nexport type BaseSliderSlots = {\n\tappend: (props: {}) => any;\n\n\tprepend: (props: {}) => any;\n};\n\ndefineSlots<BaseSliderSlots>();\n\nconst container = ref<HTMLElement>();\nconst track = ref<HTMLElement>();\nconst thumb = ref<HTMLElement>();\nconst internalValue = ref(0);\n\nconst active = ref(false);\n\nonMounted(() => {\n\tif (props.autofocus) {\n\t\tthumb.value?.focus();\n\t}\n});\n\nwatchEffect(() => {\n\t// Useful for ranges from negative to positive\n\tlet value = isNil(props.modelValue) ? props.min : Number(props.modelValue);\n\tconst transposedValue = transposeValue({\n\t\tvalue,\n\t\ttargetBounds: { min: 0, max: 100 },\n\t\toriginalBounds: { min: props.min, max: props.max },\n\t\tstep: 1,\n\t});\n\tinternalValue.value = transposedValue;\n});\n\nlet thumbPressed = ref(false);\n// Listen on doc to avoid releasing if user leaves thumb while dragging\nconst onPointerdown = (event: PointerEvent) => {\n\tif (props.disabled || props.readonly) return;\n\tthumbPressed.value = true;\n\tdocument.addEventListener('pointermove', onPointermove);\n\tdocument.addEventListener('pointerup', onPointerup);\n\n\temit('pointerdown', event);\n\temit('start', props.modelValue);\n};\n\nconst onPointermove = (event: PointerEvent | MouseEvent) => {\n\tif (props.disabled || props.readonly) return;\n\tif (track.value) {\n\t\tconst trackPosition = track.value.getBoundingClientRect();\n\t\tconst clickOffset = event.clientX;\n\t\tconst trackStart = trackPosition.left;\n\t\tconst trackLength = trackPosition.width;\n\t\tconst transposed = transposeValue({\n\t\t\tvalue: clamp(clickOffset, trackStart, trackStart + trackLength),\n\t\t\toriginalBounds: { min: trackStart, max: trackStart + trackLength },\n\t\t\ttargetBounds: { min: props.min, max: props.max },\n\t\t\tstep: props.step,\n\t\t});\n\t\tif (event instanceof PointerEvent) {\n\t\t\temit('pointermove', event);\n\t\t} else {\n\t\t\temit('click', event);\n\t\t}\n\t\temit('update:modelValue', transposed);\n\t}\n};\n\nconst onPointerup = (event: PointerEvent) => {\n\tthumbPressed.value = false;\n\tdocument.removeEventListener('pointermove', onPointermove);\n\tdocument.removeEventListener('pointerup', onPointerup);\n\temit('pointerup', event);\n\temit('end', props.modelValue);\n};\nlet listeners = computed(() => (thumbPressed.value ? {} : { onPointerdown }));\n\nconst onKeydown = (event: KeyboardEvent) => {\n\temit('keydown', event);\n\tif (\n\t\tprops.disabled ||\n\t\tprops.readonly ||\n\t\t(event.key !== 'ArrowLeft' && event.key !== 'ArrowRight')\n\t)\n\t\treturn;\n\tlet value = Number(props.modelValue);\n\tif (event.key === 'ArrowLeft') {\n\t\tvalue = Math.max(value - props.step, props.min);\n\t} else if (event.key === 'ArrowRight') {\n\t\tvalue = Math.min(value + props.step, props.max);\n\t}\n\temit('update:modelValue', value);\n};\n\nconst onFocus = (event: FocusEvent) => {\n\temit('focus', event);\n\tif (!active.value) {\n\t\tactive.value = true;\n\t\tdocument.addEventListener('focusin', onDocumentFocus);\n\t\tdocument.addEventListener('click', onDocumentClick);\n\t}\n};\n\nconst onDocumentFocus = (event: FocusEvent) => {\n\tif (event.target instanceof HTMLElement) {\n\t\tif (!container.value?.contains(event.target)) {\n\t\t\tactive.value = false;\n\t\t\temit('inactive');\n\t\t\tdocument.removeEventListener('focusin', onDocumentFocus);\n\t\t\tdocument.removeEventListener('click', onDocumentClick);\n\t\t}\n\t}\n};\n\nconst onDocumentClick = (event: MouseEvent) => {\n\tif (event.target instanceof HTMLElement) {\n\t\tif (!container.value?.contains(event.target)) {\n\t\t\tactive.value = false;\n\t\t\temit('inactive');\n\t\t\tdocument.removeEventListener('focusin', onDocumentFocus);\n\t\t\tdocument.removeEventListener('click', onDocumentClick);\n\t\t}\n\t}\n};\n\nconst containerAttributes = {\n\tclass: {\n\t\t'bb-base-slider': true,\n\t\t'bb-base-slider--disabled': props.disabled,\n\t\t'bb-base-slider--errors': props.hasErrors,\n\t\t'bb-base-slider--readonly': props.readonly,\n\t\t[`bb-base-slider--${props.color}`]: props.color && !isCssColor(props.color),\n\t},\n\tonClick: (event: MouseEvent) => {\n\t\tonPointermove(event);\n\t\tthumb.value?.focus();\n\t},\n};\n\nconst sliderBackgroundAttributes = computed(() => {\n\tconst classes = 'bb-base-slider__track-background';\n\tconst style: Record<string, any> = {\n\t\twidth: `${internalValue.value}%`,\n\t};\n\tif (props.color && isCssColor(props.color)) {\n\t\tstyle.backgroundColor = props.color;\n\t}\n\treturn {\n\t\tclass: classes,\n\t\tstyle,\n\t};\n});\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BaseSlider';\n</style>\n"],"names":["props","__props","emit","__emit","container","ref","track","thumb","internalValue","active","onMounted","_a","watchEffect","value","isNil","transposedValue","transposeValue","thumbPressed","onPointerdown","event","onPointermove","onPointerup","trackPosition","clickOffset","trackStart","trackLength","transposed","clamp","listeners","computed","onKeydown","onFocus","onDocumentFocus","onDocumentClick","containerAttributes","isCssColor","sliderBackgroundAttributes","classes","style"],"mappings":"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"}
|
package/dist/index34.js
CHANGED
package/dist/index34.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index34.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index34.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/index35.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineComponent as I, ref as b, computed as n, watch as F, openBlock as m, createElementBlock as p, normalizeClass as N, normalizeProps as c, mergeProps as h, createCommentVNode as S, createElementVNode as l, renderSlot as x, guardReactiveProps as f } from "vue";
|
|
2
|
-
import { isCssColor as V } from "./
|
|
3
|
-
import { when as A } from "./
|
|
2
|
+
import { isCssColor as V } from "./index201.js";
|
|
3
|
+
import { when as A } from "./index202.js";
|
|
4
4
|
const J = { class: "bb-base-switch-container" }, M = /* @__PURE__ */ l("span", { class: "bb-base-switch-container__icon-thumb" }, null, -1), O = [
|
|
5
5
|
M
|
|
6
6
|
], H = /* @__PURE__ */ I({
|
package/dist/index35.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index35.js","sources":["../src/components/BaseSwitch/BaseSwitch.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { normalizeProps as _normalizeProps, guardReactiveProps as _guardReactiveProps, openBlock as _openBlock, createElementBlock as _createElementBlock, mergeProps as _mergeProps, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, renderSlot as _renderSlot, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = { class: \"bb-base-switch-container\" }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"bb-base-switch-container__icon-thumb\" }, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nimport { computed, ref, watch } from 'vue';\nimport { isCssColor } from '@/utilities/functions/isCssColor';\nimport { when } from '@/utilities/functions/when';\nimport type {\n\tBaseCheckboxEvents,\n\tBaseCheckboxProps,\n\tSlotAttributes,\n} from '../BaseCheckbox/BaseCheckbox.vue';\n\nexport type BaseSwitchProps = BaseCheckboxProps;\n\nexport type BaseSwitchEvents = BaseCheckboxEvents;\n\nexport type BaseSwitchSlots = {\n\ticon?: (props: SlotAttributes) => any;\n};\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'BaseSwitch',\n props: {\n autofocus: {},\n checked: {},\n color: {},\n disabled: { type: Boolean },\n falseValue: { default: false },\n hasErrors: { type: Boolean },\n id: {},\n indeterminate: {},\n name: {},\n readonly: {},\n submitWhenFalse: { type: Boolean },\n trueValue: { default: true },\n modelValue: {}\n },\n emits: [\"blur\", \"change\", \"click\", \"focus\", \"input\", \"keydown\", \"mousedown\", \"mouseup\", \"update:modelValue\"],\n setup(__props: any, { emit: __emit }) {\n\nconst props = __props;\n\nconst emit = __emit;\n\n\n\nconst checkboxInput = ref<HTMLInputElement | null>(null);\n\nconst checked = computed(() => {\n\tif (props.checked) return true;\n\treturn JSON.stringify(props.trueValue) === JSON.stringify(props.modelValue);\n});\nconst hasFocus = ref(false);\n\nconst classes = computed(() => {\n\treturn {\n\t\t'bb-base-switch': true,\n\t\t'bb-base-switch--disabled': props.disabled,\n\t\t'bb-base-switch--errors': props.hasErrors,\n\t\t'bb-base-switch--indeterminate': props.indeterminate,\n\t\t'bb-base-switch--readonly': props.readonly,\n\t\t[`bb-base-switch--${props.color}`]: props.color && !isCssColor(props.color),\n\t};\n});\n\n/**\n * This is used to keep the value compatible to common html expected values.\n * Convert to string everything that's not but do not double encode strings\n */\nconst makeInputValue = when(\n\t(item: unknown) => typeof item !== 'string',\n\tJSON.stringify\n);\n\nconst hiddenInputAttributes = computed(() => {\n\tconst value = makeInputValue(props.falseValue);\n\treturn {\n\t\tdisabled: props.disabled,\n\t\tname: props.name,\n\t\ttype: 'hidden',\n\t\tvalue: value,\n\t};\n});\n\nconst inputAttributes = computed(() => {\n\tconst value = makeInputValue(props.trueValue);\n\n\tconst onBlur = (event: FocusEvent): void => {\n\t\thasFocus.value = false;\n\t\temit('blur', event);\n\t};\n\n\tconst onChange = (event: Event): void => {\n\t\tif (event.target instanceof HTMLInputElement) {\n\t\t\tlet value = event.target.checked ? props.trueValue : props.falseValue;\n\n\t\t\temit('change', event);\n\t\t\temit('update:modelValue', value);\n\t\t}\n\t};\n\n\tconst onFocus = (event: FocusEvent): void => {\n\t\thasFocus.value = true;\n\t\temit('focus', event);\n\t};\n\n\tconst eventListeners = {\n\t\tonBlur,\n\t\tonChange,\n\t\tonClick: (event: MouseEvent) => emit('click', event),\n\t\tonFocus,\n\t\tonInput: (event: Event) => emit('input', event),\n\t\tonKeydown: (event: KeyboardEvent) => emit('keydown', event),\n\t\tonMousedown: (event: MouseEvent) => emit('mousedown', event),\n\t\tonMouseup: (event: MouseEvent) => emit('mouseup', event),\n\t};\n\n\treturn {\n\t\tautofocus: props.autofocus,\n\t\tchecked: checked.value,\n\t\t// There is no such thing as readonly checkbox so we disable and style it with css\n\t\tdisabled: props.disabled || props.readonly,\n\t\tid: props.id,\n\t\tindeterminate: props.indeterminate,\n\t\tname: props.name,\n\t\ttabindex: props.disabled ? -1 : undefined,\n\t\ttype: 'checkbox',\n\t\tvalue: value,\n\t\t...eventListeners,\n\t};\n});\n\nconst slotAttributes = computed(() => ({\n\tchecked: checked.value,\n\tdisabled: props.disabled,\n\tfalseValue: props.falseValue,\n\tfocused: hasFocus.value,\n\thasErrors: props.hasErrors,\n\tid: props.id,\n\tname: props.name,\n\tparsedValue: inputAttributes.value.value,\n\treadonly: props.readonly,\n\ttrueValue: props.trueValue,\n\tvalue: checked.value ? props.trueValue : props.falseValue,\n}));\n\nconst iconAttributes = computed(() => {\n\tlet style: { [key: string]: string } = {};\n\tif (props.color && isCssColor(props.color)) {\n\t\tstyle.color = props.color;\n\t}\n\treturn {\n\t\tclass: 'bb-base-switch-container__icon',\n\t\tstyle,\n\t};\n});\n\n/**\n * Indeterminate is a very volatile prop that is reset upon clicking,\n * this keeps the state and the prop aligned\n */\nwatch(\n\t() => [props.modelValue, props.checked, props.indeterminate],\n\t() => {\n\t\tif (checkboxInput.value) {\n\t\t\tcheckboxInput.value.indeterminate = !!props.indeterminate;\n\t\t}\n\t}\n);\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"span\", {\n class: _normalizeClass(classes.value)\n }, [\n (!checked.value && _ctx.submitWhenFalse)\n ? (_openBlock(), _createElementBlock(\"input\", _normalizeProps(_mergeProps({ key: 0 }, hiddenInputAttributes.value)), null, 16))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"input\", _mergeProps(inputAttributes.value, {\n ref_key: \"checkboxInput\",\n ref: checkboxInput\n }), null, 16),\n _createElementVNode(\"span\", _hoisted_1, [\n _renderSlot(_ctx.$slots, \"icon\", _normalizeProps(_guardReactiveProps(slotAttributes.value)), () => [\n _createElementVNode(\"span\", _normalizeProps(_guardReactiveProps(iconAttributes.value)), _hoisted_3, 16)\n ])\n ])\n ], 2))\n}\n}\n\n})"],"names":["_hoisted_1","_hoisted_2","_hoisted_3","_sfc_main","_defineComponent","__props","__emit","props","emit","checkboxInput","ref","checked","computed","hasFocus","classes","isCssColor","makeInputValue","when","item","hiddenInputAttributes","value","inputAttributes","eventListeners","event","slotAttributes","iconAttributes","style","watch","_ctx","_cache","_openBlock","_createElementBlock","_normalizeClass","_normalizeProps","_mergeProps","_createCommentVNode","_createElementVNode","_renderSlot","_guardReactiveProps"],"mappings":";;;AAGA,MAAMA,IAAa,EAAE,OAAO,8BACtBC,sBAA8C,QAAQ,EAAE,OAAO,0CAA0C,MAAM,EAAE,GACjHC,IAAa;AAAA,EACjBD;AACF,GAoB4BE,IAAiBC,gBAAAA,EAAA;AAAA,EAC3C,QAAQ;AAAA,EACR,OAAO;AAAA,IACL,WAAW,CAAC;AAAA,IACZ,SAAS,CAAC;AAAA,IACV,OAAO,CAAC;AAAA,IACR,UAAU,EAAE,MAAM,QAAQ;AAAA,IAC1B,YAAY,EAAE,SAAS,GAAM;AAAA,IAC7B,WAAW,EAAE,MAAM,QAAQ;AAAA,IAC3B,IAAI,CAAC;AAAA,IACL,eAAe,CAAC;AAAA,IAChB,MAAM,CAAC;AAAA,IACP,UAAU,CAAC;AAAA,IACX,iBAAiB,EAAE,MAAM,QAAQ;AAAA,IACjC,WAAW,EAAE,SAAS,GAAK;AAAA,IAC3B,YAAY,CAAC;AAAA,EACf;AAAA,EACA,OAAO,CAAC,QAAQ,UAAU,SAAS,SAAS,SAAS,WAAW,aAAa,WAAW,mBAAmB;AAAA,EAC3G,MAAMC,GAAc,EAAE,MAAMC,KAAU;AAExC,UAAMC,IAAQF,GAERG,IAAOF,GAIPG,IAAgBC,EAA6B,IAAI,GAEjDC,IAAUC,EAAS,MACpBL,EAAM,UAAgB,KACnB,KAAK,UAAUA,EAAM,SAAS,MAAM,KAAK,UAAUA,EAAM,UAAU,CAC1E,GACKM,IAAWH,EAAI,EAAK,GAEpBI,IAAUF,EAAS,OACjB;AAAA,MACN,kBAAkB;AAAA,MAClB,4BAA4BL,EAAM;AAAA,MAClC,0BAA0BA,EAAM;AAAA,MAChC,iCAAiCA,EAAM;AAAA,MACvC,4BAA4BA,EAAM;AAAA,MAClC,CAAC,mBAAmBA,EAAM,KAAK,EAAE,GAAGA,EAAM,SAAS,CAACQ,EAAWR,EAAM,KAAK;AAAA,IAAA,EAE3E,GAMKS,IAAiBC;AAAA,MACtB,CAACC,MAAkB,OAAOA,KAAS;AAAA,MACnC,KAAK;AAAA,IAAA,GAGAC,IAAwBP,EAAS,MAAM;AACtC,YAAAQ,IAAQJ,EAAeT,EAAM,UAAU;AACtC,aAAA;AAAA,QACN,UAAUA,EAAM;AAAA,QAChB,MAAMA,EAAM;AAAA,QACZ,MAAM;AAAA,QACN,OAAAa;AAAA,MAAA;AAAA,IACD,CACA,GAEKC,IAAkBT,EAAS,MAAM;AAChC,YAAAQ,IAAQJ,EAAeT,EAAM,SAAS,GAqBtCe,IAAiB;AAAA,QACtB,QApBc,CAACC,MAA4B;AAC3C,UAAAV,EAAS,QAAQ,IACjBL,EAAK,QAAQe,CAAK;AAAA,QAAA;AAAA,QAmBlB,UAhBgB,CAACA,MAAuB;AACpC,cAAAA,EAAM,kBAAkB,kBAAkB;AAC7C,gBAAIH,IAAQG,EAAM,OAAO,UAAUhB,EAAM,YAAYA,EAAM;AAE3D,YAAAC,EAAK,UAAUe,CAAK,GACpBf,EAAK,qBAAqBY,CAAK;AAAA,UAChC;AAAA,QAAA;AAAA,QAWA,SAAS,CAACG,MAAsBf,EAAK,SAASe,CAAK;AAAA,QACnD,SATe,CAACA,MAA4B;AAC5C,UAAAV,EAAS,QAAQ,IACjBL,EAAK,SAASe,CAAK;AAAA,QAAA;AAAA,QAQnB,SAAS,CAACA,MAAiBf,EAAK,SAASe,CAAK;AAAA,QAC9C,WAAW,CAACA,MAAyBf,EAAK,WAAWe,CAAK;AAAA,QAC1D,aAAa,CAACA,MAAsBf,EAAK,aAAae,CAAK;AAAA,QAC3D,WAAW,CAACA,MAAsBf,EAAK,WAAWe,CAAK;AAAA,MAAA;AAGjD,aAAA;AAAA,QACN,WAAWhB,EAAM;AAAA,QACjB,SAASI,EAAQ;AAAA;AAAA,QAEjB,UAAUJ,EAAM,YAAYA,EAAM;AAAA,QAClC,IAAIA,EAAM;AAAA,QACV,eAAeA,EAAM;AAAA,QACrB,MAAMA,EAAM;AAAA,QACZ,UAAUA,EAAM,WAAW,KAAK;AAAA,QAChC,MAAM;AAAA,QACN,OAAAa;AAAA,QACA,GAAGE;AAAA,MAAA;AAAA,IACJ,CACA,GAEKE,IAAiBZ,EAAS,OAAO;AAAA,MACtC,SAASD,EAAQ;AAAA,MACjB,UAAUJ,EAAM;AAAA,MAChB,YAAYA,EAAM;AAAA,MAClB,SAASM,EAAS;AAAA,MAClB,WAAWN,EAAM;AAAA,MACjB,IAAIA,EAAM;AAAA,MACV,MAAMA,EAAM;AAAA,MACZ,aAAac,EAAgB,MAAM;AAAA,MACnC,UAAUd,EAAM;AAAA,MAChB,WAAWA,EAAM;AAAA,MACjB,OAAOI,EAAQ,QAAQJ,EAAM,YAAYA,EAAM;AAAA,IAC9C,EAAA,GAEIkB,IAAiBb,EAAS,MAAM;AACrC,UAAIc,IAAmC,CAAA;AACvC,aAAInB,EAAM,SAASQ,EAAWR,EAAM,KAAK,MACxCmB,EAAM,QAAQnB,EAAM,QAEd;AAAA,QACN,OAAO;AAAA,QACP,OAAAmB;AAAA,MAAA;AAAA,IACD,CACA;AAMD,WAAAC;AAAA,MACC,MAAM,CAACpB,EAAM,YAAYA,EAAM,SAASA,EAAM,aAAa;AAAA,MAC3D,MAAM;AACL,QAAIE,EAAc,UACjBA,EAAc,MAAM,gBAAgB,CAAC,CAACF,EAAM;AAAA,MAE9C;AAAA,IAAA,GAGM,CAACqB,GAAUC,OACRC,EAAA,GAAcC,EAAoB,QAAQ;AAAA,MAChD,OAAOC,EAAgBlB,EAAQ,KAAK;AAAA,IAAA,GACnC;AAAA,MACA,CAACH,EAAQ,SAASiB,EAAK,mBACnBE,EAAc,GAAAC,EAAoB,SAASE,EAAgBC,EAAY,EAAE,KAAK,EAAE,GAAGf,EAAsB,KAAK,CAAC,GAAG,MAAM,EAAE,KAC3HgB,EAAoB,IAAI,EAAI;AAAA,MAChCC,EAAoB,SAASF,EAAYb,EAAgB,OAAO;AAAA,QAC9D,SAAS;AAAA,QACT,KAAKZ;AAAA,MAAA,CACN,GAAG,MAAM,EAAE;AAAA,MACZ2B,EAAoB,QAAQpC,GAAY;AAAA,QACtCqC,EAAYT,EAAK,QAAQ,QAAQK,EAAgBK,EAAoBd,EAAe,KAAK,CAAC,GAAG,MAAM;AAAA,UACjGY,EAAoB,QAAQH,EAAgBK,EAAoBb,EAAe,KAAK,CAAC,GAAGvB,GAAY,EAAE;AAAA,QAAA,CACvG;AAAA,MAAA,CACF;AAAA,OACA,CAAC;AAAA,EAEN;AAEA,CAAC;"}
|
|
1
|
+
{"version":3,"file":"index35.js","sources":["../src/components/BaseSwitch/BaseSwitch.vue"],"sourcesContent":["<template>\n\t<span :class=\"classes\">\n\t\t<input v-if=\"!checked && submitWhenFalse\" v-bind=\"hiddenInputAttributes\" />\n\t\t<input v-bind=\"inputAttributes\" ref=\"checkboxInput\" />\n\t\t<span class=\"bb-base-switch-container\">\n\t\t\t<slot name=\"icon\" v-bind=\"slotAttributes\">\n\t\t\t\t<span v-bind=\"iconAttributes\">\n\t\t\t\t\t<span class=\"bb-base-switch-container__icon-thumb\"></span>\n\t\t\t\t</span>\n\t\t\t</slot>\n\t\t</span>\n\t</span>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue';\nimport { isCssColor } from '@/utilities/functions/isCssColor';\nimport { when } from '@/utilities/functions/when';\nimport type {\n\tBaseCheckboxEvents,\n\tBaseCheckboxProps,\n\tSlotAttributes,\n} from '../BaseCheckbox/BaseCheckbox.vue';\n\nexport type BaseSwitchProps = BaseCheckboxProps;\n\nexport type BaseSwitchEvents = BaseCheckboxEvents;\n\nconst props = withDefaults(defineProps<BaseSwitchProps>(), {\n\ttrueValue: true,\n\tfalseValue: false,\n});\n\nconst emit = defineEmits<BaseSwitchEvents>();\n\nexport type BaseSwitchSlots = {\n\ticon?: (props: SlotAttributes) => any;\n};\n\ndefineSlots<BaseSwitchSlots>();\n\nconst checkboxInput = ref<HTMLInputElement | null>(null);\n\nconst checked = computed(() => {\n\tif (props.checked) return true;\n\treturn JSON.stringify(props.trueValue) === JSON.stringify(props.modelValue);\n});\nconst hasFocus = ref(false);\n\nconst classes = computed(() => {\n\treturn {\n\t\t'bb-base-switch': true,\n\t\t'bb-base-switch--disabled': props.disabled,\n\t\t'bb-base-switch--errors': props.hasErrors,\n\t\t'bb-base-switch--indeterminate': props.indeterminate,\n\t\t'bb-base-switch--readonly': props.readonly,\n\t\t[`bb-base-switch--${props.color}`]: props.color && !isCssColor(props.color),\n\t};\n});\n\n/**\n * This is used to keep the value compatible to common html expected values.\n * Convert to string everything that's not but do not double encode strings\n */\nconst makeInputValue = when(\n\t(item: unknown) => typeof item !== 'string',\n\tJSON.stringify\n);\n\nconst hiddenInputAttributes = computed(() => {\n\tconst value = makeInputValue(props.falseValue);\n\treturn {\n\t\tdisabled: props.disabled,\n\t\tname: props.name,\n\t\ttype: 'hidden',\n\t\tvalue: value,\n\t};\n});\n\nconst inputAttributes = computed(() => {\n\tconst value = makeInputValue(props.trueValue);\n\n\tconst onBlur = (event: FocusEvent): void => {\n\t\thasFocus.value = false;\n\t\temit('blur', event);\n\t};\n\n\tconst onChange = (event: Event): void => {\n\t\tif (event.target instanceof HTMLInputElement) {\n\t\t\tlet value = event.target.checked ? props.trueValue : props.falseValue;\n\n\t\t\temit('change', event);\n\t\t\temit('update:modelValue', value);\n\t\t}\n\t};\n\n\tconst onFocus = (event: FocusEvent): void => {\n\t\thasFocus.value = true;\n\t\temit('focus', event);\n\t};\n\n\tconst eventListeners = {\n\t\tonBlur,\n\t\tonChange,\n\t\tonClick: (event: MouseEvent) => emit('click', event),\n\t\tonFocus,\n\t\tonInput: (event: Event) => emit('input', event),\n\t\tonKeydown: (event: KeyboardEvent) => emit('keydown', event),\n\t\tonMousedown: (event: MouseEvent) => emit('mousedown', event),\n\t\tonMouseup: (event: MouseEvent) => emit('mouseup', event),\n\t};\n\n\treturn {\n\t\tautofocus: props.autofocus,\n\t\tchecked: checked.value,\n\t\t// There is no such thing as readonly checkbox so we disable and style it with css\n\t\tdisabled: props.disabled || props.readonly,\n\t\tid: props.id,\n\t\tindeterminate: props.indeterminate,\n\t\tname: props.name,\n\t\ttabindex: props.disabled ? -1 : undefined,\n\t\ttype: 'checkbox',\n\t\tvalue: value,\n\t\t...eventListeners,\n\t};\n});\n\nconst slotAttributes = computed(() => ({\n\tchecked: checked.value,\n\tdisabled: props.disabled,\n\tfalseValue: props.falseValue,\n\tfocused: hasFocus.value,\n\thasErrors: props.hasErrors,\n\tid: props.id,\n\tname: props.name,\n\tparsedValue: inputAttributes.value.value,\n\treadonly: props.readonly,\n\ttrueValue: props.trueValue,\n\tvalue: checked.value ? props.trueValue : props.falseValue,\n}));\n\nconst iconAttributes = computed(() => {\n\tlet style: { [key: string]: string } = {};\n\tif (props.color && isCssColor(props.color)) {\n\t\tstyle.color = props.color;\n\t}\n\treturn {\n\t\tclass: 'bb-base-switch-container__icon',\n\t\tstyle,\n\t};\n});\n\n/**\n * Indeterminate is a very volatile prop that is reset upon clicking,\n * this keeps the state and the prop aligned\n */\nwatch(\n\t() => [props.modelValue, props.checked, props.indeterminate],\n\t() => {\n\t\tif (checkboxInput.value) {\n\t\t\tcheckboxInput.value.indeterminate = !!props.indeterminate;\n\t\t}\n\t}\n);\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BaseSwitch';\n</style>\n"],"names":["props","__props","emit","__emit","checkboxInput","ref","checked","computed","hasFocus","classes","isCssColor","makeInputValue","when","item","hiddenInputAttributes","value","inputAttributes","eventListeners","event","slotAttributes","iconAttributes","style","watch"],"mappings":"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"}
|
package/dist/index36.js
CHANGED
package/dist/index36.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index36.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index36.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/index37.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index37.js","sources":["../src/components/BaseSwitchGroup/BaseSwitchGroup.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, mergeProps as _mergeProps, withCtx as _withCtx, createSlots as _createSlots, createVNode as _createVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"bb-base-switch-group__container\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"bb-base-switch-group__loading-container\"\n}\nconst _hoisted_3 = {\n key: 1,\n class: \"bb-base-select__no-data-container\"\n}\n\nimport { ref, toRef } from 'vue';\nimport { useOptions } from '@/composables/useOptions';\nimport BaseSwitch from '../BaseSwitch/BaseSwitch.vue';\nimport type { Option } from '@/composables/useOptions';\nimport type { SlotAttributes } from '../BaseCheckbox/BaseCheckbox.vue';\nimport type {\n\tBaseCheckboxGroupEvents,\n\tBaseCheckboxGroupProps,\n} from '../BaseCheckboxGroup/BaseCheckboxGroup.vue';\n\nexport type BaseSwitchGroupEvents = BaseCheckboxGroupEvents;\n\nexport type BaseSwitchGroupProps<T> = BaseCheckboxGroupProps<T>;\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'BaseSwitchGroup',\n props: {\n autofocus: {},\n color: {},\n dependencies: {},\n depsDebounceTime: { default: 0 },\n direction: { default: 'horizontal' },\n disabled: { type: Boolean },\n enforceCoherence: { type: Boolean },\n hasErrors: { type: Boolean },\n hideLabel: { type: Boolean },\n id: {},\n items: { type: [Array, Function], default: () => [] },\n itemText: {},\n itemValue: {},\n loadingText: { default: 'Caricamento...' },\n matchStrategy: { default: 'string' },\n modelValue: {},\n modelValueDebounceTime: { default: 0 },\n name: {},\n noDataText: { default: 'Nessun elemento da visualizzare' },\n readonly: {}\n },\n emits: [\"blur\", \"change\", \"click\", \"focus\", \"inactive\", \"input\", \"keydown\", \"mousedown\", \"mouseup\", \"update:modelValue\"],\n setup(__props: any, { emit: __emit }) {\n\nconst props = __props;\n\nconst emit = __emit;\n\n\n\nconst container = ref<HTMLElement>();\nconst active = ref(false);\n\nconst { loading, options } = useOptions({\n\tdependencies: toRef(() => props.dependencies),\n\tdepsDebounceTime: props.depsDebounceTime,\n\tdisabled: toRef(() => props.disabled),\n\temitter: (value) => emit('update:modelValue', value),\n\tenforceCoherence: toRef(() => props.enforceCoherence),\n\tid: props.id,\n\timmediate: true,\n\tinitialItems: toRef(() => props.items),\n\titemText: props.itemText,\n\titemValue: props.itemValue,\n\tmatchStrategy: 'string',\n\tmodelValue: toRef(() => props.modelValue),\n\tmodelValueDebounceTime: props.modelValueDebounceTime,\n\tmultiple: true,\n});\n\n/**\n * When selecting an option split behavior based on single or multiple selection\n */\nconst onOptionSelected = (option: Option) => {\n\tlet valueToEmit;\n\tif (option.selected) {\n\t\tvalueToEmit = props.modelValue\n\t\t\t.slice(0, option.selectedIndex)\n\t\t\t.concat(props.modelValue.slice(option.selectedIndex + 1));\n\t} else {\n\t\tvalueToEmit = props.modelValue.concat(option.value);\n\t}\n\temit('update:modelValue', valueToEmit);\n};\n\nconst onChange = (event: Event, option: Option) => {\n\temit('change', event);\n\tonOptionSelected(option);\n};\n\nconst onFocus = (event: FocusEvent) => {\n\temit('focus', event);\n\tif (!active.value) {\n\t\tdocument.addEventListener('focusin', onDocumentFocus, { passive: true });\n\t\tdocument.addEventListener('click', onDocumentClick, { passive: true });\n\t\tactive.value = true;\n\t}\n};\n\nconst eventListeners = {\n\tonBlur: (event: FocusEvent) => emit('blur', event),\n\tonClick: (event: MouseEvent) => emit('click', event),\n\tonFocus,\n\tonInput: (event: Event) => emit('input', event),\n\tonKeydown: (event: KeyboardEvent) => emit('keydown', event),\n\tonMousedown: (event: MouseEvent) => emit('mousedown', event),\n\tonMouseup: (event: MouseEvent) => emit('mouseup', event),\n};\n\nconst onDocumentFocus = (event: FocusEvent) => {\n\tif (event.target instanceof HTMLElement) {\n\t\tif (!container.value?.contains(event.target)) {\n\t\t\temit('inactive');\n\t\t\tactive.value = false;\n\t\t\tdocument.removeEventListener('focusin', onDocumentFocus);\n\t\t\tdocument.removeEventListener('click', onDocumentClick);\n\t\t}\n\t}\n};\n\nconst onDocumentClick = (event: MouseEvent) => {\n\tif (event.target instanceof HTMLElement) {\n\t\tif (!container.value?.contains(event.target)) {\n\t\t\temit('inactive');\n\t\t\tactive.value = false;\n\t\t\tdocument.removeEventListener('focusin', onDocumentFocus);\n\t\t\tdocument.removeEventListener('click', onDocumentClick);\n\t\t}\n\t}\n};\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"span\", {\n ref_key: \"container\",\n ref: container,\n class: _normalizeClass([\"bb-base-switch-group\", {\n\t\t\t'bb-base-switch-group--errors': _ctx.hasErrors,\n\t\t\t'bb-base-switch-group--horizontal': _ctx.direction === 'horizontal',\n\t\t\t'bb-base-switch-group--vertical': _ctx.direction === 'vertical',\n\t\t}])\n }, [\n _createElementVNode(\"span\", _hoisted_1, [\n _renderSlot(_ctx.$slots, \"prepend\"),\n (!_unref(options).length && _unref(loading))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_2, [\n _renderSlot(_ctx.$slots, 'loading', {}, () => [\n _createTextVNode(_toDisplayString(_ctx.loadingText), 1)\n ])\n ]))\n : (!_unref(options).length)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_3, [\n _renderSlot(_ctx.$slots, 'no-data', {}, () => [\n _createTextVNode(_toDisplayString(_ctx.noDataText), 1)\n ])\n ]))\n : _createCommentVNode(\"\", true),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(options), (option, index) => {\n return (_openBlock(), _createElementBlock(_Fragment, {\n key: option?.id || option.jsonValue\n }, [\n _renderSlot(_ctx.$slots, \"option:prepend\", {\n item: option.original\n }),\n _createElementVNode(\"label\", {\n class: _normalizeClass([\"bb-base-switch-group-option\", {\n\t\t\t\t\t\t'bb-base-switch-group-option__selected': option.selected,\n\t\t\t\t\t}])\n }, [\n _createVNode(BaseSwitch, _mergeProps({\n id: option.id,\n autofocus: _ctx.autofocus && !index,\n checked: option.selected,\n color: _ctx.color,\n disabled: option.disabled,\n \"has-errors\": _ctx.hasErrors,\n name: _ctx.name,\n \"on-change\": (event) => onChange(event, option),\n readonly: _ctx.readonly,\n \"true-value\": option.value\n }, eventListeners), _createSlots({ _: 2 }, [\n (_ctx.$slots.icon)\n ? {\n name: \"icon\",\n fn: _withCtx((data) => [\n _renderSlot(_ctx.$slots, \"icon\", _mergeProps({\n item: option.original,\n text: option.text\n }, data))\n ]),\n key: \"0\"\n }\n : undefined\n ]), 1040, [\"id\", \"autofocus\", \"checked\", \"color\", \"disabled\", \"has-errors\", \"name\", \"on-change\", \"readonly\", \"true-value\"]),\n _createElementVNode(\"span\", {\n class: _normalizeClass({\n\t\t\t\t\t\t\t'bb-base-switch-group-option__text': true,\n\t\t\t\t\t\t\t'bb-base-switch-group-option__text--hidden': _ctx.hideLabel,\n\t\t\t\t\t\t})\n }, [\n _renderSlot(_ctx.$slots, \"label\", {\n checked: option.selected,\n item: option.original,\n text: option.text\n }, () => [\n _createTextVNode(_toDisplayString(option.text), 1)\n ])\n ], 2)\n ], 2),\n _renderSlot(_ctx.$slots, \"option:append\", {\n item: option.original\n })\n ], 64))\n }), 128)),\n _renderSlot(_ctx.$slots, \"append\")\n ])\n ], 2))\n}\n}\n\n})"],"names":["_hoisted_1","_hoisted_2","_hoisted_3","_sfc_main","_defineComponent","__props","__emit","props","emit","container","ref","active","loading","options","useOptions","toRef","value","onOptionSelected","option","valueToEmit","onChange","event","eventListeners","onDocumentFocus","onDocumentClick","_a","_ctx","_cache","_openBlock","_createElementBlock","_normalizeClass","_createElementVNode","_renderSlot","_unref","_createTextVNode","_toDisplayString","_createCommentVNode","_Fragment","_renderList","index","_createVNode","BaseSwitch","_mergeProps","_createSlots","_withCtx","data"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index37.js","sources":["../src/components/BaseSwitchGroup/BaseSwitchGroup.vue"],"sourcesContent":["<template>\n\t<span\n\t\tref=\"container\"\n\t\tclass=\"bb-base-switch-group\"\n\t\t:class=\"{\n\t\t\t'bb-base-switch-group--errors': hasErrors,\n\t\t\t'bb-base-switch-group--horizontal': direction === 'horizontal',\n\t\t\t'bb-base-switch-group--vertical': direction === 'vertical',\n\t\t}\"\n\t>\n\t\t<span class=\"bb-base-switch-group__container\">\n\t\t\t<slot name=\"prepend\"></slot>\n\t\t\t<span\n\t\t\t\tv-if=\"!options.length && loading\"\n\t\t\t\tclass=\"bb-base-switch-group__loading-container\"\n\t\t\t>\n\t\t\t\t<slot :name=\"'loading'\">{{ loadingText }}</slot>\n\t\t\t</span>\n\t\t\t<span\n\t\t\t\tv-else-if=\"!options.length\"\n\t\t\t\tclass=\"bb-base-select__no-data-container\"\n\t\t\t>\n\t\t\t\t<slot :name=\"'no-data'\">{{ noDataText }}</slot>\n\t\t\t</span>\n\t\t\t<template\n\t\t\t\tv-for=\"(option, index) in options\"\n\t\t\t\t:key=\"option?.id || option.jsonValue\"\n\t\t\t>\n\t\t\t\t<slot :item=\"option.original\" name=\"option:prepend\"></slot>\n\t\t\t\t<label\n\t\t\t\t\tclass=\"bb-base-switch-group-option\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t'bb-base-switch-group-option__selected': option.selected,\n\t\t\t\t\t}\"\n\t\t\t\t>\n\t\t\t\t\t<BaseSwitch\n\t\t\t\t\t\t:id=\"option.id\"\n\t\t\t\t\t\t:autofocus=\"autofocus && !index\"\n\t\t\t\t\t\t:checked=\"option.selected\"\n\t\t\t\t\t\t:color=\"color\"\n\t\t\t\t\t\t:disabled=\"option.disabled\"\n\t\t\t\t\t\t:has-errors=\"hasErrors\"\n\t\t\t\t\t\t:name=\"name\"\n\t\t\t\t\t\t:on-change=\"(event: Event) => onChange(event, option)\"\n\t\t\t\t\t\t:readonly=\"readonly\"\n\t\t\t\t\t\t:true-value=\"option.value\"\n\t\t\t\t\t\tv-bind=\"eventListeners\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<template v-if=\"$slots.icon\" #icon=\"data\">\n\t\t\t\t\t\t\t<slot\n\t\t\t\t\t\t\t\t:item=\"option.original\"\n\t\t\t\t\t\t\t\tname=\"icon\"\n\t\t\t\t\t\t\t\t:text=\"option.text\"\n\t\t\t\t\t\t\t\tv-bind=\"data\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</BaseSwitch>\n\t\t\t\t\t<span\n\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t'bb-base-switch-group-option__text': true,\n\t\t\t\t\t\t\t'bb-base-switch-group-option__text--hidden': hideLabel,\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\t><slot\n\t\t\t\t\t\t\t:checked=\"option.selected\"\n\t\t\t\t\t\t\t:item=\"option.original\"\n\t\t\t\t\t\t\tname=\"label\"\n\t\t\t\t\t\t\t:text=\"option.text\"\n\t\t\t\t\t\t\t>{{ option.text }}</slot\n\t\t\t\t\t\t></span\n\t\t\t\t\t>\n\t\t\t\t</label>\n\t\t\t\t<slot :item=\"option.original\" name=\"option:append\"></slot>\n\t\t\t</template>\n\t\t\t<slot name=\"append\"></slot>\n\t\t</span>\n\t</span>\n</template>\n\n<script setup lang=\"ts\" generic=\"T = any\">\nimport { ref, toRef } from 'vue';\nimport { useOptions } from '@/composables/useOptions';\nimport BaseSwitch from '../BaseSwitch/BaseSwitch.vue';\nimport type { Option } from '@/composables/useOptions';\nimport type { SlotAttributes } from '../BaseCheckbox/BaseCheckbox.vue';\nimport type {\n\tBaseCheckboxGroupEvents,\n\tBaseCheckboxGroupProps,\n} from '../BaseCheckboxGroup/BaseCheckboxGroup.vue';\n\nexport type BaseSwitchGroupEvents = BaseCheckboxGroupEvents;\n\nexport type BaseSwitchGroupProps<T> = BaseCheckboxGroupProps<T>;\n\nconst props = withDefaults(defineProps<BaseSwitchGroupProps<T>>(), {\n\tdepsDebounceTime: 0,\n\tdirection: 'horizontal',\n\titems: () => [],\n\tloadingText: 'Caricamento...',\n\tmatchStrategy: 'string',\n\tmodelValueDebounceTime: 0,\n\tnoDataText: 'Nessun elemento da visualizzare',\n});\n\nconst emit = defineEmits<BaseSwitchGroupEvents>();\n\ndefineSlots<{\n\tprepend?: (props: {}) => any;\n\tloading?: (props: {}) => any;\n\t'no-data'?: (props: {}) => any;\n\t'option:prepend'?: (props: { item: T }) => any;\n\ticon?: (\n\t\tprops: SlotAttributes & {\n\t\t\titem: T;\n\t\t\ttext: string;\n\t\t}\n\t) => any;\n\tlabel?: (props: { item: T; text: string; checked: boolean }) => any;\n\t'option:append'?: (props: { item: T }) => any;\n\tappend?: (props: {}) => any;\n}>();\n\nconst container = ref<HTMLElement>();\nconst active = ref(false);\n\nconst { loading, options } = useOptions({\n\tdependencies: toRef(() => props.dependencies),\n\tdepsDebounceTime: props.depsDebounceTime,\n\tdisabled: toRef(() => props.disabled),\n\temitter: (value) => emit('update:modelValue', value),\n\tenforceCoherence: toRef(() => props.enforceCoherence),\n\tid: props.id,\n\timmediate: true,\n\tinitialItems: toRef(() => props.items),\n\titemText: props.itemText,\n\titemValue: props.itemValue,\n\tmatchStrategy: 'string',\n\tmodelValue: toRef(() => props.modelValue),\n\tmodelValueDebounceTime: props.modelValueDebounceTime,\n\tmultiple: true,\n});\n\n/**\n * When selecting an option split behavior based on single or multiple selection\n */\nconst onOptionSelected = (option: Option) => {\n\tlet valueToEmit;\n\tif (option.selected) {\n\t\tvalueToEmit = props.modelValue\n\t\t\t.slice(0, option.selectedIndex)\n\t\t\t.concat(props.modelValue.slice(option.selectedIndex + 1));\n\t} else {\n\t\tvalueToEmit = props.modelValue.concat(option.value);\n\t}\n\temit('update:modelValue', valueToEmit);\n};\n\nconst onChange = (event: Event, option: Option) => {\n\temit('change', event);\n\tonOptionSelected(option);\n};\n\nconst onFocus = (event: FocusEvent) => {\n\temit('focus', event);\n\tif (!active.value) {\n\t\tdocument.addEventListener('focusin', onDocumentFocus, { passive: true });\n\t\tdocument.addEventListener('click', onDocumentClick, { passive: true });\n\t\tactive.value = true;\n\t}\n};\n\nconst eventListeners = {\n\tonBlur: (event: FocusEvent) => emit('blur', event),\n\tonClick: (event: MouseEvent) => emit('click', event),\n\tonFocus,\n\tonInput: (event: Event) => emit('input', event),\n\tonKeydown: (event: KeyboardEvent) => emit('keydown', event),\n\tonMousedown: (event: MouseEvent) => emit('mousedown', event),\n\tonMouseup: (event: MouseEvent) => emit('mouseup', event),\n};\n\nconst onDocumentFocus = (event: FocusEvent) => {\n\tif (event.target instanceof HTMLElement) {\n\t\tif (!container.value?.contains(event.target)) {\n\t\t\temit('inactive');\n\t\t\tactive.value = false;\n\t\t\tdocument.removeEventListener('focusin', onDocumentFocus);\n\t\t\tdocument.removeEventListener('click', onDocumentClick);\n\t\t}\n\t}\n};\n\nconst onDocumentClick = (event: MouseEvent) => {\n\tif (event.target instanceof HTMLElement) {\n\t\tif (!container.value?.contains(event.target)) {\n\t\t\temit('inactive');\n\t\t\tactive.value = false;\n\t\t\tdocument.removeEventListener('focusin', onDocumentFocus);\n\t\t\tdocument.removeEventListener('click', onDocumentClick);\n\t\t}\n\t}\n};\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BaseSwitchGroup';\n</style>\n"],"names":["props","__props","emit","__emit","container","ref","active","loading","options","useOptions","toRef","value","onOptionSelected","option","valueToEmit","onChange","event","eventListeners","onDocumentFocus","onDocumentClick","_a"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6FA,UAAMA,IAAQC,GAURC,IAAOC,GAkBPC,IAAYC,KACZC,IAASD,EAAI,EAAK,GAElB,EAAE,SAAAE,GAAS,SAAAC,EAAQ,IAAIC,EAAW;AAAA,MACvC,cAAcC,EAAM,MAAMV,EAAM,YAAY;AAAA,MAC5C,kBAAkBA,EAAM;AAAA,MACxB,UAAUU,EAAM,MAAMV,EAAM,QAAQ;AAAA,MACpC,SAAS,CAACW,MAAUT,EAAK,qBAAqBS,CAAK;AAAA,MACnD,kBAAkBD,EAAM,MAAMV,EAAM,gBAAgB;AAAA,MACpD,IAAIA,EAAM;AAAA,MACV,WAAW;AAAA,MACX,cAAcU,EAAM,MAAMV,EAAM,KAAK;AAAA,MACrC,UAAUA,EAAM;AAAA,MAChB,WAAWA,EAAM;AAAA,MACjB,eAAe;AAAA,MACf,YAAYU,EAAM,MAAMV,EAAM,UAAU;AAAA,MACxC,wBAAwBA,EAAM;AAAA,MAC9B,UAAU;AAAA,IAAA,CACV,GAKKY,IAAmB,CAACC,MAAmB;AACxC,UAAAC;AACJ,MAAID,EAAO,WACVC,IAAcd,EAAM,WAClB,MAAM,GAAGa,EAAO,aAAa,EAC7B,OAAOb,EAAM,WAAW,MAAMa,EAAO,gBAAgB,CAAC,CAAC,IAEzDC,IAAcd,EAAM,WAAW,OAAOa,EAAO,KAAK,GAEnDX,EAAK,qBAAqBY,CAAW;AAAA,IAAA,GAGhCC,IAAW,CAACC,GAAcH,MAAmB;AAClD,MAAAX,EAAK,UAAUc,CAAK,GACpBJ,EAAiBC,CAAM;AAAA,IAAA,GAYlBI,IAAiB;AAAA,MACtB,QAAQ,CAACD,MAAsBd,EAAK,QAAQc,CAAK;AAAA,MACjD,SAAS,CAACA,MAAsBd,EAAK,SAASc,CAAK;AAAA,MACnD,SAZe,CAACA,MAAsB;AACtC,QAAAd,EAAK,SAASc,CAAK,GACdV,EAAO,UACX,SAAS,iBAAiB,WAAWY,GAAiB,EAAE,SAAS,IAAM,GACvE,SAAS,iBAAiB,SAASC,GAAiB,EAAE,SAAS,IAAM,GACrEb,EAAO,QAAQ;AAAA,MAChB;AAAA,MAOA,SAAS,CAACU,MAAiBd,EAAK,SAASc,CAAK;AAAA,MAC9C,WAAW,CAACA,MAAyBd,EAAK,WAAWc,CAAK;AAAA,MAC1D,aAAa,CAACA,MAAsBd,EAAK,aAAac,CAAK;AAAA,MAC3D,WAAW,CAACA,MAAsBd,EAAK,WAAWc,CAAK;AAAA,IAAA,GAGlDE,IAAkB,CAACF,MAAsB;;AAC1C,MAAAA,EAAM,kBAAkB,iBACtBI,IAAAhB,EAAU,UAAV,QAAAgB,EAAiB,SAASJ,EAAM,YACpCd,EAAK,UAAU,GACfI,EAAO,QAAQ,IACN,SAAA,oBAAoB,WAAWY,CAAe,GAC9C,SAAA,oBAAoB,SAASC,CAAe;AAAA,IAEvD,GAGKA,IAAkB,CAACH,MAAsB;;AAC1C,MAAAA,EAAM,kBAAkB,iBACtBI,IAAAhB,EAAU,UAAV,QAAAgB,EAAiB,SAASJ,EAAM,YACpCd,EAAK,UAAU,GACfI,EAAO,QAAQ,IACN,SAAA,oBAAoB,WAAWY,CAAe,GAC9C,SAAA,oBAAoB,SAASC,CAAe;AAAA,IAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index38.js
CHANGED
package/dist/index38.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index38.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index38.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/index39.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index39.js","sources":["../src/components/BaseTextarea/BaseTextarea.vue
|
|
1
|
+
{"version":3,"file":"index39.js","sources":["../src/components/BaseTextarea/BaseTextarea.vue"],"sourcesContent":["<template>\n\t<span class=\"bb-base-textarea__container\" :class=\"classes\">\n\t\t<slot name=\"prepend-outer\"></slot>\n\t\t<span class=\"bb-base-textarea__inner-container\">\n\t\t\t<slot name=\"prepend\"></slot>\n\t\t\t<textarea\n\t\t\t\t:id=\"id\"\n\t\t\t\tv-bind=\"eventListeners\"\n\t\t\t\tref=\"textarea\"\n\t\t\t\t:autocomplete=\"autocomplete\"\n\t\t\t\t:autofocus=\"autofocus\"\n\t\t\t\t:class=\"'bb-base-textarea__input'\"\n\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t:name=\"name\"\n\t\t\t\t:placeholder=\"placeholder\"\n\t\t\t\t:readonly=\"readonly\"\n\t\t\t\t:value=\"modelValueWithDefault\"\n\t\t\t\t@input=\"onInput\"\n\t\t\t\t@keydown=\"onKeydown\"\n\t\t\t></textarea>\n\t\t\t<slot name=\"append\"></slot>\n\t\t</span>\n\t\t<slot name=\"append-outer\"></slot>\n\t</span>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, onMounted, ref, watch } from 'vue';\nimport type { HTMLAttributes, InputHTMLAttributes, Ref } from 'vue';\n\nexport type BaseTextareaProps = {\n\t/**\n\t * Guides to the browser as to the type of information expected in the field.\n\t */\n\tautocomplete?: InputHTMLAttributes['autocomplete'];\n\n\t/**\n\t * Sets autofocus on page load.\n\t */\n\tautofocus?: InputHTMLAttributes['autofocus'];\n\n\t/**\n\t * Disables the component\n\t */\n\tdisabled?: boolean;\n\n\t/**\n\t * Define if the component should be in an error state.\n\t * It usually attaches a CSS class for styling purposes.\n\t */\n\thasErrors?: boolean;\n\n\t/**\n\t * The identifier of the component.\n\t */\n\tid?: HTMLAttributes['id'];\n\n\t/**\n\t * Defines the name of the input.\n\t */\n\tname?: InputHTMLAttributes['name'];\n\n\t/**\n\t * String displayed when there's no data.\n\t */\n\tplaceholder?: InputHTMLAttributes['placeholder'];\n\n\t/**\n\t * Sets the input in a readonly state.\n\t */\n\treadonly?: InputHTMLAttributes['readonly'];\n\n\t/**\n\t * Expands the textarea to match its content\n\t */\n\tautoGrow?: boolean;\n\t/**\n\t * Used by v-model\n\t */\n\tmodelValue: string | null;\n};\nconst props = defineProps<BaseTextareaProps>();\n\nexport type BaseTextareaEvents = {\n\t(e: 'blur', event: FocusEvent): void;\n\t(e: 'change', event: Event): void;\n\t(e: 'click', event: MouseEvent): void;\n\t(e: 'focus', event: FocusEvent): void;\n\t(e: 'input', event: Event): void;\n\t(e: 'keydown', event: KeyboardEvent): void;\n\t(e: 'mousedown', event: MouseEvent): void;\n\t(e: 'mouseup', event: MouseEvent): void;\n\t(e: 'update:modelValue', value: string | null): void;\n};\nconst emit = defineEmits<BaseTextareaEvents>();\n\nexport type BaseTextareaSlots = {\n\t'prepend-outer'?: (props: {}) => any;\n\tprepend?: (props: {}) => any;\n\tappend?: (props: {}) => any;\n\t'append-outer'?: (props: {}) => any;\n};\n\ndefineSlots<BaseTextareaSlots>();\n\nconst textarea: Ref<HTMLTextAreaElement | null> = ref(null);\n\nconst classes = computed(() => ({\n\t'bb-base-textarea': true,\n\t'bb-base-textarea--auto-grow': props.autoGrow,\n\t'bb-base-textarea--disabled': props.disabled,\n\t'bb-base-textarea--errors': props.hasErrors,\n\t'bb-base-textarea--readonly': props.readonly,\n}));\n\n// Allow modelvalue to be reset to null\nconst modelValueWithDefault = computed(() =>\n\tprops.modelValue ? props.modelValue : ''\n);\nonMounted(() => {\n\tif (props.autoGrow) {\n\t\tcomputeTextareaHeight();\n\t}\n});\nwatch(\n\t() => props.modelValue,\n\t() => {\n\t\tif (props.autoGrow) {\n\t\t\tnextTick(computeTextareaHeight);\n\t\t}\n\t}\n);\n\nfunction onInput(event: Event): void {\n\t// Prevemt enter from triggering smt else\n\tevent.stopPropagation();\n\tif (event.target instanceof HTMLTextAreaElement) {\n\t\tlet value = event.target.value;\n\t\temit('input', event);\n\t\temit('update:modelValue', value);\n\t}\n}\nfunction onKeydown(event: KeyboardEvent): void {\n\t// Prevent enter from triggering smt else\n\tevent.stopPropagation();\n\tif (event.target instanceof HTMLTextAreaElement) {\n\t\temit('keydown', event);\n\t}\n}\n\n/**\n * These events are just propagated\n */\nconst eventListeners = {\n\tonBlur: (event: FocusEvent) => emit('blur', event),\n\tonChange: (event: Event) => emit('change', event),\n\tonClick: (event: MouseEvent) => emit('click', event),\n\tonFocus: (event: FocusEvent) => emit('focus', event),\n\tonMousedown: (event: MouseEvent) => emit('mousedown', event),\n\tonMouseup: (event: MouseEvent) => emit('mouseup', event),\n};\n\n/* \nReset height and the apply scroll height otherwise it would not be able to shrink\n*/\nfunction computeTextareaHeight() {\n\tif (!textarea.value) return;\n\ttextarea.value.style.height = '0px';\n\n\ttextarea.value.style.height = `${textarea.value.scrollHeight}px`;\n}\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BaseTextarea';\n</style>\n"],"names":["props","__props","emit","__emit","textarea","ref","classes","computed","modelValueWithDefault","onMounted","computeTextareaHeight","watch","nextTick","onInput","event","value","onKeydown","eventListeners"],"mappings":";;;;;;;;;;;;;;;;;AAiFA,UAAMA,IAAQC,GAaRC,IAAOC,GAWPC,IAA4CC,EAAI,IAAI,GAEpDC,IAAUC,EAAS,OAAO;AAAA,MAC/B,oBAAoB;AAAA,MACpB,+BAA+BP,EAAM;AAAA,MACrC,8BAA8BA,EAAM;AAAA,MACpC,4BAA4BA,EAAM;AAAA,MAClC,8BAA8BA,EAAM;AAAA,IACnC,EAAA,GAGIQ,IAAwBD;AAAA,MAAS,MACtCP,EAAM,aAAaA,EAAM,aAAa;AAAA,IAAA;AAEvC,IAAAS,EAAU,MAAM;AACf,MAAIT,EAAM,YACaU;IACvB,CACA,GACDC;AAAA,MACC,MAAMX,EAAM;AAAA,MACZ,MAAM;AACL,QAAIA,EAAM,YACTY,EAASF,CAAqB;AAAA,MAEhC;AAAA,IAAA;AAGD,aAASG,EAAQC,GAAoB;AAGhC,UADJA,EAAM,gBAAgB,GAClBA,EAAM,kBAAkB,qBAAqB;AAC5C,YAAAC,IAAQD,EAAM,OAAO;AACzB,QAAAZ,EAAK,SAASY,CAAK,GACnBZ,EAAK,qBAAqBa,CAAK;AAAA,MAChC;AAAA,IACD;AACA,aAASC,EAAUF,GAA4B;AAE9C,MAAAA,EAAM,gBAAgB,GAClBA,EAAM,kBAAkB,uBAC3BZ,EAAK,WAAWY,CAAK;AAAA,IAEvB;AAKA,UAAMG,IAAiB;AAAA,MACtB,QAAQ,CAACH,MAAsBZ,EAAK,QAAQY,CAAK;AAAA,MACjD,UAAU,CAACA,MAAiBZ,EAAK,UAAUY,CAAK;AAAA,MAChD,SAAS,CAACA,MAAsBZ,EAAK,SAASY,CAAK;AAAA,MACnD,SAAS,CAACA,MAAsBZ,EAAK,SAASY,CAAK;AAAA,MACnD,aAAa,CAACA,MAAsBZ,EAAK,aAAaY,CAAK;AAAA,MAC3D,WAAW,CAACA,MAAsBZ,EAAK,WAAWY,CAAK;AAAA,IAAA;AAMxD,aAASJ,IAAwB;AAChC,MAAKN,EAAS,UACLA,EAAA,MAAM,MAAM,SAAS,OAE9BA,EAAS,MAAM,MAAM,SAAS,GAAGA,EAAS,MAAM,YAAY;AAAA,IAC7D;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index40.js
CHANGED
package/dist/index40.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index40.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index40.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/index41.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index41.js","sources":["../src/components/BaseTextInput/BaseTextInput.vue
|
|
1
|
+
{"version":3,"file":"index41.js","sources":["../src/components/BaseTextInput/BaseTextInput.vue"],"sourcesContent":["<template>\n\t<span class=\"bb-base-text-input__container\" :class=\"classes\">\n\t\t<slot name=\"prepend-outer\"></slot>\n\t\t<span class=\"bb-base-text-input__inner-container\">\n\t\t\t<slot name=\"prepend\"></slot>\n\t\t\t<input\n\t\t\t\t:id=\"id\"\n\t\t\t\tv-bind=\"eventListeners\"\n\t\t\t\tref=\"input\"\n\t\t\t\t:autocomplete=\"autocomplete\"\n\t\t\t\t:autofocus=\"autofocus\"\n\t\t\t\t:class=\"'bb-base-text-input__input'\"\n\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t:name=\"name\"\n\t\t\t\t:placeholder=\"placeholder\"\n\t\t\t\t:readonly=\"readonly\"\n\t\t\t\t:type=\"type\"\n\t\t\t\t:value=\"modelValue\"\n\t\t\t/>\n\t\t\t<slot name=\"append\"></slot>\n\t\t</span>\n\t\t<slot name=\"append-outer\"></slot>\n\t</span>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport type { HTMLAttributes, InputHTMLAttributes } from 'vue';\n\nexport type BaseTextInputProps = {\n\t/**\n\t * Guides to the browser as to the type of information expected in the field.\n\t */\n\tautocomplete?: InputHTMLAttributes['autocomplete'];\n\n\t/**\n\t * Sets autofocus on page load.\n\t */\n\tautofocus?: InputHTMLAttributes['autofocus'];\n\n\t/**\n\t * Disables the component\n\t */\n\tdisabled?: boolean;\n\n\t/**\n\t * Define if the component should be in an error state.\n\t * It usually attaches a CSS class for styling purposes.\n\t */\n\thasErrors?: boolean;\n\n\t/**\n\t * The identifier of the component.\n\t */\n\tid?: HTMLAttributes['id'];\n\n\t/**\n\t * Defines the name of the input.\n\t */\n\tname?: InputHTMLAttributes['name'];\n\n\t/**\n\t * String displayed when there's no data.\n\t */\n\tplaceholder?: InputHTMLAttributes['placeholder'];\n\n\t/**\n\t * Sets the input in a readonly state.\n\t */\n\treadonly?: InputHTMLAttributes['readonly'];\n\t/**\n\t * Used my v-model\n\t */\n\tmodelValue: string | null;\n\t/**\n\t * Type of the input. Returns the content type of the object.\n\t */\n\ttype?: HTMLInputElement['type'];\n};\n\nconst props = withDefaults(defineProps<BaseTextInputProps>(), {\n\ttype: 'text',\n});\n\nexport type BaseTextInputEvents = {\n\t(e: 'blur', event: FocusEvent): void;\n\t(e: 'change', event: Event): void;\n\t(e: 'click', event: MouseEvent): void;\n\t(e: 'focus', event: FocusEvent): void;\n\t(e: 'input', event: Event): void;\n\t(e: 'keydown', event: KeyboardEvent): void;\n\t(e: 'mousedown', event: MouseEvent): void;\n\t(e: 'mouseup', event: MouseEvent): void;\n\t(e: 'update:modelValue', value: string | null): void;\n};\nconst emit = defineEmits<BaseTextInputEvents>();\n\nexport type BaseTextInputSlots = {\n\t'prepend-outer'?: (props: {}) => any;\n\tprepend?: (props: {}) => any;\n\tappend?: (props: {}) => any;\n\t'append-outer'?: (props: {}) => any;\n};\n\ndefineSlots<BaseTextInputSlots>();\n\nconst classes = computed(() => ({\n\t'bb-base-text-input': true,\n\t'bb-base-text-input--errors': props.hasErrors,\n\t'bb-base-text-input--readonly': props.readonly,\n\t'bb-base-text-input--disabled': props.disabled,\n}));\n\n/**\n * These events are just propagated\n */\nconst eventListeners = {\n\tonBlur: (event: FocusEvent) => emit('blur', event),\n\tonChange: (event: Event) => emit('change', event),\n\tonClick: (event: MouseEvent) => emit('click', event),\n\tonFocus: (event: FocusEvent) => emit('focus', event),\n\tonKeydown: (event: KeyboardEvent) => emit('keydown', event),\n\tonInput: (event: Event) => {\n\t\tif (event.target instanceof HTMLInputElement) {\n\t\t\temit('update:modelValue', event.target.value);\n\t\t}\n\t\temit('input', event);\n\t},\n\tonMousedown: (event: MouseEvent) => emit('mousedown', event),\n\tonMouseup: (event: MouseEvent) => emit('mouseup', event),\n};\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BaseTextInput';\n</style>\n"],"names":["props","__props","emit","__emit","classes","computed","eventListeners","event"],"mappings":";;;;;;;;;;;;;;;;;AAgFA,UAAMA,IAAQC,GAeRC,IAAOC,GAWPC,IAAUC,EAAS,OAAO;AAAA,MAC/B,sBAAsB;AAAA,MACtB,8BAA8BL,EAAM;AAAA,MACpC,gCAAgCA,EAAM;AAAA,MACtC,gCAAgCA,EAAM;AAAA,IACrC,EAAA,GAKIM,IAAiB;AAAA,MACtB,QAAQ,CAACC,MAAsBL,EAAK,QAAQK,CAAK;AAAA,MACjD,UAAU,CAACA,MAAiBL,EAAK,UAAUK,CAAK;AAAA,MAChD,SAAS,CAACA,MAAsBL,EAAK,SAASK,CAAK;AAAA,MACnD,SAAS,CAACA,MAAsBL,EAAK,SAASK,CAAK;AAAA,MACnD,WAAW,CAACA,MAAyBL,EAAK,WAAWK,CAAK;AAAA,MAC1D,SAAS,CAACA,MAAiB;AACtB,QAAAA,EAAM,kBAAkB,oBACtBL,EAAA,qBAAqBK,EAAM,OAAO,KAAK,GAE7CL,EAAK,SAASK,CAAK;AAAA,MACpB;AAAA,MACA,aAAa,CAACA,MAAsBL,EAAK,aAAaK,CAAK;AAAA,MAC3D,WAAW,CAACA,MAAsBL,EAAK,WAAWK,CAAK;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index42.js
CHANGED
package/dist/index42.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index42.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index42.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/index43.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index43.js","sources":["../src/components/BbAccordion/BbAccordion.vue
|
|
1
|
+
{"version":3,"file":"index43.js","sources":["../src/components/BbAccordion/BbAccordion.vue"],"sourcesContent":["<template>\n\t<div class=\"bb-accordion\">\n\t\t<BaseButton\n\t\t\t:id=\"`${id}_header`\"\n\t\t\t:aria-controls=\"id\"\n\t\t\t:aria-expanded=\"internalValue\"\n\t\t\t:class=\"'bb-accordion__header'\"\n\t\t\t@click.self=\"toggle\"\n\t\t\t><slot name=\"header\" :toggle=\"toggle\" :value=\"internalValue\"></slot\n\t\t></BaseButton>\n\t\t<BbCollapsible\n\t\t\t:id=\"id\"\n\t\t\t:aria-labelledby=\"`${id}_header`\"\n\t\t\t:class=\"'bb-accordion__content'\"\n\t\t\t:eager=\"eager\"\n\t\t\t:model-value=\"internalValue\"\n\t\t\t:role=\"'region'\"\n\t\t\t:transition-duration=\"transitionDuration\"\n\t\t\t><slot :toggle=\"toggle\" :value=\"internalValue\"></slot\n\t\t></BbCollapsible>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch } from 'vue';\nimport { useId } from '@/composables/useId';\nimport BaseButton from '../BaseButton/BaseButton.vue';\nimport BbCollapsible from '../BbCollapsible/BbCollapsible.vue';\nimport type { BbCollapsibleProps } from '../BbCollapsible/BbCollapsible.vue';\nimport type { CommonProps } from '@/types/CommonProps';\n\nexport type BbAccordionProps = Partial<BbCollapsibleProps> &\n\tPick<CommonProps, 'id'>;\n\nexport type BbAccordionEvents = {\n\t(e: 'update:modelValue', value: boolean): void;\n};\nconst emit = defineEmits<BbAccordionEvents>();\n\nconst props = withDefaults(defineProps<BbAccordionProps>(), {\n\ttransitionDuration: 250,\n});\n\nconst id = props.id || `bba_${useId().id.value}`;\n\nconst internalValue = ref(props.modelValue);\n/**\n * Watch external changes and align internal value\n */\nwatch(\n\t() => props.modelValue,\n\t(current, previous) => {\n\t\tif (current !== previous && current !== internalValue.value) {\n\t\t\tinternalValue.value = current;\n\t\t}\n\t}\n);\n\nconst toggle = () => {\n\tinternalValue.value = !internalValue.value;\n\temit('update:modelValue', !props.modelValue);\n};\n\ndefineSlots<{\n\theader?: (props: {\n\t\tvalue: BbAccordionProps['modelValue'];\n\t\ttoggle: typeof toggle;\n\t}) => any;\n\tdefault?: (props: {\n\t\tvalue: BbAccordionProps['modelValue'];\n\t\ttoggle: typeof toggle;\n\t}) => any;\n}>();\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BbAccordion';\n</style>\n"],"names":["emit","__emit","props","__props","id","useId","internalValue","ref","watch","current","previous","toggle"],"mappings":";;;;;;;;;;;;;;;;AAqCA,UAAMA,IAAOC,GAEPC,IAAQC,GAIRC,IAAKF,EAAM,MAAM,OAAOG,IAAQ,GAAG,KAAK,IAExCC,IAAgBC,EAAIL,EAAM,UAAU;AAI1C,IAAAM;AAAA,MACC,MAAMN,EAAM;AAAA,MACZ,CAACO,GAASC,MAAa;AACtB,QAAID,MAAYC,KAAYD,MAAYH,EAAc,UACrDA,EAAc,QAAQG;AAAA,MAExB;AAAA,IAAA;AAGD,UAAME,IAAS,MAAM;AACN,MAAAL,EAAA,QAAQ,CAACA,EAAc,OAChCN,EAAA,qBAAqB,CAACE,EAAM,UAAU;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index44.js
CHANGED
package/dist/index44.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index44.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index44.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/index45.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index45.js","sources":["../src/components/BbAlert/BbAlert.vue
|
|
1
|
+
{"version":3,"file":"index45.js","sources":["../src/components/BbAlert/BbAlert.vue"],"sourcesContent":["<template>\n\t<BbCollapsible\n\t\tclass=\"bb-alert\"\n\t\t:class=\"{ [`bb-alert--${theme}`]: theme }\"\n\t\t:model-value=\"innerValue\"\n\t>\n\t\t<div class=\"bb-alert__inner-container\" role=\"alert\">\n\t\t\t<div class=\"bb-alert__icon-container\">\n\t\t\t\t<BbIcon\n\t\t\t\t\tv-if=\"icon\"\n\t\t\t\t\tclass=\"bb-alert__icon\"\n\t\t\t\t\t:size=\"iconSize\"\n\t\t\t\t\t:type=\"icon\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div class=\"bb-alert__content\">\n\t\t\t\t<p class=\"bb-alert__title\">\n\t\t\t\t\t<slot name=\"title\" v-bind=\"{ text: title }\">{{ title }}</slot>\n\t\t\t\t</p>\n\t\t\t\t<p class=\"bb-alert__text\">\n\t\t\t\t\t<slot name=\"text\" v-bind=\"{ text: text }\">{{ text }}</slot>\n\t\t\t\t</p>\n\t\t\t</div>\n\t\t\t<div class=\"bb-alert__close\">\n\t\t\t\t<BaseButton\n\t\t\t\t\tv-if=\"showClose\"\n\t\t\t\t\t:aria-label=\"closeLabel\"\n\t\t\t\t\tblock\n\t\t\t\t\tclass=\"bb-alert__close-btn\"\n\t\t\t\t\t@click=\"onClickClose\"\n\t\t\t\t>\n\t\t\t\t\t<svg\n\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<path\n\t\t\t\t\t\t\td=\"M23 23L1 1M23 1L1 23\"\n\t\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</svg>\n\t\t\t\t</BaseButton>\n\t\t\t</div>\n\t\t</div>\n\t</BbCollapsible>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch } from 'vue';\nimport BaseButton from '../BaseButton/BaseButton.vue';\nimport BbCollapsible from '../BbCollapsible/BbCollapsible.vue';\nimport BbIcon from '../BbIcon/BbIcon.vue';\nimport type { BbIconProps } from '../BbIcon/BbIcon.vue';\nimport type { CommonProps } from '@/types/CommonProps';\n\nexport type BbAlertProps = Pick<\n\tCommonProps,\n\t'closeLabel' | 'showClose' | 'text' | 'theme' | 'title'\n> & {\n\t/**\n\t * Name of the icon to use\n\t */\n\ticon?: BbIconProps['type'];\n\t/**\n\t * Size of the icon to use\n\t */\n\ticonSize?: BbIconProps['size'];\n\t/**\n\t * Used by v-model, set type to any to avoid Vue casting it as false\n\t */\n\tmodelValue?: any;\n};\n\nconst props = withDefaults(defineProps<BbAlertProps>(), {\n\tcloseLabel: 'Chiudi',\n\ttheme: 'default',\n});\n\nexport type BbAlertEvents = {\n\t(e: 'update:modelValue', value: boolean): void;\n};\nconst emit = defineEmits<BbAlertEvents>();\n\ndefineSlots<{\n\ttitle?: (props: { text: BbAlertProps['title'] }) => any;\n\ttext?: (props: { text: BbAlertProps['title'] }) => any;\n}>();\n\nconst innerValue = ref(\n\tprops.modelValue === undefined ? true : !!props.modelValue\n);\n\nwatch(\n\t() => props.modelValue,\n\t(value) => {\n\t\tif (innerValue.value !== !!value) {\n\t\t\tinnerValue.value = !!value;\n\t\t}\n\t}\n);\n\nconst onClickClose = () => {\n\tinnerValue.value = false;\n\temit('update:modelValue', false);\n};\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BbAlert';\n</style>\n"],"names":["props","__props","emit","__emit","innerValue","ref","watch","value","onClickClose"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2EA,UAAMA,IAAQC,GAQRC,IAAOC,GAOPC,IAAaC;AAAA,MAClBL,EAAM,eAAe,SAAY,KAAO,CAAC,CAACA,EAAM;AAAA,IAAA;AAGjD,IAAAM;AAAA,MACC,MAAMN,EAAM;AAAA,MACZ,CAACO,MAAU;AACV,QAAIH,EAAW,UAAU,CAAC,CAACG,MACfH,EAAA,QAAQ,CAAC,CAACG;AAAA,MAEvB;AAAA,IAAA;AAGD,UAAMC,IAAe,MAAM;AAC1B,MAAAJ,EAAW,QAAQ,IACnBF,EAAK,qBAAqB,EAAK;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index46.js
CHANGED
package/dist/index46.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index46.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index46.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/index47.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent as p, computed as u, ref as d, watch as f, openBlock as a, createElementBlock as l, normalizeProps as b, guardReactiveProps as z, createElementVNode as v, renderSlot as g, createCommentVNode as h } from "vue";
|
|
2
|
-
import { isCssColor as _ } from "./
|
|
2
|
+
import { isCssColor as _ } from "./index201.js";
|
|
3
3
|
const k = { class: "bb-avatar__fallback" }, C = ["alt", "sizes", "src", "srcset"], B = /* @__PURE__ */ p({
|
|
4
4
|
__name: "BbAvatar",
|
|
5
5
|
props: {
|
package/dist/index47.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index47.js","sources":["../src/components/BbAvatar/BbAvatar.vue
|
|
1
|
+
{"version":3,"file":"index47.js","sources":["../src/components/BbAvatar/BbAvatar.vue"],"sourcesContent":["<template>\n\t<span v-bind=\"attributes\">\n\t\t<span class=\"bb-avatar__fallback\">\n\t\t\t<slot></slot>\n\t\t</span>\n\t\t<img\n\t\t\tv-if=\"!!(src || srcset) && !imageHasErrored\"\n\t\t\t:alt=\"alt\"\n\t\t\tclass=\"bb-avatar__img\"\n\t\t\t:sizes=\"sizes\"\n\t\t\t:src=\"src\"\n\t\t\t:srcset=\"srcset\"\n\t\t\t@error=\"onImageError\"\n\t\t/>\n\t</span>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue';\nimport { isCssColor } from '@/utilities/functions/isCssColor';\nimport type { Classes } from '@/types/Classes';\nimport type { CommonProps } from '@/types/CommonProps';\nimport type { BbIconProps, Size } from '../BbIcon/BbIcon.vue';\n\nexport type BbAvatarProps = Pick<CommonProps, 'color'> &\n\tPick<BbIconProps, 'size'> & {\n\t\t/**\n\t\t * Attribute `sizes` for the `img` tag\n\t\t */\n\t\tsizes?: HTMLImageElement['sizes'];\n\t\t/**\n\t\t * Attribute `alt` for the `img` tag\n\t\t */\n\t\talt: HTMLImageElement['alt'];\n\t} & (\n\t\t| {\n\t\t\t\t/**\n\t\t\t\t * Attribute `src` for the `img` tag\n\t\t\t\t */\n\t\t\t\tsrc: HTMLImageElement['src'];\n\t\t\t\t/**\n\t\t\t\t * Attribute `srcset` for the `img` tag\n\t\t\t\t */\n\t\t\t\tsrcset?: HTMLImageElement['srcset'];\n\t\t }\n\t\t| {\n\t\t\t\t/**\n\t\t\t\t * Attribute `src` for the `img` tag\n\t\t\t\t */\n\t\t\t\tsrc?: HTMLImageElement['src'];\n\t\t\t\t/**\n\t\t\t\t * Attribute `srcset` for the `img` tag\n\t\t\t\t */\n\t\t\t\tsrcset: HTMLImageElement['srcset'];\n\t\t }\n\t);\n\nconst props = defineProps<BbAvatarProps>();\n\ndefineSlots<{\n\tdefault?: (props: {}) => any;\n}>();\n\nconst sizeMap: Size = {\n\txs: 24,\n\tsm: 32,\n\tmd: 40,\n\tlg: 56,\n\txl: 80,\n\txxl: 104,\n};\n\nconst attributes = computed(() => {\n\tconst classes: Classes = {\n\t\t'bb-avatar': true,\n\t};\n\tlet dimension: any;\n\tif (props.size) {\n\t\tif (typeof props.size === 'string') {\n\t\t\tdimension = sizeMap[props.size as keyof Size] ?? parseInt(props.size, 10);\n\t\t} else {\n\t\t\tdimension = props.size;\n\t\t}\n\t\tdimension += `px`;\n\t}\n\n\tlet style: { [key: string]: any } = {\n\t\twidth: dimension,\n\t\theight: dimension,\n\t};\n\tif (props.color) {\n\t\tif (isCssColor(props.color)) {\n\t\t\tstyle.backgroundColor = props.color;\n\t\t} else {\n\t\t\tclasses[`bb-avatar--${props.color}`] = true;\n\t\t}\n\t}\n\treturn {\n\t\tclass: classes,\n\t\tstyle,\n\t};\n});\n\nconst imageHasErrored = ref(false);\nconst onImageError = () => {\n\timageHasErrored.value = true;\n};\nwatch(\n\t() => [props.src, props.srcset],\n\t() => {\n\t\timageHasErrored.value = false;\n\t}\n);\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BbAvatar';\n</style>\n"],"names":["props","__props","sizeMap","attributes","computed","classes","dimension","style","isCssColor","imageHasErrored","ref","onImageError","watch"],"mappings":";;;;;;;;;;;;;AAyDA,UAAMA,IAAQC,GAMRC,IAAgB;AAAA,MACrB,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,KAAK;AAAA,IAAA,GAGAC,IAAaC,EAAS,MAAM;AACjC,YAAMC,IAAmB;AAAA,QACxB,aAAa;AAAA,MAAA;AAEV,UAAAC;AACJ,MAAIN,EAAM,SACL,OAAOA,EAAM,QAAS,WACzBM,IAAYJ,EAAQF,EAAM,IAAkB,KAAK,SAASA,EAAM,MAAM,EAAE,IAExEM,IAAYN,EAAM,MAENM,KAAA;AAGd,UAAIC,IAAgC;AAAA,QACnC,OAAOD;AAAA,QACP,QAAQA;AAAA,MAAA;AAET,aAAIN,EAAM,UACLQ,EAAWR,EAAM,KAAK,IACzBO,EAAM,kBAAkBP,EAAM,QAE9BK,EAAQ,cAAcL,EAAM,KAAK,EAAE,IAAI,KAGlC;AAAA,QACN,OAAOK;AAAA,QACP,OAAAE;AAAA,MAAA;AAAA,IACD,CACA,GAEKE,IAAkBC,EAAI,EAAK,GAC3BC,IAAe,MAAM;AAC1B,MAAAF,EAAgB,QAAQ;AAAA,IAAA;AAEzB,WAAAG;AAAA,MACC,MAAM,CAACZ,EAAM,KAAKA,EAAM,MAAM;AAAA,MAC9B,MAAM;AACL,QAAAS,EAAgB,QAAQ;AAAA,MACzB;AAAA,IAAA;;;;;;;;;;;;;;;;"}
|
package/dist/index48.js
CHANGED
package/dist/index48.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index48.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index48.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/index49.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent as p, useSlots as d, computed as n, openBlock as m, createElementBlock as u, normalizeClass as g, createElementVNode as s, renderSlot as l, mergeProps as f, createTextVNode as _, toDisplayString as y } from "vue";
|
|
2
|
-
import { isCssColor as r } from "./
|
|
2
|
+
import { isCssColor as r } from "./index201.js";
|
|
3
3
|
import { isNil as B } from "./index120.js";
|
|
4
4
|
const C = { class: "bb-badge__wrapper" }, h = { class: "bb-badge__content-inner" }, S = /* @__PURE__ */ p({
|
|
5
5
|
__name: "BbBadge",
|
package/dist/index49.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index49.js","sources":["../src/components/BbBadge/BbBadge.vue
|
|
1
|
+
{"version":3,"file":"index49.js","sources":["../src/components/BbBadge/BbBadge.vue"],"sourcesContent":["<template>\n\t<span :class=\"classes\">\n\t\t<span class=\"bb-badge__wrapper\">\n\t\t\t<slot></slot>\n\t\t\t<span class=\"bb-badge__content-container\" v-bind=\"contentAttributes\">\n\t\t\t\t<span class=\"bb-badge__content-inner\"\n\t\t\t\t\t><slot name=\"content\">{{ content }}</slot></span\n\t\t\t\t>\n\t\t\t</span>\n\t\t</span>\n\t</span>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, useSlots } from 'vue';\nimport { isCssColor } from '@/utilities/functions/isCssColor';\nimport { isNil } from '@/utilities/functions/isNil';\nimport type { CommonProps } from '@/types/CommonProps';\n\nconst slots = useSlots();\n\nexport type BbBadgeProps = Pick<CommonProps, 'color'> & {\n\t/**\n\t * Displays the badge on the bottom of the wrapped component.\n\t */\n\tbottom?: boolean;\n\t/**\n\t * Text content of the badge\n\t */\n\tcontent?: string | number | null;\n\t/**\n\t * Renders the badge i little firther from the wrapped\n\t * component making it look like it's floating\n\t * and not stacked.\n\t */\n\tfloating?: boolean;\n\t/**\n\t * Displays the badge on the left of the wrapped component.\n\t */\n\tleft?: boolean;\n};\n\nconst props = withDefaults(defineProps<BbBadgeProps>(), {});\n\ndefineSlots<{\n\tdefault?: (props: {}) => any;\n\tcontent?: (props: {}) => any;\n}>();\n\nconst classes = computed(() => {\n\treturn {\n\t\t'bb-badge': true,\n\t\t'bb-badge--bottom': props.bottom,\n\t\t'bb-badge--left': props.left,\n\t\t'bb-badge--positioned': slots.default,\n\t\t'bb-badge--floating': props.floating,\n\t\t'bb-badge--empty': isNil(props.content),\n\t\t[`bb-badge--${props.color}`]: props.color && !isCssColor(props.color),\n\t};\n});\n\nconst contentAttributes = computed(() => {\n\tlet style: Record<string, string> = {};\n\tif (props.color && isCssColor(props.color)) {\n\t\tstyle.backgroundColor = props.color;\n\t}\n\n\tlet accessibilityAttributes: Record<string, string | boolean> = {};\n\tif (slots.wrap) {\n\t\taccessibilityAttributes['aria-atomic'] = true;\n\t\taccessibilityAttributes['aria-live'] = 'polite';\n\t\taccessibilityAttributes['role'] = 'status';\n\t}\n\treturn {\n\t\tstyle,\n\t\t...accessibilityAttributes,\n\t};\n});\n</script>\n<style lang=\"postcss\">\n@import '@/assets/css/BbBadge';\n</style>\n"],"names":["slots","useSlots","props","__props","classes","computed","isNil","isCssColor","contentAttributes","style","accessibilityAttributes"],"mappings":";;;;;;;;;;;;;AAmBA,UAAMA,IAAQC,KAuBRC,IAAQC,GAORC,IAAUC,EAAS,OACjB;AAAA,MACN,YAAY;AAAA,MACZ,oBAAoBH,EAAM;AAAA,MAC1B,kBAAkBA,EAAM;AAAA,MACxB,wBAAwBF,EAAM;AAAA,MAC9B,sBAAsBE,EAAM;AAAA,MAC5B,mBAAmBI,EAAMJ,EAAM,OAAO;AAAA,MACtC,CAAC,aAAaA,EAAM,KAAK,EAAE,GAAGA,EAAM,SAAS,CAACK,EAAWL,EAAM,KAAK;AAAA,IAAA,EAErE,GAEKM,IAAoBH,EAAS,MAAM;AACxC,UAAII,IAAgC,CAAA;AACpC,MAAIP,EAAM,SAASK,EAAWL,EAAM,KAAK,MACxCO,EAAM,kBAAkBP,EAAM;AAG/B,UAAIQ,IAA4D,CAAA;AAChE,aAAIV,EAAM,SACTU,EAAwB,aAAa,IAAI,IACzCA,EAAwB,WAAW,IAAI,UACvCA,EAAwB,OAAU,WAE5B;AAAA,QACN,OAAAD;AAAA,QACA,GAAGC;AAAA,MAAA;AAAA,IACJ,CACA;;;;;;;;;;;;;;;;;"}
|
package/dist/index50.js
CHANGED
package/dist/index50.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index50.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index50.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/index51.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index51.js","sources":["../src/components/BbBreadcrumbs/BbBreadcrumbs.vue
|
|
1
|
+
{"version":3,"file":"index51.js","sources":["../src/components/BbBreadcrumbs/BbBreadcrumbs.vue"],"sourcesContent":["<template>\n\t<nav aria-label=\"Breadcrumbs\" class=\"bb-breadcrumbs\">\n\t\t<template v-for=\"(item, index) in items\" :key=\"item.key\">\n\t\t\t<span class=\"bb-breadcrumbs__breadcrumb-container\">\n\t\t\t\t<slot\n\t\t\t\t\t:disabled=\"!!(item.disabled || disabled)\"\n\t\t\t\t\t:index=\"index\"\n\t\t\t\t\t:item=\"items[index]\"\n\t\t\t\t\t:name=\"`item:prepend`\"\n\t\t\t\t\t:text=\"item.text\"\n\t\t\t\t></slot>\n\t\t\t\t<BaseButton\n\t\t\t\t\tv-bind=\"item\"\n\t\t\t\t\tclass=\"bb-breadcrumbs__breadcrumb\"\n\t\t\t\t\t:disabled=\"item.disabled || disabled\"\n\t\t\t\t>\n\t\t\t\t\t<slot\n\t\t\t\t\t\t:disabled=\"!!(item.disabled || disabled)\"\n\t\t\t\t\t\t:index=\"index\"\n\t\t\t\t\t\t:item=\"items[index]\"\n\t\t\t\t\t\t:name=\"`${item.key}`\"\n\t\t\t\t\t\t:text=\"item.text\"\n\t\t\t\t\t></slot>\n\t\t\t\t</BaseButton>\n\t\t\t\t<slot\n\t\t\t\t\t:disabled=\"!!(item.disabled || disabled)\"\n\t\t\t\t\t:index=\"index\"\n\t\t\t\t\t:item=\"items[index]\"\n\t\t\t\t\t:name=\"`item:append`\"\n\t\t\t\t\t:text=\"item.text\"\n\t\t\t\t></slot>\n\t\t\t</span>\n\t\t\t<span aria-hidden=\"true\" class=\"bb-breadcrumbs__divider\"\n\t\t\t\t><slot name=\"divider\">{{ props.divider }}</slot></span\n\t\t\t>\n\t\t</template>\n\t</nav>\n</template>\n\n<script setup lang=\"ts\">\nimport type { CommonProps } from '@/types/CommonProps';\nimport BaseButton from '../BaseButton/BaseButton.vue';\nimport type { BaseButtonProps } from '../BaseButton/BaseButton.vue';\n\nexport type Item = Omit<BaseButtonProps, 'block' | 'tag' | 'type'> & {\n\t/**\n\t * Click handler of the button\n\t */\n\tonClick?: (...args: any[]) => any;\n\t/**\n\t * Key that uniquely identifies the breadcrumb\n\t */\n\tkey: string | number;\n};\n\nexport type BbBreadcrumbsProps = Pick<CommonProps, 'disabled'> & {\n\t/**\n\t * Array of items that describe how the breadcrumbs\n\t * should behave. It is compatible with navigating\n\t * through `a` or `router-link`.\n\t */\n\titems: Item[];\n\t/**\n\t * Text content of the divider\n\t */\n\tdivider?: string;\n};\n\nconst props = withDefaults(defineProps<BbBreadcrumbsProps>(), {\n\tdivider: '/',\n});\n\ndefineSlots<\n\t{\n\t\t'item:prepend'?: (props: {\n\t\t\tdisabled: boolean;\n\t\t\tindex: number;\n\t\t\titem: Item;\n\t\t\ttext?: string;\n\t\t}) => any;\n\t\t'item:append'?: (props: {\n\t\t\tdisabled: boolean;\n\t\t\tindex: number;\n\t\t\titem: Item;\n\t\t\ttext?: string;\n\t\t}) => any;\n\t\tdivider?: (props: {}) => any;\n\t} & {\n\t\t[key: string]: (props: {\n\t\t\tdisabled: boolean;\n\t\t\tindex: number;\n\t\t\titem: Item;\n\t\t\ttext?: string;\n\t\t}) => any;\n\t}\n>();\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BbBreadcrumbs';\n</style>\n"],"names":["props","__props"],"mappings":";;;;;;;;;;;;;;;;;AAoEA,UAAMA,IAAQC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index52.js
CHANGED
package/dist/index52.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index52.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index52.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|