@bagelink/vue 1.4.87 → 1.4.89
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/bin/generateFormSchema.ts +6 -6
- package/dist/components/Btn.vue.d.ts +1 -1
- package/dist/components/Btn.vue.d.ts.map +1 -1
- package/dist/components/dataTable/useTableData.d.ts.map +1 -1
- package/dist/components/form/BagelForm.vue.d.ts.map +1 -1
- package/dist/composables/useExcel.d.ts.map +1 -1
- package/dist/index.cjs +4 -4
- package/dist/index.mjs +4 -4
- package/dist/style.css +1 -1
- package/dist/types/BagelForm.d.ts +5 -4
- package/dist/types/BagelForm.d.ts.map +1 -1
- package/dist/utils/schema.d.ts +4 -0
- package/dist/utils/schema.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/components/Btn.vue +111 -78
- package/src/components/dataTable/useTableData.ts +5 -2
- package/src/components/form/BagelForm.vue +6 -17
- package/src/components/form/BglMultiStepForm.vue +3 -3
- package/src/composables/useExcel.ts +19 -8
- package/src/styles/buttons.css +74 -78
- package/src/styles/pillColors.css +0 -0
- package/src/types/BagelForm.ts +9 -4
|
@@ -55,9 +55,9 @@ export interface BaseBagelField<T, P extends Path<T, PO>, PO extends PathsOption
|
|
|
55
55
|
'disabled'?: boolean;
|
|
56
56
|
'helptext'?: string;
|
|
57
57
|
'options'?: BagelFieldOptions<T, P>;
|
|
58
|
-
'children'?: SchemaChild<T,
|
|
58
|
+
'children'?: SchemaChild<T, Path<T, PO>, PO>[];
|
|
59
59
|
'slots'?: {
|
|
60
|
-
[key: string]: SchemaChild<T,
|
|
60
|
+
[key: string]: SchemaChild<T, Path<T, PO>, PO>[];
|
|
61
61
|
};
|
|
62
62
|
'defaultValue'?: any;
|
|
63
63
|
'vIf'?: VIfType<T, P>;
|
|
@@ -73,8 +73,9 @@ export type MappedBaseBagelFieldP<T, P extends Path<T, PO>, PO extends PathsOpti
|
|
|
73
73
|
export type FieldByP<T, P extends Path<T, PO>, PO extends PathsOptions = DefaultPathsOptions> = MappedBaseBagelFieldP<T, P, PO>;
|
|
74
74
|
export type Field<T, PO extends PathsOptions = DefaultPathsOptions> = MappedBaseBagelFieldP<T, Path<T, PO>, PO>;
|
|
75
75
|
export type BglFieldT<T, PO extends PathsOptions = DefaultPathsOptions> = Field<T, PO>;
|
|
76
|
-
export type
|
|
77
|
-
export type
|
|
76
|
+
export type SchemaField<T, PO extends PathsOptions = DefaultPathsOptions> = Field<T, PO> | ElementField<T, PO>;
|
|
77
|
+
export type BglFormSchemaT<T, PO extends PathsOptions = DefaultPathsOptions> = SchemaField<T, PO>[];
|
|
78
|
+
export type ShallowBglFormSchemaT<T, PO extends PathsOptions = ShallowPathsOptions> = SchemaField<T, PO>[];
|
|
78
79
|
export interface InputBagelField<T, P extends Path<T, PO>, PO extends PathsOptions = DefaultPathsOptions> extends BaseBagelField<T, P, PO> {
|
|
79
80
|
$el: 'text' | ComponentExposed<typeof TextInput>;
|
|
80
81
|
type?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BagelForm.d.ts","sourceRoot":"","sources":["../../src/types/BagelForm.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"BagelForm.d.ts","sourceRoot":"","sources":["../../src/types/BagelForm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACnF,OAAO,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAChF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,KAAK,CAAA;AAChC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAElE,MAAM,MAAM,cAAc,GACvB,MAAM,GACN,MAAM,GACN,OAAO,GACP,SAAS,GACT;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAAA;AAEzB,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,IAAI,CAC/C,KAAK,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACrB,GAAG,CAAC,EAAE,CAAC,KACH,cAAc,CAAA;AAEnB,MAAM,WAAW,UAAU,CAAC,CAAC,EAAE,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;CACjD;AAED,MAAM,MAAM,iBAAiB,CAAC,CAAC,EAAE,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,IAC/C,MAAM,GACN,CACC;IACD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CACtB,GACC,MAAM,GACN,MAAM,GACN,OAAO,GACP;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CACxB,EAAE,GACD,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,CAAA;AAEhD,MAAM,MAAM,OAAO,CAAC,CAAC,EAAE,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,IACrC,MAAM,GACN,OAAO,GACP,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAA;AAEnD,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,IAAI,CAChD,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,CAAC,KACP,MAAM,GAAG,SAAS,CAAA;AAEvB,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACxD,iBAAiB,EAAE,CAAC,CAAA;CACpB;AAED,MAAM,MAAM,KAAK,CAChB,CAAC,EACD,EAAE,SAAS,YAAY,GAAG,mBAAmB,IAC1C,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;AAE9C,MAAM,MAAM,IAAI,CAAC,CAAC,EAAE,EAAE,SAAS,YAAY,GAAG,mBAAmB,IAChE,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,GACzC,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAChC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;AAEhB,4CAA4C;AAE5C,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,IACxC,OAAO,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAEhD,uEAAuE;AACvE,MAAM,MAAM,aAAa,CAAC,CAAC,EAAE,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAE5E,MAAM,MAAM,OAAO,CAAC,CAAC,EAAE,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;IACnD,GAAG,CAAC,EAAE,CAAC,CAAA;IACP,KAAK,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;CAC3B,KAAK,KAAK,CAAA;AAEX,MAAM,WAAW,YAAY,CAC5B,CAAC,EACD,EAAE,SAAS,YAAY,GAAG,mBAAmB;IAE7C,GAAG,EAAE,MAAM,CAAA;IACX,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,CAAA;IACzB,KAAK,CAAC,EAAE,GAAG,CAAA;IACX,GAAG,CAAC,EAAE,GAAG,CAAA;IACT,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAA;CAChC;AAED,MAAM,MAAM,WAAW,CACtB,CAAC,EACD,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,EACrB,EAAE,SAAS,YAAY,GAAG,mBAAmB,IAC1C,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAA;AAEvE,MAAM,WAAW,cAAc,CAC9B,CAAC,EACD,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,EACrB,EAAE,SAAS,YAAY,GAAG,mBAAmB;IAE7C,KAAK,CAAC,EAAE,GAAG,CAAA;IACX,IAAI,CAAC,EAAE,CAAC,CAAA;IACR,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,cAAc,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAC5C,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACnC,UAAU,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAA;IAC9C,OAAO,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAA;KAAE,CAAA;IAC9D,cAAc,CAAC,EAAE,GAAG,CAAA;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACtB,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,GAAG,CAAA;IACxD,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,OAAO,CAAA;IAC3D,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;CAC/B;AAED,MAAM,MAAM,qBAAqB,CAChC,CAAC,EACD,EAAE,SAAS,YAAY,GAAG,mBAAmB,IAC1C;KACF,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;CAC5C,CAAA;AAED,MAAM,MAAM,qBAAqB,CAChC,CAAC,EACD,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,EACrB,EAAE,SAAS,YAAY,GAAG,mBAAmB,IAC1C,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AAEnC,MAAM,MAAM,QAAQ,CACnB,CAAC,EACD,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,EACrB,EAAE,SAAS,YAAY,GAAG,mBAAmB,IAC1C,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;AAEnC,MAAM,MAAM,KAAK,CAChB,CAAC,EACD,EAAE,SAAS,YAAY,GAAG,mBAAmB,IAC1C,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;AAE7C,MAAM,MAAM,SAAS,CACpB,CAAC,EACD,EAAE,SAAS,YAAY,GAAG,mBAAmB,IAC1C,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;AAEhB,MAAM,MAAM,WAAW,CACtB,CAAC,EACD,EAAE,SAAS,YAAY,GAAG,mBAAmB,IAC1C,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;AAEtC,MAAM,MAAM,cAAc,CACzB,CAAC,EACD,EAAE,SAAS,YAAY,GAAG,mBAAmB,IAC1C,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAA;AAExB,MAAM,MAAM,qBAAqB,CAChC,CAAC,EACD,EAAE,SAAS,YAAY,GAAG,mBAAmB,IAC1C,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAA;AAExB,MAAM,WAAW,eAAe,CAC/B,CAAC,EACD,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,EACrB,EAAE,SAAS,YAAY,GAAG,mBAAmB,CAE7C,SAAQ,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;IAChC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAC,OAAO,SAAS,CAAC,CAAA;IAChD,IAAI,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,gBAAgB,CAChC,CAAC,EACD,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,EACrB,EAAE,SAAS,YAAY,GAAG,mBAAmB,CAE7C,SAAQ,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;IAChC,GAAG,EAAE,QAAQ,GAAG,gBAAgB,CAAC,OAAO,WAAW,CAAC,CAAA;IACpD,IAAI,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,eAAe,CAC/B,CAAC,EACD,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,EACrB,EAAE,SAAS,YAAY,GAAG,mBAAmB,CAE7C,SAAQ,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;IAChC,GAAG,EAAE,OAAO,GAAG,gBAAgB,CAAC,OAAO,UAAU,CAAC,CAAA;IAClD,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;CACxB;AAED,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,EAAE,YAAY,CAAC;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,EAAE,MAAM,CAAC,CAAA;IAC3D,WAAW,CAAC,EAAE,MAAM,GAAG,CAAA;CACvB;AAED,MAAM,WAAW,gBAAgB;IAChC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,UAAU,GAAG,OAAO,CAAA;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAA;CACvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/utils/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAG1C,wBAAgB,gBAAgB,IAAI,cAAc,CAAC,SAAS,CAAC,CAW5D"}
|
package/package.json
CHANGED
package/src/components/Btn.vue
CHANGED
|
@@ -18,7 +18,7 @@ const props = withDefaults(
|
|
|
18
18
|
border?: boolean
|
|
19
19
|
outline?: boolean
|
|
20
20
|
thin?: boolean
|
|
21
|
-
size?: 'xs' | 's' | 'm' | 'l' | 'xl'
|
|
21
|
+
size?: 'xs' | 's' | 'm' | 'l' | 'xl' | 'extra-small' | 'small' | 'medium' | 'large' | 'extra-large'
|
|
22
22
|
type?: 'button' | 'submit' | 'reset'
|
|
23
23
|
loading?: boolean
|
|
24
24
|
role?: string
|
|
@@ -85,6 +85,25 @@ async function handleClick(event: MouseEvent) {
|
|
|
85
85
|
|
|
86
86
|
const iconSizeComputed = $computed(() => {
|
|
87
87
|
if (props.iconSize !== undefined) return props.iconSize
|
|
88
|
+
|
|
89
|
+
// Default icon sizes based on button size
|
|
90
|
+
const sizeMap = {
|
|
91
|
+
xs: 0.7,
|
|
92
|
+
'extra-small': 0.7,
|
|
93
|
+
s: 0.9,
|
|
94
|
+
small: 0.9,
|
|
95
|
+
m: 1,
|
|
96
|
+
medium: 1,
|
|
97
|
+
l: 1.3,
|
|
98
|
+
large: 1.3,
|
|
99
|
+
xl: 1.6,
|
|
100
|
+
'extra-large': 1.6
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
if (props.size && sizeMap[props.size as keyof typeof sizeMap]) {
|
|
104
|
+
return sizeMap[props.size as keyof typeof sizeMap]
|
|
105
|
+
}
|
|
106
|
+
|
|
88
107
|
return isMobileScreen.value ? 1 : 1.2
|
|
89
108
|
})
|
|
90
109
|
|
|
@@ -114,6 +133,11 @@ const slots: SetupContext['slots'] = useSlots()
|
|
|
114
133
|
<component :is="isComponent" v-ripple="ripple" v-bind="bind" :disabled="disabled" class="bgl_btn" :class="{
|
|
115
134
|
'bgl_btn-icon': icon && !slots.default && !value,
|
|
116
135
|
thin,
|
|
136
|
+
'bgl_btn_xsSize': size === 'xs' || size === 'extra-small',
|
|
137
|
+
'bgl_btn_sSize': size === 's' || size === 'small',
|
|
138
|
+
'bgl_btn_mSize': size === 'm' || size === 'medium',
|
|
139
|
+
'bgl_btn_lSize': size === 'l' || size === 'large',
|
|
140
|
+
'bgl_btn_xlSize': size === 'xl' || size === 'extra-large',
|
|
117
141
|
round,
|
|
118
142
|
'bgl_btn_flat': flat,
|
|
119
143
|
'bgl_btn-border': border || outline,
|
|
@@ -135,66 +159,6 @@ const slots: SetupContext['slots'] = useSlots()
|
|
|
135
159
|
<style scoped>
|
|
136
160
|
@import '../styles/btnColors.css';
|
|
137
161
|
|
|
138
|
-
.bgl_btn-green {
|
|
139
|
-
--btn-bg: var(--bgl-green);
|
|
140
|
-
--btn-color: var(--bgl-light-text);
|
|
141
|
-
--btn-flat-color: var(--bgl-green);
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
.bgl_btn-yellow {
|
|
145
|
-
--btn-bg: var(--bgl-yellow);
|
|
146
|
-
--btn-color: var(--bgl-black);
|
|
147
|
-
--btn-flat-color: var(--bgl-yellow);
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
.bgl_btn-blue {
|
|
151
|
-
--btn-bg: var(--bgl-blue);
|
|
152
|
-
--btn-color: var(--bgl-light-text);
|
|
153
|
-
--btn-flat-color: var(--bgl-blue);
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
.bgl_btn-primary {
|
|
157
|
-
--btn-bg: var(--bgl-primary);
|
|
158
|
-
--btn-color: var(--bgl-light-text);
|
|
159
|
-
--btn-flat-color: var(--bgl-primary);
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
.bgl_btn-red {
|
|
163
|
-
--btn-bg: var(--bgl-red);
|
|
164
|
-
--btn-color: var(--bgl-light-text);
|
|
165
|
-
--btn-flat-color: var(--bgl-red);
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
.bgl_btn-white {
|
|
169
|
-
--btn-bg: var(--bgl-white);
|
|
170
|
-
--btn-color: var(--bgl-black);
|
|
171
|
-
--btn-flat-color: var(--bgl-white);
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
.bgl_btn-black {
|
|
175
|
-
--btn-bg: var(--bgl-black);
|
|
176
|
-
--btn-color: var(--bgl-light-text);
|
|
177
|
-
--btn-flat-color: var(--bgl-black);
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
.bgl_btn-gray {
|
|
181
|
-
--btn-bg: var(--bgl-gray-light);
|
|
182
|
-
--btn-color: var(--bgl-black);
|
|
183
|
-
--btn-flat-color: var(--bgl-gray);
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
.bgl_btn-light {
|
|
187
|
-
--btn-bg: var(--bgl-primary-light);
|
|
188
|
-
--btn-color: var(--bgl-primary);
|
|
189
|
-
--btn-flat-color: var(--bgl-primary-light);
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
.bgl_btn-gray-light {
|
|
193
|
-
--btn-bg: var(--bgl-gray-light);
|
|
194
|
-
--btn-color: var(--bgl-gray);
|
|
195
|
-
--btn-flat-color: var(--bgl-gray-light);
|
|
196
|
-
}
|
|
197
|
-
|
|
198
162
|
.bgl_btn {
|
|
199
163
|
padding-left: var(--btn-padding);
|
|
200
164
|
padding-right: var(--btn-padding);
|
|
@@ -254,24 +218,8 @@ a {
|
|
|
254
218
|
.bgl_btn-icon.bgl_btn_flat:active:not(:disabled) {
|
|
255
219
|
background: var(--bgl-gray-tint-dark);
|
|
256
220
|
}
|
|
257
|
-
|
|
258
|
-
.bgl_btn.thin {
|
|
259
|
-
padding-inline: calc(var(--btn-padding) / 3);
|
|
260
|
-
border-radius: calc(var(--btn-border-radius) / 1.5);
|
|
261
|
-
}
|
|
262
|
-
|
|
263
221
|
.bgl_btn.round {
|
|
264
|
-
border-radius: 1000px;
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
.bgl_btn-icon.thin {
|
|
268
|
-
height: calc(var(--btn-height) / 1.5);
|
|
269
|
-
width: calc(var(--btn-height) / 1.5);
|
|
270
|
-
line-height: normal;
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
.bgl_btn-icon.thin .bgl_btn-flex {
|
|
274
|
-
height: 100%;
|
|
222
|
+
border-radius: 1000px !important;
|
|
275
223
|
}
|
|
276
224
|
|
|
277
225
|
[dir="rtl"] .bgl_btn-icon {
|
|
@@ -303,4 +251,89 @@ a {
|
|
|
303
251
|
filter: grayscale(0.3);
|
|
304
252
|
cursor: not-allowed;
|
|
305
253
|
}
|
|
254
|
+
.bgl_btn-icon .bgl_btn-flex {
|
|
255
|
+
height: 100%;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
/* xs size */
|
|
259
|
+
.bgl_btn_xsSize {
|
|
260
|
+
padding-inline: calc(var(--btn-padding) / 6);
|
|
261
|
+
border-radius: calc(var(--btn-border-radius) / 2);
|
|
262
|
+
font-size: calc(var(--input-font-size) * 0.6);
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
.bgl_btn-icon.bgl_btn_xsSize {
|
|
266
|
+
height: calc(var(--btn-height) / 2);
|
|
267
|
+
width: calc(var(--btn-height) / 2);
|
|
268
|
+
line-height: normal;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
.bgl_btn_xsSize {
|
|
273
|
+
height: calc(var(--btn-height) / 2);
|
|
274
|
+
line-height: calc(var(--btn-height) / 2);
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
.bgl_btn_xsSize .bgl_btn-flex {
|
|
278
|
+
gap: 0.2rem;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
/* s size */
|
|
282
|
+
.bgl_btn.thin,
|
|
283
|
+
.bgl_btn_sSize {
|
|
284
|
+
padding-inline: calc(var(--btn-padding) / 3);
|
|
285
|
+
border-radius: calc(var(--btn-border-radius) / 1.5);
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
.bgl_btn-icon.thin,
|
|
289
|
+
.bgl_btn-icon.bgl_btn_sSize {
|
|
290
|
+
height: calc(var(--btn-height) / 1.5);
|
|
291
|
+
width: calc(var(--btn-height) / 1.5);
|
|
292
|
+
line-height: normal;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
.bgl_btn.thin,
|
|
296
|
+
.bgl_btn_sSize {
|
|
297
|
+
height: calc(var(--btn-height) * 0.7);
|
|
298
|
+
line-height: calc(var(--btn-height) * 0.7);
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
/* m size */
|
|
302
|
+
.bgl_btn_mSize {
|
|
303
|
+
padding-inline: var(--btn-padding);
|
|
304
|
+
font-size: var(--input-font-size);
|
|
305
|
+
height: var(--btn-height);
|
|
306
|
+
line-height: var(--btn-height);
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
.bgl_btn-icon.bgl_btn_mSize {
|
|
310
|
+
height: var(--btn-height);
|
|
311
|
+
width: var(--btn-height);
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
/* l size */
|
|
315
|
+
.bgl_btn_lSize {
|
|
316
|
+
padding-inline: calc(var(--btn-padding) * 1.3);
|
|
317
|
+
font-size: calc(var(--input-font-size) * 1.1);
|
|
318
|
+
height: calc(var(--btn-height) * 1.2);
|
|
319
|
+
line-height: calc(var(--btn-height) * 1.2);
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
.bgl_btn-icon.bgl_btn_lSize {
|
|
323
|
+
height: calc(var(--btn-height) * 1.2);
|
|
324
|
+
width: calc(var(--btn-height) * 1.2);
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
/* xl size */
|
|
328
|
+
.bgl_btn_xlSize {
|
|
329
|
+
padding-inline: calc(var(--btn-padding) * 1.6);
|
|
330
|
+
font-size: calc(var(--input-font-size) * 1.3);
|
|
331
|
+
height: calc(var(--btn-height) * 1.5);
|
|
332
|
+
line-height: calc(var(--btn-height) * 1.5);
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
.bgl_btn-icon.bgl_btn_xlSize {
|
|
336
|
+
height: calc(var(--btn-height) * 1.5);
|
|
337
|
+
width: calc(var(--btn-height) * 1.5);
|
|
338
|
+
}
|
|
306
339
|
</style>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BglFormSchemaT, Field } from '@bagelink/vue'
|
|
1
|
+
import type { BglFormSchemaT, Field, SchemaField } from '@bagelink/vue'
|
|
2
2
|
import type { DefaultPathsOptions } from 'type-fest/source/paths'
|
|
3
3
|
import type { MaybeRefOrGetter } from 'vue'
|
|
4
4
|
import type { SortDirectionsT } from '../../types/TableSchema'
|
|
@@ -63,7 +63,10 @@ export function useTableData<T extends { [key: string]: any }>(options: UseTable
|
|
|
63
63
|
|
|
64
64
|
// If we have a valid schema with fields, filter out fields without an ID
|
|
65
65
|
if (Array.isArray(schema) && schema.length > 0) {
|
|
66
|
-
resolvedSchema.value = schema
|
|
66
|
+
resolvedSchema.value = (schema as SchemaField<T>[])
|
|
67
|
+
.filter(field => field && (field as any).id)
|
|
68
|
+
.map(field => field as Field<T>)
|
|
69
|
+
.map(autoTransform)
|
|
67
70
|
} else if (Array.isArray(dataValue) && dataValue.length > 0) {
|
|
68
71
|
// If no schema is provided or it's empty, generate a default schema from the data
|
|
69
72
|
const firstItem = dataValue[0]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script setup lang="ts" generic="T extends {[key:string]:any}, P extends Path<T>">
|
|
2
|
-
import type {
|
|
2
|
+
import type { BglFormSchemaT, Path, BaseBagelField } from '@bagelink/vue'
|
|
3
3
|
import type { MaybeRefOrGetter } from 'vue'
|
|
4
4
|
import { onMounted, watch, ref, computed, toValue } from 'vue'
|
|
5
5
|
import { useSchemaField } from '../../composables/useSchemaField'
|
|
@@ -104,7 +104,7 @@ const { renderField } = useSchemaField<T, P>({
|
|
|
104
104
|
}
|
|
105
105
|
})
|
|
106
106
|
|
|
107
|
-
const renderSchemaField = (field:
|
|
107
|
+
const renderSchemaField = (field: any) => renderField(field as BaseBagelField<T, P>)
|
|
108
108
|
|
|
109
109
|
// Add new method to handle slot input changes
|
|
110
110
|
function handleSlotInputChange(event: Event) {
|
|
@@ -121,28 +121,19 @@ defineExpose({ form, isDirty, validateForm, checkValidity })
|
|
|
121
121
|
<template>
|
|
122
122
|
<template v-if="formState !== 'success' || !$slots.success">
|
|
123
123
|
<form
|
|
124
|
-
v-if="props.tag === 'form'" ref="form"
|
|
125
|
-
:class="props.class"
|
|
126
|
-
@submit.prevent="handleSubmit"
|
|
124
|
+
v-if="props.tag === 'form'" ref="form" :class="props.class" @submit.prevent="handleSubmit"
|
|
127
125
|
@input="handleSlotInputChange"
|
|
128
126
|
>
|
|
129
127
|
<!-- Render fields -->
|
|
130
128
|
<template v-if="resolvedSchema">
|
|
131
|
-
<Component
|
|
132
|
-
:is="renderSchemaField(field)"
|
|
133
|
-
v-for="field in resolvedSchema"
|
|
134
|
-
:key="field.id"
|
|
135
|
-
/>
|
|
129
|
+
<Component :is="renderSchemaField(field as any)" v-for="field in resolvedSchema" :key="field.id" />
|
|
136
130
|
</template>
|
|
137
131
|
|
|
138
132
|
<!-- Default slot -->
|
|
139
133
|
<slot v-else />
|
|
140
134
|
<!-- Submit slot -->
|
|
141
135
|
<slot
|
|
142
|
-
name="submit"
|
|
143
|
-
:submit="handleSubmit"
|
|
144
|
-
:isDirty="isDirty"
|
|
145
|
-
:validateForm="validateForm"
|
|
136
|
+
name="submit" :submit="handleSubmit" :isDirty="isDirty" :validateForm="validateForm"
|
|
146
137
|
:formState="formState"
|
|
147
138
|
/>
|
|
148
139
|
</form>
|
|
@@ -151,9 +142,7 @@ defineExpose({ form, isDirty, validateForm, checkValidity })
|
|
|
151
142
|
<template v-else>
|
|
152
143
|
<template v-if="resolvedSchema">
|
|
153
144
|
<component
|
|
154
|
-
:is="renderSchemaField(field)"
|
|
155
|
-
v-for="field in resolvedSchema"
|
|
156
|
-
:key="field.id"
|
|
145
|
+
:is="renderSchemaField(field as any)" v-for="field in resolvedSchema" :key="field.id"
|
|
157
146
|
:class="props.class"
|
|
158
147
|
/>
|
|
159
148
|
</template>
|
|
@@ -68,8 +68,8 @@ const filteredSchema = computed(() => {
|
|
|
68
68
|
const schema = computedSchema.value
|
|
69
69
|
return schema.filter((step, _index) => {
|
|
70
70
|
// Skip steps that have vIf or v-if returning false
|
|
71
|
-
if (step.vIf !== undefined || step['v-if'] !== undefined) {
|
|
72
|
-
const condition = step.vIf ?? step['v-if']
|
|
71
|
+
if ((step as any).vIf !== undefined || (step as any)['v-if'] !== undefined) {
|
|
72
|
+
const condition = (step as any).vIf ?? (step as any)['v-if']
|
|
73
73
|
// If condition is a function, evaluate it with current form data
|
|
74
74
|
if (typeof condition === 'function') {
|
|
75
75
|
return condition(undefined, formData.value)
|
|
@@ -94,7 +94,7 @@ const numberOfSteps = computed(() => filteredSchema.value.length)
|
|
|
94
94
|
const schemaIndexMap = computed(() => {
|
|
95
95
|
const map: number[] = []
|
|
96
96
|
computedSchema.value.forEach((step, index) => {
|
|
97
|
-
const vIfCondition = step.vIf ?? step['v-if']
|
|
97
|
+
const vIfCondition = (step as any).vIf ?? (step as any)['v-if']
|
|
98
98
|
let shouldInclude = true
|
|
99
99
|
|
|
100
100
|
if (vIfCondition !== undefined) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { MaybeRefOrGetter } from 'vue'
|
|
2
|
-
import type { BglFormSchemaT } from '../types'
|
|
2
|
+
import type { BglFormSchemaT, Field } from '../types'
|
|
3
3
|
import { ref, toValue } from 'vue'
|
|
4
4
|
import { appendScript, downloadFile, getNestedValue } from '../utils'
|
|
5
5
|
|
|
@@ -21,11 +21,12 @@ function formatData<T>(data: T[], schema?: BglFormSchemaT<T>) {
|
|
|
21
21
|
return schema
|
|
22
22
|
? data.map((row) => {
|
|
23
23
|
const newRow: any = {}
|
|
24
|
-
schema.forEach((
|
|
25
|
-
|
|
24
|
+
schema.forEach((sf) => {
|
|
25
|
+
const { id, transform, label } = sf as unknown as Field<T>
|
|
26
|
+
if (id as any) {
|
|
26
27
|
// Support for dot notation to access nested properties
|
|
27
|
-
const value = getNestedValue(row, id)
|
|
28
|
-
const key = label || id
|
|
28
|
+
const value = getNestedValue(row, id as any)
|
|
29
|
+
const key = (label as any) || (id as any)
|
|
29
30
|
newRow[key] = transform?.(value, row) || value || ''
|
|
30
31
|
}
|
|
31
32
|
})
|
|
@@ -64,7 +65,12 @@ export function useExcel() {
|
|
|
64
65
|
const XLSX = await ensureXLSXLoaded()
|
|
65
66
|
|
|
66
67
|
const formattedData = formatData(data, schema)
|
|
67
|
-
const headers = schema.length > 0
|
|
68
|
+
const headers = schema.length > 0
|
|
69
|
+
? schema.map((sf) => {
|
|
70
|
+
const { id, label } = sf as unknown as Field<T>
|
|
71
|
+
return { v: (label as any) || (id as any), t: 's' }
|
|
72
|
+
})
|
|
73
|
+
: []
|
|
68
74
|
const ws = XLSX.utils.json_to_sheet(formattedData)
|
|
69
75
|
|
|
70
76
|
if (headers.length > 0) {
|
|
@@ -78,8 +84,13 @@ export function useExcel() {
|
|
|
78
84
|
}
|
|
79
85
|
|
|
80
86
|
async function downloadCSV(data: Record<string, any>[], fileName = 'data', schema?: BglFormSchemaT<any>) {
|
|
81
|
-
const keys = schema ? schema.map((
|
|
82
|
-
const columns = schema
|
|
87
|
+
const keys = schema ? (schema.map(sf => (sf as unknown as Field<any>).id).filter(Boolean) as string[]) : [...new Set(data.flatMap(objKeys))]
|
|
88
|
+
const columns = schema
|
|
89
|
+
? schema.map((sf) => {
|
|
90
|
+
const { label, id } = sf as unknown as Field<any>
|
|
91
|
+
return (label as any) || strToTitle(id as any)
|
|
92
|
+
})
|
|
93
|
+
: keys.map(strToTitle)
|
|
83
94
|
|
|
84
95
|
const formattedData = formatData(data, schema)
|
|
85
96
|
const csv = [
|
package/src/styles/buttons.css
CHANGED
|
@@ -1,144 +1,140 @@
|
|
|
1
1
|
.bgl_btn,
|
|
2
2
|
.bgl_flatBtn,
|
|
3
3
|
.bgl_btn-icon {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
4
|
+
font-family: inherit;
|
|
5
|
+
white-space: nowrap;
|
|
6
|
+
cursor: pointer;
|
|
7
|
+
box-sizing: border-box;
|
|
8
|
+
user-select: none;
|
|
9
|
+
border: none;
|
|
10
|
+
transition: var(--bgl-transition);
|
|
11
|
+
border-radius: var(--btn-border-radius);
|
|
12
|
+
line-height: var(--btn-height);
|
|
13
|
+
font-size: var(--input-font-size);
|
|
14
|
+
display: inline-block;
|
|
15
|
+
height: var(--btn-height);
|
|
16
|
+
padding: 0;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
.btn-close {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
20
|
+
margin-top: -20px;
|
|
21
|
+
margin-inline-end: -20px;
|
|
22
|
+
margin-inline-start: auto;
|
|
23
|
+
margin-bottom: 15px;
|
|
24
|
+
transition: var(--bgl-transition);
|
|
25
|
+
height: 30px;
|
|
26
|
+
width: 30px;
|
|
27
|
+
opacity: 0.6;
|
|
28
|
+
cursor: pointer;
|
|
29
|
+
border-radius: 100%;
|
|
30
|
+
outline: 2px solid transparent;
|
|
31
|
+
display: flex;
|
|
32
|
+
align-items: center;
|
|
33
|
+
justify-content: center;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
.btn-close:hover {
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
background: var(--bgl-gray-light);
|
|
38
|
+
opacity: 1;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
.btn-close:active {
|
|
42
|
-
|
|
42
|
+
background: var(--bgl-gray);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
.btn-close::before {
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
content: 'close';
|
|
47
|
+
font-family: 'Material Symbols Outlined', serif;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
.bgl_btn.thin {
|
|
51
|
-
height: calc(var(--btn-height) * 0.7);
|
|
52
|
-
line-height: calc(var(--btn-height) * 0.7);
|
|
53
|
-
}
|
|
54
50
|
|
|
55
51
|
.hover {
|
|
56
|
-
|
|
57
|
-
|
|
52
|
+
cursor: pointer;
|
|
53
|
+
transition: all 400ms ease;
|
|
58
54
|
}
|
|
59
55
|
|
|
60
56
|
.hover:hover {
|
|
61
|
-
|
|
57
|
+
filter: brightness(90%);
|
|
62
58
|
}
|
|
63
59
|
|
|
64
60
|
.hover:active {
|
|
65
|
-
|
|
61
|
+
filter: brightness(80%);
|
|
66
62
|
}
|
|
67
63
|
|
|
68
64
|
.border {
|
|
69
|
-
|
|
65
|
+
border: 1px solid var(--border-color);
|
|
70
66
|
}
|
|
71
67
|
|
|
72
68
|
.border-primary {
|
|
73
|
-
|
|
69
|
+
border: 1px solid var(--bgl-primary);
|
|
74
70
|
}
|
|
75
71
|
|
|
76
72
|
.outline {
|
|
77
|
-
|
|
73
|
+
outline: 1px solid var(--border-color);
|
|
78
74
|
}
|
|
79
75
|
|
|
80
76
|
.outline-dashed {
|
|
81
|
-
|
|
77
|
+
outline: 2px dashed var(--border-color);
|
|
82
78
|
}
|
|
83
79
|
|
|
84
80
|
.outline-primary {
|
|
85
|
-
|
|
81
|
+
outline: 1px solid var(--bgl-primary);
|
|
86
82
|
}
|
|
87
83
|
|
|
88
84
|
.rotate-270 {
|
|
89
|
-
|
|
85
|
+
transform: rotate(270deg);
|
|
90
86
|
}
|
|
91
87
|
|
|
92
88
|
.rotate-180 {
|
|
93
|
-
|
|
89
|
+
transform: rotate(180deg);
|
|
94
90
|
}
|
|
95
91
|
|
|
96
92
|
.rotate-90 {
|
|
97
|
-
|
|
93
|
+
transform: rotate(90deg);
|
|
98
94
|
}
|
|
99
95
|
|
|
100
96
|
.rotate-0 {
|
|
101
|
-
|
|
97
|
+
transform: rotate(0deg) !important;
|
|
102
98
|
}
|
|
103
99
|
|
|
104
100
|
@media screen and (max-width: 910px) {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
101
|
+
.bgl_btn {
|
|
102
|
+
padding: 0 20px;
|
|
103
|
+
}
|
|
108
104
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
105
|
+
.m_border {
|
|
106
|
+
border: 1px solid var(--border-color);
|
|
107
|
+
}
|
|
112
108
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
109
|
+
.m_rotate-270 {
|
|
110
|
+
transform: rotate(270deg);
|
|
111
|
+
}
|
|
116
112
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
113
|
+
.m_rotate-180 {
|
|
114
|
+
transform: rotate(180deg);
|
|
115
|
+
}
|
|
120
116
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
117
|
+
.m_rotate-90 {
|
|
118
|
+
transform: rotate(90deg);
|
|
119
|
+
}
|
|
124
120
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
121
|
+
.m_rotate-0 {
|
|
122
|
+
transform: rotate(0deg) !important;
|
|
123
|
+
}
|
|
128
124
|
}
|
|
129
125
|
|
|
130
126
|
.ripple {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
127
|
+
position: absolute;
|
|
128
|
+
border-radius: 50%;
|
|
129
|
+
transform: scale(0);
|
|
130
|
+
background: rgba(0, 0, 0, 0.3);
|
|
131
|
+
pointer-events: none;
|
|
132
|
+
animation: rippleEffect 0.6s ease-out;
|
|
137
133
|
}
|
|
138
134
|
|
|
139
135
|
@keyframes rippleEffect {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
}
|
|
136
|
+
to {
|
|
137
|
+
transform: scale(4);
|
|
138
|
+
opacity: 0;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
File without changes
|