yuyeon 0.2.1-rc.12 → 0.2.1-rc.13

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.
@@ -101,11 +101,17 @@ export const YDatePicker = defineComponent({
101
101
  }, {
102
102
  default: () => [mode.value === 'month' ? _createVNode(YMonthPicker, {
103
103
  "modelValue": month.value,
104
- "onUpdate:modelValue": $event => month.value = $event
104
+ "onUpdate:modelValue": $event => month.value = $event,
105
+ "onMode": () => {
106
+ mode.value = 'date';
107
+ }
105
108
  }, null) : mode.value === 'year' ? _createVNode(YYearPicker, {
106
109
  "modelValue": year.value,
107
110
  "onUpdate:modelValue": $event => year.value = $event,
108
- "ref": yearPicker$
111
+ "ref": yearPicker$,
112
+ "onMode": () => {
113
+ mode.value = 'month';
114
+ }
109
115
  }, null) : _createVNode(YDateCalendar, _mergeProps(chooseProps(props, YDateCalendar.props), {
110
116
  "hideHeader": true,
111
117
  "modelValue": model.value,
@@ -1 +1 @@
1
- {"version":3,"file":"YDatePicker.mjs","names":["Transition","computed","ref","watch","useModelDuplex","useRender","useDate","omit","chooseProps","defineComponent","propsFactory","YDateCalendar","pressYDateCalendarPropsOptions","YDatePickerControl","YMonthPicker","YYearPicker","pressYDatePickerPropsOptions","modelValue","YDatePicker","name","props","emits","setup","_ref","emit","yearPicker$","dateUtil","model","mode","month","getMonth","date","year","getYear","displayDate","setYear","value","setMonth","monthText","format","yearText","toggleMonthMode","toggleYearMode","onClickYear","onClickMonth","onClickPage","dir","changePage","change","onClickPrev","onClickNext","_createVNode","_mergeProps","default","$event"],"sources":["../../../src/components/date-picker/YDatePicker.tsx"],"sourcesContent":["import { Transition, computed, ref, watch } from 'vue';\n\nimport { useModelDuplex } from '@/composables/communication';\nimport { useRender } from '@/composables/component';\nimport { useDate } from '@/composables/date';\nimport { omit } from '@/util';\nimport { chooseProps, defineComponent, propsFactory } from '@/util/component';\n\nimport { YDateCalendar, pressYDateCalendarPropsOptions } from './YDateCalendar';\nimport { YDatePickerControl } from './YDatePickerControl';\nimport { YMonthPicker } from './YMonthPicker';\nimport { YYearPicker } from './YYearPicker';\n\nimport './YDatePicker.scss';\n\nexport const pressYDatePickerPropsOptions = propsFactory(\n {\n ...omit(pressYDateCalendarPropsOptions(), ['modelValue']),\n modelValue: null,\n },\n 'YDatePicker',\n);\n\nexport const YDatePicker = defineComponent({\n name: 'YDatePicker',\n props: pressYDatePickerPropsOptions(),\n emits: ['update:month', 'update:year', 'update:modelValue', 'update:mode'],\n setup(props, { emit }) {\n const yearPicker$ = ref<typeof YYearPicker>();\n const dateUtil = useDate();\n const model = useModelDuplex(props, 'modelValue');\n const mode = useModelDuplex(props, 'mode');\n\n const month = ref(dateUtil.getMonth(dateUtil.date()));\n const year = ref(dateUtil.getYear(dateUtil.date()));\n const displayDate = computed(() => {\n const date = dateUtil.setYear(dateUtil.date(), year.value);\n return dateUtil.setMonth(date, month.value);\n });\n const monthText = computed(() => {\n return dateUtil.format(displayDate.value, 'month');\n });\n const yearText = computed(() => {\n return dateUtil.format(displayDate.value, 'year');\n });\n\n function toggleMonthMode() {\n mode.value = mode.value === 'month' ? 'date' : 'month';\n }\n\n function toggleYearMode() {\n mode.value = mode.value === 'year' ? 'date' : 'year';\n }\n\n function onClickYear() {\n toggleYearMode();\n }\n\n function onClickMonth() {\n toggleMonthMode();\n }\n\n function onClickPage(dir: number) {\n if (mode.value === 'month') {\n year.value = year.value + dir;\n return;\n }\n if (mode.value === 'year') {\n yearPicker$.value?.changePage(dir);\n return;\n }\n const change = month.value + dir;\n if (change > 11) {\n year.value += 1;\n month.value = 0;\n } else if (change < 0) {\n year.value -= 1;\n month.value = 11;\n } else {\n month.value = change;\n }\n }\n\n function onClickPrev() {\n onClickPage(-1);\n }\n\n function onClickNext() {\n onClickPage(1);\n }\n\n watch(month, () => {\n if (mode.value === 'month') toggleMonthMode();\n emit('update:month', month.value);\n });\n\n watch(year, () => {\n if (mode.value === 'year') {\n mode.value = 'month';\n }\n emit('update:year', year.value);\n });\n\n useRender(() => (\n <div class={['y-date-picker']}>\n <YDatePickerControl\n {...chooseProps(props, YDatePickerControl.props)}\n yearText={yearText.value}\n monthText={monthText.value}\n onClick:year={onClickYear}\n onClick:month={onClickMonth}\n onClick:prev={onClickPrev}\n onClick:next={onClickNext}\n ></YDatePickerControl>\n <Transition name=\"fade\" mode=\"out-in\">\n {mode.value === 'month' ? (\n <YMonthPicker v-model={month.value} />\n ) : mode.value === 'year' ? (\n <YYearPicker v-model={year.value} ref={yearPicker$} />\n ) : (\n <YDateCalendar\n {...chooseProps(props, YDateCalendar.props)}\n hideHeader={true}\n v-model={model.value}\n v-model:month={month.value}\n v-model:year={year.value}\n />\n )}\n </Transition>\n </div>\n ));\n },\n});\n\nexport type YDatePicker = InstanceType<typeof YDatePicker>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"YDatePicker.mjs","names":["Transition","computed","ref","watch","useModelDuplex","useRender","useDate","omit","chooseProps","defineComponent","propsFactory","YDateCalendar","pressYDateCalendarPropsOptions","YDatePickerControl","YMonthPicker","YYearPicker","pressYDatePickerPropsOptions","modelValue","YDatePicker","name","props","emits","setup","_ref","emit","yearPicker$","dateUtil","model","mode","month","getMonth","date","year","getYear","displayDate","setYear","value","setMonth","monthText","format","yearText","toggleMonthMode","toggleYearMode","onClickYear","onClickMonth","onClickPage","dir","changePage","change","onClickPrev","onClickNext","_createVNode","_mergeProps","default","$event","onMode"],"sources":["../../../src/components/date-picker/YDatePicker.tsx"],"sourcesContent":["import { Transition, computed, ref, watch } from 'vue';\n\nimport { useModelDuplex } from '@/composables/communication';\nimport { useRender } from '@/composables/component';\nimport { useDate } from '@/composables/date';\nimport { omit } from '@/util';\nimport { chooseProps, defineComponent, propsFactory } from '@/util/component';\n\nimport { YDateCalendar, pressYDateCalendarPropsOptions } from './YDateCalendar';\nimport { YDatePickerControl } from './YDatePickerControl';\nimport { YMonthPicker } from './YMonthPicker';\nimport { YYearPicker } from './YYearPicker';\n\nimport './YDatePicker.scss';\n\nexport const pressYDatePickerPropsOptions = propsFactory(\n {\n ...omit(pressYDateCalendarPropsOptions(), ['modelValue']),\n modelValue: null,\n },\n 'YDatePicker',\n);\n\nexport const YDatePicker = defineComponent({\n name: 'YDatePicker',\n props: pressYDatePickerPropsOptions(),\n emits: ['update:month', 'update:year', 'update:modelValue', 'update:mode'],\n setup(props, { emit }) {\n const yearPicker$ = ref<typeof YYearPicker>();\n const dateUtil = useDate();\n const model = useModelDuplex(props, 'modelValue');\n const mode = useModelDuplex(props, 'mode');\n\n const month = ref(dateUtil.getMonth(dateUtil.date()));\n const year = ref(dateUtil.getYear(dateUtil.date()));\n const displayDate = computed(() => {\n const date = dateUtil.setYear(dateUtil.date(), year.value);\n return dateUtil.setMonth(date, month.value);\n });\n const monthText = computed(() => {\n return dateUtil.format(displayDate.value, 'month');\n });\n const yearText = computed(() => {\n return dateUtil.format(displayDate.value, 'year');\n });\n\n function toggleMonthMode() {\n mode.value = mode.value === 'month' ? 'date' : 'month';\n }\n\n function toggleYearMode() {\n mode.value = mode.value === 'year' ? 'date' : 'year';\n }\n\n function onClickYear() {\n toggleYearMode();\n }\n\n function onClickMonth() {\n toggleMonthMode();\n }\n\n function onClickPage(dir: number) {\n if (mode.value === 'month') {\n year.value = year.value + dir;\n return;\n }\n if (mode.value === 'year') {\n yearPicker$.value?.changePage(dir);\n return;\n }\n const change = month.value + dir;\n if (change > 11) {\n year.value += 1;\n month.value = 0;\n } else if (change < 0) {\n year.value -= 1;\n month.value = 11;\n } else {\n month.value = change;\n }\n }\n\n function onClickPrev() {\n onClickPage(-1);\n }\n\n function onClickNext() {\n onClickPage(1);\n }\n\n watch(month, () => {\n if (mode.value === 'month') toggleMonthMode();\n emit('update:month', month.value);\n });\n\n watch(year, () => {\n if (mode.value === 'year') {\n mode.value = 'month';\n }\n emit('update:year', year.value);\n });\n\n useRender(() => (\n <div class={['y-date-picker']}>\n <YDatePickerControl\n {...chooseProps(props, YDatePickerControl.props)}\n yearText={yearText.value}\n monthText={monthText.value}\n onClick:year={onClickYear}\n onClick:month={onClickMonth}\n onClick:prev={onClickPrev}\n onClick:next={onClickNext}\n ></YDatePickerControl>\n <Transition name=\"fade\" mode=\"out-in\">\n {mode.value === 'month' ? (\n <YMonthPicker\n v-model={month.value}\n onMode={() => {\n mode.value = 'date';\n }}\n />\n ) : mode.value === 'year' ? (\n <YYearPicker\n v-model={year.value}\n ref={yearPicker$}\n onMode={() => {\n mode.value = 'month';\n }}\n />\n ) : (\n <YDateCalendar\n {...chooseProps(props, YDateCalendar.props)}\n hideHeader={true}\n v-model={model.value}\n v-model:month={month.value}\n v-model:year={year.value}\n />\n )}\n </Transition>\n </div>\n ));\n },\n});\n\nexport type YDatePicker = InstanceType<typeof YDatePicker>;\n"],"mappings":"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"}
@@ -15,7 +15,11 @@ export const pressYMonthPickerPropsOptions = propsFactory({
15
15
  export const YMonthPicker = defineComponent({
16
16
  name: 'YMonthPicker',
17
17
  props: pressYMonthPickerPropsOptions(),
18
- setup(props) {
18
+ emits: ['mode'],
19
+ setup(props, _ref) {
20
+ let {
21
+ emit
22
+ } = _ref;
19
23
  const dateUtil = useDate();
20
24
  const model = useModelDuplex(props, 'modelValue');
21
25
  const months = computed(() => {
@@ -30,6 +34,9 @@ export const YMonthPicker = defineComponent({
30
34
  });
31
35
  });
32
36
  function onClick(index) {
37
+ if (model.value === index) {
38
+ emit('mode');
39
+ }
33
40
  model.value = index;
34
41
  }
35
42
  useRender(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"YMonthPicker.mjs","names":["computed","useModelDuplex","useRender","useDate","getRangeArr","defineComponent","propsFactory","YButton","pressYMonthPickerPropsOptions","modelValue","Number","color","String","height","YMonthPicker","name","props","setup","dateUtil","model","months","date","startOfYear","map","i","text","format","getNextMonth","value","onClick","index","_createVNode","month","item","active","join","default"],"sources":["../../../src/components/date-picker/YMonthPicker.tsx"],"sourcesContent":["import { computed } from 'vue';\n\nimport { useModelDuplex } from '@/composables/communication';\nimport { useRender } from '@/composables/component';\nimport { useDate } from '@/composables/date';\nimport { getRangeArr } from '@/util/common';\nimport { defineComponent, propsFactory } from '@/util/component';\n\nimport { YButton } from '../button';\n\nimport './YMonthPicker.scss';\n\nexport const pressYMonthPickerPropsOptions = propsFactory(\n {\n modelValue: Number,\n color: String,\n height: [String, Number],\n },\n 'YMonthPicker',\n);\n\nexport const YMonthPicker = defineComponent({\n name: 'YMonthPicker',\n props: pressYMonthPickerPropsOptions(),\n setup(props) {\n const dateUtil = useDate();\n const model = useModelDuplex(props, 'modelValue');\n\n const months = computed(() => {\n let date = dateUtil.startOfYear(dateUtil.date());\n\n return getRangeArr(12).map((i) => {\n const text = dateUtil.format(date, 'monthShort');\n date = dateUtil.getNextMonth(date);\n\n return {\n text,\n value: i,\n };\n });\n });\n\n function onClick(index: number) {\n model.value = index;\n }\n\n useRender(() => {\n return (\n <div class={['y-month-picker']}>\n {months.value.map((month, index) => {\n const item = {\n active: index === model.value,\n };\n return (\n <div class={['y-month-picker__cell', 'y-month-picker__month']}>\n <YButton\n variation={['rounded', 'text'].join(',')}\n active={item.active}\n color={props.color}\n onClick={() => onClick(index)}\n >\n {month.text}\n </YButton>\n </div>\n );\n })}\n </div>\n );\n });\n\n return {};\n },\n});\n\nexport type YMonthPicker = InstanceType<typeof YMonthPicker>;\n"],"mappings":";AAAA,SAASA,QAAQ,QAAQ,KAAK;AAAC,SAEtBC,cAAc;AAAA,SACdC,SAAS;AAAA,SACTC,OAAO;AAAA,SACPC,WAAW;AAAA,SACXC,eAAe,EAAEC,YAAY;AAAA,SAE7BC,OAAO;AAEhB;AAEA,OAAO,MAAMC,6BAA6B,GAAGF,YAAY,CACvD;EACEG,UAAU,EAAEC,MAAM;EAClBC,KAAK,EAAEC,MAAM;EACbC,MAAM,EAAE,CAACD,MAAM,EAAEF,MAAM;AACzB,CAAC,EACD,cACF,CAAC;AAED,OAAO,MAAMI,YAAY,GAAGT,eAAe,CAAC;EAC1CU,IAAI,EAAE,cAAc;EACpBC,KAAK,EAAER,6BAA6B,CAAC,CAAC;EACtCS,KAAKA,CAACD,KAAK,EAAE;IACX,MAAME,QAAQ,GAAGf,OAAO,CAAC,CAAC;IAC1B,MAAMgB,KAAK,GAAGlB,cAAc,CAACe,KAAK,EAAE,YAAY,CAAC;IAEjD,MAAMI,MAAM,GAAGpB,QAAQ,CAAC,MAAM;MAC5B,IAAIqB,IAAI,GAAGH,QAAQ,CAACI,WAAW,CAACJ,QAAQ,CAACG,IAAI,CAAC,CAAC,CAAC;MAEhD,OAAOjB,WAAW,CAAC,EAAE,CAAC,CAACmB,GAAG,CAAEC,CAAC,IAAK;QAChC,MAAMC,IAAI,GAAGP,QAAQ,CAACQ,MAAM,CAACL,IAAI,EAAE,YAAY,CAAC;QAChDA,IAAI,GAAGH,QAAQ,CAACS,YAAY,CAACN,IAAI,CAAC;QAElC,OAAO;UACLI,IAAI;UACJG,KAAK,EAAEJ;QACT,CAAC;MACH,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,SAASK,OAAOA,CAACC,KAAa,EAAE;MAC9BX,KAAK,CAACS,KAAK,GAAGE,KAAK;IACrB;IAEA5B,SAAS,CAAC,MAAM;MACd,OAAA6B,YAAA;QAAA,SACc,CAAC,gBAAgB;MAAC,IAC3BX,MAAM,CAACQ,KAAK,CAACL,GAAG,CAAC,CAACS,KAAK,EAAEF,KAAK,KAAK;QAClC,MAAMG,IAAI,GAAG;UACXC,MAAM,EAAEJ,KAAK,KAAKX,KAAK,CAACS;QAC1B,CAAC;QACD,OAAAG,YAAA;UAAA,SACc,CAAC,sBAAsB,EAAE,uBAAuB;QAAC,IAAAA,YAAA,CAAAxB,OAAA;UAAA,aAE9C,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC4B,IAAI,CAAC,GAAG,CAAC;UAAA,UAChCF,IAAI,CAACC,MAAM;UAAA,SACZlB,KAAK,CAACL,KAAK;UAAA,WACTkB,CAAA,KAAMA,OAAO,CAACC,KAAK;QAAC;UAAAM,OAAA,EAAAA,CAAA,MAE5BJ,KAAK,CAACP,IAAI;QAAA;MAInB,CAAC,CAAC;IAGR,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"YMonthPicker.mjs","names":["computed","useModelDuplex","useRender","useDate","getRangeArr","defineComponent","propsFactory","YButton","pressYMonthPickerPropsOptions","modelValue","Number","color","String","height","YMonthPicker","name","props","emits","setup","_ref","emit","dateUtil","model","months","date","startOfYear","map","i","text","format","getNextMonth","value","onClick","index","_createVNode","month","item","active","join","default"],"sources":["../../../src/components/date-picker/YMonthPicker.tsx"],"sourcesContent":["import { computed } from 'vue';\n\nimport { useModelDuplex } from '@/composables/communication';\nimport { useRender } from '@/composables/component';\nimport { useDate } from '@/composables/date';\nimport { getRangeArr } from '@/util/common';\nimport { defineComponent, propsFactory } from '@/util/component';\n\nimport { YButton } from '../button';\n\nimport './YMonthPicker.scss';\n\nexport const pressYMonthPickerPropsOptions = propsFactory(\n {\n modelValue: Number,\n color: String,\n height: [String, Number],\n },\n 'YMonthPicker',\n);\n\nexport const YMonthPicker = defineComponent({\n name: 'YMonthPicker',\n props: pressYMonthPickerPropsOptions(),\n emits: ['mode'],\n setup(props, { emit }) {\n const dateUtil = useDate();\n const model = useModelDuplex(props, 'modelValue');\n\n const months = computed(() => {\n let date = dateUtil.startOfYear(dateUtil.date());\n\n return getRangeArr(12).map((i) => {\n const text = dateUtil.format(date, 'monthShort');\n date = dateUtil.getNextMonth(date);\n\n return {\n text,\n value: i,\n };\n });\n });\n\n function onClick(index: number) {\n if (model.value === index) {\n emit('mode');\n }\n model.value = index;\n }\n\n useRender(() => {\n return (\n <div class={['y-month-picker']}>\n {months.value.map((month, index) => {\n const item = {\n active: index === model.value,\n };\n return (\n <div class={['y-month-picker__cell', 'y-month-picker__month']}>\n <YButton\n variation={['rounded', 'text'].join(',')}\n active={item.active}\n color={props.color}\n onClick={() => onClick(index)}\n >\n {month.text}\n </YButton>\n </div>\n );\n })}\n </div>\n );\n });\n\n return {};\n },\n});\n\nexport type YMonthPicker = InstanceType<typeof YMonthPicker>;\n"],"mappings":";AAAA,SAASA,QAAQ,QAAQ,KAAK;AAAC,SAEtBC,cAAc;AAAA,SACdC,SAAS;AAAA,SACTC,OAAO;AAAA,SACPC,WAAW;AAAA,SACXC,eAAe,EAAEC,YAAY;AAAA,SAE7BC,OAAO;AAEhB;AAEA,OAAO,MAAMC,6BAA6B,GAAGF,YAAY,CACvD;EACEG,UAAU,EAAEC,MAAM;EAClBC,KAAK,EAAEC,MAAM;EACbC,MAAM,EAAE,CAACD,MAAM,EAAEF,MAAM;AACzB,CAAC,EACD,cACF,CAAC;AAED,OAAO,MAAMI,YAAY,GAAGT,eAAe,CAAC;EAC1CU,IAAI,EAAE,cAAc;EACpBC,KAAK,EAAER,6BAA6B,CAAC,CAAC;EACtCS,KAAK,EAAE,CAAC,MAAM,CAAC;EACfC,KAAKA,CAACF,KAAK,EAAAG,IAAA,EAAY;IAAA,IAAV;MAAEC;IAAK,CAAC,GAAAD,IAAA;IACnB,MAAME,QAAQ,GAAGlB,OAAO,CAAC,CAAC;IAC1B,MAAMmB,KAAK,GAAGrB,cAAc,CAACe,KAAK,EAAE,YAAY,CAAC;IAEjD,MAAMO,MAAM,GAAGvB,QAAQ,CAAC,MAAM;MAC5B,IAAIwB,IAAI,GAAGH,QAAQ,CAACI,WAAW,CAACJ,QAAQ,CAACG,IAAI,CAAC,CAAC,CAAC;MAEhD,OAAOpB,WAAW,CAAC,EAAE,CAAC,CAACsB,GAAG,CAAEC,CAAC,IAAK;QAChC,MAAMC,IAAI,GAAGP,QAAQ,CAACQ,MAAM,CAACL,IAAI,EAAE,YAAY,CAAC;QAChDA,IAAI,GAAGH,QAAQ,CAACS,YAAY,CAACN,IAAI,CAAC;QAElC,OAAO;UACLI,IAAI;UACJG,KAAK,EAAEJ;QACT,CAAC;MACH,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,SAASK,OAAOA,CAACC,KAAa,EAAE;MAC9B,IAAIX,KAAK,CAACS,KAAK,KAAKE,KAAK,EAAE;QACzBb,IAAI,CAAC,MAAM,CAAC;MACd;MACAE,KAAK,CAACS,KAAK,GAAGE,KAAK;IACrB;IAEA/B,SAAS,CAAC,MAAM;MACd,OAAAgC,YAAA;QAAA,SACc,CAAC,gBAAgB;MAAC,IAC3BX,MAAM,CAACQ,KAAK,CAACL,GAAG,CAAC,CAACS,KAAK,EAAEF,KAAK,KAAK;QAClC,MAAMG,IAAI,GAAG;UACXC,MAAM,EAAEJ,KAAK,KAAKX,KAAK,CAACS;QAC1B,CAAC;QACD,OAAAG,YAAA;UAAA,SACc,CAAC,sBAAsB,EAAE,uBAAuB;QAAC,IAAAA,YAAA,CAAA3B,OAAA;UAAA,aAE9C,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC+B,IAAI,CAAC,GAAG,CAAC;UAAA,UAChCF,IAAI,CAACC,MAAM;UAAA,SACZrB,KAAK,CAACL,KAAK;UAAA,WACTqB,CAAA,KAAMA,OAAO,CAACC,KAAK;QAAC;UAAAM,OAAA,EAAAA,CAAA,MAE5BJ,KAAK,CAACP,IAAI;QAAA;MAInB,CAAC,CAAC;IAGR,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
@@ -19,6 +19,7 @@ const interval = 20;
19
19
  export const YYearPicker = defineComponent({
20
20
  name: 'YYearPicker',
21
21
  props: pressYYearPickerPropsOptions(),
22
+ emits: ['mode'],
22
23
  setup(props, _ref) {
23
24
  let {
24
25
  emit,
@@ -40,6 +41,9 @@ export const YYearPicker = defineComponent({
40
41
  });
41
42
  });
42
43
  function onClick(value) {
44
+ if (model.value === value) {
45
+ emit('mode');
46
+ }
43
47
  model.value = value;
44
48
  }
45
49
  function changePage() {
@@ -1 +1 @@
1
- {"version":3,"file":"YYearPicker.mjs","names":["computed","ref","useModelDuplex","useRender","useDate","getRangeArr","defineComponent","propsFactory","YButton","pressYYearPickerPropsOptions","modelValue","Number","color","String","height","min","max","interval","YYearPicker","name","props","setup","_ref","emit","expose","dateUtil","model","tempYear","value","startYear","years","date","startOfYear","map","setYear","text","format","active","onClick","changePage","dir","arguments","length","undefined","change","_createVNode","year","scopedProps","item","join","default"],"sources":["../../../src/components/date-picker/YYearPicker.tsx"],"sourcesContent":["import { PropType, computed, ref } from 'vue';\n\nimport { useModelDuplex } from '@/composables/communication';\nimport { useRender } from '@/composables/component';\nimport { useDate } from '@/composables/date';\nimport { getRangeArr } from '@/util/common';\nimport { defineComponent } from '@/util/component';\nimport { propsFactory } from '@/util/component';\n\nimport { YButton } from '../button';\n\nimport './YYearPicker.scss';\n\nexport const pressYYearPickerPropsOptions = propsFactory(\n {\n modelValue: Number,\n color: String,\n height: [String, Number],\n min: null as any as PropType<unknown>,\n max: null as any as PropType<unknown>,\n },\n 'YYearPicker',\n);\n\nconst interval = 20;\n\nexport const YYearPicker = defineComponent({\n name: 'YYearPicker',\n props: pressYYearPickerPropsOptions(),\n setup(props, { emit, expose }) {\n const dateUtil = useDate();\n const model = useModelDuplex(props, 'modelValue');\n const tempYear = model.value;\n const startYear = ref(\n tempYear - (tempYear % interval) - (tempYear < 0 ? interval : 0),\n );\n const years = computed(() => {\n let date = dateUtil.startOfYear(dateUtil.date());\n\n return getRangeArr(interval + 1, startYear.value).map((value) => {\n date = dateUtil.setYear(date, value);\n return {\n text: dateUtil.format(date, 'year'),\n value,\n active: model.value === value,\n };\n });\n });\n\n function onClick(value: number) {\n model.value = value;\n }\n\n function changePage(dir = 1) {\n let change = startYear.value + interval * dir;\n if (change < 0) {\n change = 0;\n }\n startYear.value = change;\n }\n\n expose({\n changePage,\n });\n\n useRender(() => {\n return (\n <div class={['y-year-picker']}>\n {years.value.map((year) => {\n const scopedProps = {\n item: year,\n props: {\n onClick: () => {\n onClick(year.value);\n },\n },\n };\n return (\n <div class={['y-year-picker__cell']}>\n <YButton\n variation={['rounded', 'text'].join(',')}\n active={year.active}\n color={props.color}\n onClick={() => onClick(year.value)}\n >\n {year.text}\n </YButton>\n </div>\n );\n })}\n </div>\n );\n });\n\n return {};\n },\n});\n\nexport type YYearPicker = InstanceType<typeof YYearPicker>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"YYearPicker.mjs","names":["computed","ref","useModelDuplex","useRender","useDate","getRangeArr","defineComponent","propsFactory","YButton","pressYYearPickerPropsOptions","modelValue","Number","color","String","height","min","max","interval","YYearPicker","name","props","emits","setup","_ref","emit","expose","dateUtil","model","tempYear","value","startYear","years","date","startOfYear","map","setYear","text","format","active","onClick","changePage","dir","arguments","length","undefined","change","_createVNode","year","scopedProps","item","join","default"],"sources":["../../../src/components/date-picker/YYearPicker.tsx"],"sourcesContent":["import { PropType, computed, ref } from 'vue';\n\nimport { useModelDuplex } from '@/composables/communication';\nimport { useRender } from '@/composables/component';\nimport { useDate } from '@/composables/date';\nimport { getRangeArr } from '@/util/common';\nimport { defineComponent } from '@/util/component';\nimport { propsFactory } from '@/util/component';\n\nimport { YButton } from '../button';\n\nimport './YYearPicker.scss';\n\nexport const pressYYearPickerPropsOptions = propsFactory(\n {\n modelValue: Number,\n color: String,\n height: [String, Number],\n min: null as any as PropType<unknown>,\n max: null as any as PropType<unknown>,\n },\n 'YYearPicker',\n);\n\nconst interval = 20;\n\nexport const YYearPicker = defineComponent({\n name: 'YYearPicker',\n props: pressYYearPickerPropsOptions(),\n emits: ['mode'],\n setup(props, { emit, expose }) {\n const dateUtil = useDate();\n const model = useModelDuplex(props, 'modelValue');\n const tempYear = model.value;\n const startYear = ref(\n tempYear - (tempYear % interval) - (tempYear < 0 ? interval : 0),\n );\n const years = computed(() => {\n let date = dateUtil.startOfYear(dateUtil.date());\n\n return getRangeArr(interval + 1, startYear.value).map((value) => {\n date = dateUtil.setYear(date, value);\n return {\n text: dateUtil.format(date, 'year'),\n value,\n active: model.value === value,\n };\n });\n });\n\n function onClick(value: number) {\n if (model.value === value) {\n emit('mode');\n }\n model.value = value;\n }\n\n function changePage(dir = 1) {\n let change = startYear.value + interval * dir;\n if (change < 0) {\n change = 0;\n }\n startYear.value = change;\n }\n\n expose({\n changePage,\n });\n\n useRender(() => {\n return (\n <div class={['y-year-picker']}>\n {years.value.map((year) => {\n const scopedProps = {\n item: year,\n props: {\n onClick: () => {\n onClick(year.value);\n },\n },\n };\n return (\n <div class={['y-year-picker__cell']}>\n <YButton\n variation={['rounded', 'text'].join(',')}\n active={year.active}\n color={props.color}\n onClick={() => onClick(year.value)}\n >\n {year.text}\n </YButton>\n </div>\n );\n })}\n </div>\n );\n });\n\n return {};\n },\n});\n\nexport type YYearPicker = InstanceType<typeof YYearPicker>;\n"],"mappings":"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"}
@@ -61,6 +61,7 @@ export const pressYLayerProps = propsFactory({
61
61
  default: 2000
62
62
  },
63
63
  contained: Boolean,
64
+ layerGroup: [String, Object],
64
65
  ...pressThemePropsOptions(),
65
66
  ...pressPolyTransitionPropsOptions(),
66
67
  ...pressBasePropsOptions(),
@@ -113,7 +114,7 @@ export const YLayer = defineComponent({
113
114
  layerGroup,
114
115
  layerGroupState,
115
116
  getActiveLayers
116
- } = useLayerGroup();
117
+ } = useLayerGroup(computed(() => props.layerGroup));
117
118
  const {
118
119
  polyTransitionBindProps
119
120
  } = usePolyTransition(props);
@@ -1 +1 @@
1
- {"version":3,"file":"YLayer.mjs","names":["Teleport","Transition","computed","getCurrentInstance","mergeProps","reactive","ref","shallowRef","toRef","useModelDuplex","useRender","pressCoordinateProps","useCoordinate","pressDimensionPropsOptions","useDimension","useLayerGroup","pressThemePropsOptions","useLocalTheme","useLazy","PolyTransition","pressPolyTransitionPropsOptions","usePolyTransition","ComplementClick","bindClasses","defineComponent","propsFactory","pressBasePropsOptions","useBase","pressContentPropsOptions","useContent","pressScrollStrategyProps","useScrollStrategies","pressYLayerProps","modelValue","type","Boolean","scrim","scrimOpacity","Number","eager","classes","Array","String","Object","contentClasses","closeClickScrim","contentStyles","default","disabled","openOnHover","openDelay","closeDelay","zIndex","contained","YLayer","name","inheritAttrs","components","directives","props","modal","emits","value","mouseEvent","afterLeave","slots","setup","_ref","emit","expose","attrs","vm","scrim$","content$","root$","base","base$","baseEl","baseSlot","baseFromSlotEl","themeClasses","layerGroup","layerGroupState","getActiveLayers","polyTransitionBindProps","dimensionStyles","model","active","get","set","v","contentEvents","finish","hovered","lazyValue","onAfterUpdate","rendered","coordinateStyles","updateCoordinate","contentEl","root","onClickComplementLayer","target","closeConditional","complementClickOption","handler","determine","include","onAfterEnter","onAfterLeave","onClickScrim","onMouseenter","event","onMouseleave","computedStyle","toString","computedClass","boundClasses","computedContentClasses","isMe","vnode","slotBase","class","_createVNode","_Fragment","_mergeProps","_withDirectives","_vShow","_resolveDirective"],"sources":["../../../src/components/layer/YLayer.tsx"],"sourcesContent":["import type {\n CSSProperties,\n ComponentInternalInstance,\n PropType,\n SlotsType,\n} from 'vue';\nimport {\n Teleport,\n Transition,\n computed,\n getCurrentInstance,\n mergeProps,\n reactive,\n ref,\n shallowRef,\n toRef,\n} from 'vue';\n\nimport { useModelDuplex } from '@/composables/communication';\nimport { useRender } from '@/composables/component';\nimport { pressCoordinateProps, useCoordinate } from '@/composables/coordinate';\nimport {\n pressDimensionPropsOptions,\n useDimension,\n} from '@/composables/dimension';\nimport { useLayerGroup } from '@/composables/layer-group';\nimport { pressThemePropsOptions, useLocalTheme } from '@/composables/theme';\nimport { useLazy } from '@/composables/timing';\nimport {\n PolyTransition,\n pressPolyTransitionPropsOptions,\n usePolyTransition,\n} from '@/composables/transition';\nimport {\n ComplementClick,\n ComplementClickBindingOptions,\n} from '@/directives/complement-click';\nimport { bindClasses, defineComponent, propsFactory } from '@/util/component';\n\nimport { pressBasePropsOptions, useBase } from './base';\nimport { pressContentPropsOptions, useContent } from './content';\nimport {\n pressScrollStrategyProps,\n useScrollStrategies,\n} from './scroll-strategies';\n\nimport './YLayer.scss';\n\nexport const pressYLayerProps = propsFactory(\n {\n modelValue: {\n type: Boolean as PropType<boolean>,\n },\n scrim: {\n type: Boolean as PropType<boolean>,\n },\n scrimOpacity: {\n type: Number as PropType<number>,\n },\n eager: {\n type: Boolean as PropType<boolean>,\n },\n classes: {\n type: [Array, String, Object] as PropType<\n string[] | string | Record<string, any>\n >,\n },\n contentClasses: {\n type: [Array, String, Object] as PropType<\n string[] | string | Record<string, any>\n >,\n },\n closeClickScrim: {\n type: Boolean as PropType<boolean>,\n },\n contentStyles: {\n type: Object as PropType<CSSProperties>,\n default: () => {},\n },\n disabled: {\n type: Boolean as PropType<boolean>,\n default: false,\n },\n openOnHover: {\n type: Boolean as PropType<boolean>,\n default: false,\n },\n openDelay: {\n type: Number as PropType<number>,\n default: 200,\n },\n closeDelay: {\n type: Number as PropType<number>,\n default: 200,\n },\n zIndex: {\n type: [Number, String] as PropType<number | string>,\n default: 2000,\n },\n contained: Boolean,\n ...pressThemePropsOptions(),\n ...pressPolyTransitionPropsOptions(),\n ...pressBasePropsOptions(),\n ...pressContentPropsOptions(),\n ...pressCoordinateProps(),\n ...pressScrollStrategyProps(),\n ...pressDimensionPropsOptions(),\n },\n 'YLayer',\n);\n\nexport const YLayer = defineComponent({\n name: 'YLayer',\n inheritAttrs: false,\n components: {\n PolyTransition,\n },\n directives: {\n ComplementClick,\n },\n props: {\n modal: Boolean as PropType<boolean>,\n ...pressYLayerProps(),\n },\n emits: {\n 'update:modelValue': (value: boolean) => true,\n 'click:complement': (mouseEvent: MouseEvent) => true,\n afterLeave: () => true,\n },\n slots: Object as SlotsType<{\n base: any;\n default: any;\n }>,\n setup(props, { emit, expose, attrs, slots }) {\n const vm = getCurrentInstance();\n\n const scrim$ = ref<HTMLElement>();\n const content$ = ref<HTMLElement>();\n const root$ = ref<HTMLElement>();\n\n const { base, base$, baseEl, baseSlot, baseFromSlotEl } = useBase(props);\n\n const { themeClasses } = useLocalTheme(props);\n const { layerGroup, layerGroupState, getActiveLayers } = useLayerGroup();\n const { polyTransitionBindProps } = usePolyTransition(props);\n const { dimensionStyles } = useDimension(props);\n const model = useModelDuplex(props);\n\n const active = computed({\n get: (): boolean => {\n return !!model.value;\n },\n set: (v: boolean) => {\n if (!(v && props.disabled)) model.value = v;\n },\n });\n const { contentEvents } = useContent(props, active);\n const finish = shallowRef(false);\n const hovered = ref(false);\n\n const disabled = toRef(props, 'disabled');\n const { lazyValue, onAfterUpdate } = useLazy(toRef(props, 'eager'), active);\n const rendered = computed<boolean>(\n () => !disabled.value && (lazyValue.value || active.value),\n );\n\n const { coordinateStyles, updateCoordinate } = useCoordinate(props, {\n contentEl: content$,\n base,\n active,\n });\n useScrollStrategies(props, {\n root: root$,\n contentEl: content$,\n active,\n baseEl: base,\n updateCoordinate,\n });\n\n function onClickComplementLayer(mouseEvent: MouseEvent) {\n emit('click:complement', mouseEvent);\n if (!props.modal) {\n if (\n scrim$.value !== null &&\n scrim$.value === mouseEvent.target &&\n props.closeClickScrim\n ) {\n active.value = false;\n }\n } else {\n // TODO: shrug ani\n }\n }\n\n function closeConditional(): boolean {\n return (\n (!props.openOnHover || (props.openOnHover && !hovered.value)) &&\n active.value &&\n finish.value\n ); // TODO: && groupTopLevel.value;\n }\n\n const complementClickOption = reactive<ComplementClickBindingOptions>({\n handler: onClickComplementLayer,\n determine: closeConditional,\n include: () => [baseEl.value],\n });\n\n function onAfterEnter() {\n finish.value = true;\n }\n\n function onAfterLeave() {\n onAfterUpdate();\n finish.value = false;\n emit('afterLeave');\n }\n\n function onClickScrim() {\n if (props.closeClickScrim) {\n active.value = false;\n }\n }\n\n function onMouseenter(event: Event) {\n hovered.value = true;\n }\n\n function onMouseleave(event: Event) {\n hovered.value = false;\n }\n\n const computedStyle = computed(() => {\n return {\n zIndex: (props.zIndex ?? '2000').toString(),\n };\n });\n\n const computedClass = computed<Record<string, boolean>>(() => {\n const { classes } = props;\n const boundClasses = bindClasses(classes);\n return {\n ...boundClasses,\n 'y-layer--active': !!active.value,\n };\n });\n\n const computedContentClasses = computed<Record<string, boolean>>(() => {\n const boundClasses = bindClasses(props.contentClasses);\n return {\n ...boundClasses,\n };\n });\n\n expose({\n scrim$,\n base$,\n content$: computed(() => content$.value),\n baseEl,\n active,\n onAfterUpdate,\n updateCoordinate,\n hovered,\n finish,\n modal: computed(() => props.modal),\n getActiveLayers,\n isMe: (vnode: ComponentInternalInstance) => {\n return vnode === vm;\n },\n });\n\n useRender(() => {\n const slotBase = slots.base?.({\n active: active.value,\n props: mergeProps({\n ref: base$,\n class: {\n 'y-layer-base': true,\n 'y-layer-base--active': active.value,\n },\n }),\n });\n baseSlot.value = slotBase;\n return (\n <>\n {slotBase}\n <Teleport disabled={!layerGroup.value} to={layerGroup.value as any}>\n {rendered.value && (\n <div\n class={[\n {\n 'y-layer': true,\n 'y-layer--finish': finish.value,\n 'y-layer--contained': props.contained,\n ...computedClass.value,\n },\n themeClasses.value,\n ]}\n onMouseenter={onMouseenter}\n onMouseleave={onMouseleave}\n style={computedStyle.value}\n ref={root$}\n {...attrs}\n >\n <Transition name=\"fade\" appear>\n {active.value && props.scrim && (\n <div\n class=\"y-layer__scrim\"\n style={{ '--y-layer-scrim-opacity': props.scrimOpacity }}\n onClick={onClickScrim}\n ref=\"scrim$\"\n ></div>\n )}\n </Transition>\n <PolyTransition\n onAfterEnter={onAfterEnter}\n onAfterLeave={onAfterLeave}\n appear\n {...polyTransitionBindProps.value}\n >\n <div\n v-show={active.value}\n v-complement-click={{ ...complementClickOption }}\n class={{\n 'y-layer__content': true,\n ...computedContentClasses.value,\n }}\n style={[\n {\n ...dimensionStyles.value,\n ...coordinateStyles.value,\n ...props.contentStyles,\n },\n ]}\n {...contentEvents.value}\n ref={content$}\n >\n {slots.default?.({ active: active.value })}\n </div>\n </PolyTransition>\n </div>\n )}\n </Teleport>\n </>\n );\n });\n\n return {\n complementClickOption,\n layerGroup,\n active,\n finish,\n rendered,\n lazyValue,\n onAfterUpdate: onAfterUpdate as () => void,\n scrim$,\n content$,\n base$,\n baseEl,\n baseFromSlotEl,\n polyTransitionBindProps,\n coordinateStyles,\n layerGroupState,\n getActiveLayers,\n };\n },\n});\n\nexport type YLayer = InstanceType<typeof YLayer>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"YLayer.mjs","names":["Teleport","Transition","computed","getCurrentInstance","mergeProps","reactive","ref","shallowRef","toRef","useModelDuplex","useRender","pressCoordinateProps","useCoordinate","pressDimensionPropsOptions","useDimension","useLayerGroup","pressThemePropsOptions","useLocalTheme","useLazy","PolyTransition","pressPolyTransitionPropsOptions","usePolyTransition","ComplementClick","bindClasses","defineComponent","propsFactory","pressBasePropsOptions","useBase","pressContentPropsOptions","useContent","pressScrollStrategyProps","useScrollStrategies","pressYLayerProps","modelValue","type","Boolean","scrim","scrimOpacity","Number","eager","classes","Array","String","Object","contentClasses","closeClickScrim","contentStyles","default","disabled","openOnHover","openDelay","closeDelay","zIndex","contained","layerGroup","YLayer","name","inheritAttrs","components","directives","props","modal","emits","value","mouseEvent","afterLeave","slots","setup","_ref","emit","expose","attrs","vm","scrim$","content$","root$","base","base$","baseEl","baseSlot","baseFromSlotEl","themeClasses","layerGroupState","getActiveLayers","polyTransitionBindProps","dimensionStyles","model","active","get","set","v","contentEvents","finish","hovered","lazyValue","onAfterUpdate","rendered","coordinateStyles","updateCoordinate","contentEl","root","onClickComplementLayer","target","closeConditional","complementClickOption","handler","determine","include","onAfterEnter","onAfterLeave","onClickScrim","onMouseenter","event","onMouseleave","computedStyle","toString","computedClass","boundClasses","computedContentClasses","isMe","vnode","slotBase","class","_createVNode","_Fragment","_mergeProps","_withDirectives","_vShow","_resolveDirective"],"sources":["../../../src/components/layer/YLayer.tsx"],"sourcesContent":["import type {\n CSSProperties,\n ComponentInternalInstance,\n PropType,\n SlotsType,\n} from 'vue';\nimport {\n Teleport,\n Transition,\n computed,\n getCurrentInstance,\n mergeProps,\n reactive,\n ref,\n shallowRef,\n toRef,\n} from 'vue';\n\nimport { useModelDuplex } from '@/composables/communication';\nimport { useRender } from '@/composables/component';\nimport { pressCoordinateProps, useCoordinate } from '@/composables/coordinate';\nimport {\n pressDimensionPropsOptions,\n useDimension,\n} from '@/composables/dimension';\nimport { useLayerGroup } from '@/composables/layer-group';\nimport { pressThemePropsOptions, useLocalTheme } from '@/composables/theme';\nimport { useLazy } from '@/composables/timing';\nimport {\n PolyTransition,\n pressPolyTransitionPropsOptions,\n usePolyTransition,\n} from '@/composables/transition';\nimport {\n ComplementClick,\n ComplementClickBindingOptions,\n} from '@/directives/complement-click';\nimport { bindClasses, defineComponent, propsFactory } from '@/util/component';\n\nimport { pressBasePropsOptions, useBase } from './base';\nimport { pressContentPropsOptions, useContent } from './content';\nimport {\n pressScrollStrategyProps,\n useScrollStrategies,\n} from './scroll-strategies';\n\nimport './YLayer.scss';\n\nexport const pressYLayerProps = propsFactory(\n {\n modelValue: {\n type: Boolean as PropType<boolean>,\n },\n scrim: {\n type: Boolean as PropType<boolean>,\n },\n scrimOpacity: {\n type: Number as PropType<number>,\n },\n eager: {\n type: Boolean as PropType<boolean>,\n },\n classes: {\n type: [Array, String, Object] as PropType<\n string[] | string | Record<string, any>\n >,\n },\n contentClasses: {\n type: [Array, String, Object] as PropType<\n string[] | string | Record<string, any>\n >,\n },\n closeClickScrim: {\n type: Boolean as PropType<boolean>,\n },\n contentStyles: {\n type: Object as PropType<CSSProperties>,\n default: () => {},\n },\n disabled: {\n type: Boolean as PropType<boolean>,\n default: false,\n },\n openOnHover: {\n type: Boolean as PropType<boolean>,\n default: false,\n },\n openDelay: {\n type: Number as PropType<number>,\n default: 200,\n },\n closeDelay: {\n type: Number as PropType<number>,\n default: 200,\n },\n zIndex: {\n type: [Number, String] as PropType<number | string>,\n default: 2000,\n },\n contained: Boolean,\n layerGroup: [String, Object] as PropType<string | Element>,\n ...pressThemePropsOptions(),\n ...pressPolyTransitionPropsOptions(),\n ...pressBasePropsOptions(),\n ...pressContentPropsOptions(),\n ...pressCoordinateProps(),\n ...pressScrollStrategyProps(),\n ...pressDimensionPropsOptions(),\n },\n 'YLayer',\n);\n\nexport const YLayer = defineComponent({\n name: 'YLayer',\n inheritAttrs: false,\n components: {\n PolyTransition,\n },\n directives: {\n ComplementClick,\n },\n props: {\n modal: Boolean as PropType<boolean>,\n ...pressYLayerProps(),\n },\n emits: {\n 'update:modelValue': (value: boolean) => true,\n 'click:complement': (mouseEvent: MouseEvent) => true,\n afterLeave: () => true,\n },\n slots: Object as SlotsType<{\n base: any;\n default: any;\n }>,\n setup(props, { emit, expose, attrs, slots }) {\n const vm = getCurrentInstance();\n\n const scrim$ = ref<HTMLElement>();\n const content$ = ref<HTMLElement>();\n const root$ = ref<HTMLElement>();\n\n const { base, base$, baseEl, baseSlot, baseFromSlotEl } = useBase(props);\n\n const { themeClasses } = useLocalTheme(props);\n const { layerGroup, layerGroupState, getActiveLayers } = useLayerGroup(\n computed(() => props.layerGroup),\n );\n const { polyTransitionBindProps } = usePolyTransition(props);\n const { dimensionStyles } = useDimension(props);\n const model = useModelDuplex(props);\n\n const active = computed({\n get: (): boolean => {\n return !!model.value;\n },\n set: (v: boolean) => {\n if (!(v && props.disabled)) model.value = v;\n },\n });\n const { contentEvents } = useContent(props, active);\n const finish = shallowRef(false);\n const hovered = ref(false);\n\n const disabled = toRef(props, 'disabled');\n const { lazyValue, onAfterUpdate } = useLazy(toRef(props, 'eager'), active);\n const rendered = computed<boolean>(\n () => !disabled.value && (lazyValue.value || active.value),\n );\n\n const { coordinateStyles, updateCoordinate } = useCoordinate(props, {\n contentEl: content$,\n base,\n active,\n });\n useScrollStrategies(props, {\n root: root$,\n contentEl: content$,\n active,\n baseEl: base,\n updateCoordinate,\n });\n\n function onClickComplementLayer(mouseEvent: MouseEvent) {\n emit('click:complement', mouseEvent);\n if (!props.modal) {\n if (\n scrim$.value !== null &&\n scrim$.value === mouseEvent.target &&\n props.closeClickScrim\n ) {\n active.value = false;\n }\n } else {\n // TODO: shrug ani\n }\n }\n\n function closeConditional(): boolean {\n return (\n (!props.openOnHover || (props.openOnHover && !hovered.value)) &&\n active.value &&\n finish.value\n ); // TODO: && groupTopLevel.value;\n }\n\n const complementClickOption = reactive<ComplementClickBindingOptions>({\n handler: onClickComplementLayer,\n determine: closeConditional,\n include: () => [baseEl.value],\n });\n\n function onAfterEnter() {\n finish.value = true;\n }\n\n function onAfterLeave() {\n onAfterUpdate();\n finish.value = false;\n emit('afterLeave');\n }\n\n function onClickScrim() {\n if (props.closeClickScrim) {\n active.value = false;\n }\n }\n\n function onMouseenter(event: Event) {\n hovered.value = true;\n }\n\n function onMouseleave(event: Event) {\n hovered.value = false;\n }\n\n const computedStyle = computed(() => {\n return {\n zIndex: (props.zIndex ?? '2000').toString(),\n };\n });\n\n const computedClass = computed<Record<string, boolean>>(() => {\n const { classes } = props;\n const boundClasses = bindClasses(classes);\n return {\n ...boundClasses,\n 'y-layer--active': !!active.value,\n };\n });\n\n const computedContentClasses = computed<Record<string, boolean>>(() => {\n const boundClasses = bindClasses(props.contentClasses);\n return {\n ...boundClasses,\n };\n });\n\n expose({\n scrim$,\n base$,\n content$: computed(() => content$.value),\n baseEl,\n active,\n onAfterUpdate,\n updateCoordinate,\n hovered,\n finish,\n modal: computed(() => props.modal),\n getActiveLayers,\n isMe: (vnode: ComponentInternalInstance) => {\n return vnode === vm;\n },\n });\n\n useRender(() => {\n const slotBase = slots.base?.({\n active: active.value,\n props: mergeProps({\n ref: base$,\n class: {\n 'y-layer-base': true,\n 'y-layer-base--active': active.value,\n },\n }),\n });\n baseSlot.value = slotBase;\n return (\n <>\n {slotBase}\n <Teleport disabled={!layerGroup.value} to={layerGroup.value as any}>\n {rendered.value && (\n <div\n class={[\n {\n 'y-layer': true,\n 'y-layer--finish': finish.value,\n 'y-layer--contained': props.contained,\n ...computedClass.value,\n },\n themeClasses.value,\n ]}\n onMouseenter={onMouseenter}\n onMouseleave={onMouseleave}\n style={computedStyle.value}\n ref={root$}\n {...attrs}\n >\n <Transition name=\"fade\" appear>\n {active.value && props.scrim && (\n <div\n class=\"y-layer__scrim\"\n style={{ '--y-layer-scrim-opacity': props.scrimOpacity }}\n onClick={onClickScrim}\n ref=\"scrim$\"\n ></div>\n )}\n </Transition>\n <PolyTransition\n onAfterEnter={onAfterEnter}\n onAfterLeave={onAfterLeave}\n appear\n {...polyTransitionBindProps.value}\n >\n <div\n v-show={active.value}\n v-complement-click={{ ...complementClickOption }}\n class={{\n 'y-layer__content': true,\n ...computedContentClasses.value,\n }}\n style={[\n {\n ...dimensionStyles.value,\n ...coordinateStyles.value,\n ...props.contentStyles,\n },\n ]}\n {...contentEvents.value}\n ref={content$}\n >\n {slots.default?.({ active: active.value })}\n </div>\n </PolyTransition>\n </div>\n )}\n </Teleport>\n </>\n );\n });\n\n return {\n complementClickOption,\n layerGroup,\n active,\n finish,\n rendered,\n lazyValue,\n onAfterUpdate: onAfterUpdate as () => void,\n scrim$,\n content$,\n base$,\n baseEl,\n baseFromSlotEl,\n polyTransitionBindProps,\n coordinateStyles,\n layerGroupState,\n getActiveLayers,\n };\n },\n});\n\nexport type YLayer = InstanceType<typeof YLayer>;\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { computed, getCurrentInstance, onBeforeUnmount, watch } from 'vue';
1
+ import { computed, getCurrentInstance, onBeforeUnmount, unref, watch } from 'vue';
2
2
  import { useYuyeon } from "./../index.mjs";
3
3
  export const Y_LAYER_GROUP_CLASS_NAME = 'y-layer-group';
4
4
  const layerGroupState = new WeakMap();
@@ -6,12 +6,12 @@ export function useLayerGroup(target) {
6
6
  const vm = getCurrentInstance();
7
7
  const yuyeon = useYuyeon();
8
8
  const layerGroup = computed(() => {
9
- const refTarget = target?.value;
10
9
  let targetEl = document.body;
11
10
  const rootEl = yuyeon.root;
12
11
  if (rootEl) {
13
12
  targetEl = rootEl;
14
13
  }
14
+ const refTarget = unref(target);
15
15
  if (typeof refTarget === 'string') {
16
16
  const el = document.querySelector(refTarget);
17
17
  if (el) {
@@ -1 +1 @@
1
- {"version":3,"file":"layer-group.mjs","names":["computed","getCurrentInstance","onBeforeUnmount","watch","useYuyeon","Y_LAYER_GROUP_CLASS_NAME","layerGroupState","WeakMap","useLayerGroup","target","vm","yuyeon","layerGroup","refTarget","value","targetEl","document","body","rootEl","root","el","querySelector","nodeType","layerEl","createElement","className","appendChild","neo","old","has","get","delete","set","Set","add","immediate","getActiveLayers","activeLayers","currentGroup","forEach","ctx","active","isUnmounted","push","unregister"],"sources":["../../src/composables/layer-group.ts"],"sourcesContent":["import { computed, getCurrentInstance, onBeforeUnmount, watch } from 'vue';\nimport type { ComponentInternalInstance, Ref } from 'vue';\n\nimport { useYuyeon } from '@/index';\n\nexport const Y_LAYER_GROUP_CLASS_NAME = 'y-layer-group';\n\nconst layerGroupState = new WeakMap<HTMLElement, Set<any>>();\n\nexport function useLayerGroup(target?: Ref<string | Element>) {\n const vm = getCurrentInstance()!;\n const yuyeon = useYuyeon();\n\n const layerGroup = computed<HTMLElement>(() => {\n const refTarget = target?.value;\n let targetEl: Element = document.body;\n\n const rootEl = yuyeon.root;\n if (rootEl) {\n targetEl = rootEl;\n }\n\n if (typeof refTarget === 'string') {\n const el = document.querySelector(refTarget);\n if (el) {\n targetEl = el;\n }\n }\n if (refTarget && (refTarget as Element).nodeType === 1) {\n targetEl = refTarget as Element;\n }\n //\n let layerEl = targetEl.querySelector(`.${Y_LAYER_GROUP_CLASS_NAME}`);\n if (!layerEl) {\n layerEl = document.createElement('div');\n layerEl.className = Y_LAYER_GROUP_CLASS_NAME;\n targetEl.appendChild(layerEl);\n }\n return layerEl as HTMLElement;\n });\n\n watch(\n layerGroup,\n (neo, old) => {\n if (old && layerGroupState.has(old)) {\n layerGroupState.get(old)?.delete(vm);\n }\n if (!(layerGroupState.has(neo) && layerGroupState.get(neo))) {\n layerGroupState.set(neo, new Set());\n }\n layerGroupState.get(neo)?.add(vm);\n },\n { immediate: true },\n );\n\n function getActiveLayers() {\n const activeLayers: ComponentInternalInstance[] = [];\n const currentGroup = layerGroupState.get(layerGroup.value);\n currentGroup?.forEach((value) => {\n if (value?.ctx?.active && !value?.isUnmounted) {\n activeLayers.push(value);\n }\n });\n return activeLayers;\n }\n\n function unregister() {\n layerGroupState.get(layerGroup.value)?.delete(vm);\n }\n\n onBeforeUnmount(() => {\n unregister();\n });\n\n return { layerGroup, layerGroupState, getActiveLayers };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"layer-group.mjs","names":["computed","getCurrentInstance","onBeforeUnmount","unref","watch","useYuyeon","Y_LAYER_GROUP_CLASS_NAME","layerGroupState","WeakMap","useLayerGroup","target","vm","yuyeon","layerGroup","targetEl","document","body","rootEl","root","refTarget","el","querySelector","nodeType","layerEl","createElement","className","appendChild","neo","old","has","get","delete","set","Set","add","immediate","getActiveLayers","activeLayers","currentGroup","value","forEach","ctx","active","isUnmounted","push","unregister"],"sources":["../../src/composables/layer-group.ts"],"sourcesContent":["import { computed, getCurrentInstance, onBeforeUnmount, unref, watch } from 'vue';\nimport type { ComponentInternalInstance, Ref } from 'vue';\n\n\n\nimport { useYuyeon } from '@/index';\n\n\nexport const Y_LAYER_GROUP_CLASS_NAME = 'y-layer-group';\n\nconst layerGroupState = new WeakMap<HTMLElement, Set<any>>();\n\nexport function useLayerGroup(target?: Ref<string | Element | undefined>) {\n const vm = getCurrentInstance()!;\n const yuyeon = useYuyeon();\n\n const layerGroup = computed<HTMLElement>(() => {\n let targetEl: Element = document.body;\n const rootEl = yuyeon.root;\n if (rootEl) {\n targetEl = rootEl;\n }\n const refTarget = unref(target);\n if (typeof refTarget === 'string') {\n const el = document.querySelector(refTarget);\n if (el) {\n targetEl = el;\n }\n }\n if (refTarget && (refTarget as Element).nodeType === 1) {\n targetEl = refTarget as Element;\n }\n //\n let layerEl = targetEl.querySelector(`.${Y_LAYER_GROUP_CLASS_NAME}`);\n if (!layerEl) {\n layerEl = document.createElement('div');\n layerEl.className = Y_LAYER_GROUP_CLASS_NAME;\n targetEl.appendChild(layerEl);\n }\n return layerEl as HTMLElement;\n });\n\n watch(\n layerGroup,\n (neo, old) => {\n if (old && layerGroupState.has(old)) {\n layerGroupState.get(old)?.delete(vm);\n }\n if (!(layerGroupState.has(neo) && layerGroupState.get(neo))) {\n layerGroupState.set(neo, new Set());\n }\n layerGroupState.get(neo)?.add(vm);\n },\n { immediate: true },\n );\n\n function getActiveLayers() {\n const activeLayers: ComponentInternalInstance[] = [];\n const currentGroup = layerGroupState.get(layerGroup.value);\n currentGroup?.forEach((value) => {\n if (value?.ctx?.active && !value?.isUnmounted) {\n activeLayers.push(value);\n }\n });\n return activeLayers;\n }\n\n function unregister() {\n layerGroupState.get(layerGroup.value)?.delete(vm);\n }\n\n onBeforeUnmount(() => {\n unregister();\n });\n\n return { layerGroup, layerGroupState, getActiveLayers };\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yuyeon",
3
- "version": "0.2.1-rc.12",
3
+ "version": "0.2.1-rc.13",
4
4
  "keywords": [
5
5
  "UI Library",
6
6
  "Vue"
@@ -21,5 +21,5 @@ export declare const YMonthPicker: import('vue').DefineComponent<{
21
21
  modelValue: NumberConstructor;
22
22
  color: StringConstructor;
23
23
  height: (NumberConstructor | StringConstructor)[];
24
- }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string>;
24
+ }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, "mode"[], "mode">;
25
25
  export type YMonthPicker = InstanceType<typeof YMonthPicker>;
@@ -34,5 +34,5 @@ export declare const YYearPicker: import('vue').DefineComponent<{
34
34
  height: (NumberConstructor | StringConstructor)[];
35
35
  min: PropType<unknown>;
36
36
  max: PropType<unknown>;
37
- }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string>;
37
+ }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, "mode"[], "mode">;
38
38
  export type YYearPicker = InstanceType<typeof YYearPicker>;
@@ -30,6 +30,7 @@ export declare const pressYDialogPropsOptions: <Defaults extends {
30
30
  contentStyles?: unknown;
31
31
  openOnHover?: unknown;
32
32
  contained?: unknown;
33
+ layerGroup?: unknown;
33
34
  persistent?: unknown;
34
35
  dialogClasses?: unknown;
35
36
  maximized?: unknown;
@@ -278,6 +279,10 @@ export declare const pressYDialogPropsOptions: <Defaults extends {
278
279
  type: PropType<unknown extends Defaults["contained"] ? boolean : boolean | Defaults["contained"]>;
279
280
  default: unknown extends Defaults["contained"] ? boolean : boolean | Defaults["contained"];
280
281
  };
282
+ layerGroup: unknown extends Defaults["layerGroup"] ? PropType<string | Element> : {
283
+ type: PropType<unknown extends Defaults["layerGroup"] ? string | Element : NonNullable<string | Element> | Defaults["layerGroup"]>;
284
+ default: unknown extends Defaults["layerGroup"] ? string | Element : NonNullable<string | Element> | Defaults["layerGroup"];
285
+ };
281
286
  persistent: unknown extends Defaults["persistent"] ? {
282
287
  type: PropType<boolean>;
283
288
  default: boolean;
@@ -408,6 +413,7 @@ export declare const YDialog: import('vue').DefineComponent<{
408
413
  default: boolean;
409
414
  };
410
415
  contained: BooleanConstructor;
416
+ layerGroup: PropType<string | Element>;
411
417
  persistent: {
412
418
  type: PropType<boolean>;
413
419
  default: boolean;
@@ -519,6 +525,7 @@ export declare const YDialog: import('vue').DefineComponent<{
519
525
  default: number;
520
526
  };
521
527
  contained: BooleanConstructor;
528
+ layerGroup: PropType<string | Element>;
522
529
  modal: PropType<boolean>;
523
530
  }, {
524
531
  complementClickOption: {
@@ -39,6 +39,7 @@ export declare const pressYDropdownPropsOptions: <Defaults extends {
39
39
  contentStyles?: unknown;
40
40
  openOnHover?: unknown;
41
41
  contained?: unknown;
42
+ layerGroup?: unknown;
42
43
  preventClip?: unknown;
43
44
  preventCloseBubble?: unknown;
44
45
  menuClasses?: unknown;
@@ -367,6 +368,10 @@ export declare const pressYDropdownPropsOptions: <Defaults extends {
367
368
  type: PropType<unknown extends Defaults["contained"] ? boolean : boolean | Defaults["contained"]>;
368
369
  default: unknown extends Defaults["contained"] ? boolean : boolean | Defaults["contained"];
369
370
  };
371
+ layerGroup: unknown extends Defaults["layerGroup"] ? PropType<string | Element> : {
372
+ type: PropType<unknown extends Defaults["layerGroup"] ? string | Element : NonNullable<string | Element> | Defaults["layerGroup"]>;
373
+ default: unknown extends Defaults["layerGroup"] ? string | Element : NonNullable<string | Element> | Defaults["layerGroup"];
374
+ };
370
375
  preventClip: unknown extends Defaults["preventClip"] ? {
371
376
  type: PropType<boolean>;
372
377
  default: boolean;
@@ -531,6 +536,7 @@ export declare const YDropdown: import('vue').DefineComponent<{
531
536
  default: boolean;
532
537
  };
533
538
  contained: BooleanConstructor;
539
+ layerGroup: PropType<string | Element>;
534
540
  preventClip: {
535
541
  type: PropType<boolean>;
536
542
  default: boolean;
@@ -32,6 +32,7 @@ export declare const pressYLayerProps: <Defaults extends {
32
32
  closeDelay?: unknown;
33
33
  zIndex?: unknown;
34
34
  contained?: unknown;
35
+ layerGroup?: unknown;
35
36
  } = {}>(defaults?: Defaults | undefined) => {
36
37
  minWidth: unknown extends Defaults["minWidth"] ? PropType<string | number> : {
37
38
  type: PropType<unknown extends Defaults["minWidth"] ? string | number : NonNullable<string | number> | Defaults["minWidth"]>;
@@ -285,6 +286,10 @@ export declare const pressYLayerProps: <Defaults extends {
285
286
  type: PropType<unknown extends Defaults["contained"] ? boolean : boolean | Defaults["contained"]>;
286
287
  default: unknown extends Defaults["contained"] ? boolean : boolean | Defaults["contained"];
287
288
  };
289
+ layerGroup: unknown extends Defaults["layerGroup"] ? PropType<string | Element> : {
290
+ type: PropType<unknown extends Defaults["layerGroup"] ? string | Element : Defaults["layerGroup"] | NonNullable<string | Element>>;
291
+ default: unknown extends Defaults["layerGroup"] ? string | Element : Defaults["layerGroup"] | NonNullable<string | Element>;
292
+ };
288
293
  };
289
294
  export declare const YLayer: import('vue').DefineComponent<{
290
295
  minWidth: PropType<string | number>;
@@ -378,6 +383,7 @@ export declare const YLayer: import('vue').DefineComponent<{
378
383
  default: number;
379
384
  };
380
385
  contained: BooleanConstructor;
386
+ layerGroup: PropType<string | Element>;
381
387
  modal: PropType<boolean>;
382
388
  }, {
383
389
  complementClickOption: {
@@ -99,6 +99,7 @@ export declare const YMenuPropOptions: {
99
99
  default: number;
100
100
  };
101
101
  contained: BooleanConstructor;
102
+ layerGroup: PropType<string | Element>;
102
103
  menuClasses: {
103
104
  type: PropType<string | string[] | Record<string, any>>;
104
105
  };
@@ -224,6 +225,7 @@ export declare const YMenu: import('vue').DefineComponent<{
224
225
  default: number;
225
226
  };
226
227
  contained: BooleanConstructor;
228
+ layerGroup: PropType<string | Element>;
227
229
  menuClasses: {
228
230
  type: PropType<string | string[] | Record<string, any>>;
229
231
  };
@@ -332,6 +334,7 @@ export declare const YMenu: import('vue').DefineComponent<{
332
334
  default: number;
333
335
  };
334
336
  contained: BooleanConstructor;
337
+ layerGroup: PropType<string | Element>;
335
338
  modal: PropType<boolean>;
336
339
  }, {
337
340
  complementClickOption: {