@@ -71,7 +71,7 @@ export default {
71
71
<template>
72
72
<div class="container1">
73
73
<NcButton @click="open = !open"> Click Me </NcButton>
74
- <NcColorPicker v-model="color" v-model:shown="open" @submit="open = false" v-slot="{ attrs }">
74
+ <NcColorPicker v-model="color" v-model:shown="open" v-slot="{ attrs }">
75
75
<div v-bind="attrs" :style="{'background-color': color}" class="color1" />
76
76
</NcColorPicker>
77
77
</div>
@@ -143,57 +143,59 @@ export default {
143
143
<template #trigger =" slotProps " >
144
144
<slot v-bind =" slotProps" />
145
145
</template >
146
- <div role =" dialog"
147
- class =" color-picker"
148
- aria-modal =" true"
149
- :aria-label =" t('Color picker')"
150
- :class =" { 'color-picker--advanced-fields': advanced && advancedFields }" >
151
- <Transition name =" slide" mode =" out-in" >
152
- <div v-if =" !advanced" class =" color-picker__simple" >
153
- <label v-for =" ({ color, name }, index) in normalizedPalette"
154
- :key =" index"
155
- :style =" { backgroundColor: color }"
156
- class =" color-picker__simple-color-circle"
157
- :class =" { 'color-picker__simple-color-circle--active' : color === currentColor }" >
158
- <Check v-if =" color === currentColor" :size =" 20" :fill-color =" contrastColor" />
159
- <input type =" radio"
160
- class =" hidden-visually"
161
- :aria-label =" name"
162
- :name =" `color-picker-${uid}`"
163
- :checked =" color === currentColor"
164
- @click =" pickColor(color)" >
165
- </label >
146
+ <template #default =" slotProps " >
147
+ <div role =" dialog"
148
+ class =" color-picker"
149
+ aria-modal =" true"
150
+ :aria-label =" t('Color picker')"
151
+ :class =" { 'color-picker--advanced-fields': advanced && advancedFields }" >
152
+ <Transition name =" slide" mode =" out-in" >
153
+ <div v-if =" !advanced" class =" color-picker__simple" >
154
+ <label v-for =" ({ color, name }, index) in normalizedPalette"
155
+ :key =" index"
156
+ :style =" { backgroundColor: color }"
157
+ class =" color-picker__simple-color-circle"
158
+ :class =" { 'color-picker__simple-color-circle--active' : color === currentColor }" >
159
+ <Check v-if =" color === currentColor" :size =" 20" :fill-color =" contrastColor" />
160
+ <input type =" radio"
161
+ class =" hidden-visually"
162
+ :aria-label =" name"
163
+ :name =" `color-picker-${uid}`"
164
+ :checked =" color === currentColor"
165
+ @click =" pickColor(color)" >
166
+ </label >
167
+ </div >
168
+ <Chrome v-else
169
+ v-model =" currentColor"
170
+ class =" color-picker__advanced"
171
+ :disable-alpha =" true"
172
+ :disable-fields =" !advancedFields"
173
+ @update:model-value =" pickColor" />
174
+ </Transition >
175
+ <div v-if =" !paletteOnly" class =" color-picker__navigation" >
176
+ <NcButton v-if =" advanced"
177
+ type =" tertiary"
178
+ :aria-label =" ariaBack"
179
+ @click =" handleBack" >
180
+ <template #icon >
181
+ <ArrowLeft :size =" 20" />
182
+ </template >
183
+ </NcButton >
184
+ <NcButton v-else
185
+ type =" tertiary"
186
+ :aria-label =" ariaMore"
187
+ @click =" handleMoreSettings" >
188
+ <template #icon >
189
+ <DotsHorizontal :size =" 20" />
190
+ </template >
191
+ </NcButton >
192
+ <NcButton type =" primary"
193
+ @click =" handleConfirm(slotProps.hide)" >
194
+ {{ t('Choose') }}
195
+ </NcButton >
166
196
</div >
167
- <Chrome v-else
168
- v-model =" currentColor"
169
- class =" color-picker__advanced"
170
- :disable-alpha =" true"
171
- :disable-fields =" !advancedFields"
172
- @update:model-value =" pickColor" />
173
- </Transition >
174
- <div v-if =" !paletteOnly" class =" color-picker__navigation" >
175
- <NcButton v-if =" advanced"
176
- type =" tertiary"
177
- :aria-label =" ariaBack"
178
- @click =" handleBack" >
179
- <template #icon >
180
- <ArrowLeft :size =" 20" />
181
- </template >
182
- </NcButton >
183
- <NcButton v-else
184
- type =" tertiary"
185
- :aria-label =" ariaMore"
186
- @click =" handleMoreSettings" >
187
- <template #icon >
188
- <DotsHorizontal :size =" 20" />
189
- </template >
190
- </NcButton >
191
- <NcButton type =" primary"
192
- @click =" handleConfirm" >
193
- {{ t('Choose') }}
194
- </NcButton >
195
197
</div >
196
- </div >
198
+ </template >
197
199
</NcPopover >
198
200
</template >
199
201
@@ -324,13 +326,14 @@ export default defineComponent({
324
326
325
327
/**
326
328
* Submit a picked colour and close picker
329
+ * @param {Function} hideCallback callback to close popover
327
330
*/
328
- handleConfirm () {
331
+ handleConfirm (hideCallback ) {
329
332
/**
330
333
* Emits a hexadecimal string e.g. '#ffffff'
331
334
*/
332
335
this .$emit (' submit' , this .currentColor )
333
- this . handleClose ()
336
+ hideCallback ()
334
337
335
338
this .advanced = false
336
339
},
0 commit comments