@citizenplane/pimp 8.26.0 → 8.27.0
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/{IconAccompaniedMinorEach-DDeSlaA_.js → IconAccompaniedMinorEach-BJYaPpW3.js} +1 -1
- package/dist/{IconAccompaniedMinorNone-BKs1gk1K.js → IconAccompaniedMinorNone-D1JR2Qpd.js} +1 -1
- package/dist/{IconAccompaniedMinorOne-CpL8FNve.js → IconAccompaniedMinorOne-BJ3jzEDZ.js} +1 -1
- package/dist/{IconAddReceipt-DLH3pqjA.js → IconAddReceipt-BX_va94f.js} +1 -1
- package/dist/{IconAirportTerminal-Cc4CU6MC.js → IconAirportTerminal-Dzr98nfc.js} +1 -1
- package/dist/{IconArrival-CdtUsRVo.js → IconArrival-Ced9HrJH.js} +1 -1
- package/dist/{IconBroadcast-QjMZtFA9.js → IconBroadcast-BYX44Wak.js} +1 -1
- package/dist/{IconCabinBag-xVC6mOQF.js → IconCabinBag-D1Qs952U.js} +1 -1
- package/dist/{IconCheckedBaggage-I_1h49TJ.js → IconCheckedBaggage-Q4_SQL9l.js} +1 -1
- package/dist/{IconCheckedBaggage20-CyPcsqrn.js → IconCheckedBaggage20-DVH1-A0V.js} +1 -1
- package/dist/{IconCheckedBaggage30-s5htbUIA.js → IconCheckedBaggage30-DYOAf-7Z.js} +1 -1
- package/dist/{IconChild-DL43kbm1.js → IconChild-BeCLAr8Y.js} +1 -1
- package/dist/{IconContact-FdhTr03q.js → IconContact-B3r39fyI.js} +1 -1
- package/dist/{IconDeparture-DNR3OGPD.js → IconDeparture-BflKZUiE.js} +1 -1
- package/dist/{IconDistribution-Cl8L6177.js → IconDistribution-CBxQ7UWb.js} +1 -1
- package/dist/{IconDistributionClosed-DBT6wR78.js → IconDistributionClosed-BWp_k24K.js} +1 -1
- package/dist/{IconDistributionExclusivePair-CkRG6yNV.js → IconDistributionExclusivePair-erLbcLps.js} +1 -1
- package/dist/{IconDistributionSided-D_wdvDNf.js → IconDistributionSided-y000n4qB.js} +1 -1
- package/dist/{IconDistributionSupplySided-C3VcE8Dw.js → IconDistributionSupplySided-7kCvGwnz.js} +1 -1
- package/dist/{IconDynamicContent-Ct1HRd3s.js → IconDynamicContent-SwBxkPMB.js} +1 -1
- package/dist/{IconFares-dIGVrtE4.js → IconFares-DTm0Q_RI.js} +1 -1
- package/dist/{IconFaresOutlined-bd8kT44f.js → IconFaresOutlined-BFMo_x9Q.js} +1 -1
- package/dist/{IconFemale-CMeYHrDy.js → IconFemale-Ma0KeaEM.js} +1 -1
- package/dist/{IconFindConversation-BdN2Yd3R.js → IconFindConversation-CpsDYPgD.js} +1 -1
- package/dist/{IconFire-obwuluyJ.js → IconFire-DECrDnLM.js} +1 -1
- package/dist/{IconFlight-B_6tJxB3.js → IconFlight-D5M0A0CM.js} +1 -1
- package/dist/{IconFlightReturn-BEO97PwR.js → IconFlightReturn-CTvqEFME.js} +1 -1
- package/dist/{IconHandHeart-hs0yFSEL.js → IconHandHeart-ChgdfXQa.js} +1 -1
- package/dist/{IconHistory-CT-jOMRt.js → IconHistory-DpIXDYI5.js} +1 -1
- package/dist/{IconHourGlass-CF940vmy.js → IconHourGlass-CIRkFUSM.js} +1 -1
- package/dist/{IconIdCard-DKkU58Ix.js → IconIdCard-UD5VZsUi.js} +1 -1
- package/dist/{IconInfant-DIUT-6_4.js → IconInfant-CmLUvWpO.js} +1 -1
- package/dist/{IconItinerary-D7mOGUmj.js → IconItinerary-CY8irele.js} +1 -1
- package/dist/{IconLeave-BExl4uyV.js → IconLeave-C3bpPz6L.js} +1 -1
- package/dist/{IconMale-eHGH5XBz.js → IconMale-x4xdulWB.js} +1 -1
- package/dist/{IconMultiSegments-KkrKiZrK.js → IconMultiSegments-BhTMfvhQ.js} +1 -1
- package/dist/{IconNoPassport-PJ2QqqoI.js → IconNoPassport-_Xm76k6b.js} +1 -1
- package/dist/{IconNoRefund-W47AQisu.js → IconNoRefund-B78s0oyF.js} +1 -1
- package/dist/{IconNotion-CCnhatKK.js → IconNotion-C22PTLTU.js} +1 -1
- package/dist/{IconOffline-3wunTEJG.js → IconOffline-BDzikWE9.js} +1 -1
- package/dist/{IconOneWay-BQ5K41Bu.js → IconOneWay-DlTVxokv.js} +2 -2
- package/dist/{IconPaid-zwDwWzF8.js → IconPaid-DmGERe85.js} +1 -1
- package/dist/{IconPassport-IxhNLS8P.js → IconPassport-6VOlXjxJ.js} +1 -1
- package/dist/{IconPayout-BNSON3dj.js → IconPayout-abr6BXCd.js} +1 -1
- package/dist/{IconReceipt-DOosYtgi.js → IconReceipt-BnTaihcq.js} +1 -1
- package/dist/{IconRecurrence-B8i5kO2Q.js → IconRecurrence-C5TPG2ht.js} +1 -1
- package/dist/{IconRefund-DkjF9lEI.js → IconRefund-Ysv8pyMJ.js} +1 -1
- package/dist/{IconRoundTrip-BZvhS65z.js → IconRoundTrip-CIVDw8LK.js} +1 -1
- package/dist/{IconRouteNoStop-CeSlfnpx.js → IconRouteNoStop-DQrq4gW5.js} +1 -1
- package/dist/{IconRouteOneStop-aP1Mj-Bv.js → IconRouteOneStop-pzisj4i4.js} +1 -1
- package/dist/{IconScheduleChange-QQ4AMAMI.js → IconScheduleChange-BONs1AAT.js} +1 -1
- package/dist/{IconSeatEmpty-DgVBD165.js → IconSeatEmpty-CHij3aGA.js} +1 -1
- package/dist/{IconSeatSold-BGBwNZUa.js → IconSeatSold-QspS_zCh.js} +1 -1
- package/dist/{IconSeatTotal-Dq9uXccZ.js → IconSeatTotal-DTZ1TcAX.js} +1 -1
- package/dist/{IconTemplate-BgruEhjI.js → IconTemplate-BDmmr-9L.js} +1 -1
- package/dist/{IconTicket-BTaYnuPt.js → IconTicket--vVn61Ey.js} +1 -1
- package/dist/{IconTimer-CyJzne5T.js → IconTimer-CspKpwqZ.js} +1 -1
- package/dist/{IconTrafficControl-BeQtpwhK.js → IconTrafficControl-DBamcJNe.js} +1 -1
- package/dist/{index-B8RNa4cx.js → index-C3oHnZQk.js} +9152 -10064
- package/dist/pimp.es.js +1 -1
- package/dist/pimp.umd.js +17 -17
- package/dist/style.css +1 -1
- package/package.json +2 -1
- package/src/components/atomic-elements/CpAirlineLogo.vue +9 -10
- package/src/components/atomic-elements/CpBadge.vue +33 -41
- package/src/components/atomic-elements/CpDialog.vue +14 -9
- package/src/components/atomic-elements/CpPartnerBadge.vue +12 -20
- package/src/components/atomic-elements/CpTooltip.vue +12 -11
- package/src/components/buttons/CpButton.vue +63 -104
- package/src/components/core/BaseInputLabel.vue +9 -15
- package/src/components/core/BaseSelectClearButton.vue +1 -1
- package/src/components/date-pickers/CpCalendar.vue +154 -153
- package/src/components/date-pickers/CpDate.vue +202 -212
- package/src/components/date-pickers/CpDatepicker.vue +112 -138
- package/src/components/feedback-indicators/CpAlert.vue +16 -27
- package/src/components/feedback-indicators/CpLoader.vue +7 -8
- package/src/components/feedback-indicators/CpToaster.vue +197 -192
- package/src/components/helpers-utilities/TransitionExpand.vue +31 -33
- package/src/components/icons/IconOneWay.vue +1 -1
- package/src/components/index.ts +28 -40
- package/src/components/inputs/CpInput.vue +40 -57
- package/src/components/inputs/CpTextarea.vue +30 -50
- package/src/components/lists-and-table/CpTable.vue +165 -114
- package/src/components/lists-and-table/CpTableEmptyState.vue +5 -8
- package/src/components/selects/CpMultiselect.vue +58 -89
- package/src/components/selects/CpSelect.vue +70 -90
- package/src/components/selects/CpSelectMenu.vue +94 -96
- package/src/components/toggles/CpCheckbox.vue +45 -54
- package/src/components/toggles/CpRadio.vue +47 -58
- package/src/components/toggles/CpSwitch.vue +51 -67
- package/src/components/typography/CpHeading.vue +11 -31
- package/src/components/visual/CpIcon.vue +2 -1
- package/src/constants/{src/CpCustomIcons.ts → CpCustomIcons.ts} +1 -1
- package/src/constants/CpTableConfig.ts +12 -0
- package/src/constants/Heading.ts +8 -0
- package/src/{utils/constants/src/Intent.js → constants/Intent.ts} +1 -1
- package/src/constants/PartnerTypes.ts +6 -0
- package/src/constants/Position.ts +10 -0
- package/src/constants/Sizes.ts +5 -0
- package/src/constants/colors/Colors.ts +10 -0
- package/src/constants/colors/ToggleColors.ts +6 -0
- package/src/constants/index.ts +10 -5
- package/src/directives/ClickOutside.ts +17 -0
- package/src/directives/{ResizeSelect.js → ResizeSelect.ts} +3 -3
- package/src/helpers/{dom.js → dom.ts} +13 -9
- package/src/helpers/{index.js → index.ts} +13 -3
- package/src/helpers/object.ts +9 -0
- package/src/helpers/string/src/camelize.ts +6 -0
- package/src/helpers/string/src/{decamelize.js → decamelize.ts} +1 -1
- package/src/libs/CoreDatepicker.vue +4 -4
- package/src/plugins/toaster.ts +71 -0
- package/src/stories/BaseInputLabel.stories.ts +1 -0
- package/src/stories/CpAlert.stories.ts +1 -0
- package/src/stories/CpBadge.stories.ts +18 -0
- package/src/stories/CpCheckbox.stories.ts +3 -1
- package/src/stories/CpDate.stories.ts +3 -1
- package/src/stories/CpDatepicker.stories.ts +3 -1
- package/src/stories/CpDialog.stories.ts +2 -1
- package/src/stories/CpHeading.stories.ts +1 -0
- package/src/stories/CpIcon.stories.ts +2 -0
- package/src/stories/CpInput.stories.ts +3 -1
- package/src/stories/CpLoader.stories.ts +1 -0
- package/src/stories/CpMultiselect.stories.ts +2 -1
- package/src/stories/CpPartnerBadge.stories.ts +1 -1
- package/src/stories/CpRadio.stories.ts +3 -1
- package/src/stories/CpSelect.stories.ts +3 -1
- package/src/stories/CpSelectMenu.stories.ts +3 -1
- package/src/stories/CpSwitch.stories.ts +3 -1
- package/src/stories/CpTable.stories.ts +8 -1
- package/src/stories/CpTableEmptyState.stories.ts +1 -0
- package/src/stories/CpTextarea.stories.ts +3 -1
- package/src/stories/CpToaster.stories.ts +1 -0
- package/src/stories/CpTooltip.stories.ts +1 -0
- package/src/stories/TransitionExpand.stories.ts +3 -1
- package/src/types/luxon.d.ts +1 -0
- package/src/vendors/ff-polyfill.ts +38 -0
- package/vitest.workspace.js +1 -3
- package/src/constants/src/CpTableConfig.ts +0 -14
- package/src/constants/src/Position.ts +0 -10
- package/src/constants/src/colors/Colors.ts +0 -10
- package/src/constants/src/colors/ToggleColors.ts +0 -6
- package/src/directives/ClickOutside.js +0 -13
- package/src/helpers/object.js +0 -9
- package/src/helpers/string/src/camelize.js +0 -6
- package/src/plugins/toaster.js +0 -61
- package/src/utils/constants/index.js +0 -3
- package/src/utils/constants/src/PartnerTypes.js +0 -6
- package/src/utils/constants/src/Sizes.js +0 -5
- package/src/vendors/ff-polyfill.js +0 -36
- /package/src/helpers/string/{index.js → index.ts} +0 -0
|
@@ -2,7 +2,7 @@ import type { Meta, StoryObj } from '@storybook/vue3'
|
|
|
2
2
|
|
|
3
3
|
import CpPartnerBadge from '@/components/atomic-elements/CpPartnerBadge.vue'
|
|
4
4
|
|
|
5
|
-
import { PartnerTypes, Sizes } from '@/
|
|
5
|
+
import { PartnerTypes, Sizes } from '@/constants'
|
|
6
6
|
|
|
7
7
|
const meta = {
|
|
8
8
|
title: 'CpPartnerBadge',
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/vue3'
|
|
2
|
+
|
|
2
3
|
import CpTable from '@/components/lists-and-table/CpTable.vue'
|
|
3
4
|
|
|
5
|
+
import { PAGINATION_FORMATS } from '@/constants'
|
|
6
|
+
|
|
4
7
|
const meta = {
|
|
5
8
|
title: 'CpTable',
|
|
6
9
|
component: CpTable,
|
|
@@ -111,7 +114,7 @@ export const WithPagination: Story = {
|
|
|
111
114
|
pagination: {
|
|
112
115
|
enabled: true,
|
|
113
116
|
limit: 3,
|
|
114
|
-
format:
|
|
117
|
+
format: PAGINATION_FORMATS.PAGES,
|
|
115
118
|
},
|
|
116
119
|
},
|
|
117
120
|
}
|
|
@@ -190,22 +193,26 @@ export const WithCustomRowOptions: Story = {
|
|
|
190
193
|
enableRowOptions: true,
|
|
191
194
|
rowOptions: [
|
|
192
195
|
{
|
|
196
|
+
id: 'see',
|
|
193
197
|
label: 'see',
|
|
194
198
|
icon: 'eye',
|
|
195
199
|
action: () => console.log('See'),
|
|
196
200
|
},
|
|
197
201
|
{
|
|
202
|
+
id: 'edit',
|
|
198
203
|
label: 'edit',
|
|
199
204
|
icon: 'edit-2',
|
|
200
205
|
action: () => console.log('Edit'),
|
|
201
206
|
},
|
|
202
207
|
{
|
|
208
|
+
id: 'disable',
|
|
203
209
|
label: 'disable',
|
|
204
210
|
icon: 'history',
|
|
205
211
|
disabled: true,
|
|
206
212
|
action: () => console.log('History'),
|
|
207
213
|
},
|
|
208
214
|
{
|
|
215
|
+
id: 'delete',
|
|
209
216
|
label: 'delete',
|
|
210
217
|
icon: 'trash',
|
|
211
218
|
isCritical: true,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
declare module 'luxon'
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// Copy paste from https://gist.github.com/nuxodin/9250e56a3ce6c0446efa
|
|
2
|
+
export default function ffPolyfill(): void {
|
|
3
|
+
const w = window
|
|
4
|
+
const d = w.document
|
|
5
|
+
|
|
6
|
+
if (w.onfocus === undefined) {
|
|
7
|
+
d.addEventListener('focus', addPolyfill as EventListener, true)
|
|
8
|
+
d.addEventListener('blur', addPolyfill as EventListener, true)
|
|
9
|
+
d.addEventListener('focusin', removePolyfill as EventListener, true)
|
|
10
|
+
d.addEventListener('focusout', removePolyfill as EventListener, true)
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
function addPolyfill(e: FocusEvent) {
|
|
14
|
+
const type = e.type === 'focus' ? 'focusin' : 'focusout'
|
|
15
|
+
const event = new CustomEvent(type, {
|
|
16
|
+
bubbles: true,
|
|
17
|
+
cancelable: false,
|
|
18
|
+
})
|
|
19
|
+
// @ts-expect-error <comment on type error>
|
|
20
|
+
event.c1Generated = true
|
|
21
|
+
;(e.target as HTMLElement).dispatchEvent(event)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function removePolyfill(e: FocusEvent) {
|
|
25
|
+
// @ts-expect-error <comment on type error>
|
|
26
|
+
if (!e.c1Generated) {
|
|
27
|
+
// focus after focusin, so chrome will the first time trigger tow times focusin
|
|
28
|
+
d.removeEventListener('focus', addPolyfill as EventListener, true)
|
|
29
|
+
d.removeEventListener('blur', addPolyfill as EventListener, true)
|
|
30
|
+
d.removeEventListener('focusin', removePolyfill as EventListener, true)
|
|
31
|
+
d.removeEventListener('focusout', removePolyfill as EventListener, true)
|
|
32
|
+
}
|
|
33
|
+
setTimeout(function () {
|
|
34
|
+
d.removeEventListener('focusin', removePolyfill as EventListener, true)
|
|
35
|
+
d.removeEventListener('focusout', removePolyfill as EventListener, true)
|
|
36
|
+
})
|
|
37
|
+
}
|
|
38
|
+
}
|
package/vitest.workspace.js
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
+
import { storybookTest } from '@storybook/experimental-addon-test/vitest-plugin'
|
|
1
2
|
import path from 'node:path'
|
|
2
3
|
import { fileURLToPath } from 'node:url'
|
|
3
|
-
|
|
4
4
|
import { defineWorkspace } from 'vitest/config'
|
|
5
5
|
|
|
6
|
-
import { storybookTest } from '@storybook/experimental-addon-test/vitest-plugin'
|
|
7
|
-
|
|
8
6
|
const dirname = typeof __dirname !== 'undefined' ? __dirname : path.dirname(fileURLToPath(import.meta.url))
|
|
9
7
|
|
|
10
8
|
// More info at: https://storybook.js.org/docs/writing-tests/test-addon
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
const VISIBLE_ROWS_MAX = 100
|
|
2
|
-
|
|
3
|
-
const RESERVED_KEYS = {
|
|
4
|
-
GROUP_BY: 'groupBy',
|
|
5
|
-
FULL_WIDTH: 'fullWidth',
|
|
6
|
-
IS_SELECTED: 'isSelected',
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
const PAGINATION_FORMATS = {
|
|
10
|
-
RESULTS: 'results',
|
|
11
|
-
PAGES: 'pages',
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export default { VISIBLE_ROWS_MAX, RESERVED_KEYS, PAGINATION_FORMATS }
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export default {
|
|
2
|
-
beforeMount(el, binding) {
|
|
3
|
-
el.clickOutsideEvent = function (event) {
|
|
4
|
-
if (!(el === event.target || el.contains(event.target))) {
|
|
5
|
-
binding.value(event, el)
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
document.body.addEventListener('click', el.clickOutsideEvent)
|
|
9
|
-
},
|
|
10
|
-
unmounted(el) {
|
|
11
|
-
document.body.removeEventListener('click', el.clickOutsideEvent)
|
|
12
|
-
},
|
|
13
|
-
}
|
package/src/helpers/object.js
DELETED
package/src/plugins/toaster.js
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import CpToaster from '@/components/feedback-indicators/CpToaster.vue'
|
|
2
|
-
import { Intent } from '@/utils/constants'
|
|
3
|
-
|
|
4
|
-
import { h, render } from 'vue'
|
|
5
|
-
|
|
6
|
-
const createElement = () => typeof document !== 'undefined' && document.createElement('div')
|
|
7
|
-
|
|
8
|
-
const mount = (component, { props, children, element, app } = {}) => {
|
|
9
|
-
let el = element ? element : createElement()
|
|
10
|
-
|
|
11
|
-
let vNode = h(component, props, children)
|
|
12
|
-
if (app && app._context) {
|
|
13
|
-
vNode.appContext = app._context
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
render(vNode, el)
|
|
17
|
-
|
|
18
|
-
const destroy = () => {
|
|
19
|
-
if (el) {
|
|
20
|
-
render(null, el)
|
|
21
|
-
}
|
|
22
|
-
el = null
|
|
23
|
-
vNode = null
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
return { vNode, destroy, el }
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
const createToaster = (globalOptions = {}) => {
|
|
30
|
-
return {
|
|
31
|
-
show(options = {}) {
|
|
32
|
-
let localOptions = { ...options }
|
|
33
|
-
|
|
34
|
-
mount(CpToaster, {
|
|
35
|
-
props: { ...globalOptions, ...localOptions },
|
|
36
|
-
})
|
|
37
|
-
},
|
|
38
|
-
unique(options = {}) {
|
|
39
|
-
options.isUnique = true
|
|
40
|
-
return this.show(options)
|
|
41
|
-
},
|
|
42
|
-
success(options = {}) {
|
|
43
|
-
options.type = Intent.SUCCESS.value
|
|
44
|
-
return this.show(options)
|
|
45
|
-
},
|
|
46
|
-
critical(options = {}) {
|
|
47
|
-
options.type = Intent.CRITICAL.value
|
|
48
|
-
return this.show(options)
|
|
49
|
-
},
|
|
50
|
-
info(options = {}) {
|
|
51
|
-
options.type = Intent.INFO.value
|
|
52
|
-
return this.show(options)
|
|
53
|
-
},
|
|
54
|
-
warning(options = {}) {
|
|
55
|
-
options.type = Intent.WARNING.value
|
|
56
|
-
return this.show(options)
|
|
57
|
-
},
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
export default createToaster
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
// Copy paste from https://gist.github.com/nuxodin/9250e56a3ce6c0446efa
|
|
2
|
-
export default function () {
|
|
3
|
-
var w = window,
|
|
4
|
-
d = w.document
|
|
5
|
-
|
|
6
|
-
if (w.onfocusin === undefined) {
|
|
7
|
-
d.addEventListener('focus', addPolyfill, true)
|
|
8
|
-
d.addEventListener('blur', addPolyfill, true)
|
|
9
|
-
d.addEventListener('focusin', removePolyfill, true)
|
|
10
|
-
d.addEventListener('focusout', removePolyfill, true)
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
function addPolyfill(e) {
|
|
14
|
-
var type = e.type === 'focus' ? 'focusin' : 'focusout'
|
|
15
|
-
var event = new CustomEvent(type, {
|
|
16
|
-
bubbles: true,
|
|
17
|
-
cancelable: false,
|
|
18
|
-
})
|
|
19
|
-
event.c1Generated = true
|
|
20
|
-
e.target.dispatchEvent(event)
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
function removePolyfill(e) {
|
|
24
|
-
if (!e.c1Generated) {
|
|
25
|
-
// focus after focusin, so chrome will the first time trigger tow times focusin
|
|
26
|
-
d.removeEventListener('focus', addPolyfill, true)
|
|
27
|
-
d.removeEventListener('blur', addPolyfill, true)
|
|
28
|
-
d.removeEventListener('focusin', removePolyfill, true)
|
|
29
|
-
d.removeEventListener('focusout', removePolyfill, true)
|
|
30
|
-
}
|
|
31
|
-
setTimeout(function () {
|
|
32
|
-
d.removeEventListener('focusin', removePolyfill, true)
|
|
33
|
-
d.removeEventListener('focusout', removePolyfill, true)
|
|
34
|
-
})
|
|
35
|
-
}
|
|
36
|
-
}
|
|
File without changes
|