@opendesign-plus/components 0.0.1-rc.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-OElCookieNotice.cjs.js +1 -0
- package/dist/chunk-OElCookieNotice.es.js +281 -0
- package/dist/components/OBanner.vue.d.ts +2 -0
- package/dist/components/OCookieNotice.vue.d.ts +16 -0
- package/dist/components/OFooter.vue.d.ts +25 -0
- package/dist/components/OHeader.vue.d.ts +23 -0
- package/dist/components/OHeaderMoblie.vue.d.ts +33 -0
- package/dist/components/OHeaderSearch.vue.d.ts +692 -0
- package/dist/components/OHeaderUser.vue.d.ts +40 -0
- package/dist/components/OPlusConfigProvider.vue.d.ts +23 -0
- package/dist/components/OSection.vue.d.ts +37 -0
- package/dist/components/OSourceCode.vue.d.ts +20 -0
- package/dist/components/OThemeSwitcher.vue.d.ts +28 -0
- package/dist/components/element-plus/OElCookieNotice.vue.d.ts +31 -0
- package/dist/components/element-plus/index.d.ts +2 -0
- package/dist/components/events/OEventsApply.vue.d.ts +16 -0
- package/dist/components/events/OEventsCalendar.vue.d.ts +5 -0
- package/dist/components/events/OEventsList.vue.d.ts +26 -0
- package/dist/components/events/config.d.ts +26 -0
- package/dist/components/events/index.d.ts +78 -0
- package/dist/components/events/types.d.ts +66 -0
- package/dist/components/events/utils.d.ts +7 -0
- package/dist/components.cjs.js +3 -0
- package/dist/components.css +1 -0
- package/dist/components.element.cjs.js +1 -0
- package/dist/components.element.es.js +4 -0
- package/dist/components.es.js +3509 -0
- package/dist/index.d.ts +18 -0
- package/docs/design.md +27 -0
- package/docs/design_banner.md +41 -0
- package/docs/design_section.md +27 -0
- package/npmcachae/_cacache/content-v2/sha512/bd/56/25079ffb18446953f88fc063c3d6eaf7191772851b8477c118f113b920a7f357b67b9006181af58c9f68b0059b899ad0f2c86fe0a6490958d138cb063afd +1 -0
- package/npmcachae/_cacache/index-v5/d8/49/af4c6bb8f580edbd7b6e18db381844403e5f689a9849c5ffcdd2dd95d735 +3 -0
- package/npmcachae/_logs/2026-03-17T09_38_12_009Z-debug-0.log +157 -0
- package/npmcachae/_logs/2026-03-17T09_38_14_370Z-debug-0.log +157 -0
- package/npmcachae/_logs/2026-03-17T09_38_16_516Z-debug-0.log +157 -0
- package/npmcachae/_logs/2026-03-17T09_38_18_616Z-debug-0.log +157 -0
- package/npmcachae/_logs/2026-03-17T09_38_20_859Z-debug-0.log +157 -0
- package/npmcachae/_logs/2026-03-17T09_38_23_182Z-debug-0.log +157 -0
- package/npmcachae/_logs/2026-03-17T09_38_25_452Z-debug-0.log +157 -0
- package/npmcachae/_logs/2026-03-17T09_38_27_865Z-debug-0.log +157 -0
- package/npmcachae/_logs/2026-03-17T09_38_30_082Z-debug-0.log +157 -0
- package/npmcachae/_logs/2026-03-17T09_38_32_219Z-debug-0.log +157 -0
- package/npmcachae/_logs/2026-03-17T09_38_34_308Z-debug-0.log +157 -0
- package/npmcachae/_update-notifier-last-checked +0 -0
- package/package.json +53 -0
- package/scripts/generate-components-index.js +100 -0
- package/src/assets/events/city/default-cover.png +0 -0
- package/src/assets/events/city//344/270/212/346/265/267.png +0 -0
- package/src/assets/events/city//345/214/227/344/272/254.png +0 -0
- package/src/assets/events/city//345/215/227/344/272/254.png +0 -0
- package/src/assets/events/city//345/244/251/346/264/245.png +0 -0
- package/src/assets/events/city//345/271/277/345/267/236.png +0 -0
- package/src/assets/events/city//346/210/220/351/203/275.png +0 -0
- package/src/assets/events/city//346/227/240/351/224/241.png +0 -0
- package/src/assets/events/city//346/235/255/345/267/236.png +0 -0
- package/src/assets/events/city//346/255/246/346/261/211.png +0 -0
- package/src/assets/events/city//346/267/261/345/234/2631.png +0 -0
- package/src/assets/events/city//346/267/261/345/234/2632.png +0 -0
- package/src/assets/events/city//350/213/217/345/267/236.png +0 -0
- package/src/assets/events/city//350/245/277/345/256/211.png +0 -0
- package/src/assets/events/city//351/203/221/345/267/236.png +0 -0
- package/src/assets/events/svg-icons/icon-checked.svg +3 -0
- package/src/assets/events/svg-icons/icon-competition.svg +7 -0
- package/src/assets/events/svg-icons/icon-events.svg +4 -0
- package/src/assets/events/svg-icons/icon-release.svg +4 -0
- package/src/assets/events/svg-icons/icon-summit.svg +4 -0
- package/src/assets/svg-icons/icon-arrow-left.svg +3 -0
- package/src/assets/svg-icons/icon-avatar-line.svg +3 -0
- package/src/assets/svg-icons/icon-caret-left.svg +3 -0
- package/src/assets/svg-icons/icon-caret-right.svg +3 -0
- package/src/assets/svg-icons/icon-chevron-down.svg +3 -0
- package/src/assets/svg-icons/icon-chevron-right.svg +3 -0
- package/src/assets/svg-icons/icon-close.svg +3 -0
- package/src/assets/svg-icons/icon-delete.svg +3 -0
- package/src/assets/svg-icons/icon-header-back.svg +3 -0
- package/src/assets/svg-icons/icon-header-delete.svg +3 -0
- package/src/assets/svg-icons/icon-header-menu.svg +3 -0
- package/src/assets/svg-icons/icon-header-person.svg +3 -0
- package/src/assets/svg-icons/icon-header-search.svg +4 -0
- package/src/assets/svg-icons/icon-locale.svg +3 -0
- package/src/assets/svg-icons/icon-log-off.svg +3 -0
- package/src/assets/svg-icons/icon-message.svg +3 -0
- package/src/assets/svg-icons/icon-moon.svg +3 -0
- package/src/assets/svg-icons/icon-outlink.svg +3 -0
- package/src/assets/svg-icons/icon-overview.svg +3 -0
- package/src/assets/svg-icons/icon-setting.svg +3 -0
- package/src/assets/svg-icons/icon-sun.svg +3 -0
- package/src/components/OBanner.vue +390 -0
- package/src/components/OCookieNotice.vue +423 -0
- package/src/components/OFooter.vue +566 -0
- package/src/components/OHeader.vue +97 -0
- package/src/components/OHeaderMoblie.vue +149 -0
- package/src/components/OHeaderSearch.vue +601 -0
- package/src/components/OHeaderUser.vue +304 -0
- package/src/components/OPlusConfigProvider.vue +32 -0
- package/src/components/OSection.vue +178 -0
- package/src/components/OSourceCode.vue +153 -0
- package/src/components/OThemeSwitcher.vue +108 -0
- package/src/components/common/AppAvatar.vue +83 -0
- package/src/components/common/ClientOnlyWrapper.ts +21 -0
- package/src/components/common/ContentWrapper.vue +85 -0
- package/src/components/common/HeaderEulerNav.vue +1118 -0
- package/src/components/common/HeaderNavMoblie.vue +344 -0
- package/src/components/common/HeaderUbmcNav.vue +597 -0
- package/src/components/element-plus/OElCookieNotice.vue +412 -0
- package/src/components/element-plus/index.ts +3 -0
- package/src/components/events/OEventsApply.vue +487 -0
- package/src/components/events/OEventsCalendar.vue +611 -0
- package/src/components/events/OEventsList.vue +402 -0
- package/src/components/events/config.ts +47 -0
- package/src/components/events/index.ts +23 -0
- package/src/components/events/npmcachae/_cacache/content-v2/sha512/2c/4f/a4140bfbf374a43f7dfe71880c051f79149cd259fb1a154fb692802c7489ef2317b737e7e690a627714ba19317971f29051b3798c246297b425a626a5b7a +1 -0
- package/src/components/events/npmcachae/_cacache/index-v5/8e/86/70dc69f1b1592fe14da10d2516ddfaa609af0cd9054a6ebde664acc6ab12 +2 -0
- package/src/components/events/npmcachae/_logs/2026-03-25T09_58_33_134Z-debug-0.log +105 -0
- package/src/components/events/npmcachae/_update-notifier-last-checked +0 -0
- package/src/components/events/types.ts +80 -0
- package/src/components/events/utils.ts +9 -0
- package/src/components/meeting/npmcachae/_cacache/content-v2/sha512/3e/17/1865217b9acb9f4921c53a09b5c76587cd2ab748beb2699ff6cfb1341d73b1aa56ed91ffc5ab2c9c9b3fbe626103b35d9a79ff29ff6b8cbb8d89755fe1a2 +1 -0
- package/src/components/meeting/npmcachae/_cacache/content-v2/sha512/a6/15/47bb7552ec9248079e839a5feecc1742d4de19524fdf041cf581701cf4760a5025106036145e279ba193b07c8fa5b07ae3d75f1b6032f0cb2219115b6167 +1 -0
- package/src/components/meeting/npmcachae/_cacache/content-v2/sha512/d1/4c/133b32e09c97101a27a07cc4432f94e470cff02d120d21babcea77c3f5cd436793516dc1a8e282ee1a568f923c148b1a48f4a43233462a530d35e8b41c67 +1 -0
- package/src/components/meeting/npmcachae/_cacache/index-v5/54/0d/a4909047714a0a7198bb9bd37020992464e47c79a791889919b84d90aab0 +3 -0
- package/src/components/meeting/npmcachae/_cacache/index-v5/8e/2b/21a79778e2ac08cf5663baf83cb35f951995a496007eb2e2f7fba54021a4 +3 -0
- package/src/components/meeting/npmcachae/_cacache/index-v5/eb/a0/b70c8132e5b57a0f1e129b8cc941796420a9c147c0baa680710083740898 +2 -0
- package/src/components/meeting/npmcachae/_logs/2026-03-20T07_03_54_955Z-debug-0.log +277 -0
- package/src/components/meeting/npmcachae/_logs/2026-03-20T07_03_57_842Z-debug-0.log +277 -0
- package/src/components/meeting/npmcachae/_logs/2026-03-20T07_04_00_016Z-debug-0.log +277 -0
- package/src/components/meeting/npmcachae/_logs/2026-03-20T07_04_02_191Z-debug-0.log +277 -0
- package/src/components/meeting/npmcachae/_logs/2026-03-20T07_04_04_425Z-debug-0.log +277 -0
- package/src/components/meeting/npmcachae/_logs/2026-03-20T07_04_06_642Z-debug-0.log +277 -0
- package/src/components/meeting/npmcachae/_logs/2026-03-20T07_04_08_826Z-debug-0.log +277 -0
- package/src/components/meeting/npmcachae/_logs/2026-03-20T07_25_36_140Z-debug-0.log +433 -0
- package/src/components/meeting/npmcachae/_logs/2026-03-20T07_25_39_573Z-debug-0.log +433 -0
- package/src/components/meeting/npmcachae/_logs/2026-03-20T07_25_42_134Z-debug-0.log +212 -0
- package/src/components/meeting/npmcachae/_update-notifier-last-checked +0 -0
- package/src/draft/Banner.vue +265 -0
- package/src/draft/ButtonCards.vue +106 -0
- package/src/draft/Feature.vue +134 -0
- package/src/draft/Footer.vue +512 -0
- package/src/draft/HorizontalAnchor.vue +165 -0
- package/src/draft/ItemSwiper.vue +133 -0
- package/src/draft/Logo.vue +141 -0
- package/src/draft/LogoCard.vue +75 -0
- package/src/draft/LogoV2.vue +19 -0
- package/src/draft/MainCard.vue +38 -0
- package/src/draft/MultiCard.vue +95 -0
- package/src/draft/MultiIconCard.vue +74 -0
- package/src/draft/OInfoCard.vue +176 -0
- package/src/draft/Process.vue +81 -0
- package/src/draft/Section.vue +167 -0
- package/src/draft/SingleTabCard.vue +85 -0
- package/src/draft/SliderCard.vue +110 -0
- package/src/env.d.ts +1 -0
- package/src/i18n/en.ts +20 -0
- package/src/i18n/index.ts +42 -0
- package/src/i18n/zh.ts +14 -0
- package/src/index.ts +46 -0
- package/src/npmcachae/_cacache/content-v2/sha512/bd/56/25079ffb18446953f88fc063c3d6eaf7191772851b8477c118f113b920a7f357b67b9006181af58c9f68b0059b899ad0f2c86fe0a6490958d138cb063afd +1 -0
- package/src/npmcachae/_cacache/index-v5/d8/49/af4c6bb8f580edbd7b6e18db381844403e5f689a9849c5ffcdd2dd95d735 +3 -0
- package/src/npmcachae/_logs/2026-03-17T10_53_33_398Z-debug-0.log +156 -0
- package/src/npmcachae/_logs/2026-03-17T10_53_35_464Z-debug-0.log +156 -0
- package/src/npmcachae/_logs/2026-03-17T10_53_37_852Z-debug-0.log +156 -0
- package/src/npmcachae/_update-notifier-last-checked +0 -0
- package/src/shared/provide.ts +6 -0
- package/src/shims-vue-dompurify-html.d.ts +17 -0
- package/src/vue.d.ts +10 -0
- package/tsconfig.json +33 -0
- package/vite.config.ts +102 -0
|
@@ -0,0 +1,402 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import {
|
|
3
|
+
OCard,
|
|
4
|
+
ODivider,
|
|
5
|
+
OIcon,
|
|
6
|
+
OIconSearch,
|
|
7
|
+
OInput, OPagination,
|
|
8
|
+
ORadio,
|
|
9
|
+
ORadioGroup,
|
|
10
|
+
OTag,
|
|
11
|
+
OToggle,
|
|
12
|
+
} from '@opensig/opendesign';
|
|
13
|
+
import { computed, ref } from 'vue';
|
|
14
|
+
import { type EventsCardItemT, EventsStatusT, type EventsListPropsT, SearchParamsT } from './types';
|
|
15
|
+
import { compareDate } from './utils.ts';
|
|
16
|
+
import { useI18n } from '@/i18n';
|
|
17
|
+
import defaultCover from '@/assets/events/city/default-cover.png';
|
|
18
|
+
import { CITY_MAP } from './config.ts';
|
|
19
|
+
import { useScreen } from '@opendesign-plus/composables';
|
|
20
|
+
|
|
21
|
+
const { t } = useI18n();
|
|
22
|
+
const { lePadV } = useScreen();
|
|
23
|
+
|
|
24
|
+
const props = withDefaults(
|
|
25
|
+
defineProps<EventsListPropsT>(),
|
|
26
|
+
{
|
|
27
|
+
data: () => [],
|
|
28
|
+
},
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
interface StatusOptionT {
|
|
32
|
+
label: string;
|
|
33
|
+
value: EventsStatusT;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const statusOptions: StatusOptionT[] = [
|
|
37
|
+
{
|
|
38
|
+
label: t('events.statusAll'),
|
|
39
|
+
value: EventsStatusT.ALL,
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
label: t('events.statusIng'),
|
|
43
|
+
value: EventsStatusT.ING,
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
label: t('events.statusFinish'),
|
|
47
|
+
value: EventsStatusT.FINISH,
|
|
48
|
+
},
|
|
49
|
+
];
|
|
50
|
+
|
|
51
|
+
defineSlots<{
|
|
52
|
+
empty?: () => any;
|
|
53
|
+
}>();
|
|
54
|
+
|
|
55
|
+
const emits = defineEmits<{
|
|
56
|
+
(e: 'search', params: SearchParamsT): void;
|
|
57
|
+
}>();
|
|
58
|
+
const status = ref<EventsStatusT>(EventsStatusT.ALL);
|
|
59
|
+
const input = ref('');
|
|
60
|
+
const keyword = ref('');
|
|
61
|
+
|
|
62
|
+
const emitSearch = (params = {}) => {
|
|
63
|
+
emits(
|
|
64
|
+
'search',
|
|
65
|
+
Object.assign(
|
|
66
|
+
{
|
|
67
|
+
page: props.page,
|
|
68
|
+
pageSize: props.pageSize,
|
|
69
|
+
status: status.value,
|
|
70
|
+
keyword: keyword.value,
|
|
71
|
+
},
|
|
72
|
+
params,
|
|
73
|
+
),
|
|
74
|
+
);
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
const changeStatus = () => {
|
|
78
|
+
emitSearch();
|
|
79
|
+
};
|
|
80
|
+
const changeKeyword = () => {
|
|
81
|
+
keyword.value = input.value;
|
|
82
|
+
emitSearch();
|
|
83
|
+
};
|
|
84
|
+
const list = computed(() => {
|
|
85
|
+
return props.data
|
|
86
|
+
.map((v: EventsCardItemT) => {
|
|
87
|
+
return {
|
|
88
|
+
...v,
|
|
89
|
+
status: !compareDate(new Date(), v.date as string) ? EventsStatusT.ING : EventsStatusT.FINISH,
|
|
90
|
+
};
|
|
91
|
+
})
|
|
92
|
+
.sort((a: EventsCardItemT, b: EventsCardItemT) => (compareDate(a.date as string, b.date as string) ? -1 : 1))
|
|
93
|
+
.map((v) => {
|
|
94
|
+
const city = v.city?.replace('市', '')?.replace('中国', '')?.replaceAll(' ', '');
|
|
95
|
+
let cover = null;
|
|
96
|
+
|
|
97
|
+
if (Array.isArray(CITY_MAP[city])) {
|
|
98
|
+
cover = CITY_MAP[city][v.name.length % CITY_MAP[city].length];
|
|
99
|
+
} else {
|
|
100
|
+
cover = CITY_MAP[city];
|
|
101
|
+
}
|
|
102
|
+
if (!cover) {
|
|
103
|
+
cover = defaultCover;
|
|
104
|
+
}
|
|
105
|
+
return {
|
|
106
|
+
...v,
|
|
107
|
+
cover,
|
|
108
|
+
};
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
</script>
|
|
112
|
+
|
|
113
|
+
<template>
|
|
114
|
+
<div class="o-events-list">
|
|
115
|
+
<div class="filter-wrapper">
|
|
116
|
+
<div class="filter-left">
|
|
117
|
+
<span>{{ t('events.status') }}</span>
|
|
118
|
+
<ORadioGroup v-model="status" :style="{ '--radio-group-gap': '8px' }" @change="changeStatus">
|
|
119
|
+
<ORadio v-for="t in statusOptions" :key="t.value" :value="t.value">
|
|
120
|
+
<template #radio="{ checked }">
|
|
121
|
+
<OToggle :checked="checked">{{ t.label }}</OToggle>
|
|
122
|
+
</template>
|
|
123
|
+
</ORadio>
|
|
124
|
+
</ORadioGroup>
|
|
125
|
+
</div>
|
|
126
|
+
<OInput
|
|
127
|
+
v-model="input"
|
|
128
|
+
:placeholder="t('events.searchPlaceholder')"
|
|
129
|
+
@pressEnter="changeKeyword"
|
|
130
|
+
@clear="changeKeyword"
|
|
131
|
+
clearable>
|
|
132
|
+
<template #prefix>
|
|
133
|
+
<OIcon class="input-icon">
|
|
134
|
+
<OIconSearch />
|
|
135
|
+
</OIcon>
|
|
136
|
+
</template>
|
|
137
|
+
</OInput>
|
|
138
|
+
</div>
|
|
139
|
+
<div class="list-content">
|
|
140
|
+
<OCard v-for="item in list" :key="item.name" :cover="item.cover" :href="item.link">
|
|
141
|
+
<OTag class="event-status">
|
|
142
|
+
{{ item.status === EventsStatusT.ING ? t('events.statusIng') : t('events.statusFinish') }}
|
|
143
|
+
</OTag>
|
|
144
|
+
<div class="event-name">{{ item.name }}</div>
|
|
145
|
+
<div class="event-desc">
|
|
146
|
+
<div class="event-date">{{ item.date }}</div>
|
|
147
|
+
<ODivider direction="v" />
|
|
148
|
+
<div class="event-location" v-if="item.city">{{ item.city }}</div>
|
|
149
|
+
</div>
|
|
150
|
+
</OCard>
|
|
151
|
+
</div>
|
|
152
|
+
<template v-if="!list.length">
|
|
153
|
+
<slot name="empty"></slot>
|
|
154
|
+
</template>
|
|
155
|
+
<OPagination
|
|
156
|
+
v-if="total > 8"
|
|
157
|
+
:page="page"
|
|
158
|
+
:simple="lePadV"
|
|
159
|
+
:show-total="true"
|
|
160
|
+
:pageSize="pageSize"
|
|
161
|
+
:total="total"
|
|
162
|
+
@change="emitSearch"
|
|
163
|
+
:pageSizes="[4, 12, 24, 36, 48]"
|
|
164
|
+
/>
|
|
165
|
+
</div>
|
|
166
|
+
</template>
|
|
167
|
+
|
|
168
|
+
<style lang="scss">
|
|
169
|
+
.o-events-list {
|
|
170
|
+
.filter-wrapper {
|
|
171
|
+
display: flex;
|
|
172
|
+
align-items: center;
|
|
173
|
+
flex-wrap: wrap;
|
|
174
|
+
justify-content: space-between;
|
|
175
|
+
background-color: var(--o-color-fill2);
|
|
176
|
+
border-radius: var(--o-radius-xs);
|
|
177
|
+
padding: var(--o-gap-5) var(--o-gap-6);
|
|
178
|
+
gap: var(--o-gap-3) var(--o-gap-2);
|
|
179
|
+
@include respond-to('laptop') {
|
|
180
|
+
padding: var(--o-gap-4) var(--o-gap-5);
|
|
181
|
+
}
|
|
182
|
+
@include respond-to('pad_h') {
|
|
183
|
+
padding: var(--o-gap-4) var(--o-gap-5);
|
|
184
|
+
}
|
|
185
|
+
@include respond-to('pad_v') {
|
|
186
|
+
padding: var(--o-gap-3) var(--o-gap-4);
|
|
187
|
+
}
|
|
188
|
+
@include respond-to('phone') {
|
|
189
|
+
padding: var(--o-gap-3) var(--o-gap-4);
|
|
190
|
+
}
|
|
191
|
+
@include text1;
|
|
192
|
+
|
|
193
|
+
.filter-left {
|
|
194
|
+
display: flex;
|
|
195
|
+
align-items: center;
|
|
196
|
+
gap: var(--o-gap-2);
|
|
197
|
+
flex-wrap: wrap;
|
|
198
|
+
|
|
199
|
+
span:first-child {
|
|
200
|
+
flex-shrink: 0;
|
|
201
|
+
margin-right: var(--o-gap-5);
|
|
202
|
+
font-weight: 500;
|
|
203
|
+
@include respond-to('laptop') {
|
|
204
|
+
margin-right: var(--o-gap-4);
|
|
205
|
+
}
|
|
206
|
+
@include respond-to('pad_h') {
|
|
207
|
+
margin-right: var(--o-gap-3);
|
|
208
|
+
}
|
|
209
|
+
@include respond-to('pad_v') {
|
|
210
|
+
margin-right: var(--o-gap-4);
|
|
211
|
+
}
|
|
212
|
+
@include respond-to('phone') {
|
|
213
|
+
margin-right: var(--o-gap-4);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
.o-toggle {
|
|
218
|
+
--toggle-size: 32px;
|
|
219
|
+
--toggle-padding: 3px 15px;
|
|
220
|
+
--toggle-radius: 4px;
|
|
221
|
+
max-height: 32px;
|
|
222
|
+
--toggle-bg-color: var(--o-color-fill1);
|
|
223
|
+
--toggle-bg-color-hover: var(--o-color-control2-light);
|
|
224
|
+
--toggle-color: var(--o-color-info1);
|
|
225
|
+
--toggle-color-hover: var(--o-color-info1);
|
|
226
|
+
--toggle-color-active: var(--o-color-primary1);
|
|
227
|
+
--toggle-color-disabled: var(--o-color-info4);
|
|
228
|
+
@include text1;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
.o-input {
|
|
233
|
+
.o-icon-search {
|
|
234
|
+
font-size: 24px;
|
|
235
|
+
@include respond-to('<=pad_v') {
|
|
236
|
+
font-size: 16px;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
.list-content {
|
|
242
|
+
display: grid;
|
|
243
|
+
grid-template-columns: repeat(4, 1fr);
|
|
244
|
+
gap: var(--o-gap-6);
|
|
245
|
+
margin-top: var(--o-gap-6);
|
|
246
|
+
@include respond-to('<=pad_v') {
|
|
247
|
+
grid-template-columns: repeat(1, 1fr);
|
|
248
|
+
}
|
|
249
|
+
@include respond-to('laptop') {
|
|
250
|
+
margin-top: var(--o-gap-5);
|
|
251
|
+
gap: var(--o-gap-5);
|
|
252
|
+
}
|
|
253
|
+
@include respond-to('pad_h') {
|
|
254
|
+
margin-top: var(--o-gap-4);
|
|
255
|
+
gap: var(--o-gap-4);
|
|
256
|
+
}
|
|
257
|
+
@include respond-to('pad_v') {
|
|
258
|
+
margin-top: var(--o-gap-4);
|
|
259
|
+
gap: var(--o-gap-3);
|
|
260
|
+
}
|
|
261
|
+
@include respond-to('phone') {
|
|
262
|
+
margin-top: var(--o-gap-4);
|
|
263
|
+
gap: var(--o-gap-3);
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
.o-card {
|
|
267
|
+
aspect-ratio: 1 / 1;
|
|
268
|
+
position: relative;
|
|
269
|
+
@include respond-to('<=pad_v') {
|
|
270
|
+
aspect-ratio: 1 / 0.4;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
.o-card-cover {
|
|
274
|
+
padding: 0;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
.o-card-content {
|
|
278
|
+
display: flex;
|
|
279
|
+
flex-direction: column;
|
|
280
|
+
align-items: center;
|
|
281
|
+
justify-content: center;
|
|
282
|
+
position: absolute;
|
|
283
|
+
overflow: hidden; // 防止内容溢出
|
|
284
|
+
box-sizing: border-box; // 确保 padding 计入总尺寸
|
|
285
|
+
left: 0;
|
|
286
|
+
top: 0;
|
|
287
|
+
width: 100%;
|
|
288
|
+
height: 100%;
|
|
289
|
+
color: var(--o-color-white);
|
|
290
|
+
text-align: center;
|
|
291
|
+
cursor: pointer;
|
|
292
|
+
padding: var(--o-gap-6);
|
|
293
|
+
z-index: 10;
|
|
294
|
+
|
|
295
|
+
@include respond-to('laptop') {
|
|
296
|
+
margin-top: var(--o-gap-5);
|
|
297
|
+
}
|
|
298
|
+
@include respond-to('pad_h') {
|
|
299
|
+
margin-top: var(--o-gap-4);
|
|
300
|
+
}
|
|
301
|
+
@include respond-to('pad_v') {
|
|
302
|
+
margin-top: var(--o-gap-4);
|
|
303
|
+
}
|
|
304
|
+
@include respond-to('phone') {
|
|
305
|
+
margin-top: var(--o-gap-4);
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
.event-status {
|
|
309
|
+
--tag-color: rgb(var(--o-white));
|
|
310
|
+
--tag-bg-color: rgba(var(--o-black), 0.25);
|
|
311
|
+
--tag-padding: var(--o-gap-1) var(--o-gap-3);
|
|
312
|
+
border: none;
|
|
313
|
+
position: absolute;
|
|
314
|
+
top: var(--o-gap-3);
|
|
315
|
+
right: var(--o-gap-3);
|
|
316
|
+
@include respond-to('<=pad_v') {
|
|
317
|
+
--tag-padding: var(--o-gap-1);
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
.event-name {
|
|
322
|
+
font-weight: 500;
|
|
323
|
+
text-align: center;
|
|
324
|
+
height: 3lh; // 3倍行高
|
|
325
|
+
@include h2;
|
|
326
|
+
@include text-truncate(3);
|
|
327
|
+
@include respond-to('pad_v') {
|
|
328
|
+
@include h1;
|
|
329
|
+
}
|
|
330
|
+
@include respond-to('phone') {
|
|
331
|
+
height: 2lh;
|
|
332
|
+
@include text-truncate(2);
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
.event-desc {
|
|
337
|
+
text-align: center;
|
|
338
|
+
font-weight: 500;
|
|
339
|
+
margin-top: var(--o-gap-5);
|
|
340
|
+
|
|
341
|
+
.o-divider {
|
|
342
|
+
--o-divider-color: var(--o-color-info1-inverse);
|
|
343
|
+
--o-divider-bd-color: var(--o-color-info1-inverse);
|
|
344
|
+
display: none;
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
@include text1;
|
|
348
|
+
@include respond-to('laptop') {
|
|
349
|
+
margin-top: var(--o-gap-4);
|
|
350
|
+
}
|
|
351
|
+
@include respond-to('pad_h') {
|
|
352
|
+
margin-top: var(--o-gap-3);
|
|
353
|
+
}
|
|
354
|
+
@include respond-to('pad_v') {
|
|
355
|
+
margin-top: var(--o-gap-2);
|
|
356
|
+
}
|
|
357
|
+
@include respond-to('phone') {
|
|
358
|
+
margin-top: var(--o-gap-2);
|
|
359
|
+
}
|
|
360
|
+
@include respond-to('<=pad_v') {
|
|
361
|
+
display: flex;
|
|
362
|
+
align-items: center;
|
|
363
|
+
.o-divider {
|
|
364
|
+
display: block;
|
|
365
|
+
}
|
|
366
|
+
@include tip1;
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
.event-card {
|
|
373
|
+
border-radius: var(--o-radius-xs);
|
|
374
|
+
color: rgb(var(--o-white));
|
|
375
|
+
background-size: cover;
|
|
376
|
+
background-repeat: no-repeat;
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
.o-pagination {
|
|
381
|
+
margin-top: var(--o-gap-6);
|
|
382
|
+
|
|
383
|
+
@include respond-to('laptop') {
|
|
384
|
+
margin-top: var(--o-gap-5);
|
|
385
|
+
}
|
|
386
|
+
@include respond-to('pad_h') {
|
|
387
|
+
margin-top: var(--o-gap-4);
|
|
388
|
+
}
|
|
389
|
+
@include respond-to('pad_v') {
|
|
390
|
+
margin-top: var(--o-gap-4);
|
|
391
|
+
}
|
|
392
|
+
@include respond-to('phone') {
|
|
393
|
+
margin-top: var(--o-gap-4);
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
.o-pagination-wrap {
|
|
397
|
+
justify-content: flex-end;
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
}
|
|
402
|
+
</style>
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import IconSummit from '~icons/events/icon-summit.svg';
|
|
2
|
+
import IconEvents from '~icons/events/icon-events.svg';
|
|
3
|
+
import IconCompetition from '~icons/events/icon-competition.svg';
|
|
4
|
+
import IconRelease from '~icons/events/icon-release.svg';
|
|
5
|
+
|
|
6
|
+
import 上海 from '@/assets/events/city/上海.png';
|
|
7
|
+
import 北京 from '@/assets/events/city/北京.png';
|
|
8
|
+
import 南京 from '@/assets/events/city/南京.png';
|
|
9
|
+
import 天津 from '@/assets/events/city/天津.png';
|
|
10
|
+
import 成都 from '@/assets/events/city/成都.png';
|
|
11
|
+
import 无锡 from '@/assets/events/city/无锡.png';
|
|
12
|
+
import 杭州 from '@/assets/events/city/杭州.png';
|
|
13
|
+
import 深圳1 from '@/assets/events/city/深圳1.png';
|
|
14
|
+
import 深圳2 from '@/assets/events/city/深圳2.png';
|
|
15
|
+
import 苏州 from '@/assets/events/city/苏州.png';
|
|
16
|
+
import 西安 from '@/assets/events/city/西安.png';
|
|
17
|
+
import 郑州 from '@/assets/events/city/郑州.png';
|
|
18
|
+
import 武汉 from '@/assets/events/city/武汉.png';
|
|
19
|
+
|
|
20
|
+
export const EVENTS_COLOR_MAP = {
|
|
21
|
+
summit: '--o-orange-6',
|
|
22
|
+
events: '--o-cyan-6',
|
|
23
|
+
competition: '--o-blue-6',
|
|
24
|
+
release: '--o-purple-6',
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export const EVENTS_ICON_MAP = {
|
|
28
|
+
events: IconEvents,
|
|
29
|
+
competition: IconCompetition,
|
|
30
|
+
release: IconRelease,
|
|
31
|
+
summit: IconSummit,
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export const CITY_MAP = {
|
|
35
|
+
上海,
|
|
36
|
+
北京,
|
|
37
|
+
南京,
|
|
38
|
+
天津,
|
|
39
|
+
成都,
|
|
40
|
+
无锡,
|
|
41
|
+
杭州,
|
|
42
|
+
深圳: [深圳1, 深圳2],
|
|
43
|
+
苏州,
|
|
44
|
+
西安,
|
|
45
|
+
郑州,
|
|
46
|
+
武汉,
|
|
47
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import _OEventsCalendar from './OEventsCalendar.vue';
|
|
2
|
+
import _OEventsList from './OEventsList.vue';
|
|
3
|
+
import _OEventsApply from './OEventsApply.vue';
|
|
4
|
+
import type { App } from 'vue';
|
|
5
|
+
|
|
6
|
+
const OEventsCalendar = Object.assign(_OEventsCalendar, {
|
|
7
|
+
install(app: App) {
|
|
8
|
+
app.component('OEventsCalendar', _OEventsCalendar);
|
|
9
|
+
},
|
|
10
|
+
});
|
|
11
|
+
const OEventsList = Object.assign(_OEventsList, {
|
|
12
|
+
install(app: App) {
|
|
13
|
+
app.component('OEventsList', _OEventsList);
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
const OEventsApply = Object.assign(_OEventsApply, {
|
|
17
|
+
install(app: App) {
|
|
18
|
+
app.component('OEventsApply', _OEventsApply);
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
export { OEventsCalendar, OEventsList, OEventsApply };
|
|
23
|
+
export * from './types';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"_id":"composables","_rev":"9-3fcb45434ec45aa3e3827479722148ca","name":"composables","description":"Primitives to compose React component behavior.","dist-tags":{"latest":"1.0.0"},"versions":{"0.1.0-alpha.1":{"name":"composables","version":"0.1.0-alpha.1","main":"lib/composables.js","license":"MIT","scripts":{"build":"webpack","test":"jest"},"jest":{"snapshotSerializers":["enzyme-to-json/serializer"],"setupTestFrameworkScriptFile":"<rootDir>setup-jest.js"},"devDependencies":{"babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","enzyme":"^3.3.0","enzyme-adapter-react-16":"^1.1.1","enzyme-to-json":"^3.3.0","jest":"^22.0.4","react":"^16.2.0","react-dom":"^16.2.0","webpack":"^3.10.0"},"peerDependencies":{"react":"^16.2.0"},"dependencies":{"prop-types":"^15.6.0"},"gitHead":"8531e87305b92d35f9fd7374adbc118d40bbe7ae","description":"Primitives to dynamically compose your React component's behavior.","_id":"composables@0.1.0-alpha.1","_shasum":"24a15abda790dce7a8686932361be9a66182bf55","_from":".","_npmVersion":"4.2.0","_nodeVersion":"7.8.0","_npmUser":{"name":"lucmartens","email":"lucmartens92@gmail.com"},"dist":{"shasum":"24a15abda790dce7a8686932361be9a66182bf55","tarball":"https://registry.npmjs.org/composables/-/composables-0.1.0-alpha.1.tgz","integrity":"sha512-m1f9t2Lk/h/hG6hunZWBjaRJAVW+1vdNunHh2AKLJ71K9vF3Oi7dOQQS3CLEtj5yqtL29SQMU6X2Aj55X+Li0A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCsBRFyQ9o5oVpak6+Q0QoOK4xApdDIU/gK6odphwmXVAIgHKYHagCz9YsKLp1FCYkHTWqK+2U5vinaN4lWAGzdNAw="}]},"maintainers":[{"name":"lucmartens","email":"lucmartens92@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/composables-0.1.0-alpha.1.tgz_1516226419599_0.9537871140055358"},"directories":{}},"0.1.0-alpha.2":{"name":"composables","version":"0.1.0-alpha.2","description":"Compose React component behaviour.","main":"lib/composables.js","files":["lib","src"],"scripts":{"prepublish":"yarn build","build":"webpack","test":"jest"},"jest":{"snapshotSerializers":["enzyme-to-json/serializer"],"setupTestFrameworkScriptFile":"<rootDir>setup-jest.js"},"repository":{"type":"git","url":"git+https://github.com/lucmartens/composables.git"},"license":"MIT","devDependencies":{"babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","enzyme":"^3.3.0","enzyme-adapter-react-16":"^1.1.1","enzyme-to-json":"^3.3.0","jest":"^22.0.4","react":"^16.2.0","react-dom":"^16.2.0","webpack":"^3.10.0"},"peerDependencies":{"react":"^16.2.0"},"dependencies":{"prop-types":"^15.6.0"},"gitHead":"dd86d46f1b2b103f22b187e752a15593a966636d","bugs":{"url":"https://github.com/lucmartens/composables/issues"},"homepage":"https://github.com/lucmartens/composables#readme","_id":"composables@0.1.0-alpha.2","_shasum":"83a4d293249d52f9f1fbb9c376bb810799fc1130","_from":".","_npmVersion":"4.2.0","_nodeVersion":"7.8.0","_npmUser":{"name":"lucmartens","email":"lucmartens92@gmail.com"},"dist":{"shasum":"83a4d293249d52f9f1fbb9c376bb810799fc1130","tarball":"https://registry.npmjs.org/composables/-/composables-0.1.0-alpha.2.tgz","integrity":"sha512-TGcyC5UFgzXtQwiIXqQgY7fbVIAtqQylMlbVdSqmcyN1pGuHD5zPVqiJfJtCxhU647GJ3hRuIPfAjvUMBATQFg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFtx5Cnbp/PiS8iOOm6qPzOLsRubxP8kY4Hdj/DwmzNJAiEAqPmHhXyZsXhlr/6m1IF5Mxfvg4R6R6RJoVakFZqOw5A="}]},"maintainers":[{"name":"lucmartens","email":"lucmartens92@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/composables-0.1.0-alpha.2.tgz_1516228242251_0.9135034529026598"},"directories":{}},"0.1.0-alpha.4":{"name":"composables","version":"0.1.0-alpha.4","description":"Primitives to compose React component behavior.","main":"lib/composables.js","files":["lib","src"],"scripts":{"prepublish":"yarn build","build":"webpack","test":"jest"},"jest":{"snapshotSerializers":["enzyme-to-json/serializer"],"setupTestFrameworkScriptFile":"<rootDir>setup-jest.js"},"repository":{"type":"git","url":"git+https://github.com/lucmartens/composables.git"},"license":"MIT","devDependencies":{"babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","enzyme":"^3.3.0","enzyme-adapter-react-16":"^1.1.1","enzyme-to-json":"^3.3.0","jest":"^22.0.4","react":"^16.2.0","react-dom":"^16.2.0","webpack":"^3.10.0"},"peerDependencies":{"react":"^16.2.0"},"dependencies":{"prop-types":"^15.6.0"},"gitHead":"4bc6e620705694765c0ea77718dd4e2590c0c0b1","bugs":{"url":"https://github.com/lucmartens/composables/issues"},"homepage":"https://github.com/lucmartens/composables#readme","_id":"composables@0.1.0-alpha.4","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"lucmartens","email":"lucmartens92@gmail.com"},"dist":{"integrity":"sha512-K+hh6MBCGRKnSSb7ryU/DshZL1CUHq5fvolxjLsFdeALV+hzSKwTR5FF3iE3ADrl7IMstsJQdI37XzMe+tj0gw==","shasum":"bf6aabf2069d15d366978624f9012a7884e02dcb","tarball":"https://registry.npmjs.org/composables/-/composables-0.1.0-alpha.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGX92vdRSfCT6D8GGuVxhGwSpMKMlTx5uf+OnWuwwHdNAiEAgtaHMwq9i3xxTRLqMLo7Fxujc27gbEA+TG1lK03D/ns="}]},"maintainers":[{"name":"lucmartens","email":"lucmartens92@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/composables-0.1.0-alpha.4.tgz_1516230929045_0.05194128840230405"},"directories":{}},"0.1.0":{"name":"composables","version":"0.1.0","description":"Primitives to compose React component behavior.","main":"lib/composables.js","module":"es/index.js","files":["lib","src","es"],"scripts":{"prepublish":"yarn build","build":"yarn run build:commonjs && yarn run build:es","build:commonjs":"webpack","build:es":"babel -d es/ --ignore /__tests__/ src/ ","test":"jest"},"jest":{"snapshotSerializers":["enzyme-to-json/serializer"],"setupTestFrameworkScriptFile":"<rootDir>setup-jest.js"},"repository":{"type":"git","url":"git+https://github.com/lucmartens/composables.git"},"license":"MIT","devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","enzyme":"^3.3.0","enzyme-adapter-react-16":"^1.1.1","enzyme-to-json":"^3.3.0","jest":"^22.0.4","react":"^16.2.0","react-dom":"^16.2.0","webpack":"^3.10.0"},"peerDependencies":{"react":"^16.2.0"},"dependencies":{"prop-types":"^15.6.0"},"gitHead":"405451ba77d0e7a293b1bedf1997e4b9f829ca51","bugs":{"url":"https://github.com/lucmartens/composables/issues"},"homepage":"https://github.com/lucmartens/composables#readme","_id":"composables@0.1.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"lucmartens","email":"lucmartens92@gmail.com"},"dist":{"integrity":"sha512-UXEWlUIz2c/jekqOnRy7eXWvzr90DwFTG7gOovkGAhQ47+7L099+k6TABdvoGzBPV9oGWbrW8eumalV3dBJATQ==","shasum":"b14ef179b8eef9fa9fa3e802de39bbe119b4a68e","tarball":"https://registry.npmjs.org/composables/-/composables-0.1.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHYd6iFhOSIt36Wvkx5CyszPqQFMNFqWv3KnyiZQRftGAiEA6lTgpZOtj/raW1tSTg7LfhEDHP7Y/TFHUK0+G3U4eqs="}]},"maintainers":[{"name":"lucmartens","email":"lucmartens92@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/composables-0.1.0.tgz_1516380289840_0.9476626438554376"},"directories":{}},"0.2.0":{"name":"composables","version":"0.2.0","description":"Primitives to compose React component behavior.","main":"lib/composables.js","module":"es/index.js","files":["lib","src","es"],"scripts":{"prepublish":"yarn build","build":"yarn run build:commonjs && yarn run build:es","build:commonjs":"webpack","build:es":"babel -d es/ --ignore /__tests__/ src/ ","test":"jest"},"jest":{"snapshotSerializers":["enzyme-to-json/serializer"],"setupTestFrameworkScriptFile":"<rootDir>setup-jest.js"},"repository":{"type":"git","url":"git+https://github.com/lucmartens/composables.git"},"license":"MIT","devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","enzyme":"^3.3.0","enzyme-adapter-react-16":"^1.1.1","enzyme-to-json":"^3.3.0","jest":"^22.0.4","react":"^16.2.0","react-dom":"^16.2.0","webpack":"^3.10.0"},"peerDependencies":{"react":"^16.2.0"},"dependencies":{"prop-types":"^15.6.0"},"gitHead":"f86eb6308b04aa269d8035d9c5c2a26a916d354d","bugs":{"url":"https://github.com/lucmartens/composables/issues"},"homepage":"https://github.com/lucmartens/composables#readme","_id":"composables@0.2.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"lucmartens","email":"lucmartens92@gmail.com"},"dist":{"integrity":"sha512-ko8A3klcNqVq0X5gapRHudhhWRe/y407p9Yt4wS9mcbFAhZ8MWgHZ0uYC1Ql+1OecV8KheJ37B3eWXUz6bXC9Q==","shasum":"fd3002bc5632a12cea02f9b395c4951dcb59fc61","tarball":"https://registry.npmjs.org/composables/-/composables-0.2.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICmjOxjizonSSVxEiQGyReB7A855cEFVueVr4I41wmcJAiEAutdeZ+gfXgRJ4rZIM19x/IVOPW8duEICaxqUpwFDzBo="}]},"maintainers":[{"name":"lucmartens","email":"lucmartens92@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/composables-0.2.0.tgz_1516875487953_0.15023943386040628"},"directories":{}},"1.0.0":{"name":"composables","version":"1.0.0","description":"Primitives to compose React component behavior.","main":"lib/composables.js","module":"es/index.js","files":["lib","src","es"],"scripts":{"prepublish":"yarn build","build":"yarn run build:commonjs && yarn run build:es","build:commonjs":"webpack","build:es":"babel -d es/ --ignore /__tests__/ src/ ","test":"jest"},"jest":{"snapshotSerializers":["enzyme-to-json/serializer"],"setupTestFrameworkScriptFile":"<rootDir>setup-jest.js"},"repository":{"type":"git","url":"git+https://github.com/lucmartens/composables.git"},"license":"MIT","devDependencies":{"babel-cli":"^6.26.0","babel-core":"^6.26.0","babel-loader":"^7.1.2","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","enzyme":"^3.3.0","enzyme-adapter-react-16":"^1.1.1","enzyme-to-json":"^3.3.0","jest":"^22.0.4","react":"^16.2.0","react-dom":"^16.2.0","webpack":"^3.10.0"},"peerDependencies":{"react":"^16.2.0"},"dependencies":{"prop-types":"^15.6.0"},"gitHead":"f999d8e25095c5ac0490dd7f00049195381d8f2a","bugs":{"url":"https://github.com/lucmartens/composables/issues"},"homepage":"https://github.com/lucmartens/composables#readme","_id":"composables@1.0.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"lucmartens","email":"lucmartens92@gmail.com"},"dist":{"integrity":"sha512-0kdRDGXfpsh8A/H8iFkfKdjXNyOPcfwyEmz3sQNmTuXNg7DxU0TxrMP1J4r7ACAEUnxjldtVnA9E1YX1igx3/Q==","shasum":"185979bd729c51c8a73ca60ecb163087fd25c9aa","tarball":"https://registry.npmjs.org/composables/-/composables-1.0.0.tgz","fileCount":20,"unpackedSize":47608,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDr7Ejpg+/yZSmgVeSb/yanZedvV8EOejLh0IOoWE1MJAiBBF9VfrAM/foGf1KztQxlM4okFTY6lfV3kFI2zVWlofg=="}]},"maintainers":[{"name":"lucmartens","email":"lucmartens92@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/composables_1.0.0_1520356498971_0.945761267487486"},"_hasShrinkwrap":false}},"readme":"# Composables\n\nPrimitives to compose React component behavior.\n\n# Render prop pattern\n\nThis package makes heavy use of the render prop pattern. See the\n[React docs](https://reactjs.org/docs/render-props.html) for more details.\n\n# Component Reference\n\n## `State`\n\nAdd React state to a component.\n\n### Example\n\n```js\nimport { State } from 'composables';\n\n<State\n initial={{ open: false }}\n render={({ open }) => (\n <Menu>\n <Button onClick={() => open.set(!open.value)}>Toggle</Button>\n {open.value && <MenuItems />}\n </Menu>\n )}\n/>;\n```\n\n### Props\n\n#### initial - object - required\n\nThe `initial` state.\n\n#### render - function - required\n\nFunction to display or further process the state. `render` is called with\nthe `value` and a `set` function for each entry in the `initial` state object.\n\n## `Result`\n\nConvert a promise to a result. The content of the result object depends on the\nstate of the promise.\n\n### Example\n\n```js\nimport { Result } from 'composables';\n\n<Result\n promise={promise}\n render={({ value, pending, error, done }) => (\n <Page>\n {pending && <Loader />}\n {error && <Error error={value} />}\n {done && <View value={value} />}\n </Page>\n )}\n/>;\n```\n\n### Props\n\n#### promise - Promise - required\n\nPromise to convert to a result.\n\n#### render - function - required\n\nFunction to display or further process the `result` object\n\n## `With`\n\nProduce side effects based on the component's lifecycle and props.\n\n### Example\n\n```js\nimport { With } from 'composables';\n\nconst FileImage = ({ file, ...props }) => (\n <With\n input={file}\n enter={input => URL.createObjectURL(input)}\n exit={output => URL.revokeObjectURL(output)}\n render={url => <Image src={url} {...props} />}\n />\n);\n```\n\n### Props\n\n#### input - any\n\nThe `input` arguments for the `enter` function.\n\n#### enter - function(`input`)\n\nThe `enter` function can be used to safely produce side effects. `enter` is\ncalled before the component mounts and when the `input` prop changes. The return\nvalue of this function is used as `output`.\n\n#### exit - function(`output`, `input`)\n\nThe `exit` function is primarily used to cleanup any side effects produced by\nthe `enter` function. `exit` is called when the component will unmount and when\nthe `input` prop changes. Make sure that any side effects you produce in `exit`\ndo not require cleanup.\n\n#### render - function(`output`)\n\nfunction to display or further process the produced `output`.\n\n#### shouldUpdate - function(`previousInput`, `nextInput`)\n\nPredicate function to determine whether a change in the `input` prop constitutes\ncalling `exit` and `enter` again. Defaults to a negative shallow equal check.\n\n#### lazy - boolean\n\nWhen `lazy` is true, the `enter` function will be called after the component has\nmounted. This can be beneficial to the speed of your component's first render\nand is especially useful when your `enter` function performs a slow synchronous\noperation (e.g local storage access). A consequence of delaying the `enter`\nfunction is that `render` can be called with `undefined` output.\n","maintainers":[{"name":"lucmartens","email":"lucmartens92@gmail.com"}],"time":{"modified":"2022-06-13T20:13:45.977Z","created":"2018-01-17T22:00:19.712Z","0.1.0-alpha.1":"2018-01-17T22:00:19.712Z","0.1.0-alpha.2":"2018-01-17T22:30:42.412Z","0.1.0-alpha.4":"2018-01-17T23:15:30.103Z","0.1.0":"2018-01-19T16:44:50.832Z","0.2.0":"2018-01-25T10:18:08.981Z","1.0.0":"2018-03-06T17:14:59.040Z"},"license":"MIT","readmeFilename":"README.md","homepage":"https://github.com/lucmartens/composables#readme","repository":{"type":"git","url":"git+https://github.com/lucmartens/composables.git"},"bugs":{"url":"https://github.com/lucmartens/composables/issues"}}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
|
|
2
|
+
744bbeb9cbb0a1997ebd979fb2db6e7373c66cfd {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/composables","integrity":"sha512-LE+kFAv783SkP33+cYgMBR95FJzSWfsaFU+2koAsdInvIxe3N+fmkKYncUuhkxeXHykFGzeYwkYpe0JaYmpbeg==","time":1774432714520,"size":15612,"metadata":{"time":1774432714502,"url":"https://registry.npmjs.org/composables","reqHeaders":{"accept":"application/json"},"resHeaders":{"cache-control":"public, max-age=300","content-encoding":"gzip","content-type":"application/json","date":"Wed, 25 Mar 2026 09:58:34 GMT","etag":"W/\"1d03adfe8e695182da4a565e7df1d3bd\"","last-modified":"Mon, 13 Jun 2022 20:13:47 GMT","vary":"accept-encoding, accept"},"options":{"compress":true}}}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
0 verbose cli C:\Program Files\nodejs\node.exe C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js
|
|
2
|
+
1 info using npm@10.9.3
|
|
3
|
+
2 info using node@v22.18.0
|
|
4
|
+
3 silly config load:file:C:\Users\Administrator\AppData\Roaming\nvm\v22.18.0\node_modules\npm\npmrc
|
|
5
|
+
4 silly config load:file:D:\forks\OpenDesignPlus\packages\components\.npmrc
|
|
6
|
+
5 silly config load:file:C:\Users\Administrator\.npmrc
|
|
7
|
+
6 silly config load:file:C:\Program Files\nodejs\etc\npmrc
|
|
8
|
+
7 verbose title npm info composables
|
|
9
|
+
8 verbose argv "info" "--json" "composables"
|
|
10
|
+
9 verbose logfile logs-max:10 dir:D:\forks\OpenDesignPlus\packages\components\src\components\events\npmcachae\_logs\2026-03-25T09_58_33_134Z-
|
|
11
|
+
10 verbose logfile D:\forks\OpenDesignPlus\packages\components\src\components\events\npmcachae\_logs\2026-03-25T09_58_33_134Z-debug-0.log
|
|
12
|
+
11 silly logfile done cleaning log files
|
|
13
|
+
12 http fetch GET 200 https://registry.npmjs.org/composables 592ms (cache miss)
|
|
14
|
+
13 silly view {
|
|
15
|
+
13 silly view '1.0.0': {
|
|
16
|
+
13 silly view _id: 'composables@1.0.0',
|
|
17
|
+
13 silly view _rev: '9-3fcb45434ec45aa3e3827479722148ca',
|
|
18
|
+
13 silly view name: 'composables',
|
|
19
|
+
13 silly view description: 'Primitives to compose React component behavior.',
|
|
20
|
+
13 silly view 'dist-tags': { latest: '1.0.0' },
|
|
21
|
+
13 silly view versions: [
|
|
22
|
+
13 silly view '0.1.0-alpha.1',
|
|
23
|
+
13 silly view '0.1.0-alpha.2',
|
|
24
|
+
13 silly view '0.1.0-alpha.4',
|
|
25
|
+
13 silly view '0.1.0',
|
|
26
|
+
13 silly view '0.2.0',
|
|
27
|
+
13 silly view '1.0.0'
|
|
28
|
+
13 silly view ],
|
|
29
|
+
13 silly view maintainers: [ [Object] ],
|
|
30
|
+
13 silly view time: {
|
|
31
|
+
13 silly view modified: '2022-06-13T20:13:45.977Z',
|
|
32
|
+
13 silly view created: '2018-01-17T22:00:19.712Z',
|
|
33
|
+
13 silly view '0.1.0-alpha.1': '2018-01-17T22:00:19.712Z',
|
|
34
|
+
13 silly view '0.1.0-alpha.2': '2018-01-17T22:30:42.412Z',
|
|
35
|
+
13 silly view '0.1.0-alpha.4': '2018-01-17T23:15:30.103Z',
|
|
36
|
+
13 silly view '0.1.0': '2018-01-19T16:44:50.832Z',
|
|
37
|
+
13 silly view '0.2.0': '2018-01-25T10:18:08.981Z',
|
|
38
|
+
13 silly view '1.0.0': '2018-03-06T17:14:59.040Z'
|
|
39
|
+
13 silly view },
|
|
40
|
+
13 silly view license: 'MIT',
|
|
41
|
+
13 silly view readmeFilename: 'README.md',
|
|
42
|
+
13 silly view homepage: 'https://github.com/lucmartens/composables#readme',
|
|
43
|
+
13 silly view repository: {
|
|
44
|
+
13 silly view type: 'git',
|
|
45
|
+
13 silly view url: 'git+https://github.com/lucmartens/composables.git'
|
|
46
|
+
13 silly view },
|
|
47
|
+
13 silly view bugs: { url: 'https://github.com/lucmartens/composables/issues' },
|
|
48
|
+
13 silly view version: '1.0.0',
|
|
49
|
+
13 silly view main: 'lib/composables.js',
|
|
50
|
+
13 silly view module: 'es/index.js',
|
|
51
|
+
13 silly view files: [ 'lib', 'src', 'es' ],
|
|
52
|
+
13 silly view scripts: {
|
|
53
|
+
13 silly view prepublish: 'yarn build',
|
|
54
|
+
13 silly view build: 'yarn run build:commonjs && yarn run build:es',
|
|
55
|
+
13 silly view 'build:commonjs': 'webpack',
|
|
56
|
+
13 silly view 'build:es': 'babel -d es/ --ignore /__tests__/ src/ ',
|
|
57
|
+
13 silly view test: 'jest'
|
|
58
|
+
13 silly view },
|
|
59
|
+
13 silly view jest: {
|
|
60
|
+
13 silly view snapshotSerializers: [Array],
|
|
61
|
+
13 silly view setupTestFrameworkScriptFile: '<rootDir>setup-jest.js'
|
|
62
|
+
13 silly view },
|
|
63
|
+
13 silly view devDependencies: {
|
|
64
|
+
13 silly view 'babel-cli': '^6.26.0',
|
|
65
|
+
13 silly view 'babel-core': '^6.26.0',
|
|
66
|
+
13 silly view 'babel-loader': '^7.1.2',
|
|
67
|
+
13 silly view 'babel-plugin-transform-object-rest-spread': '^6.26.0',
|
|
68
|
+
13 silly view 'babel-preset-env': '^1.6.1',
|
|
69
|
+
13 silly view 'babel-preset-react': '^6.24.1',
|
|
70
|
+
13 silly view enzyme: '^3.3.0',
|
|
71
|
+
13 silly view 'enzyme-adapter-react-16': '^1.1.1',
|
|
72
|
+
13 silly view 'enzyme-to-json': '^3.3.0',
|
|
73
|
+
13 silly view jest: '^22.0.4',
|
|
74
|
+
13 silly view react: '^16.2.0',
|
|
75
|
+
13 silly view 'react-dom': '^16.2.0',
|
|
76
|
+
13 silly view webpack: '^3.10.0'
|
|
77
|
+
13 silly view },
|
|
78
|
+
13 silly view peerDependencies: { react: '^16.2.0' },
|
|
79
|
+
13 silly view dependencies: { 'prop-types': '^15.6.0' },
|
|
80
|
+
13 silly view gitHead: 'f999d8e25095c5ac0490dd7f00049195381d8f2a',
|
|
81
|
+
13 silly view _npmVersion: '5.6.0',
|
|
82
|
+
13 silly view _nodeVersion: '8.9.4',
|
|
83
|
+
13 silly view _npmUser: { name: 'lucmartens', email: 'lucmartens92@gmail.com' },
|
|
84
|
+
13 silly view dist: {
|
|
85
|
+
13 silly view integrity: 'sha512-0kdRDGXfpsh8A/H8iFkfKdjXNyOPcfwyEmz3sQNmTuXNg7DxU0TxrMP1J4r7ACAEUnxjldtVnA9E1YX1igx3/Q==',
|
|
86
|
+
13 silly view shasum: '185979bd729c51c8a73ca60ecb163087fd25c9aa',
|
|
87
|
+
13 silly view tarball: 'https://registry.npmjs.org/composables/-/composables-1.0.0.tgz',
|
|
88
|
+
13 silly view fileCount: 20,
|
|
89
|
+
13 silly view unpackedSize: 47608,
|
|
90
|
+
13 silly view signatures: [Array]
|
|
91
|
+
13 silly view },
|
|
92
|
+
13 silly view directories: {},
|
|
93
|
+
13 silly view _npmOperationalInternal: {
|
|
94
|
+
13 silly view host: 's3://npm-registry-packages',
|
|
95
|
+
13 silly view tmp: 'tmp/composables_1.0.0_1520356498971_0.945761267487486'
|
|
96
|
+
13 silly view },
|
|
97
|
+
13 silly view _hasShrinkwrap: false
|
|
98
|
+
13 silly view }
|
|
99
|
+
13 silly view }
|
|
100
|
+
14 verbose cwd D:\forks\OpenDesignPlus\packages\components\src\components\events
|
|
101
|
+
15 verbose os Windows_NT 10.0.17763
|
|
102
|
+
16 verbose node v22.18.0
|
|
103
|
+
17 verbose npm v10.9.3
|
|
104
|
+
18 verbose exit 0
|
|
105
|
+
19 info ok
|
|
File without changes
|