{"version":3,"file":"portal/layouts/AV9TE/layout.38b58c3786f77b238c19.bundle.js","mappings":"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C,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACnG,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACnG,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACnG,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACnG,CAAC,EAAG,IAAK,IAAK,GAAI,IAAK,KAAM,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACpG,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACnG,CAAC,EAAG,IAAK,IAAK,GAAI,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACtG,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACpG,CAAC,GAAI,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,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","sources":["webpack://portal/./implementation/api/announcement-api.js","webpack://portal/./implementation/api/bookappointment-api.js","webpack://portal/./implementation/api/personal-loan-calculator-2021-api.js","webpack://portal/./implementation/api/personal-loan-calculator-api.js","webpack://portal/./implementation/applications/rco-account-package-picker/rco-account-package-selector-button/rco-account-package-selector-button.js","webpack://portal/./implementation/common/components/announcements-select/announcements-select.js","webpack://portal/./implementation/common/elements/section-layouts/section-layout.js","webpack://portal/./node_modules/vue-youtube-embed/lib/vue-youtube-embed.js","webpack://portal/./implementation/common/js/add-youtube-plugin.js","webpack://portal/./implementation/common/js/plugins/plugins.js","webpack://portal/./implementation/common/js/referer/referer.js","webpack://portal/./implementation/common/js/campaign/campaign.js","webpack://portal/./implementation/common/js/before-directive/before-directive.js","webpack://portal/./implementation/common/js/android-phone-href/android-phone-href.js","webpack://portal/./implementation/common/js/iphone-href/iphone-href.js","webpack://portal/./implementation/common/components/rco-single-package-picker/rco-single-package-picker.js","webpack://portal/./implementation/common/components/rco-single-package-picker/rco-single-package-picker-button/rco-single-package-picker-button.vue","webpack://portal/./implementation/common/components/rco-single-package-picker/rco-single-package-picker-button/rco-single-package-picker-button.vue?1b57","webpack://portal/./implementation/common/components/rco-single-package-picker/rco-single-package-picker-button/rco-single-package-picker-button.vue?f354","webpack://portal/./implementation/api/slayer-api.js","webpack://portal/./implementation/common/components/slayer/composables/layers.js","webpack://portal/./implementation/common/components/slayer/components/technical-error.vue","webpack://portal/./implementation/common/components/slayer/components/technical-error.vue?62c6","webpack://portal/./implementation/common/components/slayer/components/technical-error.vue?b5fc","webpack://portal/./implementation/common/components/slayer/slayer.vue","webpack://portal/./implementation/common/components/slayer/slayer.vue?f042","webpack://portal/./implementation/common/components/slayer/composables/gtm.js","webpack://portal/./implementation/common/components/slayer/slayer.vue?11b6","webpack://portal/./implementation/common/js/common.js","webpack://portal/./implementation/common/js/currency-filter/currency-filter.js","webpack://portal/./implementation/common/js/number-filter/number-filter.js","webpack://portal/./implementation/common/js/date-filter/date-filter.js","webpack://portal/./implementation/common/js/zero-fill-filter/zero-fill-filter.js","webpack://portal/./implementation/common/js/capitalize/capitalize.js","webpack://portal/./implementation/common/js/composables/is-mobile.js","webpack://portal/./implementation/api/personalization-api.js","webpack://portal/./implementation/common/js/composables/personalization.js","webpack://portal/./implementation/common/js/lang/i18n.js","webpack://portal/./implementation/common/js/media-query/media-query.js","webpack://portal/./implementation/common/js/svg-contains-polyfill/svg-contains-polyfill.js","webpack://portal/./node_modules/vue-lottie/src/lottie.vue","webpack://portal/./node_modules/vue-lottie/src/lottie.vue?7e8e","webpack://portal/./node_modules/vue-lottie/src/lottie.vue?307c","webpack://portal/./implementation/common/components/lottie-animation/lottie-animation.vue","webpack://portal/./implementation/common/components/lottie-animation/lottie-animation.vue?e85e","webpack://portal/./implementation/common/components/lottie-animation/lottie-animation.vue?53f5","webpack://portal/./implementation/layouts/AV9TE/layout.js","webpack://portal/./implementation/common/js/get-exchange-marzs/get-exchange-marzs.js","webpack://portal/./implementation/common/components/exchange-marzs/exchange-marzs.vue","webpack://portal/./implementation/common/components/exchange-marzs/exchange-marzs.vue?3085","webpack://portal/./implementation/common/components/exchange-marzs/exchange-marzs.vue?1bef","webpack://portal/./implementation/common/components/announcement/announcement-vuex.js","webpack://portal/./implementation/common/components/announcement/announcement.vue","webpack://portal/./implementation/common/components/announcement/announcement.vue?178e","webpack://portal/./implementation/common/components/announcement/announcement.vue?1267","webpack://portal/./implementation/common/components/visibility-container/visibility-container.js","webpack://portal/./implementation/modules/MHER/mher.vue","webpack://portal/./implementation/modules/MHER/mher.vue?d89b","webpack://portal/./implementation/modules/MHER/mher.vue?86d4","webpack://portal/./implementation/layouts/layout-base.js","webpack://portal/./implementation/modules/MACC/macc.js","webpack://portal/./implementation/modules/MDTB/mdtb.js","webpack://portal/./implementation/modules/MEDA/meda.js","webpack://portal/./implementation/modules/MEOK/meok.js","webpack://portal/./implementation/common/components/qr-code/qr-code.vue","webpack://portal/./implementation/common/components/qr-code/qr-code.vue?de08","webpack://portal/./implementation/common/components/qr-code/qr-code.vue?96fc","webpack://portal/./implementation/modules/MEVP/mevp.js","webpack://portal/./implementation/modules/MKSZ/mksz.js","webpack://portal/./implementation/modules/MOAV/moav.js","webpack://portal/./implementation/modules/MRBT/mrbt.js","webpack://portal/./implementation/modules/MSLC/mslc.js","webpack://portal/./implementation/modules/MSTB/mstb.js","webpack://portal/./implementation/modules/MTAB/mtab.js","webpack://portal/./implementation/modules/MTABR/mtabr.js","webpack://portal/./implementation/modules/MTBL/mtbl.js","webpack://portal/./implementation/modules/MUBT/mubt.js","webpack://portal/./node_modules/@ui-common/sf-js-utils/dist/sf-js-utils.esm.js","webpack://portal/./node_modules/@ui-common/vue-accordion/dist/vue-accordion.umd.js","webpack://portal/./node_modules/@ui-common/vue-call-request-modal-glue/dist/vue-call-request-modal-glue.umd.js","webpack://portal/./node_modules/@ui-common/vue-live-announcer/dist/vue-live-announcer.umd.js","webpack://portal/./node_modules/@ui-common/vue-tab/dist/vue-tab.umd.js","webpack://portal/./node_modules/@ui-common/vue-table-of-content/dist/vue-table-of-content.umd.js","webpack://portal/./node_modules/define-data-property/index.js","webpack://portal/./node_modules/es-define-property/index.js","webpack://portal/./node_modules/es-errors/eval.js","webpack://portal/./node_modules/es-errors/index.js","webpack://portal/./node_modules/es-errors/range.js","webpack://portal/./node_modules/es-errors/ref.js","webpack://portal/./node_modules/es-errors/syntax.js","webpack://portal/./node_modules/es-errors/type.js","webpack://portal/./node_modules/es-errors/uri.js","webpack://portal/./node_modules/function-bind/implementation.js","webpack://portal/./node_modules/function-bind/index.js","webpack://portal/./node_modules/get-intrinsic/index.js","webpack://portal/./node_modules/get-query-param/index.js","webpack://portal/./node_modules/gopd/index.js","webpack://portal/./node_modules/hammerjs/hammer.js","webpack://portal/./node_modules/has-property-descriptors/index.js","webpack://portal/./node_modules/has-proto/index.js","webpack://portal/./node_modules/has-symbols/index.js","webpack://portal/./node_modules/has-symbols/shams.js","webpack://portal/./node_modules/hasown/index.js","webpack://portal/./node_modules/is-plain-obj/index.js","webpack://portal/./node_modules/is-url/index.js","webpack://portal/./node_modules/left-pad/index.js","webpack://portal/./node_modules/lottie-web/build/player/lottie.js","webpack://portal/./node_modules/normalize-url/index.js","webpack://portal/./node_modules/normalize-url/node_modules/query-string/index.js","webpack://portal/./node_modules/outerwidth/index.js","webpack://portal/./node_modules/portal-vue/dist/portal-vue.common.js","webpack://portal/./node_modules/prepend-http/index.js","webpack://portal/./node_modules/qrcode.vue/dist/qrcode.vue.js","webpack://portal/./node_modules/set-function-length/index.js","webpack://portal/./node_modules/sort-keys/index.js","webpack://portal/./node_modules/swiper/js/swiper.js","webpack://portal/./node_modules/tiny-cookie/tiny-cookie.js","webpack://portal/./node_modules/url/node_modules/call-bind/callBound.js","webpack://portal/./node_modules/url/node_modules/call-bind/index.js","webpack://portal/./node_modules/url/node_modules/object-inspect/index.js","webpack://portal/./node_modules/url/node_modules/qs/lib/formats.js","webpack://portal/./node_modules/url/node_modules/qs/lib/index.js","webpack://portal/./node_modules/url/node_modules/qs/lib/parse.js","webpack://portal/./node_modules/url/node_modules/qs/lib/stringify.js","webpack://portal/./node_modules/url/node_modules/qs/lib/utils.js","webpack://portal/./node_modules/url/node_modules/side-channel/index.js","webpack://portal/./node_modules/url/url.js","webpack://portal/./node_modules/vue-awesome-swiper/dist/vue-awesome-swiper.js","webpack://portal/./node_modules/vue-cookie/src/vue-cookie.js","webpack://portal/./node_modules/vue-dom-portal/dist/vue-dom-portal.common.js","webpack://portal/./node_modules/vue-focus/dist/vue-focus.common.js","webpack://portal/./node_modules/vue-gtm/dist/vue-gtm.min.js","webpack://portal/./node_modules/vue-media-queries/dist/vue-media-queries.js","webpack://portal/./node_modules/vue-scrollto/vue-scrollto.js","webpack://portal/./node_modules/vue-touch/dist/vue-touch.js","webpack://portal/./node_modules/wicg-inert/dist/inert.js","webpack://portal/./node_modules/moment/locale/ sync en%7Chu","webpack://portal/./implementation/applications/branch-atm-widget-wrapper/branch-atm-widget-wrapper.vue","webpack://portal/./implementation/applications/branch-atm-widget-wrapper/branch-atm-widget-wrapper.vue?81d8","webpack://portal/./implementation/applications/branch-atm-widget-wrapper/branch-atm-widget-wrapper.vue?c1a8","webpack://portal/./implementation/common/components/accept-pdf-modal/accept-pdf-modal.vue","webpack://portal/./implementation/common/components/accept-pdf-modal/accept-pdf-modal.vue?1044","webpack://portal/./implementation/common/components/accept-pdf-modal/accept-pdf-modal.vue?f51b","webpack://portal/./implementation/common/components/rco-foreign-currency-account-picker-button/rco-foreign-currency-account-picker-button.vue","webpack://portal/./implementation/common/components/rco-foreign-currency-account-picker-button/rco-foreign-currency-account-picker-button.vue?b084","webpack://portal/./implementation/common/components/rco-foreign-currency-account-picker-button/rco-foreign-currency-account-picker-button.vue?8e7a","webpack://portal/./implementation/common/components/tabs/tabs.js","webpack://portal/./implementation/common/components/tabs/tabs.js?0d2c","webpack://portal/./implementation/common/components/tabs/tabs.vue","webpack://portal/./implementation/common/components/video-player/video-player.vue","webpack://portal/./implementation/common/components/video-player/video-player-youtube/video-player-youtube.vue","webpack://portal/./implementation/common/components/video-player/video-player-youtube/video-player-youtube.vue?a657","webpack://portal/./implementation/common/components/video-player/video-player-youtube/video-player-youtube.vue?39cb","webpack://portal/./implementation/common/components/video-player/video-player-playlist/video-player-playlist.vue","webpack://portal/./implementation/common/components/video-player/video-player-playlist/video-player-playlist.vue?60ee","webpack://portal/./implementation/common/components/video-player/video-player-playlist/video-player-playlist.vue?32af","webpack://portal/./implementation/common/components/video-player/video-player-recommended/video-player-recommended.vue","webpack://portal/./implementation/common/components/video-player/video-player-recommended/video-player-recommended.vue?6be3","webpack://portal/./implementation/common/components/video-player/video-player-recommended/video-player-recommended.vue?2c6d","webpack://portal/./implementation/common/components/video-player/video-player-full-text/video-player-full-text.vue?efb6","webpack://portal/./implementation/common/components/video-player/video-player-full-text/video-player-full-text.vue","webpack://portal/./implementation/common/components/video-player/video-player.vue?94b4","webpack://portal/./implementation/common/components/video-player/video-player.vue?316c","webpack://portal/./implementation/common/components/video-preview/video-preview.vue","webpack://portal/./implementation/common/components/video-preview/video-preview.vue?e000","webpack://portal/./implementation/common/components/video-preview/video-preview.vue?55bd","webpack://portal/./implementation/modules/MASD/masd.vue","webpack://portal/./implementation/modules/MASD/masd.vue?315d","webpack://portal/./implementation/modules/MASD/masd.vue?1624","webpack://portal/./implementation/modules/MFSH/mfsh.js","webpack://portal/./implementation/modules/MFSH/mfsh.js?fd8c","webpack://portal/./implementation/modules/MFSH/mfsh.vue","webpack://portal/./implementation/modules/MFSH/mfsh.pug","webpack://portal/./implementation/modules/MHAP/mhap.vue","webpack://portal/./implementation/modules/MHAP/mhap.vue?bce5","webpack://portal/./implementation/modules/MHAP/mhap.vue?5b84","webpack://portal/./implementation/modules/MIFE/get-day-postfix.js","webpack://portal/./implementation/modules/MIFE/get-minutes-postfix.js","webpack://portal/./implementation/modules/MIFE/set-leading-zero","webpack://portal/./implementation/modules/MIFE/mife.js","webpack://portal/./implementation/modules/MIFE/mife.js?dbe8","webpack://portal/./implementation/modules/MIFE/mife.vue","webpack://portal/./implementation/modules/MINT/mint.pug","webpack://portal/./implementation/modules/MINT/mint.js","webpack://portal/./implementation/modules/MINT/mint.js?43de","webpack://portal/./implementation/modules/MINT/mint.vue","webpack://portal/./implementation/modules/MINT2021/mint2021.pug","webpack://portal/./implementation/modules/MINT2021/mint2021.js","webpack://portal/./implementation/modules/MINT2021/mint2021.js?0aea","webpack://portal/./implementation/modules/MINT2021/mint2021.vue","webpack://portal/./implementation/modules/MJBL/mjbl.pug","webpack://portal/./implementation/modules/MJBL/mjbl.js","webpack://portal/./implementation/modules/MJBL/mjbl.js?f29b","webpack://portal/./implementation/modules/MJBL/mjbl.vue","webpack://portal/./node_modules/js-cookie/dist/js.cookie.mjs","webpack://portal/./node_modules/vue-i18n-composable/dist/index.mjs"],"sourcesContent":["import axios from 'axios';\r\nexport default {\r\n\tgetAnnouncements(params) {\r\n\t\treturn axios.post('/announcement/api/query', params);\r\n\t}\r\n};\r\n","/**\r\n * beszélget az időpontfoglalóval\r\n * @author sarkiroka on 2017.09.19.\r\n */\r\nimport axios from 'axios';\r\n\r\nexport default {\r\n\tgetTheme(themeId) {\r\n\t\treturn axios.get(`/apps/bookappointment/api/theme/${themeId}`);\r\n\t},\r\n\tinit() {\r\n\t\treturn axios.get('/apps/bookappointment/api/appointment/init');\r\n\t},\r\n\tgetAppointment(token) {\r\n\t\treturn axios.get(`/apps/bookappointment/api/appointment/${token}`);\r\n\t},\r\n\tgetAppointmentList(themeId, branchCode) {\r\n\t\tlet data = { branchCode, themeId };\r\n\t\treturn axios.post('/apps/bookappointment/api/appointment/list', data);\r\n\t},\r\n\tpostReservationForm(data) {\r\n\t\treturn axios.post('/apps/bookappointment/api/personalinformation', data);\r\n\t},\r\n\tsendTa(data) {\r\n\t\treturn axios.post('/apps/bookappointment/api/ta', data);\r\n\t}\r\n};\r\n","import axios from 'axios';\r\nconst personalLoanBackendPrefix = '/apps/personalloan';\r\nexport default {\r\n\tcalculateAmount(data) {\r\n\t\treturn axios.post(personalLoanBackendPrefix + '/api/public/calculator2021/amount', data);\r\n\t},\r\n\tcalculateMonthlyFee(data) {\r\n\t\treturn axios.post(personalLoanBackendPrefix + '/api/public/calculator2021/monthlyfee', data);\r\n\t},\r\n\tgetConfig() {\r\n\t\treturn axios.get(personalLoanBackendPrefix + '/api/public/config2021');\r\n\t},\r\n\tgetSelectValues() {\r\n\t\treturn axios.get(personalLoanBackendPrefix + '/api/public/term2021');\r\n\t},\r\n\tgetInterestList() {\r\n\t\treturn axios.get(personalLoanBackendPrefix + '/api/public/interest2021');\r\n\t},\r\n\tsendTa(data) {\r\n\t\treturn axios.post(personalLoanBackendPrefix + '/api/ta', data);\r\n\t}\r\n};\r\n","import axios from 'axios';\r\nconst personalLoanBackendPrefix = '/apps/personalloan';\r\nexport default {\r\n\tcalculateAmount(data) {\r\n\t\treturn axios.post(personalLoanBackendPrefix + '/api/public/calculator/amount', data);\r\n\t},\r\n\tcalculateMonthlyFee(data) {\r\n\t\treturn axios.post(personalLoanBackendPrefix + '/api/public/calculator/monthlyfee', data);\r\n\t},\r\n\tgetConfig() {\r\n\t\treturn axios.get(personalLoanBackendPrefix + '/api/public/config');\r\n\t},\r\n\tgetSelectValues() {\r\n\t\treturn axios.get(personalLoanBackendPrefix + '/api/public/term');\r\n\t},\r\n\tgetInterestList(type) {\r\n\t\treturn axios.get(personalLoanBackendPrefix + `/api/public/interest/${type}`);\r\n\t},\r\n\tsendTa(data) {\r\n\t\treturn axios.post(personalLoanBackendPrefix + '/api/ta', data);\r\n\t}\r\n};\r\n","import rcoApi from '../../../api/rco-api';\r\nimport { mapState } from 'vuex';\r\nimport VueFormNotification from '@ui-common/vue-form-notification';\r\n\r\nexport default {\r\n\tname: 'RCOAccountPackageSelectorButton',\r\n\tprops: {\r\n\t\thasZeroPage: {\r\n\t\t\ttype: Boolean,\r\n\t\t\trequired: true\r\n\t\t},\r\n\t\tpackageId: {\r\n\t\t\ttype: String,\r\n\t\t\trequired: true\r\n\t\t},\r\n\t\ttimeReservationUrl: {\r\n\t\t\ttype: String,\r\n\t\t\trequired: false\r\n\t\t}\r\n\t},\r\n\tcomponents: {\r\n\t\tVueFormNotification\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapState('rcoAccountPackagePicker', ['packages', 'technicalError'])\r\n\t},\r\n\tmethods: {\r\n\t\tpreparePackageData() {\r\n\t\t\tconst pack = Object.assign({}, this.packages[this.packageId]);\r\n\t\t\tdelete pack.availableCards;\r\n\t\t\tdelete pack.displayColumnId;\r\n\t\t\tpack.packageId = this.packageId;\r\n\t\t\tpack.isMobileBanker = false;\r\n\t\t\treturn pack;\r\n\t\t},\r\n\t\tgotoTimeReservation() {\r\n\t\t\tif (this.timeReservationUrl) {\r\n\t\t\t\twindow.location.href = `${this.timeReservationUrl}?packageId=${this.packageId}`;\r\n\t\t\t}\r\n\t\t},\r\n\t\tasync gotoPackage() {\r\n\t\t\tconst pack = this.preparePackageData();\r\n\t\t\tthis.$store.dispatch('rcoAccountPackagePicker/setTechnicalError', false);\r\n\t\t\ttry {\r\n\t\t\t\tconst response = await rcoApi.sendPackageData(pack);\r\n\t\t\t\tlet url = response.data.url;\r\n\t\t\t\tif (this.hasZeroPage) {\r\n\t\t\t\t\turl += '?has-zero-page=true';\r\n\t\t\t\t}\r\n\t\t\t\twindow.location.href = url;\r\n\t\t\t} catch (err) {\r\n\t\t\t\tthis.$store.dispatch('rcoAccountPackagePicker/setTechnicalError', true);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n","import { VueSelect, VueSelectOption } from '@ui-common/vue-select';\r\n\r\nexport default {\r\n\tdata: () => ({\r\n\t\tyear: ''\r\n\t}),\r\n\tcomponents: {\r\n\t\tVueSelect,\r\n\t\tVueSelectOption\r\n\t},\r\n\tcreated() {\r\n\t\tthis.year = parseInt(window.location.href.split('/').pop());\r\n\t},\r\n\twatch: {\r\n\t\tyear(val, oldVal) {\r\n\t\t\tif (val && oldVal && val != oldVal) {\r\n\t\t\t\tconst newurl = window.location.href.split('/').slice(0, -1).join('/') + '/' + val;\r\n\t\t\t\twindow.location.href = newurl;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n","import VueTab from '@ui-common/vue-tab';\r\nimport getQueryParam from 'get-query-param';\r\nexport default {\r\n\tprops: {\r\n\t\tid: {\r\n\t\t\ttype: String,\r\n\t\t\trequired: false\r\n\t\t}\r\n\t},\r\n\tcomponents: {\r\n\t\tVueTab\r\n\t},\r\n\tcomputed: {\r\n\t\turlTabId() {\r\n\t\t\treturn parseInt(getQueryParam(`${this.id}-tab`, window.location.href), 10) - 1 || 0;\r\n\t\t}\r\n\t},\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\ttabRef: this.$refs.tabRef\r\n\t\t};\r\n\t},\r\n\tmounted() {\r\n\t\tthis.tabRef = this.$refs.tabRef;\r\n\t}\r\n};\r\n","/*!\n * Vue YouTube Embed version 2.2.1\n * under MIT License copyright 2018 kaorun343\n */\n// fork from https://github.com/brandly/angular-youtube-embed\n\nif (!String.prototype.includes) {\n String.prototype.includes = function () {\n return String.prototype.indexOf.apply(this, arguments) !== -1\n };\n}\n\nvar youtubeRegexp = /https?:\\/\\/(?:[0-9A-Z-]+\\.)?(?:youtu\\.be\\/|youtube(?:-nocookie)?\\.com\\S*[^\\w\\s-])([\\w-]{11})(?=[^\\w-]|$)(?![?=&+%\\w.-]*(?:['\"][^<>]*>|<\\/a>))[?=&+%\\w.-]*/ig;\nvar timeRegexp = /t=(\\d+)[ms]?(\\d+)?s?/;\n\n/**\n * get id from url\n * @param {string} url url\n * @return {string} id\n */\nfunction getIdFromURL (url) {\n var id = url.replace(youtubeRegexp, '$1');\n\n if (id.includes(';')) {\n var pieces = id.split(';');\n\n if (pieces[1].includes('%')) {\n var uriComponent = decodeURIComponent(pieces[1]);\n id = (\"http://youtube.com\" + uriComponent).replace(youtubeRegexp, '$1');\n } else {\n id = pieces[0];\n }\n } else if (id.includes('#')) {\n id = id.split('#')[0];\n }\n\n return id\n}\n\n/**\n * get time from url\n * @param {string} url url\n * @return {number} time\n */\nfunction getTimeFromURL (url) {\n if ( url === void 0 ) url = '';\n\n var times = url.match(timeRegexp);\n\n if (!times) {\n return 0\n }\n\n var full = times[0];\n var minutes = times[1];\n var seconds = times[2];\n\n if (typeof seconds !== 'undefined') {\n seconds = parseInt(seconds, 10);\n minutes = parseInt(minutes, 10);\n } else if (full.includes('m')) {\n minutes = parseInt(minutes, 10);\n seconds = 0;\n } else {\n seconds = parseInt(minutes, 10);\n minutes = 0;\n }\n\n return seconds + (minutes * 60)\n}\n\nvar container = {\n scripts: [],\n events: {},\n\n run: function run () {\n var this$1 = this;\n\n this.scripts.forEach(function (callback) {\n callback(this$1.YT);\n });\n this.scripts = [];\n },\n\n register: function register (callback) {\n var this$1 = this;\n\n if (this.YT) {\n this.Vue.nextTick(function () {\n callback(this$1.YT);\n });\n } else {\n this.scripts.push(callback);\n }\n }\n};\n\nvar pid = 0;\n\nvar YouTubePlayer = {\n props: {\n playerHeight: {\n type: [String, Number],\n default: '390'\n },\n playerWidth: {\n type: [String, Number],\n default: '640'\n },\n playerVars: {\n type: Object,\n default: function () { return ({ autoplay: 0, time: 0 }); }\n },\n videoId: {\n type: String\n },\n mute: {\n type: Boolean,\n default: false\n }\n },\n render: function render (h) {\n return h('div', [\n h('div', { attrs: { id: this.elementId }})\n ])\n },\n template: '
',\n watch: {\n playerWidth: 'setSize',\n playerHeight: 'setSize',\n videoId: 'update',\n mute: 'setMute'\n },\n data: function data () {\n pid += 1;\n return {\n elementId: (\"youtube-player-\" + pid),\n player: {}\n }\n },\n methods: {\n setSize: function setSize () {\n this.player.setSize(this.playerWidth, this.playerHeight);\n },\n setMute: function setMute (value) {\n if (value) {\n this.player.mute();\n } else {\n this.player.unMute();\n }\n },\n update: function update (videoId) {\n var name = (this.playerVars.autoplay ? 'load' : 'cue') + \"VideoById\";\n if (this.player.hasOwnProperty(name)) {\n this.player[name](videoId);\n } else {\n setTimeout(function () {\n this.update(videoId);\n }.bind(this), 100);\n }\n }\n },\n mounted: function mounted () {\n var this$1 = this;\n\n container.register(function (YouTube) {\n var ref = this$1;\n var playerHeight = ref.playerHeight;\n var playerWidth = ref.playerWidth;\n var playerVars = ref.playerVars;\n var videoId = ref.videoId;\n\n this$1.player = new YouTube.Player(this$1.elementId, {\n height: playerHeight,\n width: playerWidth,\n playerVars: playerVars,\n videoId: videoId,\n events: {\n onReady: function (event) {\n this$1.setMute(this$1.mute);\n this$1.$emit('ready', event);\n },\n onStateChange: function (event) {\n if (event.data !== -1) {\n this$1.$emit(container.events[event.data], event);\n }\n },\n onError: function (event) {\n this$1.$emit('error', event);\n }\n }\n });\n });\n },\n beforeDestroy: function beforeDestroy () {\n if (this.player !== null && this.player.destroy) {\n this.player.destroy();\n }\n delete this.player;\n }\n};\n\nvar index = {\n install: function install (Vue, options) {\n if ( options === void 0 ) options = {};\n\n container.Vue = Vue;\n YouTubePlayer.ready = YouTubePlayer.mounted;\n var global = options.global; if ( global === void 0 ) global = true;\n var componentId = options.componentId; if ( componentId === void 0 ) componentId = 'youtube';\n\n if (global) {\n // if there is a global component with \"youtube\" identifier already taken\n // then we should let user to pass a new identifier.\n Vue.component(componentId, YouTubePlayer);\n }\n Vue.prototype.$youtube = { getIdFromURL: getIdFromURL, getTimeFromURL: getTimeFromURL };\n\n if (typeof window !== 'undefined' && typeof document !== 'undefined') {\n var tag = document.createElement('script');\n tag.src = 'https://www.youtube.com/player_api';\n var firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n\n window.onYouTubeIframeAPIReady = function () {\n container.YT = YT;\n var PlayerState = YT.PlayerState;\n\n container.events[PlayerState.ENDED] = 'ended';\n container.events[PlayerState.PLAYING] = 'playing';\n container.events[PlayerState.PAUSED] = 'paused';\n container.events[PlayerState.BUFFERING] = 'buffering';\n container.events[PlayerState.CUED] = 'cued';\n\n container.Vue.nextTick(function () {\n container.run();\n });\n };\n }\n }\n};\n\nexport default index;\nexport { YouTubePlayer, getIdFromURL, getTimeFromURL };\n","import Vue from 'vue';\r\nimport VueYouTubeEmbed from 'vue-youtube-embed';\r\nexport const addYoutubePlugin = () => {\r\n\tVue.use(VueYouTubeEmbed);\r\n};\r\n","import Vue from 'vue';\r\n\r\nimport VueScrollTo from 'vue-scrollto';\r\nimport Vuelidate from 'vuelidate';\r\nimport VueGtm from 'vue-gtm';\r\nimport { mediaQueries } from '../media-query/media-query';\r\nimport VueCookie from 'vue-cookie';\r\nimport VueModal from '@ui-common/vue-modal';\r\nimport VueLiveAnnouncerPlugin from '@ui-common/vue-live-announcer';\r\nimport Vuex from 'vuex';\r\nimport DomPortal from 'vue-dom-portal';\r\n\r\nVue.use(VueModal);\r\nVue.use(VueScrollTo);\r\nVue.use(VueGtm, {\r\n\t// debug: true\r\n});\r\nVue.use(Vuelidate);\r\nVue.use(VueCookie);\r\nVue.use(mediaQueries);\r\nVue.use(DomPortal);\r\nVue.use(Vuex);\r\nVue.use(VueLiveAnnouncerPlugin);\r\n","import Vue from 'vue';\r\nimport { COOKIE_GDPR_LEVEL, GDPR_LEVELS } from '../constants/constants';\r\nconst COOKIE_PORTAL_REFERER = 'portal_referer';\r\n\r\nexport const initReferer = () => {\r\n\tlet gdprLevel = Vue.cookie.get(COOKIE_GDPR_LEVEL);\r\n\tif (gdprLevel == GDPR_LEVELS.HIGH) {\r\n\t\tlet refererCookie = Vue.cookie.get(COOKIE_PORTAL_REFERER);\r\n\t\tif (!refererCookie && document.referrer) {\r\n\t\t\tVue.cookie.set(COOKIE_PORTAL_REFERER, document.referrer, { path: '/' });\r\n\t\t}\r\n\t}\r\n};\r\n\r\nexport const deleteReferer = () => {\r\n\tVue.cookie.delete(COOKIE_PORTAL_REFERER);\r\n};\r\n","import queryString from 'query-string';\r\nimport Vue from 'vue';\r\nconst COOKIE_PORTAL_KAMPANY_SOURCE = 'portal_kampany_source';\r\nconst COOKIE_PORTAL_KAMPANY_MEDIUM = 'portal_kampany_medium';\r\nconst COOKIE_PORTAL_KAMPANY_CAMPAIGN = 'portal_kampany_campaign';\r\nconst COOKIE_PORTAL_KAMPANY_TERM = 'portal_kampany_term';\r\nconst COOKIE_PORTAL_KAMPANY_CONTENT = 'portal_kampany_content';\r\nexport const initCampaign = () => {\r\n\tlet isUtm = true;\r\n\tlet parsed = queryString.parse(location.search);\r\n\tlet campaign = parsed.utm_source;\r\n\tif (!campaign) {\r\n\t\tcampaign = parsed.otpkampany_source;\r\n\t\tisUtm = false;\r\n\t}\r\n\tif (campaign) {\r\n\t\tif (isUtm) {\r\n\t\t\tVue.cookie.set(COOKIE_PORTAL_KAMPANY_SOURCE, parsed.utm_source?.substring(0, 255), { path: '/' });\r\n\t\t\tVue.cookie.set(COOKIE_PORTAL_KAMPANY_MEDIUM, parsed.utm_medium?.substring(0, 255), { path: '/' });\r\n\t\t\tVue.cookie.set(COOKIE_PORTAL_KAMPANY_CAMPAIGN, parsed.utm_campaign?.substring(0, 255), { path: '/' });\r\n\t\t\tVue.cookie.set(COOKIE_PORTAL_KAMPANY_TERM, parsed.utm_term?.substring(0, 255), { path: '/' });\r\n\t\t\tVue.cookie.set(COOKIE_PORTAL_KAMPANY_CONTENT, parsed.utm_content?.substring(0, 255), { path: '/' });\r\n\t\t} else {\r\n\t\t\tVue.cookie.set(COOKIE_PORTAL_KAMPANY_SOURCE, parsed.otpkampany_source?.substring(0, 255), { path: '/' });\r\n\t\t\tVue.cookie.set(COOKIE_PORTAL_KAMPANY_MEDIUM, parsed.otpkampany_medium?.substring(0, 255), { path: '/' });\r\n\t\t\tVue.cookie.set(COOKIE_PORTAL_KAMPANY_CAMPAIGN, parsed.otpkampany_campaign?.substring(0, 255), { path: '/' });\r\n\t\t}\r\n\t}\r\n};\r\n\r\nexport const deleteCampaign = () => {\r\n\tVue.cookie.delete(COOKIE_PORTAL_KAMPANY_SOURCE);\r\n\tVue.cookie.delete(COOKIE_PORTAL_KAMPANY_MEDIUM);\r\n\tVue.cookie.delete(COOKIE_PORTAL_KAMPANY_CAMPAIGN);\r\n\tVue.cookie.delete(COOKIE_PORTAL_KAMPANY_TERM);\r\n\tVue.cookie.delete(COOKIE_PORTAL_KAMPANY_CONTENT);\r\n};\r\n","export default {\r\n\tbind(el, binding) {\r\n\t\tconst redirect = () => {\r\n\t\t\tlet url = el.getAttribute('href');\r\n\t\t\twindow.location.href = url;\r\n\t\t};\r\n\t\tel.addEventListener('click', (e) => {\r\n\t\t\te.preventDefault();\r\n\t\t\tbinding\r\n\t\t\t\t.value()\r\n\t\t\t\t.then(() => {\r\n\t\t\t\t\tredirect();\r\n\t\t\t\t})\r\n\t\t\t\t.catch(() => {\r\n\t\t\t\t\tredirect();\r\n\t\t\t\t});\r\n\t\t});\r\n\t}\r\n};\r\n","import { ANDROID_PHONE_REGEX } from '../constants/constants';\r\n\r\nexport default {\r\n\tbind: function (el, binding) {\r\n\t\tif (ANDROID_PHONE_REGEX.test(navigator.userAgent)) {\r\n\t\t\tel.setAttribute('href', binding.value);\r\n\t\t}\r\n\t}\r\n};\r\n","import { IPHONE_REGEX } from '../constants/constants';\r\n\r\nexport default {\r\n\tbind: function (el, binding) {\r\n\t\tif (IPHONE_REGEX.test(navigator.userAgent)) {\r\n\t\t\tel.setAttribute('href', binding.value);\r\n\t\t}\r\n\t}\r\n};\r\n","import EventBus from '../../../common/js/event-bus/event-bus';\r\nimport rcoApi from '../../../api/rco-api';\r\nexport default {\r\n\tname: 'rcoSingleCardSelector',\r\n\tprops: {\r\n\t\tpackageId: {\r\n\t\t\ttype: String,\r\n\t\t\trequired: true\r\n\t\t}\r\n\t},\r\n\tdata: () => ({\r\n\t\tmodel: {\r\n\t\t\tcardLimit: null,\r\n\t\t\tcardShoppingLimit: null,\r\n\t\t\tcardVirtualShoppingLimit: null,\r\n\t\t\tpackageId: null,\r\n\t\t\twithoutCard: false,\r\n\t\t\tchoosedCardId: null,\r\n\t\t\tfromLanding: true\r\n\t\t}\r\n\t}),\r\n\tcreated() {\r\n\t\tthis.init();\r\n\t\tEventBus.$on('singleCardData', () => {\r\n\t\t\tthis.sendData();\r\n\t\t});\r\n\t},\r\n\tmethods: {\r\n\t\tasync sendData() {\r\n\t\t\ttry {\r\n\t\t\t\tlet packageData = Object.assign({}, this.model);\r\n\t\t\t\tif (this.model.withoutCard) {\r\n\t\t\t\t\tdelete packageData.choosedCardId;\r\n\t\t\t\t}\r\n\t\t\t\tconst response = await rcoApi.sendPackageData(packageData);\r\n\t\t\t\tconst url = response.data.url;\r\n\t\t\t\twindow.location.href = url;\r\n\t\t\t\tconsole.log(url);\r\n\t\t\t} catch (err) {\r\n\t\t\t\tEventBus.$emit('technicalError');\r\n\t\t\t}\r\n\t\t},\r\n\t\tasync init() {\r\n\t\t\tconst chosenCard = window.context.rcoSingleCardPickerData.packages[this.packageId].availableCards[0];\r\n\t\t\tconst cards = window.context.rcoSingleCardPickerData.cards[chosenCard];\r\n\t\t\tthis.model = { ...this.model, ...cards, packageId: this.packageId, choosedCardId: chosenCard };\r\n\t\t\ttry {\r\n\t\t\t\tawait rcoApi.getWebsalesId();\r\n\t\t\t} catch (err) {\r\n\t\t\t\tconsole.log(err);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"rco-single-card-selector-button\"},[_c('vue-button',{attrs:{\"id\":_vm.buttonId,\"aria-labelledby\":_vm.buttonLabelledBy,\"disabled\":_vm.sending},on:{\"click\":_vm.getCookie}},[_vm._t(\"default\")],2),(_vm.technicalError)?_c('vue-error-message',[_vm._v(\"Technikai hiba történt, kérjük próbálja újra később!\")]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-4.use[0]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rco-single-package-picker-button.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-4.use[0]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rco-single-package-picker-button.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./rco-single-package-picker-button.vue?vue&type=template&id=3a9ce934&lang=pug\"\nimport script from \"./rco-single-package-picker-button.vue?vue&type=script&lang=js\"\nexport * from \"./rco-single-package-picker-button.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import axios from 'axios';\r\n\r\nexport default {\r\n\tgetSlayer() {\r\n\t\treturn axios.get('/static/portal/sw/json/sales-layer.json');\r\n\t}\r\n};\r\n","import { computed, ref, readonly } from 'vue';\r\nimport slayerApi from '../../../../api/slayer-api';\r\n\r\nconst STATES = {\r\n\tINIT: Symbol('INIT'),\r\n\tSUCCESS: Symbol('SUCCESS'),\r\n\tERROR: Symbol('ERROR')\r\n};\r\nexport const useLayers = () => {\r\n\tconst state = ref(STATES.INIT);\r\n\tconst layers = ref(null);\r\n\tconst layer = ref(null);\r\n\tconst getLayers = async () => {\r\n\t\ttry {\r\n\t\t\tconst { data } = await slayerApi.getSlayer();\r\n\t\t\tlayers.value = data;\r\n\t\t} catch (err) {\r\n\t\t\tthrow new Error('Could not get layers.json!');\r\n\t\t}\r\n\t};\r\n\tconst getLayer = async (id) => {\r\n\t\ttry {\r\n\t\t\tif (!layers.value) {\r\n\t\t\t\tawait getLayers();\r\n\t\t\t}\r\n\t\t\tstate.value = STATES.SUCCESS;\r\n\t\t\tif (!layers.value[id]) {\r\n\t\t\t\tthrow new Error('Layer not found!');\r\n\t\t\t} else {\r\n\t\t\t\tlayer.value = layers.value[id];\r\n\t\t\t}\r\n\t\t} catch (err) {\r\n\t\t\tstate.value = STATES.ERROR;\r\n\t\t\tthrow err;\r\n\t\t}\r\n\t};\r\n\tconst resetLayer = () => {\r\n\t\tlayer.value = null;\r\n\t};\r\n\tconst technicalError = computed(() => state.value == STATES.ERROR);\r\n\treturn {\r\n\t\tlayer: readonly(layer),\r\n\t\ttechnicalError: readonly(technicalError),\r\n\t\tgetLayer,\r\n\t\tresetLayer\r\n\t};\r\n};\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('VueFeedback',{attrs:{\"type\":\"error\"}},[_c('template',{slot:\"feedback-title\"},[_vm._v(\"Hoppá!\")]),_c('template',{slot:\"feedback-content\"},[_c('p',{staticClass:\"sf-text\"},[_vm._v(\"Technikai hiba történt!\")])])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-4.use[0]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./technical-error.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-4.use[0]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./technical-error.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./technical-error.vue?vue&type=template&id=0e1327af&scoped=true&lang=pug\"\nimport script from \"./technical-error.vue?vue&type=script&lang=js\"\nexport * from \"./technical-error.vue?vue&type=script&lang=js\"\nimport style0 from \"./technical-error.vue?vue&type=style&index=0&id=0e1327af&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0e1327af\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('vue-modal',{attrs:{\"modal-id\":_vm.MODAL_ID,\"width\":\"narrow\"}},[_c('template',{slot:\"modal-header\"},[_c('div',{staticClass:\"sales-layer__header\"},[(_vm.layer)?_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.layer.header)}}):_vm._e()])]),_c('template',{slot:\"modal-body\"},[(_vm.technicalError)?_c('TechnicalError'):_vm._e(),(_vm.layer)?_c('div',{staticClass:\"sales-layer__body\",domProps:{\"innerHTML\":_vm._s(_vm.layer.body)}}):_vm._e()],1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-4.use[0]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./slayer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-4.use[0]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./slayer.vue?vue&type=script&lang=js\"","import { getCurrentInstance, ref } from 'vue';\r\n\r\nexport const useGtm = () => {\r\n\tconst vm = getCurrentInstance().proxy;\r\n\tconst modalId = ref(null);\r\n\tconst openLayerGtm = (id) => {\r\n\t\tmodalId.value = id;\r\n\t\tvm.$gtm.trackEvent({\r\n\t\t\tevent: 'popupShown',\r\n\t\t\tpopupName: id\r\n\t\t});\r\n\t};\r\n\tconst closeLayerGtm = () => {\r\n\t\tvm.$gtm.trackEvent({\r\n\t\t\tevent: 'popupClosed',\r\n\t\t\tpopupName: modalId.value\r\n\t\t});\r\n\t\tmodalId.value = null;\r\n\t};\r\n\treturn {\r\n\t\topenLayerGtm,\r\n\t\tcloseLayerGtm\r\n\t};\r\n};\r\n","import { render, staticRenderFns } from \"./slayer.vue?vue&type=template&id=b15441c0&lang=pug\"\nimport script from \"./slayer.vue?vue&type=script&lang=js\"\nexport * from \"./slayer.vue?vue&type=script&lang=js\"\nimport style0 from \"./slayer.vue?vue&type=style&index=0&id=b15441c0&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport './plugins/plugins';\r\nimport axios from 'axios';\r\nimport 'moment';\r\nimport 'wicg-inert';\r\nimport currencyFilter from './currency-filter/currency-filter';\r\nimport numberFilter from './number-filter/number-filter';\r\nimport eventBus from './event-bus/event-bus';\r\nimport zeroFillFilter from './zero-fill-filter/zero-fill-filter';\r\nimport dateFilter from './date-filter/date-filter';\r\nimport capitalize from './capitalize/capitalize';\r\nimport { initReferer } from './referer/referer';\r\nimport { initCampaign } from './campaign/campaign';\r\nimport before from './before-directive/before-directive';\r\nimport VueCallRequestModalGlue from '@ui-common/vue-call-request-modal-glue';\r\nimport VueFormInfo from '@ui-common/vue-form-info';\r\nimport VueFormNotification from '@ui-common/vue-form-notification';\r\nimport VueTooltip from '@ui-common/vue-tooltip';\r\nimport VueButton from '@ui-common/vue-button';\r\nimport './svg-contains-polyfill/svg-contains-polyfill';\r\nimport androidPhoneHref from './android-phone-href/android-phone-href';\r\nimport iphoneHref from './iphone-href/iphone-href';\r\nimport rcoSinglePackagePicker from '../../common/components/rco-single-package-picker/rco-single-package-picker';\r\nimport rcoSinglePackagePickerButton from '../../common/components/rco-single-package-picker/rco-single-package-picker-button/rco-single-package-picker-button';\r\nimport rcoForeignCurrencyAccountPickerButton from '../../common/components/rco-foreign-currency-account-picker-button/rco-foreign-currency-account-picker-button';\r\nimport Slayer from '../components/slayer/slayer.vue';\r\n\r\nVue.prototype.env = window.env;\r\nVue.component('Slayer', Slayer);\r\nVue.component('vue-form-info', VueFormInfo);\r\nVue.component('vue-form-notification', VueFormNotification);\r\nVue.component('vue-tooltip', VueTooltip);\r\nVue.component('VueButton', VueButton);\r\nVue.component('rco-single-package-picker', rcoSinglePackagePicker);\r\nVue.component('rco-single-card-selector-button', rcoSinglePackagePickerButton);\r\nVue.component('rco-foreign-currency-account-picker-button', rcoForeignCurrencyAccountPickerButton);\r\n\r\nVue.prototype.openModal = (e, modalId, options) => {\r\n\teventBus.$emit('openModal', e, modalId, options);\r\n};\r\nVue.prototype.closeModal = (modalId, options) => {\r\n\teventBus.$emit('closeModal', modalId, options);\r\n};\r\nVue.prototype.openOrsi = (orsiFeature) => {\r\n\teventBus.$emit('openOrsi', orsiFeature);\r\n};\r\nVue.prototype.sendEvent = (event, options) => {\r\n\teventBus.$emit(event, options);\r\n};\r\naxios.defaults.headers.common['Cache-Control'] = 'no-store';\r\naxios.defaults.headers.common.Pragma = 'no-cache';\r\naxios.defaults.headers.common.Expires = 0;\r\nVue.prototype.$http = axios;\r\nVue.filter('currency', currencyFilter);\r\nVue.filter('number', numberFilter);\r\nVue.filter('date', dateFilter);\r\nVue.filter('zero', zeroFillFilter);\r\nVue.filter('capitalize', capitalize);\r\ninitReferer();\r\ninitCampaign();\r\nVue.component('vue-call-request-modal-glue', VueCallRequestModalGlue);\r\nVue.directive('before', before);\r\nVue.directive('android-phone-href', androidPhoneHref);\r\nVue.directive('iphone-href', iphoneHref);\r\nVue.config.ignoredElements = [\r\n\t'picture',\r\n\t/^call-request-component-/,\r\n\t/^call-request-business/,\r\n\t'app-webrtc-rco',\r\n\t'otp-adatbiztonsagi-kviz',\r\n\t'branch-atm-widget-wc',\r\n\t'branch-atm-locator-wc'\r\n];\r\n","import i18n from '../lang/i18n';\r\nexport default function (value, currency) {\r\n\tlet fixed = currency == 'HUF' ? 0 : 2;\r\n\tvalue = parseFloat(value);\r\n\tif (typeof value != 'undefined' && value != null) {\r\n\t\treturn new Intl.NumberFormat(i18n.locale, { minimumFractionDigits: fixed, maximumFractionDigits: fixed }).format(value);\r\n\t} else {\r\n\t\treturn '';\r\n\t}\r\n}\r\n","import i18n from '../lang/i18n';\r\nexport default function (value, maxDigits = 2, minDigits = 0) {\r\n\tvalue = parseFloat(value);\r\n\tif (typeof value != 'undefined' && value != null) {\r\n\t\treturn new Intl.NumberFormat(i18n.locale, { minimumFractionDigits: minDigits, maximumFractionDigits: maxDigits, useGrouping: false }).format(value);\r\n\t} else {\r\n\t\treturn '';\r\n\t}\r\n}\r\n","import moment from 'moment';\r\nexport default function (value, format) {\r\n\tif (value) {\r\n\t\treturn moment(value).format(format);\r\n\t} else {\r\n\t\treturn '';\r\n\t}\r\n}\r\n","import leftPad from 'left-pad';\r\nexport default function (value, length) {\r\n\tif (value) {\r\n\t\treturn leftPad(value, length, '0');\r\n\t} else {\r\n\t\treturn '';\r\n\t}\r\n}\r\n","export default function (value) {\r\n\tlet capStr = '';\r\n\tif (value) {\r\n\t\tcapStr = value.charAt(0) + value.slice(1).toLowerCase();\r\n\t}\r\n\treturn capStr;\r\n}\r\n","import { ref, computed, onUnmounted } from 'vue';\r\n\r\nconst BREAKPOINTS = {\r\n\tMOBILE: 767,\r\n\tTABLET: 995,\r\n\tDESKTOP: 1135\r\n};\r\nexport const useIsMobile = () => {\r\n\tconst viewportWidth = ref(null);\r\n\r\n\tconst setViewportWidth = () => {\r\n\t\tviewportWidth.value = window.innerWidth;\r\n\t};\r\n\r\n\tconst isMobile = computed(() => viewportWidth.value <= BREAKPOINTS.MOBILE);\r\n\tconst isTablet = computed(() => viewportWidth.value > BREAKPOINTS.MOBILE && viewportWidth.value <= BREAKPOINTS.TABLET);\r\n\tconst isDesktop = computed(() => viewportWidth.value > BREAKPOINTS.TABLET && viewportWidth.value <= BREAKPOINTS.DESKTOP);\r\n\tconst isLargeDesktop = computed(() => viewportWidth.value > BREAKPOINTS.DESKTOP);\r\n\r\n\twindow.addEventListener('resize', setViewportWidth);\r\n\tsetViewportWidth();\r\n\r\n\tonUnmounted(() => {\r\n\t\twindow.removeEventListener('resize', setViewportWidth);\r\n\t});\r\n\r\n\treturn {\r\n\t\tisMobile,\r\n\t\tisTablet,\r\n\t\tisDesktop,\r\n\t\tisLargeDesktop\r\n\t};\r\n};\r\n","import axios from 'axios';\r\n\r\nconst httpClient = axios.create({\r\n\tbaseURL: window.context.recommUrl\r\n});\r\n\r\nexport default {\r\n\tgetRecommendations(portalId) {\r\n\t\treturn httpClient.get('', {\r\n\t\t\theaders: {\r\n\t\t\t\t'X-Request-ID': window.crypto.randomUUID(),\r\n\t\t\t\t'X-Log-Parameters': '{\"channel\": \"PORTAL\"}',\r\n\t\t\t\t...(portalId && { portalId })\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n};\r\n","import Vue, { getCurrentInstance, nextTick, watch } from 'vue';\r\nimport { computed, ref } from 'vue';\r\nimport personalizationApi from '../../../api/personalization-api';\r\nimport { COOKIE_PORTAL_ID_NAME } from '../constants/constants';\r\n\r\nconst PERSONALIZATION_STATE = {\r\n\tINIT: 'INIT',\r\n\tSUCCESS: 'SUCCESS',\r\n\tERROR: 'ERROR'\r\n};\r\n\r\nconst STATUSES = {\r\n\tHIDDEN: 'hidden',\r\n\tERROR: 'error'\r\n};\r\n\r\nconst fragments = { ...window.context.defaultFragments, ...window.context.personalizedFragments };\r\n\r\nconst personalizationState = ref(PERSONALIZATION_STATE.INIT);\r\nconst isSuccess = computed(() => personalizationState.value == PERSONALIZATION_STATE.SUCCESS);\r\nconst isError = computed(() => personalizationState.value == PERSONALIZATION_STATE.ERROR);\r\nconst portalId = Vue.cookie.get(COOKIE_PORTAL_ID_NAME);\r\nconst recommData = ref(null);\r\n\r\nconst getDataAttributes = (moduleId) => {\r\n\tconst attributes = recommData.value[moduleId].map((data, index) => ({\r\n\t\t'data-item_id': data.recommId,\r\n\t\t'data-item_model': data.model,\r\n\t\t'data-item_position': index,\r\n\t\t'data-item_module': moduleId\r\n\t}));\r\n\treturn attributes;\r\n};\r\n\r\nconst initPersonalization = async () => {\r\n\ttry {\r\n\t\tif (window.context.hasPersonalization) {\r\n\t\t\tconst { data } = await personalizationApi.getRecommendations(portalId);\r\n\t\t\trecommData.value = data;\r\n\t\t}\r\n\t\tpersonalizationState.value = PERSONALIZATION_STATE.SUCCESS;\r\n\t} catch {\r\n\t\tpersonalizationState.value = PERSONALIZATION_STATE.ERROR;\r\n\t}\r\n};\r\n\r\nexport const useMherPersonalization = (params) => {\r\n\tconst mherFragment = ref(null);\r\n\tconst needsMherPlaceholder = ref(true);\r\n\tconst dataAttributes = ref(null);\r\n\r\n\tconst setPersonalizedMher = () => {\r\n\t\ttry {\r\n\t\t\tconst mher = recommData.value[params.moduleId][0];\r\n\t\t\tmherFragment.value = fragments[mher.recommId].mher;\r\n\t\t\tdataAttributes.value = getDataAttributes(params.moduleId)[0];\r\n\t\t\tif (!mherFragment.value) {\r\n\t\t\t\tsetDefaultMher();\r\n\t\t\t} else {\r\n\t\t\t\thideMherPlaceholder();\r\n\t\t\t}\r\n\t\t} catch {\r\n\t\t\tsetDefaultMher();\r\n\t\t}\r\n\t};\r\n\r\n\tconst setDefaultMher = () => {\r\n\t\tmherFragment.value = fragments[params.defaultId].mher;\r\n\t\tif (mherFragment.value) {\r\n\t\t\thideMherPlaceholder();\r\n\t\t}\r\n\t};\r\n\r\n\tconst hideMherPlaceholder = () => {\r\n\t\tnextTick(() => {\r\n\t\t\tneedsMherPlaceholder.value = false;\r\n\t\t\tdocument.querySelector('#mher-placeholder').style.display = 'none';\r\n\t\t});\r\n\t};\r\n\r\n\twatch(\r\n\t\tpersonalizationState,\r\n\t\t() => {\r\n\t\t\tif (isSuccess.value && params.personalized) {\r\n\t\t\t\tsetPersonalizedMher();\r\n\t\t\t} else if (isError.value || !params.personalized) {\r\n\t\t\t\tsetDefaultMher();\r\n\t\t\t}\r\n\t\t},\r\n\t\t{ immediate: true }\r\n\t);\r\n\r\n\treturn {\r\n\t\tmherFragment,\r\n\t\tneedsMherPlaceholder,\r\n\t\tdataAttributes\r\n\t};\r\n};\r\n\r\nexport const useMhapPersonalization = (params) => {\r\n\tconst mhapFragments = ref(null);\r\n\tconst needsMhapPlaceholder = ref(true);\r\n\tconst dataAttributes = ref([null, null, null]);\r\n\r\n\tconst mhap = ref([null, null, null]);\r\n\r\n\tconst setPersonalizedMhap = () => {\r\n\t\ttry {\r\n\t\t\tmhap.value = recommData.value[params.moduleId];\r\n\t\t\tmhapFragments.value = mhap.value.map((_fragment, index) => fragments[mhap.value[index].recommId].mhap);\r\n\t\t\tdataAttributes.value = getDataAttributes(params.moduleId);\r\n\t\t\tif (!mhapFragments.value) {\r\n\t\t\t\tsetDefaultMhap();\r\n\t\t\t} else {\r\n\t\t\t\thideMhapPlaceholder();\r\n\t\t\t}\r\n\t\t} catch {\r\n\t\t\tsetDefaultMhap();\r\n\t\t}\r\n\t};\r\n\r\n\tconst setDefaultMhap = () => {\r\n\t\tmhapFragments.value = mhap.value.map((_fragment, index) => fragments[params.defaultIds[index]].mhap);\r\n\t\tif (mhapFragments.value) {\r\n\t\t\thideMhapPlaceholder();\r\n\t\t}\r\n\t};\r\n\r\n\tconst hideMhapPlaceholder = () => {\r\n\t\tnextTick(() => {\r\n\t\t\tneedsMhapPlaceholder.value = false;\r\n\t\t\tdocument.querySelector('#mhap-placeholder').style.display = 'none';\r\n\t\t});\r\n\t};\r\n\r\n\twatch(\r\n\t\tpersonalizationState,\r\n\t\t() => {\r\n\t\t\tif (isSuccess.value && params.personalized) {\r\n\t\t\t\tsetPersonalizedMhap();\r\n\t\t\t} else if (isError.value || !params.personalized) {\r\n\t\t\t\tsetDefaultMhap();\r\n\t\t\t}\r\n\t\t},\r\n\t\t{ immediate: true }\r\n\t);\r\n\r\n\treturn {\r\n\t\tmhapFragments,\r\n\t\tneedsMhapPlaceholder,\r\n\t\tdataAttributes\r\n\t};\r\n};\r\n\r\nexport const useMasdPersonalization = (params) => {\r\n\tconst vm = getCurrentInstance().proxy;\r\n\r\n\tconst masdFragments = ref(null);\r\n\tconst needsMasdPlaceholder = ref(true);\r\n\tconst dataAttributes = ref(null);\r\n\r\n\tconst setPersonalizedMasd = () => {\r\n\t\ttry {\r\n\t\t\tconst masd = recommData.value[params.moduleId];\r\n\t\t\tif (masd?.visibility == STATUSES.HIDDEN) {\r\n\t\t\t\tsendGtm(STATUSES.HIDDEN);\r\n\t\t\t\tneedsMasdPlaceholder.value = false;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tmasdFragments.value = masd.map((masdIds) => fragments[masdIds.recommId].masd);\r\n\t\t\tdataAttributes.value = getDataAttributes(params.moduleId);\r\n\t\t\tif (!masdFragments.value) {\r\n\t\t\t\tsetDefaultMasd();\r\n\t\t\t} else {\r\n\t\t\t\tneedsMasdPlaceholder.value = false;\r\n\t\t\t}\r\n\t\t} catch {\r\n\t\t\tsendGtm(STATUSES.ERROR);\r\n\t\t\tsetDefaultMasd();\r\n\t\t}\r\n\t};\r\n\r\n\tconst setDefaultMasd = () => {\r\n\t\ttry {\r\n\t\t\tmasdFragments.value = [fragments[params.defaultId].masd];\r\n\t\t} catch {\r\n\t\t\tconsole.warn('defaultId for masd module is not available');\r\n\t\t} finally {\r\n\t\t\tneedsMasdPlaceholder.value = false;\r\n\t\t}\r\n\t};\r\n\r\n\tconst sendGtm = (status) => {\r\n\t\tvm.$gtm.trackEvent({\r\n\t\t\tevent: 'recom_failed',\r\n\t\t\trecom_status: status,\r\n\t\t\tmodul: params.moduleId\r\n\t\t});\r\n\t};\r\n\r\n\twatch(\r\n\t\tpersonalizationState,\r\n\t\t() => {\r\n\t\t\tif (isSuccess.value && params.personalized) {\r\n\t\t\t\tsetPersonalizedMasd();\r\n\t\t\t} else if (isError.value || !params.personalized) {\r\n\t\t\t\tsetDefaultMasd();\r\n\t\t\t}\r\n\t\t},\r\n\t\t{ immediate: true }\r\n\t);\r\n\r\n\treturn {\r\n\t\tmasdFragments,\r\n\t\tneedsMasdPlaceholder,\r\n\t\tdataAttributes\r\n\t};\r\n};\r\n\r\nexport const usePersonalization = () => {\r\n\tinitPersonalization();\r\n};\r\n","import VueI18n from 'vue-i18n';\r\nimport { createI18n } from 'vue-i18n-composable';\r\nimport moment from 'moment';\r\nimport Vue from 'vue';\r\nVue.use(VueI18n);\r\nmoment.locale(document.documentElement.lang);\r\nconst i18n = createI18n({\r\n\tlocale: document.documentElement.lang\r\n});\r\n\r\nexport default i18n;\r\n","import { MediaQueries } from 'vue-media-queries';\r\nexport const mediaQueries = new MediaQueries();\r\n","SVGElement.prototype.contains = function contains(node) {\r\n\tif (!(0 in arguments)) {\r\n\t\tthrow new TypeError('1 argument is required');\r\n\t}\r\n\r\n\tdo {\r\n\t\tif (this === node) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t} while ((node = node && node.parentNode));\r\n\r\n\treturn false;\r\n};\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"lavContainer\",style:(_vm.style)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../esbuild-loader/dist/index.cjs??clonedRuleSet-4.use[0]!../../vue-loader/lib/index.js??vue-loader-options!./lottie.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../esbuild-loader/dist/index.cjs??clonedRuleSet-4.use[0]!../../vue-loader/lib/index.js??vue-loader-options!./lottie.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./lottie.vue?vue&type=template&id=3c796cc7\"\nimport script from \"./lottie.vue?vue&type=script&lang=js\"\nexport * from \"./lottie.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"lottie-wrapper\"},[_c('lottie',{attrs:{\"options\":_vm.defaultOptions}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-4.use[0]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./lottie-animation.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-4.use[0]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./lottie-animation.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./lottie-animation.vue?vue&type=template&id=d56cdf2e&scoped=true&lang=pug\"\nimport script from \"./lottie-animation.vue?vue&type=script&lang=js\"\nexport * from \"./lottie-animation.vue?vue&type=script&lang=js\"\nimport style0 from \"./lottie-animation.vue?vue&type=style&index=0&id=d56cdf2e&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d56cdf2e\",\n null\n \n)\n\nexport default component.exports","import './layout.scss';\r\nimport Vue from 'vue';\r\nimport VueTableOfContent from '@ui-common/vue-table-of-content';\r\nimport macc from '../../modules/MACC/macc';\r\nimport mdtb from '../../modules/MDTB/mdtb';\r\nimport meda from '../../modules/MEDA/meda';\r\nimport meok from '../../modules/MEOK/meok';\r\nimport mevp from '../../modules/MEVP/mevp';\r\nimport mfsh from '../../modules/MFSH/mfsh.vue';\r\nimport mhap from '../../modules/MHAP/mhap.vue';\r\nimport mife from '../../modules/MIFE/mife';\r\nimport mint from '../../modules/MINT/mint.vue';\r\nimport mint2021 from '../../modules/MINT2021/mint2021.vue';\r\nimport mjbl from '../../modules/MJBL/mjbl.vue';\r\nimport mksz from '../../modules/MKSZ/mksz';\r\nimport moav from '../../modules/MOAV/moav';\r\nimport mrbt from '../../modules/MRBT/mrbt';\r\nimport mstb from '../../modules/MSTB/mstb';\r\nimport mtab from '../../modules/MTAB/mtab';\r\nimport mtabr from '../../modules/MTABR/mtabr';\r\nimport mtbl from '../../modules/MTBL/mtbl';\r\nimport mubt from '../../modules/MUBT/mubt';\r\nimport mslc from '../../modules/MSLC/mslc';\r\nimport masd from '../../modules/MASD/masd.vue';\r\nimport VueCheckbox from '@ui-common/vue-checkbox';\r\nimport VueTab from '@ui-common/vue-tab';\r\nimport LottieAnimation from '../../common/components/lottie-animation/lottie-animation.vue';\r\nimport videoPreview from '../../common/components/video-preview/video-preview.vue';\r\nimport videoPlayer from '../../common/components/video-player/video-player.vue';\r\nimport rcoAccountPackageSelectorButton from '../../applications/rco-account-package-picker/rco-account-package-selector-button/rco-account-package-selector-button';\r\nimport announcementsSelect from '../../common/components/announcements-select/announcements-select.js';\r\nimport BranchAtmWidgetWrapper from '../../applications/branch-atm-widget-wrapper/branch-atm-widget-wrapper.vue';\r\nimport layoutBase from '../layout-base';\r\nimport sectionLayout from '../../common/elements/section-layouts/section-layout';\r\n\r\nVue.component('macc', macc);\r\nVue.component('mslc', mslc);\r\nVue.component('mdtb', mdtb);\r\nVue.component('meok', meok);\r\nVue.component('mevp', mevp);\r\nVue.component('mint', mint);\r\nVue.component('mint2021', mint2021);\r\nVue.component('mjbl', mjbl);\r\nVue.component('mrbt', mrbt);\r\nVue.component('mstb', mstb);\r\nVue.component('mtab', mtab);\r\nVue.component('mtabr', mtabr);\r\nVue.component('mtbl', mtbl);\r\nVue.component('mubt', mubt);\r\nVue.component('meda', meda);\r\nVue.component('mfsh', mfsh);\r\nVue.component('mhap', mhap);\r\nVue.component('mife', mife);\r\nVue.component('mksz', mksz);\r\nVue.component('moav', moav);\r\nVue.component('masd', masd);\r\nVue.component('vue-checkbox', VueCheckbox);\r\nVue.component('vue-tab', VueTab);\r\nVue.component('lottie-animation', LottieAnimation);\r\nVue.component('video-player', videoPlayer);\r\nVue.component('video-preview', videoPreview);\r\nVue.component('rco-account-package-selector-button', rcoAccountPackageSelectorButton);\r\nVue.component('announcements-select', announcementsSelect);\r\nVue.component('branch-atm-widget-wrapper', BranchAtmWidgetWrapper);\r\nVue.component('section-tab', sectionLayout);\r\nVue.component('vue-table-of-content', VueTableOfContent);\r\n\r\n/* eslint-disable no-new*/\r\nnew Vue({\r\n\tel: '[data-layout-id=AV9TE-app]',\r\n\textends: layoutBase\r\n});\r\n/* eslint-enable*/\r\n","import exchangeApi from '../../../api/exchange-api';\r\nlet exchangeMarzs;\r\nlet callDispatched;\r\nconst getExchangeMarzs = async () => {\r\n\ttry {\r\n\t\tif (!callDispatched) {\r\n\t\t\tconst response = await exchangeApi.getEcbDifference();\r\n\t\t\tif (response && response.data && response.data.ecbDifference) {\r\n\t\t\t\texchangeMarzs = response.data.ecbDifference;\r\n\t\t\t}\r\n\t\t}\r\n\t\tcallDispatched = true;\r\n\t\tif (!exchangeMarzs && callDispatched) {\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tgetExchangeMarzs();\r\n\t\t\t}, 500);\r\n\t\t}\r\n\t} catch (error) {\r\n\t\tconsole.error(error);\r\n\t}\r\n\treturn exchangeMarzs;\r\n};\r\n\r\nexport default getExchangeMarzs;\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{staticClass:\"exchange-marzs\"},[_c('strong',[(_vm.ecbDifference)?[_vm._v(_vm._s(_vm._f(\"number\")(_vm.ecbDifference))+\"%\")]:[_vm._v(\"N/A\")]],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-4.use[0]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./exchange-marzs.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-4.use[0]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./exchange-marzs.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./exchange-marzs.vue?vue&type=template&id=39211324&lang=pug\"\nimport script from \"./exchange-marzs.vue?vue&type=script&lang=js\"\nexport * from \"./exchange-marzs.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import announcementApi from '../../../api/announcement-api';\r\nconst ANNOUNCEMENT_SET_ANNOUNCEMENTS = 'ANNOUNCEMENT_SET_ANNOUNCEMENTS';\r\nconst ANNOUNCEMENT_SET_TECHNICAL_ERROR = 'ANNOUNCEMENT_SET_TECHNICAL_ERROR';\r\n\r\nconst announcementState = {\r\n\ttechnicalError: false,\r\n\tannouncements: []\r\n};\r\n\r\nconst announcementActions = {\r\n\tasync getAnnouncements({ commit }, params) {\r\n\t\ttry {\r\n\t\t\tlet { data } = await announcementApi.getAnnouncements(params);\r\n\t\t\tcommit(ANNOUNCEMENT_SET_ANNOUNCEMENTS, data);\r\n\t\t} catch (err) {\r\n\t\t\tcommit(ANNOUNCEMENT_SET_TECHNICAL_ERROR);\r\n\t\t}\r\n\t}\r\n};\r\n\r\nconst announcementMutations = {\r\n\t[ANNOUNCEMENT_SET_ANNOUNCEMENTS](state, announcements) {\r\n\t\tstate.announcements = announcements;\r\n\t},\r\n\t[ANNOUNCEMENT_SET_TECHNICAL_ERROR](state) {\r\n\t\tstate.technicalError = true;\r\n\t}\r\n};\r\n\r\nexport default {\r\n\tnamespaced: true,\r\n\tstate: announcementState,\r\n\tmutations: announcementMutations,\r\n\tactions: announcementActions\r\n};\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"announcement-wrap\",class:{ 'content-placeholder-active': !_vm.loaded }},[_c('div',{staticClass:\"announcement\",class:{ 'announcement--inline': _vm.inline, 'announcement--hide-bullet': _vm.hideBullet, 'announcement--accept-pdf': _vm.acceptanceNeeded }},[(_vm.inline)?[(_vm.loaded)?[_vm._l((_vm.filteredAnnouncements),function(announcement){return [(_vm.acceptanceNeeded)?_c('AcceptPdfModal',{attrs:{\"id\":`${announcement.announcementSelection}-${announcement.documentId}`,\"pdf-url\":announcement.url},model:{value:(_vm.modelValue),callback:function ($$v) {_vm.modelValue=$$v},expression:\"modelValue\"}},[_c('template',{slot:\"title\"},[_vm._v(_vm._s(_vm.text || announcement.selection.longname))])],2):[_c('a',{staticClass:\"announcement__item announcement__item--inline\",attrs:{\"href\":announcement.url,\"aria-label\":announcement.selection.longname + ' hirdetmény',\"target\":_vm.target,\"rel\":\"nofollow\"}},[_vm._v(_vm._s(_vm.text || announcement.selection.longname))]),(announcement.validityStart && !_vm.hideDate)?_c('span',{staticClass:\"item-date\"},[_vm._v(_vm._s(_vm._f(\"date\")(announcement.validityStart,_vm.displayDateFormat))+\". - \"),(announcement.validityEnd)?[_vm._v(_vm._s(_vm._f(\"date\")(announcement.validityEnd,_vm.displayDateFormat))+\".\")]:_vm._e()],2):_vm._e()]]})]:[(_vm.acceptanceNeeded)?_c('div',{staticClass:\"announcement-placeholder content-placeholder-content\"},[_c('div',{staticClass:\"announcement-placeholder-item sf-btn\"},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"10\",\"height\":\"18\",\"viewbox\":\"0 0 10 18\",\"fill\":\"none\",\"aria-hidden\":\"true\"}},[_c('path',{attrs:{\"d\":\"M1 1L9 9L0.999997 17\",\"stroke\":\"#ababab\",\"stroke-width\":\"2\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}})]),_c('div',{staticClass:\"announcement-placeholder-text content-placeholder-animated-background content-placeholder-animated-background--gray\"}),_c('div',{staticClass:\"announcement-placeholder-link content-placeholder-animated-background content-placeholder-animated-background--gray\"})])]):_c('span',{staticClass:\"announcement-placeholder content-placeholder-content\"},[_vm._m(0)])]]:[(_vm.loaded)?[_c('p',{staticClass:\"sr-only\"},[_vm._v(\"Hirdetmények listája\")]),_c('ul',{staticClass:\"list list--primary\"},_vm._l((_vm.filteredAnnouncements),function(announcement){return _c('li',{staticClass:\"announcement__item list-item list-item--primary\"},[_c('a',{attrs:{\"href\":announcement.url,\"aria-label\":announcement.selection.longname + ' hirdetmény',\"target\":\"_blank\",\"rel\":\"nofollow\"}},[_vm._v(_vm._s(announcement.selection.longname))]),_c('span',[_vm._v(_vm._s(_vm._f(\"date\")(announcement.validityStart,_vm.displayDateFormat))+\". - \"),(announcement.validityEnd)?[_vm._v(_vm._s(_vm._f(\"date\")(announcement.validityEnd,_vm.displayDateFormat))+\".\")]:_vm._e()],2)])}),0)]:_c('div',{staticClass:\"announcement-placeholder content-placeholder-content\"},_vm._l((3),function(n){return _c('div',{staticClass:\"announcement-placeholder-item\"},[_c('div',{staticClass:\"announcement-placeholder-link content-placeholder-animated-background content-placeholder-animated-background--green\"}),_c('div',{staticClass:\"announcement-placeholder-date content-placeholder-animated-background content-placeholder-animated-background--gray\"})])}),0)]],2)])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('span',{staticClass:\"announcement-placeholder-item\"},[_c('span',{staticClass:\"announcement-placeholder-link content-placeholder-animated-background content-placeholder-animated-background--green\"}),_c('span',{staticClass:\"announcement-placeholder-date content-placeholder-animated-background content-placeholder-animated-background--gray\"})])\n}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-4.use[0]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./announcement.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-4.use[0]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./announcement.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./announcement.vue?vue&type=template&id=504c9af9&scoped=true&lang=pug\"\nimport script from \"./announcement.vue?vue&type=script&lang=js\"\nexport * from \"./announcement.vue?vue&type=script&lang=js\"\nimport style0 from \"./announcement.vue?vue&type=style&index=0&id=504c9af9&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"504c9af9\",\n null\n \n)\n\nexport default component.exports","export default {\r\n\tdata: () => ({\r\n\t\tisVisible: true\r\n\t}),\r\n\tcomputed: {\r\n\t\tisMobile() {\r\n\t\t\treturn this.$resize && this.$mq.below(767);\r\n\t\t},\r\n\t\tisTablet() {\r\n\t\t\treturn this.$resize && this.$mq.above(768);\r\n\t\t}\r\n\t},\r\n\trender() {\r\n\t\treturn this.$scopedSlots.default({\r\n\t\t\tisMobile: this.isMobile,\r\n\t\t\tisTablet: this.isTablet\r\n\t\t});\r\n\t}\r\n};\r\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (!_setup.needsMherPlaceholder)?_c('div',{staticClass:\"mher-container\"},[_c('div',_vm._b({staticClass:\"mher-wrapper\",domProps:{\"innerHTML\":_vm._s(_setup.mherFragment)}},'div',_setup.dataAttributes,false))]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-4.use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./mher.vue?vue&type=script&setup=true&lang=js\"; export default mod; export * from \"-!../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-4.use[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./mher.vue?vue&type=script&setup=true&lang=js\"","import { render, staticRenderFns } from \"./mher.vue?vue&type=template&id=23ffe7f5&lang=pug\"\nimport script from \"./mher.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./mher.vue?vue&type=script&setup=true&lang=js\"\nimport style0 from \"./mher.vue?vue&type=style&index=0&id=23ffe7f5&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import '../common/js/common';\r\nimport eventBus from '../common/js/event-bus/event-bus';\r\nimport { mediaQueries } from '../common/js/media-query/media-query';\r\nimport exchangeMarzs from '../common/components/exchange-marzs/exchange-marzs.vue';\r\nimport Vue from 'vue';\r\nimport store from '../common/js/vuex/store';\r\nimport announcementStore from '../common/components/announcement/announcement-vuex';\r\nimport announcement from '../common/components/announcement/announcement.vue';\r\nimport VisibilityContainer from '../common/components/visibility-container/visibility-container';\r\nimport mher from '../modules/MHER/mher.vue';\r\nimport i18n from '../common/js/lang/i18n';\r\nimport { useDirektIbCookieHandler } from '../common/js/composables/direkt-ib-cookie-handler';\r\nimport { usePersonalization } from '../common/js/composables/personalization';\r\nimport PortalVue from 'portal-vue';\r\n\r\nVue.use(PortalVue);\r\nVue.component('exchange-marzs', exchangeMarzs);\r\nVue.component('visibility-container', VisibilityContainer);\r\nVue.component('mher', mher);\r\nif (!store.hasModule(['announcements'])) {\r\n\tstore.registerModule('announcements', announcementStore);\r\n}\r\nif (window.context?.announcements?.length) {\r\n\tstore.dispatch('announcements/getAnnouncements', window.context.announcements);\r\n\tVue.component('announcement', announcement);\r\n}\r\nexport default {\r\n\ti18n,\r\n\tmediaQueries,\r\n\tdata: {\r\n\t\tariaHide: false,\r\n\t\tmodalVisible: null,\r\n\t\tallowAnchor: true,\r\n\t\theroTitle: null\r\n\t},\r\n\tsetup() {\r\n\t\tconst { provideDirektEbValues } = useDirektIbCookieHandler();\r\n\t\tusePersonalization();\r\n\t\tprovideDirektEbValues();\r\n\t},\r\n\tstore,\r\n\tcomputed: {\r\n\t\tisMobile() {\r\n\t\t\treturn this.$resize && this.$mq.below(767);\r\n\t\t}\r\n\t},\r\n\tmethods: {\r\n\t\twaitForFonts() {\r\n\t\t\tif (location.hash) {\r\n\t\t\t\tlet wait = setInterval(() => {\r\n\t\t\t\t\tif (document.documentElement.classList.contains('wf-active')) {\r\n\t\t\t\t\t\tvar elId = location.hash.replace('#', '');\r\n\t\t\t\t\t\tvar scrollToEl = document.getElementById(elId) || document.querySelector(`a[name=\"${elId}]\"`);\r\n\t\t\t\t\t\tif (scrollToEl) {\r\n\t\t\t\t\t\t\tscrollToEl.scrollIntoView(true);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tclearInterval(wait);\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 500);\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tclearInterval(wait);\r\n\t\t\t\t}, 5000);\r\n\t\t\t}\r\n\t\t},\r\n\t\tinitVhk() {\r\n\t\t\t// Inicializalja az osszes VHK webkomponenst\r\n\t\t\tconst event = new CustomEvent('call-request-init');\r\n\t\t\twindow.dispatchEvent(event);\r\n\t\t}\r\n\t},\r\n\tmounted() {\r\n\t\tthis.$nextTick(() => {\r\n\t\t\tthis.allowAnchor && this.waitForFonts();\r\n\t\t});\r\n\t\teventBus.$on('toggleAriaHidden', (hide) => {\r\n\t\t\tthis.ariaHide = hide;\r\n\t\t});\r\n\t\teventBus.$on('openOrsi', (orsiFeature) => {\r\n\t\t\tif (window.ORSI) {\r\n\t\t\t\tswitch (orsiFeature) {\r\n\t\t\t\t\tcase 'chat':\r\n\t\t\t\t\t\twindow.ORSI.chat.openChat();\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'callrequest':\r\n\t\t\t\t\t\twindow.ORSI.callrequest.openCallrequest();\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'writetous':\r\n\t\t\t\t\t\twindow.ORSI.writetous.openWritetous();\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\tdocument.addEventListener('tooltip-toggle', this.handleTooltipToggle);\r\n\t\tdocument.addEventListener('select-value-change', this.handleSelectValueChange);\r\n\t\tthis.initVhk();\r\n\t},\r\n\tcreated() {\r\n\t\teventBus.$on('heroTitleChange', (heroTitle) => {\r\n\t\t\tthis.heroTitle = heroTitle;\r\n\t\t});\r\n\t},\r\n\tbeforeDestroy() {\r\n\t\tdocument.removeEventListener('tooltip-toggle', this.handleTooltipToggle);\r\n\t\tdocument.removeEventListener('select-value-change', this.handleSelectValueChange);\r\n\t}\r\n};\r\n","import { VueAccordion, VueAccordionItem } from '@ui-common/vue-accordion';\r\nexport default {\r\n\tdata: () => ({\r\n\t\tisOpen: null\r\n\t}),\r\n\tprops: {\r\n\t\tautoScroll: {\r\n\t\t\tdefault: false\r\n\t\t},\r\n\t\topened: {\r\n\t\t\trequired: false\r\n\t\t},\r\n\t\tinverse: {\r\n\t\t\trequired: false\r\n\t\t}\r\n\t},\r\n\tcomponents: {\r\n\t\tVueAccordion,\r\n\t\tVueAccordionItem\r\n\t},\r\n\tmounted() {\r\n\t\tthis.isOpen = this.opened;\r\n\t\tif (this.autoScroll) {\r\n\t\t\tthis.$scrollTo(this.$el);\r\n\t\t}\r\n\t}\r\n};\r\n","import Vue from 'vue';\r\nimport VueTouch from 'vue-touch';\r\nVue.use(VueTouch);\r\nexport default {\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tcurrentColumn: 0,\r\n\t\t\tcardWidth: null,\r\n\t\t\tdeviceWidth: null\r\n\t\t};\r\n\t},\r\n\tprops: {\r\n\t\tpackages: {\r\n\t\t\ttype: Array,\r\n\t\t\trequired: true\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\tisMobile() {\r\n\t\t\treturn this.$resize && this.$mq.below(767);\r\n\t\t},\r\n\t\tisTablet() {\r\n\t\t\treturn this.$resize && this.$mq.above(768) && this.$mq.below(959);\r\n\t\t},\r\n\t\tisDesktop() {\r\n\t\t\treturn this.$resize && this.$mq.above(960) && this.$mq.below(1279);\r\n\t\t},\r\n\t\tisLargeDesktop() {\r\n\t\t\treturn this.$resize && this.$mq.above(1280);\r\n\t\t}\r\n\t}\r\n};\r\n","import tabs from '../../common/components/tabs/tabs.vue';\r\nimport videoPreview from '../../common/components/video-preview/video-preview.vue';\r\nimport mevp from '../../modules/MEVP/mevp';\r\n\r\nexport default {\r\n\textends: tabs,\r\n\tcomponents: {\r\n\t\tvideoPreview,\r\n\t\tmevp\r\n\t}\r\n};\r\n","const MEOK_TABLE_ROW_PATTERN = /meok-table-row-\\d+/;\r\nconst MEOK_TABLE_ROW_PATTERN_GRAY = /meok-table-row-gray-\\d+/;\r\nconst CONTAINER_SELECTORS = {\r\n\tTITLE_CONTAINER: '.meok-card-container-title',\r\n\tIMAGE_CONTAINER: '.meok-card-container-1',\r\n\tSUBTITLE_CONTAINER: '.meok-card-container-2',\r\n\tTEXT_CONTAINER: '.meok-card-container-3',\r\n\tEDU_CONTAINER: '.meok-card-container-4',\r\n\tLIST_CONTAINER: '.meok-card-container-5'\r\n};\r\nconst MEOK_CARD_SELECTOR = '.meok-card';\r\nconst MEOK_CARD_SELECTOR_GRAY_BACKGROUND = '.meok__card-wrap';\r\nexport default {\r\n\tmethods: {\r\n\t\tcalculateAllCardsHeights(cardSelector) {\r\n\t\t\tfor (let key in this.$refs) {\r\n\t\t\t\tif (this.isMeokTableRow(key)) {\r\n\t\t\t\t\tlet cardsInOneRow = this.$refs[key].querySelectorAll(cardSelector);\r\n\t\t\t\t\tlet numberOfCardsInOneRow = cardsInOneRow.length;\r\n\t\t\t\t\tif (numberOfCardsInOneRow > 1) {\r\n\t\t\t\t\t\tthis.calculateCardHeights(cardsInOneRow);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tcalculateCardHeights(cardsNodeList) {\r\n\t\t\tfor (let containerSelector in CONTAINER_SELECTORS) {\r\n\t\t\t\tthis.applyHighestValue(cardsNodeList, CONTAINER_SELECTORS[containerSelector], 'auto');\r\n\t\t\t}\r\n\t\t\tif (!this.isMobile) {\r\n\t\t\t\tfor (let containerSelector in CONTAINER_SELECTORS) {\r\n\t\t\t\t\tlet highestValue = this.getHighestValue(cardsNodeList, CONTAINER_SELECTORS[containerSelector]);\r\n\t\t\t\t\tthis.applyHighestValue(cardsNodeList, CONTAINER_SELECTORS[containerSelector], highestValue);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tapplyHighestValue(cardsNodeList, containerSelector, value) {\r\n\t\t\t[...cardsNodeList].forEach((item) => {\r\n\t\t\t\tlet elem = item.querySelector(containerSelector);\r\n\t\t\t\tif (elem) {\r\n\t\t\t\t\telem.style.height = Number.isFinite(value) ? value + 'px' : value;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t},\r\n\t\tisMeokTableRow(refString) {\r\n\t\t\treturn (\r\n\t\t\t\tthis.$refs.hasOwnProperty(refString) &&\r\n\t\t\t\tthis.$refs[refString] &&\r\n\t\t\t\t(MEOK_TABLE_ROW_PATTERN.test(refString) || MEOK_TABLE_ROW_PATTERN_GRAY.test(refString))\r\n\t\t\t);\r\n\t\t},\r\n\t\tgetHighestValue(cardsNodeList, selector) {\r\n\t\t\tlet heights = [...cardsNodeList].map((cardNode) => {\r\n\t\t\t\tlet elem = cardNode.querySelector(selector);\r\n\t\t\t\treturn elem ? this.getElementsHeight(elem) : 0;\r\n\t\t\t});\r\n\t\t\treturn Math.max(...heights);\r\n\t\t},\r\n\t\tgetElementsHeight(element) {\r\n\t\t\tlet elementHeight = getComputedStyle(element).height;\r\n\t\t\tif (isNaN(parseInt(elementHeight, 10))) {\r\n\t\t\t\treturn element.offsetHeight;\r\n\t\t\t} else {\r\n\t\t\t\treturn parseInt(elementHeight, 10);\r\n\t\t\t}\r\n\t\t},\r\n\t\tcalculateMeokCardsHeight() {\r\n\t\t\tthis.calculateAllCardsHeights(MEOK_CARD_SELECTOR);\r\n\t\t\tthis.calculateAllCardsHeights(MEOK_CARD_SELECTOR_GRAY_BACKGROUND);\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\tisMobile() {\r\n\t\t\treturn this.$resize && this.$mq.below(767);\r\n\t\t}\r\n\t},\r\n\tmounted() {\r\n\t\tthis.$nextTick(() => {\r\n\t\t\tthis.calculateMeokCardsHeight();\r\n\t\t});\r\n\t\twindow.addEventListener('resize', this.calculateMeokCardsHeight);\r\n\t},\r\n\tbeforeDestroy() {\r\n\t\twindow.removeEventListener('resize', this.calculateMeokCardsHeight);\r\n\t}\r\n};\r\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (!_setup.isMobile)?_c(_setup.QrcodeVue,{attrs:{\"value\":_setup.qrCodeLink,\"size\":_vm.size,\"render-as\":\"svg\",\"class-name\":\"qr-code\"}}):_c('div',{staticClass:\"mevp-btn-container\"},[_c('a',{class:{ 'sf-btn': _vm.buttonText },attrs:{\"href\":_setup.qrCodeLink,\"target\":\"_blank\"}},[_vm._t(\"default\",function(){return [_vm._v(_vm._s(_vm.buttonText))]})],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-4.use[0]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./qr-code.vue?vue&type=script&setup=true&lang=js\"; export default mod; export * from \"-!../../../../node_modules/esbuild-loader/dist/index.cjs??clonedRuleSet-4.use[0]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./qr-code.vue?vue&type=script&setup=true&lang=js\"","import { render, staticRenderFns } from \"./qr-code.vue?vue&type=template&id=0a8d3f04&lang=pug\"\nimport script from \"./qr-code.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./qr-code.vue?vue&type=script&setup=true&lang=js\"\nimport style0 from \"./qr-code.vue?vue&type=style&index=0&id=0a8d3f04&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { computed, inject } from 'vue';\r\nimport eventBus from '../../common/js/event-bus/event-bus';\r\nimport QrCode from '../../common/components/qr-code/qr-code.vue';\r\n\r\nconst CONTAINER_SELECTORS = {\r\n\tHEADER_SELECTOR: '.mevp-card-header',\r\n\tTEXT_SELECTOR: '.mevp-card-text'\r\n};\r\n\r\nconst calculateItemHeights = () => {\r\n\tconst headers = document.querySelectorAll(CONTAINER_SELECTORS.HEADER_SELECTOR);\r\n\tconst texts = document.querySelectorAll(CONTAINER_SELECTORS.TEXT_SELECTOR);\r\n\treturn [headers, texts];\r\n};\r\n\r\nconst checkHeights = () => {\r\n\tconst elements = calculateItemHeights();\r\n\tfor (let i = 0; i < elements.length; i++) {\r\n\t\tfor (let j = 0; j < elements[i].length; j += 2) {\r\n\t\t\tif (elements[i][j + 1]) {\r\n\t\t\t\tconst firstElement = Number.parseInt(getComputedStyle(elements[i][j]).height, 10);\r\n\t\t\t\tconst secondElement = Number.parseInt(getComputedStyle(elements[i][j + 1]).height, 10);\r\n\t\t\t\tif (firstElement > secondElement) {\r\n\t\t\t\t\telements[i][j + 1].style.height = getComputedStyle(elements[i][j]).height;\r\n\t\t\t\t} else {\r\n\t\t\t\t\telements[i][j].style.height = getComputedStyle(elements[i][j + 1]).height;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tfor (let elementList of elements) {\r\n\t\tfor (let j = 0; j < elementList.length; j += 2) {\r\n\t\t\tif (elementList[j + 1]) {\r\n\t\t\t\tconst firstElement = Number.parseInt(getComputedStyle(elementList[j]).height, 10);\r\n\t\t\t\tconst secondElement = Number.parseInt(getComputedStyle(elementList[j + 1]).height, 10);\r\n\t\t\t\tif (firstElement > secondElement) {\r\n\t\t\t\t\telementList[j + 1].style.height = getComputedStyle(elementList[j]).height;\r\n\t\t\t\t} else {\r\n\t\t\t\t\telementList[j].style.height = getComputedStyle(elementList[j + 1]).height;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n\r\nexport default {\r\n\tprops: {\r\n\t\tisNewCustomer: {\r\n\t\t\ttype: Boolean,\r\n\t\t\tdefault: false\r\n\t\t}\r\n\t},\r\n\tcomponents: {\r\n\t\tQrCode\r\n\t},\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tdetailsOpened: false\r\n\t\t};\r\n\t},\r\n\tsetup() {\r\n\t\tconst userHasDszk = inject('userHasDszk');\r\n\t\tconst userHasDirekt = inject('userHasDirekt');\r\n\t\tconst noDirektOrDszk = computed(() => !userHasDszk.value && !userHasDirekt.value);\r\n\t\treturn {\r\n\t\t\tuserHasDirekt,\r\n\t\t\tuserHasDszk,\r\n\t\t\tnoDirektOrDszk\r\n\t\t};\r\n\t},\r\n\tcomputed: {\r\n\t\tisMobile() {\r\n\t\t\treturn this.$resize && this.$mq.below(767);\r\n\t\t},\r\n\t\tfirstInDetails() {\r\n\t\t\treturn this.$el.querySelector('#mevp_0_details').firstChild;\r\n\t\t}\r\n\t},\r\n\twatch: {\r\n\t\tdetailsOpened(newVal) {\r\n\t\t\tif (!this.isMobile) {\r\n\t\t\t\tthis.$nextTick(() => {\r\n\t\t\t\t\tcheckHeights();\r\n\t\t\t\t\tif (newVal) {\r\n\t\t\t\t\t\tthis.firstInDetails.focus();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.$refs.details.focus();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tmounted() {\r\n\t\tif (!this.isMobile) {\r\n\t\t\tcheckHeights();\r\n\t\t}\r\n\t\teventBus.$on('modal-opened', () => {\r\n\t\t\tthis.$nextTick(() => {\r\n\t\t\t\tcheckHeights();\r\n\t\t\t});\r\n\t\t});\r\n\t},\r\n\tbeforeDestroy() {\r\n\t\teventBus.$off('modal-opened');\r\n\t}\r\n};\r\n","export default {\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tdetailsOpened: false\r\n\t\t};\r\n\t}\r\n};\r\n","export default {\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tvideoOpened: false\r\n\t\t};\r\n\t}\r\n};\r\n","import VueFocus from 'vue-focus';\r\nexport default {\r\n\tmixins: [VueFocus.mixin],\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tactiveTab: null\r\n\t\t};\r\n\t},\r\n\tprops: {\r\n\t\topenedTab: {\r\n\t\t\trequired: false\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\tisMobile() {\r\n\t\t\treturn this.$resize && this.$mq.below(767);\r\n\t\t}\r\n\t},\r\n\tmethods: {\r\n\t\tchangeTab(tabId) {\r\n\t\t\tthis.activeTab = 'tab' + tabId;\r\n\t\t}\r\n\t},\r\n\tmounted() {\r\n\t\tthis.activeTab = 'tab' + this.openedTab;\r\n\t}\r\n};\r\n","import { Swiper, SwiperSlide } from 'vue-awesome-swiper';\r\nimport messages from './mslc-lang.json';\r\nexport default {\r\n\ti18n: {\r\n\t\tmessages\r\n\t},\r\n\tdata() {\r\n\t\tconst vm = this;\r\n\t\treturn {\r\n\t\t\tslidesPerView: 0,\r\n\t\t\tslidesLength: 0,\r\n\t\t\tswiperOptions: {\r\n\t\t\t\ta11y: {\r\n\t\t\t\t\tprevSlideMessage: this.$t('previousPage'),\r\n\t\t\t\t\tnextSlideMessage: this.$t('nextPage'),\r\n\t\t\t\t\tfirstSlideMessage: this.$t('firstPage'),\r\n\t\t\t\t\tlastSlideMessage: this.$t('lastPage'),\r\n\t\t\t\t\tpaginationBulletMessage: this.$t('jumpToPage')\r\n\t\t\t\t},\r\n\t\t\t\tslidesPerView: 1,\r\n\t\t\t\tspaceBetween: 16,\r\n\t\t\t\tbreakpoints: {\r\n\t\t\t\t\t768: {\r\n\t\t\t\t\t\tslidesPerView: 3,\r\n\t\t\t\t\t\tspaceBetween: 16\r\n\t\t\t\t\t},\r\n\t\t\t\t\t996: {\r\n\t\t\t\t\t\tslidesPerView: 3,\r\n\t\t\t\t\t\tspaceBetween: 32\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tpagination: {\r\n\t\t\t\t\tel: '.mslc__pagination',\r\n\t\t\t\t\tclickable: true\r\n\t\t\t\t},\r\n\t\t\t\tnavigation: {\r\n\t\t\t\t\tnextEl: '.mslc__button-next',\r\n\t\t\t\t\tprevEl: '.mslc__button-prev'\r\n\t\t\t\t},\r\n\t\t\t\ton: {\r\n\t\t\t\t\tbreakpoint({ slidesPerView }) {\r\n\t\t\t\t\t\tvm.slidesPerView = slidesPerView;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tinit() {\r\n\t\t\t\t\t\tvm.slidesLength = this.slides.length;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t},\r\n\tcomponents: {\r\n\t\tSwiper,\r\n\t\tSwiperSlide\r\n\t},\r\n\tcomputed: {\r\n\t\tisMobile() {\r\n\t\t\treturn this.$resize && this.$mq.below(767);\r\n\t\t},\r\n\t\thasPager() {\r\n\t\t\treturn this.slidesLength > this.slidesPerView;\r\n\t\t}\r\n\t},\r\n\t// reinitialize swiper when it becomes visible\r\n\tmounted() {\r\n\t\t// Function to check visibility by traversing ancestors\r\n\t\tconst checkVisibility = () => {\r\n\t\t\tlet current = this.$el;\r\n\t\t\twhile (current) {\r\n\t\t\t\tconst style = window.getComputedStyle(current);\r\n\t\t\t\tif (style.display === 'none') {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tcurrent = current.parentElement;\r\n\t\t\t}\r\n\t\t\tthis.$refs.swiper.initSwiper();\r\n\t\t};\r\n\t\t// Observe ancestors\r\n\t\tconst observerList = [];\r\n\t\tlet current = this.$el;\r\n\t\twhile (current) {\r\n\t\t\tconst observer = new MutationObserver(() => {\r\n\t\t\t\tcheckVisibility();\r\n\t\t\t});\r\n\t\t\tobserver.observe(current, {\r\n\t\t\t\tattributes: true,\r\n\t\t\t\tattributeFilter: ['style', 'class'] // Observe style and class changes\r\n\t\t\t});\r\n\t\t\tobserverList.push(observer);\r\n\t\t\tcurrent = current.parentElement;\r\n\t\t}\r\n\t\t// cleanup\r\n\t\tthis.$once('hook:beforeDestroy', () => {\r\n\t\t\tobserverList.forEach((observer) => observer.disconnect());\r\n\t\t});\r\n\t}\r\n};\r\n","import Vue from 'vue';\r\nimport VueTouch from 'vue-touch';\r\nVue.use(VueTouch);\r\nexport default {\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tcurrentColumn: 0,\r\n\t\t\tcardWidth: null,\r\n\t\t\tdeviceWidth: null\r\n\t\t};\r\n\t},\r\n\tprops: {\r\n\t\tmodalId: {\r\n\t\t\trequired: false\r\n\t\t},\r\n\t\topenedTab: {\r\n\t\t\trequired: false\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\tisMobile() {\r\n\t\t\treturn this.$resize && this.$mq.below(767);\r\n\t\t},\r\n\t\tisTablet() {\r\n\t\t\treturn this.$resize && this.$mq.above(768) && this.$mq.below(959);\r\n\t\t},\r\n\t\tisDesktop() {\r\n\t\t\treturn this.$resize && this.$mq.above(960) && this.$mq.below(1279);\r\n\t\t},\r\n\t\tisLargeDesktop() {\r\n\t\t\treturn this.$resize && this.$mq.above(1280);\r\n\t\t}\r\n\t}\r\n};\r\n","import VueTab from '@ui-common/vue-tab';\r\nexport default {\r\n\tcomponents: {\r\n\t\tVueTab\r\n\t}\r\n};\r\n","import VueTab from '@ui-common/vue-tab';\r\nimport getQueryParam from 'get-query-param';\r\nimport { isMobile } from '@ui-common/sf-js-utils';\r\nexport default {\r\n\tmixins: [isMobile],\r\n\tprops: {\r\n\t\tid: {\r\n\t\t\ttype: String,\r\n\t\t\trequired: true\r\n\t\t}\r\n\t},\r\n\tcomponents: {\r\n\t\tVueTab\r\n\t},\r\n\tmethods: {\r\n\t\tpushDatalayer(event) {\r\n\t\t\tif (this.isMobile) {\r\n\t\t\t\tthis.$gtm.trackEvent({\r\n\t\t\t\t\tevent: 'dropDownSelect',\r\n\t\t\t\t\tformElementID: 'Bankszámlanyitás',\r\n\t\t\t\t\tformID: 'Kategóriát választ',\r\n\t\t\t\t\tinputValue: document.getElementById(`sf-tab-head-rco-${event}`).lastChild.innerText\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\turlTabId() {\r\n\t\t\treturn parseInt(getQueryParam(`${this.id}-tab`, window.location.href), 10) - 1 || 0;\r\n\t\t}\r\n\t},\r\n\tmounted() {\r\n\t\tthis.$nextTick(() => {\r\n\t\t\tthis.$refs['mtabr-root'].scrollIntoView();\r\n\t\t});\r\n\t}\r\n};\r\n","import Vue from 'vue';\r\nimport VueTouch from 'vue-touch';\r\nVue.use(VueTouch);\r\nexport default {\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tcurrentColumn: 0,\r\n\t\t\tcardWidth: null,\r\n\t\t\tdeviceWidth: null\r\n\t\t};\r\n\t},\r\n\tprops: {\r\n\t\tmodalId: {\r\n\t\t\trequired: false\r\n\t\t},\r\n\t\topenedTab: {\r\n\t\t\trequired: false\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\tisMobile() {\r\n\t\t\treturn this.$resize && this.$mq.below(767);\r\n\t\t},\r\n\t\tisTablet() {\r\n\t\t\treturn this.$resize && this.$mq.above(768) && this.$mq.below(959);\r\n\t\t},\r\n\t\tisDesktop() {\r\n\t\t\treturn this.$resize && this.$mq.above(960) && this.$mq.below(1279);\r\n\t\t},\r\n\t\tisLargeDesktop() {\r\n\t\t\treturn this.$resize && this.$mq.above(1280);\r\n\t\t}\r\n\t}\r\n};\r\n","import Vue from 'vue';\r\nimport VueTouch from 'vue-touch';\r\nimport VueFocus from 'vue-focus';\r\nimport eventBus from '../../common/js/event-bus/event-bus';\r\nVue.use(VueTouch);\r\nexport default {\r\n\tmixins: [VueFocus.mixin],\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tcurrentColumn: 0,\r\n\t\t\tcardWidth: null,\r\n\t\t\tdeviceWidth: null,\r\n\t\t\tactiveTab: null,\r\n\t\t\tfocusedTab: null,\r\n\t\t\tstickyTop: null,\r\n\t\t\tvisible: false,\r\n\t\t\tisSticky: false\r\n\t\t};\r\n\t},\r\n\tprops: {\r\n\t\tmodalId: {\r\n\t\t\trequired: false\r\n\t\t},\r\n\t\topenedTab: {\r\n\t\t\trequired: false\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\tisMobile() {\r\n\t\t\treturn this.$resize && this.$mq.below(767);\r\n\t\t},\r\n\t\tisTablet() {\r\n\t\t\treturn this.$resize && this.$mq.above(768) && this.$mq.below(959);\r\n\t\t},\r\n\t\tisDesktop() {\r\n\t\t\treturn this.$resize && this.$mq.above(960) && this.$mq.below(1279);\r\n\t\t},\r\n\t\tisLargeDesktop() {\r\n\t\t\treturn this.$resize && this.$mq.above(1280);\r\n\t\t},\r\n\t\tkeyHandler(e) {\r\n\t\t\tif (this.visible) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tif (e.which == 27) {\r\n\t\t\t\t\tthis.closePopup();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tmethods: {\r\n\t\tlastTabHandler(e) {\r\n\t\t\tif (!e.shiftKey) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tthis.$parent.$refs.firstTabbable.focus();\r\n\t\t\t}\r\n\t\t},\r\n\t\tchangeTab(tabId) {\r\n\t\t\tthis.activeTab = 'tab' + tabId;\r\n\t\t\tthis.focusedTab = tabId;\r\n\t\t\teventBus.$emit('mubt-tab-change', { activeTab: this.activeTab, focusedTab: this.focusedTab });\r\n\t\t},\r\n\t\tsendStickyEvent() {\r\n\t\t\tlet scrollWidth = 0;\r\n\t\t\tlet sticky = false;\r\n\t\t\tif (this.$refs.results && this.$parent.$refs.dialog && this.$parent.$refs.document && this.$parent.$refs.body) {\r\n\t\t\t\tsticky =\r\n\t\t\t\t\tthis.$parent.$refs.dialog.scrollTop >=\r\n\t\t\t\t\tthis.$refs.results.offsetTop + this.$parent.$refs.document.offsetTop + this.$parent.$refs.body.offsetTop;\r\n\t\t\t\tscrollWidth = this.$parent.$refs.dialog.offsetWidth - this.$parent.$refs.dialog.clientWidth;\r\n\t\t\t}\r\n\t\t\tthis.isSticky = sticky;\r\n\t\t\teventBus.$emit('mubt-sticky', { sticky, scrollWidth });\r\n\t\t}\r\n\t},\r\n\tmounted() {\r\n\t\tthis.activeTab = 'tab' + this.openedTab;\r\n\t\tthis.$nextTick(() => {\r\n\t\t\teventBus.$emit('mubt-tab-change', { activeTab: this.activeTab });\r\n\t\t\tif (this.$parent.$refs.dialog) {\r\n\t\t\t\tthis.$parent.$refs.dialog.addEventListener('scroll', this.sendStickyEvent);\r\n\t\t\t}\r\n\t\t\twindow.addEventListener('resize', this.sendStickyEvent);\r\n\t\t});\r\n\t\teventBus.$on('mubt-head-tab-change', (activeTab) => {\r\n\t\t\tthis.activeTab = activeTab;\r\n\t\t});\r\n\t\teventBus.$on('modal-opened', () => {\r\n\t\t\tdocument.body.classList.add('mubt-modal-open');\r\n\t\t});\r\n\t\teventBus.$on('modal-closed', () => {\r\n\t\t\tdocument.body.classList.remove('mubt-modal-open');\r\n\t\t});\r\n\t}\r\n};\r\n","var t=Object.freeze({__proto__:null,ADDRESS_CARD:\"^\\\\d{6}[a-zA-Z]{2}$\",ALL_PHONE:[\"^1\\\\s\\\\d{3}\\\\s\\\\d{4}$\",\"^[02-9]\\\\d\\\\s\\\\d{3}\\\\s\\\\d{3,4}$\",\"^(70|20|30|31)\\\\s\\\\d{3}\\\\s\\\\d{4}$\"],BANK_ACCOUNT_SIXTEEN_NUMBERS:\"^\\\\d{8}-\\\\d{8}$\",BANK_ACCOUNT_THIRTEEN_NUMBERS:\"^\\\\d{5}-\\\\d{8}$\",BANK_ACCOUNT_TWENTY_FOUR_NUMBERS:\"^\\\\d{8}-\\\\d{8}-\\\\d{8}$\",DATE_SEPARATORS:/[.,\\/ -]/,DEVIZA_BANK_ACCOUNT_NUMBER_PATTERN:\"^75\\\\d{3}-\\\\d{5}88\\\\d$\",FOREIGN_PHONE_REGEX:/^\\d{1,3}-\\d{1,10}$/,FOREIGN_ZIP_CODE:/^[\\da-zA-Z]{1,10}$/g,FULLNAME:\"^(.+[ ].+)$|^$\",HEX:/#[0-9a-fA-F]{6}/,IDENTITYS:{\"personal-id\":\"^\\\\d{6}[a-zA-Z]{2}$\",\"drivers-license\":\"^[a-zA-Z]{2}\\\\d{6}$\",passport:\"[a-zA-Z]{2}\\\\d{7}$\"},IOS:/ipad|iphone/i,LANDLINE_PHONES:[\"^1\\\\s\\\\d{3}\\\\s\\\\d{4}$\",\"^[02-9]\\\\d\\\\s\\\\d{3}\\\\s\\\\d{3,4}$\"],LAST_FOUR_DIGITS:/^\\d{4}$/,MOBILE_PHONE:\"^(70|20|30|31)\\\\s\\\\d{3}\\\\s\\\\d{4}$\",NAME:\"^[\\\\p{L}\\\\s\\\\.\\\\-\\\\']*$\",PENSIONER_NUMBER:\"^\\\\d{3}-\\\\d{5}-\\\\d{1}$\",TAX_NUMBER:\"^\\\\d{8}-\\\\d{1}-\\\\d{2}$\",YEAR:\"^\\\\d{4}$\",ZIP_CODE:\"^\\\\d{4}$\"});var e=Object.freeze({__proto__:null,HUNGARIAN_PHONE_NUMBER_PREFIX:\"+36\",OTP_BANK_ACCOUNT_NUMBER_PREFIX:\"117\"});var r=Object.freeze({__proto__:null,COOKIE_GDPR_LEVEL:\"gdpr_level\",GDPR_LEVELS:{LOW:1,MEDIUM:2,HIGH:3}});var d=Object.freeze({__proto__:null,BACKEND_DATE:\"YYYY-MM-DD\",DISPLAY_DATE:{hu:\"YYYY.MM.DD.\",en:\"MM/DD/YYYY\"},DISPLAY_TIME:{hu:\"HH:mm\",en:\"hh:mm A\"}});function i(){window.onkeydown=function(t){\"Space\"===t.code&&t.target==document.body&&t.preventDefault()}}function o(t){for(var e=0,r=0;t;){if(\"BODY\"==t.tagName){var d=t.scrollLeft||document.documentElement.scrollLeft,i=t.scrollTop||document.documentElement.scrollTop;e+=t.offsetLeft-d+t.clientLeft,r+=t.offsetTop-i+t.clientTop}else e+=t.offsetLeft-t.scrollLeft+t.clientLeft,r+=t.offsetTop-t.scrollTop+t.clientTop;t=t.offsetParent}return{x:e,y:r}}function s(t){let e=[],r=t.parentNode.firstChild;for(;r;)1===r.nodeType&&r!==t&&e.push(r),r=r.nextSibling;return e}function n(t,e,r){return r=r?parseInt(r,10):0,\"number\"==typeof e?t.slice(r,r+e):t}function p(t){return void 0!==t&&null!=t?Math.floor(t/12)+\" év\":\"\"}const u=767,_=959,h=1279;var a={data:()=>({viewportWidth:null}),methods:{setViewportWidth(){this.viewportWidth=window.innerWidth}},computed:{isMobile(){return this.viewportWidth<=u},isTablet(){return this.viewportWidth>u&&this.viewportWidth<_},isDesktop(){return this.viewportWidth>_&&this.viewportWidthh}},created(){window.addEventListener(\"resize\",this.setViewportWidth),this.setViewportWidth()},mounted(){this.setViewportWidth()},beforeDestroy(){window.removeEventListener(\"resize\",this.setViewportWidth)}},E=(t=8)=>{let e=\"\";const r=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";for(let d=0;d {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 965:\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\n/**\n * Module dependencies.\n */\n\nvar trim = __webpack_require__(130);\n\n/**\n * Parse the given query `str`.\n *\n * @param {String} str\n * @return {Object}\n * @api public\n */\n\nexports.parse = function(str){\n if ('string' != typeof str) return {};\n\n str = trim(str);\n if ('' == str) return {};\n\n var obj = {};\n var pairs = str.split('&');\n for (var i = 0; i < pairs.length; i++) {\n var parts = pairs[i].split('=');\n obj[parts[0]] = null == parts[1]\n ? ''\n : decodeURIComponent(parts[1]);\n }\n\n return obj;\n};\n\n/**\n * Stringify the given `obj`.\n *\n * @param {Object} obj\n * @return {String}\n * @api public\n */\n\nexports.stringify = function(obj){\n if (!obj) return '';\n var pairs = [];\n for (var key in obj) {\n pairs.push(encodeURIComponent(key) + '=' + encodeURIComponent(obj[key]));\n }\n return pairs.join('&');\n};\n\n\n/***/ }),\n\n/***/ 130:\n/***/ ((module, exports) => {\n\nexports = module.exports = trim;\n\nfunction trim(str){\n if (str.trim) return str.trim();\n return exports.right(exports.left(str));\n}\n\nexports.left = function(str){\n if (str.trimLeft) return str.trimLeft();\n\n return str.replace(/^\\s\\s*/, '');\n};\n\nexports.right = function(str){\n if (str.trimRight) return str.trimRight();\n\n var whitespace_pattern = /\\s/,\n i = str.length;\n while (whitespace_pattern.test(str.charAt(--i)));\n\n return str.slice(0, i + 1);\n};\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t(() => {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = (exports, definition) => {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t(() => {\n/******/ \t\t__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/make namespace object */\n/******/ \t(() => {\n/******/ \t\t// define __esModule on exports\n/******/ \t\t__webpack_require__.r = (exports) => {\n/******/ \t\t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t\t}\n/******/ \t\t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/publicPath */\n/******/ \t(() => {\n/******/ \t\t__webpack_require__.p = \"\";\n/******/ \t})();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be in strict mode.\n(() => {\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n VueAccordion: () => (/* reexport */ VueAccordion),\n VueAccordionItem: () => (/* reexport */ VueAccordionItem)\n});\n\n;// CONCATENATED MODULE: ../../node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js\n/* eslint-disable no-var */\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (false) { var getCurrentScript; }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_require__.p = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\n/* harmony default export */ const setPublicPath = (null);\n\n;// CONCATENATED MODULE: ../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[2]!../../node_modules/pug-plain-loader/index.js!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/VueAccordion.vue?vue&type=template&id=759cd74a&lang=pug&\nvar render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"el-collapse\"},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\n\n// EXTERNAL MODULE: ../../node_modules/querystring-component/index.js\nvar querystring_component = __webpack_require__(965);\n;// CONCATENATED MODULE: ../../node_modules/mitt/dist/mitt.mjs\n/* harmony default export */ function mitt(n){return{all:n=n||new Map,on:function(t,e){var i=n.get(t);i?i.push(e):n.set(t,[e])},off:function(t,e){var i=n.get(t);i&&(e?i.splice(i.indexOf(e)>>>0,1):n.set(t,[]))},emit:function(t,e){var i=n.get(t);i&&i.slice().map(function(n){n(e)}),(i=n.get(\"*\"))&&i.slice().map(function(n){n(t,e)})}}}\n//# sourceMappingURL=mitt.mjs.map\n\n;// CONCATENATED MODULE: ../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/VueAccordion.vue?vue&type=script&lang=js&\n\n\n\n/* harmony default export */ const VueAccordionvue_type_script_lang_js_ = ({\n\tname: 'VueAccordion',\n\tdata() {\n\t\treturn {\n\t\t\tactiveNames: [].concat(this.value),\n\t\t\temitter: null\n\t\t};\n\t},\n\tprops: {\n\t\tariaControls: {\n\t\t\trequired: false\n\t\t},\n\t\tid: {\n\t\t\trequired: false,\n\t\t\ttype: String,\n\t\t\tdefault: 'accordion-module'\n\t\t},\n\t\taccordion: Boolean,\n\t\tvalue: {\n\t\t\ttype: [Array, String, Number],\n\t\t\tdefault() {\n\t\t\t\treturn [];\n\t\t\t}\n\t\t}\n\t},\n\n\tprovide() {\n\t\treturn {\n\t\t\tcollapse: this,\n\t\t\tgetEmitter: () => this.emitter\n\t\t};\n\t},\n\twatch: {\n\t\tvalue(value) {\n\t\t\tthis.activeNames = [].concat(value);\n\t\t}\n\t},\n\n\tmethods: {\n\t\tactiveAccordionItemByUrl() {\n\t\t\tconst params = querystring_component.parse(window.location.search.substring(1));\n\t\t\tconst accordionIndexParam = params[`${this.id}-index`];\n\t\t\tif (typeof accordionIndexParam != 'undefined') {\n\t\t\t\tthis.setActiveNames(accordionIndexParam);\n\t\t\t}\n\t\t},\n\t\tsetActiveNames(activeNames) {\n\t\t\tactiveNames = [].concat(activeNames);\n\t\t\tlet value = this.accordion ? activeNames[0] : activeNames;\n\t\t\tthis.activeNames = activeNames;\n\t\t\tthis.$emit('input', value);\n\t\t\tthis.$emit('change', value);\n\t\t},\n\t\thandleItemClick(item) {\n\t\t\tif (this.accordion) {\n\t\t\t\tthis.setActiveNames((this.activeNames[0] || this.activeNames[0] === 0) && this.activeNames[0] === item.name ? '' : item.name);\n\t\t\t} else {\n\t\t\t\tlet activeNames = this.activeNames.slice(0);\n\t\t\t\tlet index = activeNames.indexOf(item.computedName);\n\n\t\t\t\tif (index > -1) {\n\t\t\t\t\tactiveNames.splice(index, 1);\n\t\t\t\t} else {\n\t\t\t\t\tactiveNames.push(item.computedName);\n\t\t\t\t}\n\t\t\t\tthis.setActiveNames(activeNames);\n\t\t\t}\n\t\t}\n\t},\n\tcreated() {\n\t\tthis.emitter = mitt();\n\t\tthis.emitter.on('item-click', this.handleItemClick);\n\t\tthis.activeAccordionItemByUrl();\n\t}\n});\n\n;// CONCATENATED MODULE: ./src/components/VueAccordion.vue?vue&type=script&lang=js&\n /* harmony default export */ const components_VueAccordionvue_type_script_lang_js_ = (VueAccordionvue_type_script_lang_js_); \n;// CONCATENATED MODULE: ../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-59.use[0]!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??clonedRuleSet-59.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../node_modules/@vue/cli-service/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-59.use[2]!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-59.use[3]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/VueAccordion.vue?vue&type=style&index=0&id=759cd74a&prod&lang=scss&\n// extracted by mini-css-extract-plugin\n\n;// CONCATENATED MODULE: ./src/components/VueAccordion.vue?vue&type=style&index=0&id=759cd74a&prod&lang=scss&\n\n;// CONCATENATED MODULE: ../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nfunction normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n\n;// CONCATENATED MODULE: ./src/components/VueAccordion.vue\n\n\n\n;\n\n\n/* normalize component */\n\nvar component = normalizeComponent(\n components_VueAccordionvue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* harmony default export */ const VueAccordion = (component.exports);\n;// CONCATENATED MODULE: ../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[2]!../../node_modules/pug-plain-loader/index.js!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/VueAccordionItem.vue?vue&type=template&id=b4a14ae2&lang=pug&\nvar VueAccordionItemvue_type_template_id_b4a14ae2_lang_pug_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:_vm.rootClass,attrs:{\"name\":_vm.ariaControls}},[_c('h' + _vm.headingLevel,{tag:\"component\",staticClass:\"sf-accordion__heading\",on:{\"click\":_vm.handleAccordionHeadingClick}},[_c('button',{staticClass:\"sf-accordion__btn\",attrs:{\"aria-controls\":_vm.ariaControls,\"aria-expanded\":_vm.isActive.toString(),\"id\":_vm.uuid}},[_vm._t(\"img\"),_vm._t(\"title\"),_vm._t(\"subtitle\"),_c('svg',{staticClass:\"sf-accordion__chevron\",attrs:{\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M4 9L12 17L20 9\",\"stroke\":\"#52AE30\",\"stroke-width\":\"2\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}})])],2)]),_c('transition',{attrs:{\"name\":\"sf-accordion__animation\"}},[(_vm.isActive)?_c('div',{staticClass:\"sf-accordion__content el-collapse-item-content\",attrs:{\"role\":\"region\",\"aria-hidden\":(!_vm.isActive).toString(),\"id\":_vm.ariaControls,\"aria-labelledby\":_vm.uuid}},[_vm._t(\"default\")],2):_vm._e()])],1)\n}\nvar VueAccordionItemvue_type_template_id_b4a14ae2_lang_pug_staticRenderFns = []\n\n\n;// CONCATENATED MODULE: ../../node_modules/@ui-common/sf-js-utils/dist/sf-js-utils.esm.js\nvar t=Object.freeze({__proto__:null,ADDRESS_CARD:\"^\\\\d{6}[a-zA-Z]{2}$\",ALL_PHONE:[\"^1\\\\s\\\\d{3}\\\\s\\\\d{4}$\",\"^[02-9]\\\\d\\\\s\\\\d{3}\\\\s\\\\d{3,4}$\",\"^(70|20|30|31)\\\\s\\\\d{3}\\\\s\\\\d{4}$\"],BANK_ACCOUNT_SIXTEEN_NUMBERS:\"^\\\\d{8}-\\\\d{8}$\",BANK_ACCOUNT_THIRTEEN_NUMBERS:\"^\\\\d{5}-\\\\d{8}$\",BANK_ACCOUNT_TWENTY_FOUR_NUMBERS:\"^\\\\d{8}-\\\\d{8}-\\\\d{8}$\",DATE_SEPARATORS:/[.,\\/ -]/,DEVIZA_BANK_ACCOUNT_NUMBER_PATTERN:\"^75\\\\d{3}-\\\\d{5}88\\\\d$\",FOREIGN_PHONE_REGEX:/^\\d{1,3}-\\d{1,10}$/,FOREIGN_ZIP_CODE:/^[\\da-zA-Z]{1,10}$/g,FULLNAME:\"^(.+[ ].+)$|^$\",HEX:/#[0-9a-fA-F]{6}/,IDENTITYS:{\"personal-id\":\"^\\\\d{6}[a-zA-Z]{2}$\",\"drivers-license\":\"^[a-zA-Z]{2}\\\\d{6}$\",passport:\"[a-zA-Z]{2}\\\\d{7}$\"},IOS:/ipad|iphone/i,LANDLINE_PHONES:[\"^1\\\\s\\\\d{3}\\\\s\\\\d{4}$\",\"^[02-9]\\\\d\\\\s\\\\d{3}\\\\s\\\\d{3,4}$\"],LAST_FOUR_DIGITS:/^\\d{4}$/,MOBILE_PHONE:\"^(70|20|30|31)\\\\s\\\\d{3}\\\\s\\\\d{4}$\",NAME:\"^[\\\\p{L}\\\\s\\\\.\\\\-\\\\']*$\",PENSIONER_NUMBER:\"^\\\\d{3}-\\\\d{5}-\\\\d{1}$\",TAX_NUMBER:\"^\\\\d{8}-\\\\d{1}-\\\\d{2}$\",YEAR:\"^\\\\d{4}$\",ZIP_CODE:\"^\\\\d{4}$\"});var e=Object.freeze({__proto__:null,HUNGARIAN_PHONE_NUMBER_PREFIX:\"+36\",OTP_BANK_ACCOUNT_NUMBER_PREFIX:\"117\"});var r=Object.freeze({__proto__:null,COOKIE_GDPR_LEVEL:\"gdpr_level\",GDPR_LEVELS:{LOW:1,MEDIUM:2,HIGH:3}});var d=Object.freeze({__proto__:null,BACKEND_DATE:\"YYYY-MM-DD\",DISPLAY_DATE:{hu:\"YYYY.MM.DD.\",en:\"MM/DD/YYYY\"},DISPLAY_TIME:{hu:\"HH:mm\",en:\"hh:mm A\"}});function i(){window.onkeydown=function(t){\"Space\"===t.code&&t.target==document.body&&t.preventDefault()}}function o(t){for(var e=0,r=0;t;){if(\"BODY\"==t.tagName){var d=t.scrollLeft||document.documentElement.scrollLeft,i=t.scrollTop||document.documentElement.scrollTop;e+=t.offsetLeft-d+t.clientLeft,r+=t.offsetTop-i+t.clientTop}else e+=t.offsetLeft-t.scrollLeft+t.clientLeft,r+=t.offsetTop-t.scrollTop+t.clientTop;t=t.offsetParent}return{x:e,y:r}}function s(t){let e=[],r=t.parentNode.firstChild;for(;r;)1===r.nodeType&&r!==t&&e.push(r),r=r.nextSibling;return e}function n(t,e,r){return r=r?parseInt(r,10):0,\"number\"==typeof e?t.slice(r,r+e):t}function p(t){return void 0!==t&&null!=t?Math.floor(t/12)+\" év\":\"\"}const u=767,_=959,h=1279;var a={data:()=>({viewportWidth:null}),methods:{setViewportWidth(){this.viewportWidth=window.innerWidth}},computed:{isMobile(){return this.viewportWidth<=u},isTablet(){return this.viewportWidth>u&&this.viewportWidth<_},isDesktop(){return this.viewportWidth>_&&this.viewportWidthh}},created(){window.addEventListener(\"resize\",this.setViewportWidth),this.setViewportWidth()},mounted(){this.setViewportWidth()},beforeDestroy(){window.removeEventListener(\"resize\",this.setViewportWidth)}},E=(t=8)=>{let e=\"\";const r=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";for(let d=0;d -1;\n\t\t},\n\t\trootClass() {\n\t\t\tlet rootClass = this.isActive ? 'sf-accordion sf-accordion--active el-collapse-item' : 'sf-accordion el-collapse-item';\n\t\t\trootClass += this.$slots.img ? ' sf-accordion--extended' : '';\n\t\t\trootClass += this.inverse ? ' sf-accordion--inverse' : '';\n\t\t\treturn rootClass;\n\t\t}\n\t},\n\tmethods: {\n\t\taddGtmEvent() {\n\t\t\tif (this.gtmEvent && this.isActive) {\n\t\t\t\tthis.$gtm.trackEvent({\n\t\t\t\t\tevent: this.gtmEvent\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\thandleAccordionHeadingClick(e) {\n\t\t\te.preventDefault();\n\t\t\tthis.handleHeaderClick();\n\t\t\tthis.addGtmEvent();\n\t\t},\n\t\thandleFocus() {\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (!this.isClick) {\n\t\t\t\t\tthis.focusing = true;\n\t\t\t\t} else {\n\t\t\t\t\tthis.isClick = false;\n\t\t\t\t}\n\t\t\t}, 50);\n\t\t},\n\t\thandleHeaderClick() {\n\t\t\tthis.getEmitter().emit('item-click', this);\n\t\t\tthis.focusing = false;\n\t\t\tthis.isClick = true;\n\t\t},\n\t\thandleEnterClick() {\n\t\t\tthis.getEmitter().emit('item-click', this);\n\t\t}\n\t},\n\tcreated() {\n\t\tthis.computedName = this.name || this.uuid;\n\t}\n});\n\n;// CONCATENATED MODULE: ./src/components/VueAccordionItem.vue?vue&type=script&lang=js&\n /* harmony default export */ const components_VueAccordionItemvue_type_script_lang_js_ = (VueAccordionItemvue_type_script_lang_js_); \n;// CONCATENATED MODULE: ../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-59.use[0]!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??clonedRuleSet-59.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../node_modules/@vue/cli-service/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-59.use[2]!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-59.use[3]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/VueAccordionItem.vue?vue&type=style&index=0&id=b4a14ae2&prod&lang=scss&\n// extracted by mini-css-extract-plugin\n\n;// CONCATENATED MODULE: ./src/components/VueAccordionItem.vue?vue&type=style&index=0&id=b4a14ae2&prod&lang=scss&\n\n;// CONCATENATED MODULE: ./src/components/VueAccordionItem.vue\n\n\n\n;\n\n\n/* normalize component */\n\nvar VueAccordionItem_component = normalizeComponent(\n components_VueAccordionItemvue_type_script_lang_js_,\n VueAccordionItemvue_type_template_id_b4a14ae2_lang_pug_render,\n VueAccordionItemvue_type_template_id_b4a14ae2_lang_pug_staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* harmony default export */ const VueAccordionItem = (VueAccordionItem_component.exports);\n;// CONCATENATED MODULE: ./src/components-export.js\n\n\n\n\n\n;// CONCATENATED MODULE: ../../node_modules/@vue/cli-service/lib/commands/build/entry-lib-no-default.js\n\n\n\n})();\n\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n//# sourceMappingURL=vue-accordion.umd.js.map","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vue-call-request-modal-glue\"] = factory();\n\telse\n\t\troot[\"vue-call-request-modal-glue\"] = factory();\n})((typeof self !== 'undefined' ? self : this), () => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \t// The require scope\n/******/ \tvar __webpack_require__ = {};\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t(() => {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = (exports, definition) => {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t(() => {\n/******/ \t\t__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/make namespace object */\n/******/ \t(() => {\n/******/ \t\t// define __esModule on exports\n/******/ \t\t__webpack_require__.r = (exports) => {\n/******/ \t\t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t\t}\n/******/ \t\t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/publicPath */\n/******/ \t(() => {\n/******/ \t\t__webpack_require__.p = \"\";\n/******/ \t})();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": () => (/* binding */ entry_lib)\n});\n\n;// CONCATENATED MODULE: ../../node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js\n/* eslint-disable no-var */\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (false) { var getCurrentScript; }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_require__.p = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\n/* harmony default export */ const setPublicPath = (null);\n\n;// CONCATENATED MODULE: ./src/components/VueCallRequestModalGlue.js\n/* harmony default export */ const VueCallRequestModalGlue = ({\n\tdata: () => ({\n\t\tformState: null\n\t}),\n\tprops: {\n\t\tmodalId: {\n\t\t\trequired: true\n\t\t},\n\t\tcallRequestId: {\n\t\t\trequired: true\n\t\t}\n\t},\n\trender() {\n\t\treturn this.$scopedSlots.default({\n\t\t\tformState: this.formState\n\t\t});\n\t},\n\tcreated() {\n\t\twindow.addEventListener('call-request-state-change', ({ detail: { state, id } }) => {\n\t\t\tif (this.callRequestId == id) {\n\t\t\t\tthis.formState = state;\n\t\t\t}\n\t\t});\n\t\twindow.addEventListener('call-request-close-modal', ({ detail: { id } }) => {\n\t\t\tif (this.callRequestId == id) {\n\t\t\t\tthis.$closeModal(this.modalId);\n\t\t\t}\n\t\t});\n\t\tthis.$modalEventBus.$on('modal-opened', (modalId) => {\n\t\t\tif (modalId == this.modalId) {\n\t\t\t\tconst event = new CustomEvent('call-request-init-form', { detail: { id: this.callRequestId } });\n\t\t\t\twindow.dispatchEvent(event);\n\t\t\t}\n\t\t});\n\t\tthis.$modalEventBus.$on('modal-closed', (modalId) => {\n\t\t\tif (modalId == this.modalId) {\n\t\t\t\tconst event = new CustomEvent('call-request-reset-form', { detail: { id: this.callRequestId } });\n\t\t\t\twindow.dispatchEvent(event);\n\t\t\t}\n\t\t});\n\t}\n});\n\n;// CONCATENATED MODULE: ../../node_modules/@vue/cli-service/lib/commands/build/entry-lib.js\n\n\n/* harmony default export */ const entry_lib = (VueCallRequestModalGlue);\n\n\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n//# sourceMappingURL=vue-call-request-modal-glue.umd.js.map","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"vue\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vue-live-announcer\"] = factory(require(\"vue\"));\n\telse\n\t\troot[\"vue-live-announcer\"] = factory(root[\"Vue\"]);\n})((typeof self !== 'undefined' ? self : this), (__WEBPACK_EXTERNAL_MODULE__203__) => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 203:\n/***/ ((module) => {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__203__;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t(() => {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = (module) => {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\t() => (module['default']) :\n/******/ \t\t\t\t() => (module);\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t(() => {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = (exports, definition) => {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t(() => {\n/******/ \t\t__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/make namespace object */\n/******/ \t(() => {\n/******/ \t\t// define __esModule on exports\n/******/ \t\t__webpack_require__.r = (exports) => {\n/******/ \t\t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t\t}\n/******/ \t\t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/publicPath */\n/******/ \t(() => {\n/******/ \t\t__webpack_require__.p = \"\";\n/******/ \t})();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n(() => {\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": () => (/* binding */ entry_lib)\n});\n\n;// CONCATENATED MODULE: ../../node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js\n/* eslint-disable no-var */\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (false) { var getCurrentScript; }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_require__.p = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\n/* harmony default export */ const setPublicPath = (null);\n\n;// CONCATENATED MODULE: ../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[2]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/VueLiveAnnouncer.vue?vue&type=template&id=abb58478&scoped=true&\nvar render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"root\",staticClass:\"sr-only\"},[_c('div',{attrs:{\"id\":`v-announcer-assertive-${_vm._uid}`,\"aria-live\":\"assertive\",\"aria-atomic\":\"true\"}},[_vm._v(_vm._s(_vm.assertiveContent))]),_c('div',{attrs:{\"id\":`v-announcer-polite-${_vm._uid}`,\"aria-live\":\"polite\",\"aria-atomic\":\"true\"}},[_vm._v(_vm._s(_vm.politeContent))])])\n}\nvar staticRenderFns = []\n\n\n;// CONCATENATED MODULE: ./src/components/VueLiveAnnouncer.constants.js\nconst OPTIONS = {\n\tcomplementRoute: 'has loaded'\n};\nconst POLITENESS_SETTINGS = {\n\tASSERTIVE: 'assertive',\n\tPOLITE: 'polite'\n};\n\nconst EVENTS = {\n\tSET_MESSAGE: 'vue-live-announcer-set-message'\n};\n\n;// CONCATENATED MODULE: ../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/VueLiveAnnouncer.vue?vue&type=script&lang=js&\n\n\n/* harmony default export */ const VueLiveAnnouncervue_type_script_lang_js_ = ({\n\tname: 'VueLiveAnnouncer',\n\tdata() {\n\t\treturn {\n\t\t\tpoliteContent: '',\n\t\t\tassertiveContent: ''\n\t\t};\n\t},\n\tmethods: {\n\t\tsetAnnouncerMessage(payload) {\n\t\t\tconst { message, options } = payload;\n\t\t\tif (options && options.politeness === POLITENESS_SETTINGS.ASSERTIVE) {\n\t\t\t\tthis.assertiveContent = message;\n\t\t\t} else {\n\t\t\t\tthis.politeContent = message;\n\t\t\t}\n\t\t}\n\t},\n\tmounted() {\n\t\tthis.$VueLiveAnnouncerEventBus.$on(EVENTS.SET_MESSAGE, this.setAnnouncerMessage);\n\t}\n});\n\n;// CONCATENATED MODULE: ./src/components/VueLiveAnnouncer.vue?vue&type=script&lang=js&\n /* harmony default export */ const components_VueLiveAnnouncervue_type_script_lang_js_ = (VueLiveAnnouncervue_type_script_lang_js_); \n;// CONCATENATED MODULE: ../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-52.use[0]!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??clonedRuleSet-52.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../node_modules/@vue/cli-service/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-52.use[2]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/VueLiveAnnouncer.vue?vue&type=style&index=0&id=abb58478&prod&scoped=true&lang=css&\n// extracted by mini-css-extract-plugin\n\n;// CONCATENATED MODULE: ./src/components/VueLiveAnnouncer.vue?vue&type=style&index=0&id=abb58478&prod&scoped=true&lang=css&\n\n;// CONCATENATED MODULE: ../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nfunction normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n\n;// CONCATENATED MODULE: ./src/components/VueLiveAnnouncer.vue\n\n\n\n;\n\n\n/* normalize component */\n\nvar component = normalizeComponent(\n components_VueLiveAnnouncervue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n \"abb58478\",\n null\n \n)\n\n/* harmony default export */ const VueLiveAnnouncer = (component.exports);\n// EXTERNAL MODULE: external {\"commonjs\":\"vue\",\"commonjs2\":\"vue\",\"root\":\"Vue\"}\nvar external_commonjs_vue_commonjs2_vue_root_Vue_ = __webpack_require__(203);\nvar external_commonjs_vue_commonjs2_vue_root_Vue_default = /*#__PURE__*/__webpack_require__.n(external_commonjs_vue_commonjs2_vue_root_Vue_);\n;// CONCATENATED MODULE: ./src/components/VueLiveAnnouncer.EventBus.js\n\n/* harmony default export */ const VueLiveAnnouncer_EventBus = (new (external_commonjs_vue_commonjs2_vue_root_Vue_default())());\n\n;// CONCATENATED MODULE: ./src/components/VueLiveAnnouncer.plugin.js\n\n\n\n\nfunction install(Vue, options = {}, router = null) {\n\toptions = { ...OPTIONS, ...options };\n\n\tVue.component('VueLiveAnnouncer', VueLiveAnnouncer);\n\tVue.prototype.$VueLiveAnnouncerEventBus = VueLiveAnnouncer_EventBus;\n\tVue.prototype.$VueLiveAnnouncer = {\n\t\tset(message, messageOptions) {\n\t\t\toptions = messageOptions || { politeness: POLITENESS_SETTINGS.POLITE };\n\t\t\tconst politenessValues = Object.values(POLITENESS_SETTINGS);\n\t\t\tif (options && options.politeness && !politenessValues.includes(options.politeness)) {\n\t\t\t\tthrow new Error(`Politeness level must be one of the following: ${politenessValues.join(', ')}`);\n\t\t\t}\n\t\t\tVueLiveAnnouncer_EventBus.$emit(EVENTS.SET_MESSAGE, { message, options });\n\t\t},\n\n\t\tsetComplementRoute(complementRoute) {\n\t\t\tif (typeof complementRoute !== 'string') {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\toptions.COMPLEMENT_ROUTE = complementRoute;\n\t\t}\n\t};\n\n\t// If set the router, will be announced the change of route\n\tif (router) {\n\t\trouter.afterEach((to) => {\n\t\t\tVue.prototype.$VueLiveAnnouncer.set(`${to.meta.announcer || document.title.trim()} ${options.COMPLEMENT_ROUTE}`);\n\t\t});\n\t}\n}\n\n// auto install\nif (typeof window !== 'undefined' && typeof window.Vue !== 'undefined') {\n\twindow.Vue.use(install);\n}\n\n;// CONCATENATED MODULE: ../../node_modules/@vue/cli-service/lib/commands/build/entry-lib.js\n\n\n/* harmony default export */ const entry_lib = (install);\n\n\n})();\n\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n//# sourceMappingURL=vue-live-announcer.umd.js.map","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vue-tab\"] = factory();\n\telse\n\t\troot[\"vue-tab\"] = factory();\n})((typeof self !== 'undefined' ? self : this), () => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 626:\n/***/ (function(module) {\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(true)\n\t\tmodule.exports = factory();\n\telse {}\n})((typeof self !== 'undefined' ? self : this), () => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \t// The require scope\n/******/ \tvar __nested_webpack_require_524__ = {};\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t(() => {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__nested_webpack_require_524__.d = (exports, definition) => {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__nested_webpack_require_524__.o(definition, key) && !__nested_webpack_require_524__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t(() => {\n/******/ \t\t__nested_webpack_require_524__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/publicPath */\n/******/ \t(() => {\n/******/ \t\t__nested_webpack_require_524__.p = \"\";\n/******/ \t})();\n/******/ \t\n/************************************************************************/\nvar __nested_webpack_exports__ = {};\n\n// EXPORTS\n__nested_webpack_require_524__.d(__nested_webpack_exports__, {\n \"default\": () => (/* binding */ entry_lib)\n});\n\n;// CONCATENATED MODULE: ../../node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js\n/* eslint-disable no-var */\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (false) { var getCurrentScript; }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __nested_webpack_require_524__.p = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\n/* harmony default export */ const setPublicPath = (null);\n\n;// CONCATENATED MODULE: ../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[2]!../../node_modules/pug-plain-loader/index.js!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/VueTablePager.vue?vue&type=template&id=105fceb1&scoped=true&lang=pug&\nvar render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"sf-table-pager\",class:`sf-table-pager--${_vm.backgroundColor}`},[_c('button',{staticClass:\"sf-table-pager__btn sf-table-pager__btn--prev\",attrs:{\"title\":_vm.$t('prevLabel'),\"aria-label\":_vm.$t('prevLabel'),\"type\":\"button\",\"disabled\":_vm.isPrevDisabled},on:{\"click\":_vm.handleMoveToPrev}},[_c('span',{staticClass:\"sr-only\"},[_vm._t(\"prev-label\",function(){return [_vm._v(_vm._s(_vm.$t('prevLabel')))]})],2)]),_c('div',{staticClass:\"sf-table-pager__heading\",attrs:{\"aria-live\":\"polite\",\"aria-atomic\":\"true\"}},[_vm._l((_vm.columns),function(column,index){return [(_vm.activeColumn == column)?[_vm._t(column)]:_vm._e()]})],2),_c('button',{staticClass:\"sf-table-pager__btn sf-table-pager__btn--next\",attrs:{\"title\":_vm.$t('nextLabel'),\"aria-label\":_vm.$t('nextLabel'),\"type\":\"button\",\"disabled\":_vm.isNextDisabled},on:{\"click\":_vm.handleMoveToNext}},[_c('span',{staticClass:\"sr-only\"},[_vm._t(\"next-label\",function(){return [_vm._v(_vm._s(_vm.$t('nextLabel')))]})],2)])])\n}\nvar staticRenderFns = []\n\n\n;// CONCATENATED MODULE: ./src/components/VueTablePager.lang.json\nconst VueTablePager_lang_namespaceObject = JSON.parse('{\"en\":{\"prevLabel\":\"Previous Item\",\"nextLabel\":\"Next Item\"},\"hu\":{\"prevLabel\":\"Previous Item\",\"nextLabel\":\"Next Item\"}}');\n;// CONCATENATED MODULE: ./src/components/constants.js\nconst BGCOLOR = {\r\n\tGRAY: 'gray',\r\n\tWHITE: 'white'\r\n};\r\n\n;// CONCATENATED MODULE: ../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/VueTablePager.vue?vue&type=script&lang=js&\n\n\n\n\n/* harmony default export */ const VueTablePagervue_type_script_lang_js_ = ({\n\tname: 'VueTablePager',\n\tdata: () => ({\n\t\tcolumns: [],\n\t\tcurrentColumn: 0,\n\t\tactiveColumn: null\n\t}),\n\tprops: {\n\t\t/**\n\t\t * @model\n\t\t */\n\t\tvalue: {\n\t\t\trequired: true\n\t\t},\n\t\t/**\n\t\t * Sets the background color\n\t\t * @values gray, white\n\t\t */\n\t\tbackgroundColor: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: BGCOLOR.GRAY,\n\t\t\tvalidator(val) {\n\t\t\t\treturn Object.values(BGCOLOR).includes(val);\n\t\t\t}\n\t\t}\n\t},\n\ti18n: { messages: VueTablePager_lang_namespaceObject },\n\twatch: {\n\t\tactiveColumn(val) {\n\t\t\tthis.$emit('input', val);\n\t\t},\n\t\tvalue: {\n\t\t\thandler(val) {\n\t\t\t\tif (val) {\n\t\t\t\t\tthis.activeColumn = val;\n\t\t\t\t} else {\n\t\t\t\t\tif (this.columns && this.columns.length) {\n\t\t\t\t\t\tthis.activeColumn = this.columns[0];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\timmediate: true\n\t\t},\n\t\tcolumns(val) {\n\t\t\tif (val && val.length && this.activeColumn == null) {\n\t\t\t\tthis.activeColumn = this.columns[0];\n\t\t\t}\n\t\t}\n\t},\n\tmethods: {\n\t\thandleMoveToPrev() {\n\t\t\tif (!this.isPrevDisabled) {\n\t\t\t\tthis.activeColumn = this.columns[this.indexOfActiveColumn - 1];\n\t\t\t}\n\t\t},\n\t\thandleMoveToNext() {\n\t\t\tif (!this.isNextDisabled) {\n\t\t\t\tthis.activeColumn = this.columns[this.indexOfActiveColumn + 1];\n\t\t\t}\n\t\t}\n\t},\n\tcomputed: {\n\t\tnumberOfColumns() {\n\t\t\treturn this.columns.length;\n\t\t},\n\t\tindexOfActiveColumn() {\n\t\t\treturn this.columns.indexOf(this.activeColumn);\n\t\t},\n\t\tisPrevDisabled() {\n\t\t\treturn !this.indexOfActiveColumn;\n\t\t},\n\t\tisNextDisabled() {\n\t\t\treturn this.indexOfActiveColumn + 1 == this.numberOfColumns;\n\t\t}\n\t},\n\tmounted() {\n\t\tthis.columns = Object.keys(this.$slots);\n\t}\n});\n\n;// CONCATENATED MODULE: ./src/components/VueTablePager.vue?vue&type=script&lang=js&\n /* harmony default export */ const components_VueTablePagervue_type_script_lang_js_ = (VueTablePagervue_type_script_lang_js_); \n;// CONCATENATED MODULE: ../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-58.use[0]!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??clonedRuleSet-58.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../node_modules/@vue/cli-service/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-58.use[2]!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-58.use[3]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/VueTablePager.vue?vue&type=style&index=0&id=105fceb1&prod&scoped=true&lang=scss&\n// extracted by mini-css-extract-plugin\n\n;// CONCATENATED MODULE: ./src/components/VueTablePager.vue?vue&type=style&index=0&id=105fceb1&prod&scoped=true&lang=scss&\n\n;// CONCATENATED MODULE: ../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nfunction normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n\n;// CONCATENATED MODULE: ./src/components/VueTablePager.vue\n\n\n\n;\n\n\n/* normalize component */\n\nvar component = normalizeComponent(\n components_VueTablePagervue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n \"105fceb1\",\n null\n \n)\n\n/* harmony default export */ const VueTablePager = (component.exports);\n;// CONCATENATED MODULE: ../../node_modules/@vue/cli-service/lib/commands/build/entry-lib.js\n\n\n/* harmony default export */ const entry_lib = (VueTablePager);\n\n\n__nested_webpack_exports__ = __nested_webpack_exports__[\"default\"];\n/******/ \treturn __nested_webpack_exports__;\n/******/ })()\n;\n});\n//# sourceMappingURL=vue-table-pager.umd.js.map\n\n/***/ }),\n\n/***/ 965:\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\n/**\n * Module dependencies.\n */\n\nvar trim = __webpack_require__(130);\n\n/**\n * Parse the given query `str`.\n *\n * @param {String} str\n * @return {Object}\n * @api public\n */\n\nexports.parse = function(str){\n if ('string' != typeof str) return {};\n\n str = trim(str);\n if ('' == str) return {};\n\n var obj = {};\n var pairs = str.split('&');\n for (var i = 0; i < pairs.length; i++) {\n var parts = pairs[i].split('=');\n obj[parts[0]] = null == parts[1]\n ? ''\n : decodeURIComponent(parts[1]);\n }\n\n return obj;\n};\n\n/**\n * Stringify the given `obj`.\n *\n * @param {Object} obj\n * @return {String}\n * @api public\n */\n\nexports.stringify = function(obj){\n if (!obj) return '';\n var pairs = [];\n for (var key in obj) {\n pairs.push(encodeURIComponent(key) + '=' + encodeURIComponent(obj[key]));\n }\n return pairs.join('&');\n};\n\n\n/***/ }),\n\n/***/ 130:\n/***/ ((module, exports) => {\n\nexports = module.exports = trim;\n\nfunction trim(str){\n if (str.trim) return str.trim();\n return exports.right(exports.left(str));\n}\n\nexports.left = function(str){\n if (str.trimLeft) return str.trimLeft();\n\n return str.replace(/^\\s\\s*/, '');\n};\n\nexports.right = function(str){\n if (str.trimRight) return str.trimRight();\n\n var whitespace_pattern = /\\s/,\n i = str.length;\n while (whitespace_pattern.test(str.charAt(--i)));\n\n return str.slice(0, i + 1);\n};\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t(() => {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = (module) => {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\t() => (module['default']) :\n/******/ \t\t\t\t() => (module);\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t(() => {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = (exports, definition) => {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t(() => {\n/******/ \t\t__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/publicPath */\n/******/ \t(() => {\n/******/ \t\t__webpack_require__.p = \"\";\n/******/ \t})();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be in strict mode.\n(() => {\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": () => (/* binding */ entry_lib)\n});\n\n;// CONCATENATED MODULE: ../../node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js\n/* eslint-disable no-var */\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (false) { var getCurrentScript; }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_require__.p = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\n/* harmony default export */ const setPublicPath = (null);\n\n;// CONCATENATED MODULE: ../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[2]!../../node_modules/pug-plain-loader/index.js!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/VueTab.vue?vue&type=template&id=c3044fec&scoped=true&lang=pug&\nvar render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"sf-tab\",class:`sf-tab--${_vm.backgroundColor} ${_vm.layoutType != 'default' ? 'sf-tab--' + _vm.layoutType : ''}`},[(_vm.isMobile)?[(_vm.mobileView == _vm.MOBILE_VIEWS.SELECT)?_c('div',{staticClass:\"sf-tab__select-wrapper\"},[_c('select',{staticClass:\"sf-tab__select\",class:[_vm.selectColor ? _vm.setSelectColor : ''],attrs:{\"role\":\"tablist\",\"aria-label\":_vm.label ? _vm.label : false},on:{\"change\":function($event){return _vm.handleTabChangeOnClick($event.target.value)}}},_vm._l((_vm.tabNames),function(tabIndex,index){return _c('option',{key:'mobile-select-' + _vm.uuid + '-' + index,attrs:{\"role\":\"tab\",\"aria-selected\":_vm.activeTabIndex == index ? 'true' : 'false',\"aria-controls\":'sf-tab-panel-' + _vm.uuid + '-' + index,\"id\":'sf-tab-head-' + _vm.uuid + '-' + index},domProps:{\"value\":index,\"selected\":_vm.activeTabIndex == index}},[_vm._t('tab-head-' + tabIndex)],2)}),0),_c('svg',{staticClass:\"sf-tab__select-icon\",attrs:{\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M4 9L12 17L20 9\",\"stroke\":\"#52AE30\",\"stroke-width\":\"2\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}})])]):_vm._e(),(_vm.mobileView == _vm.MOBILE_VIEWS.PAGER)?_c('div',{staticClass:\"sf-tab__pager-wrapper\"},[_c('VueTablePager',{attrs:{\"backgroundColor\":\"white\"},model:{value:(_vm.selectedMobilePage),callback:function ($$v) {_vm.selectedMobilePage=$$v},expression:\"selectedMobilePage\"}},[_vm._l((_vm.tabNames),function(tabIndex,index){return _vm._t('tab-head-' + tabIndex,null,{\"slot\":'tab-head-' + tabIndex})})],2)],1):_vm._e(),(_vm.mobileView == _vm.MOBILE_VIEWS.PILLS)?_c('div',{staticClass:\"sf-tab-pills__wrapper\"},[_c('div',{staticClass:\"sf-tab-pills__active-tab\",style:({ width: _vm.activeTabWidth, left: _vm.activeTabTranslateLeft })}),_c('ul',{staticClass:\"sf-tab-pills__head\",attrs:{\"role\":\"tablist\",\"aria-label\":_vm.label ? _vm.label : false}},_vm._l((_vm.tabNames),function(tabIndex,index){return _c('li',{key:'mobile-pills-' + _vm.uuid + '-' + index,ref:\"tab-head\",refInFor:true,staticClass:\"sf-tab-pills__head-item\",class:{ 'sf-tab-pills__head-item--active': _vm.activeTabIndex == index },style:({ 'flex-basis': _vm.activeTabWidth }),attrs:{\"role\":\"tab\",\"tabindex\":_vm.activeTabIndex == index ? 0 : -1,\"aria-selected\":_vm.activeTabIndex == index ? 'true' : 'false',\"aria-controls\":'sf-tab-panel-' + _vm.uuid + '-' + index,\"id\":'sf-tab-head-' + _vm.uuid + '-' + index},on:{\"click\":function($event){return _vm.handleTabChangeOnClick(index)},\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"right\",39,$event.key,[\"Right\",\"ArrowRight\"]))return null;if('button' in $event && $event.button !== 2)return null;return _vm.handleMoveToRight.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"left\",37,$event.key,[\"Left\",\"ArrowLeft\"]))return null;if('button' in $event && $event.button !== 0)return null;return _vm.handleMoveToLeft.apply(null, arguments)}]}},[_c('span',{staticClass:\"sf-tab-pills__head-item-inner\"},[_vm._t('tab-head-' + tabIndex)],2)])}),0)]):_vm._e()]:_vm._e(),(!_vm.isMobile)?[(_vm.desktopView == _vm.DESKTOP_VIEWS.TAB)?_c('ul',{staticClass:\"sf-tab__head\",class:_vm.tabHeadItemPadding.includes('large') ? 'sf-tab__head--page-level' : '',attrs:{\"role\":\"tablist\",\"aria-label\":_vm.label ? _vm.label : false}},_vm._l((_vm.tabNames),function(tabIndex,index){return _c('li',{key:'desktop-head-' + _vm.uuid + '-' + index,ref:\"tab-head\",refInFor:true,staticClass:\"sf-tab__head-item\",class:[{ 'sf-tab__head-item--active': _vm.activeTabIndex == index }, _vm.tabHeadItemPadding == 'small-compact' ? 'sf-tab__head-item--compact' : _vm.tabHeadItemPadding == 'medium-large' ? 'sf-tab__head-item--page-level' : _vm.tabHeadItemPadding == 'large' ? 'sf-tab__head-item--page-level-large' : ''],attrs:{\"role\":\"tab\",\"tabindex\":_vm.activeTabIndex == index ? 0 : -1,\"aria-selected\":_vm.activeTabIndex == index ? 'true' : 'false',\"aria-controls\":'sf-tab-panel-' + _vm.uuid + '-' + index,\"id\":'sf-tab-head-' + _vm.uuid + '-' + index},on:{\"click\":function($event){return _vm.handleTabChangeOnClick(index)},\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"right\",39,$event.key,[\"Right\",\"ArrowRight\"]))return null;if('button' in $event && $event.button !== 2)return null;return _vm.handleMoveToRight.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"left\",37,$event.key,[\"Left\",\"ArrowLeft\"]))return null;if('button' in $event && $event.button !== 0)return null;return _vm.handleMoveToLeft.apply(null, arguments)}]}},[(_vm.activeTabIndex === index && _vm.activeTabIndex != 0)?_c('div',{staticClass:\"sf-tabs__tab-head-corner sf-tabs__tab-head-corner--left\",attrs:{\"aria-hidden\":\"true\"}}):_vm._e(),(_vm.activeTabIndex === index || _vm.tabNames.length - 1 === index)?_c('div',{staticClass:\"sf-tabs__tab-head-corner sf-tabs__tab-head-corner--right\",attrs:{\"aria-hidden\":\"true\"}}):_vm._e(),_c('div',{staticClass:\"sf-tab__head-item-inner\"},[_vm._t('tab-head-' + tabIndex)],2)])}),0):_vm._e(),(_vm.desktopView == _vm.DESKTOP_VIEWS.PILLS)?_c('div',{staticClass:\"sf-tab-pills__wrapper\"},[_c('div',{staticClass:\"sf-tab-pills__active-tab\",style:({ width: _vm.activeTabWidth, left: _vm.activeTabTranslateLeft })}),_c('ul',{staticClass:\"sf-tab-pills__head\",attrs:{\"role\":\"tablist\",\"aria-label\":_vm.label ? _vm.label : false}},_vm._l((_vm.tabNames),function(tabIndex,index){return _c('li',{key:index,ref:\"tab-head\",refInFor:true,staticClass:\"sf-tab-pills__head-item\",class:{ 'sf-tab-pills__head-item--active': _vm.activeTabIndex == index },style:({ 'flex-basis': _vm.activeTabWidth }),attrs:{\"role\":\"tab\",\"tabindex\":_vm.activeTabIndex == index ? 0 : -1,\"aria-controls\":'sf-tab-panel-' + _vm.uuid + '-' + index,\"aria-selected\":_vm.activeTabIndex == index ? 'true' : 'false',\"id\":'sf-tab-head-' + _vm.uuid + '-' + index},on:{\"click\":function($event){return _vm.handleTabChangeOnClick(index)},\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"right\",39,$event.key,[\"Right\",\"ArrowRight\"]))return null;if('button' in $event && $event.button !== 2)return null;return _vm.handleMoveToRight.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"left\",37,$event.key,[\"Left\",\"ArrowLeft\"]))return null;if('button' in $event && $event.button !== 0)return null;return _vm.handleMoveToLeft.apply(null, arguments)}]}},[_c('span',{staticClass:\"sf-tab-pills__head-item-inner\"},[_vm._t('tab-head-' + tabIndex)],2)])}),0)]):_vm._e()]:_vm._e(),_vm._l((_vm.tabNames),function(tabIndex,index){return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.activeTabIndex == index),expression:\"activeTabIndex == index\"}],key:'panel-' + _vm.uuid + '-' + index,staticClass:\"sf-tab__panel\",class:[{ 'sf-tab__panel--first-active': _vm.activeTabIndex == 0 }, { 'sf-tab__panel--has-padding': _vm.hasPadding }],attrs:{\"role\":\"tabpanel\",\"tabindex\":\"0\",\"id\":'sf-tab-panel-' + _vm.uuid + '-' + index,\"aria-labelledby\":'sf-tab-head-' + _vm.uuid + '-' + index}},[_vm._t('tab-panel-' + tabIndex)],2)})],2)\n}\nvar staticRenderFns = []\n\n\n// EXTERNAL MODULE: ../../node_modules/querystring-component/index.js\nvar querystring_component = __webpack_require__(965);\n;// CONCATENATED MODULE: ../../node_modules/@ui-common/sf-js-utils/dist/sf-js-utils.esm.js\nvar t=Object.freeze({__proto__:null,ADDRESS_CARD:\"^\\\\d{6}[a-zA-Z]{2}$\",ALL_PHONE:[\"^1\\\\s\\\\d{3}\\\\s\\\\d{4}$\",\"^[02-9]\\\\d\\\\s\\\\d{3}\\\\s\\\\d{3,4}$\",\"^(70|20|30|31)\\\\s\\\\d{3}\\\\s\\\\d{4}$\"],BANK_ACCOUNT_SIXTEEN_NUMBERS:\"^\\\\d{8}-\\\\d{8}$\",BANK_ACCOUNT_THIRTEEN_NUMBERS:\"^\\\\d{5}-\\\\d{8}$\",BANK_ACCOUNT_TWENTY_FOUR_NUMBERS:\"^\\\\d{8}-\\\\d{8}-\\\\d{8}$\",DATE_SEPARATORS:/[.,\\/ -]/,DEVIZA_BANK_ACCOUNT_NUMBER_PATTERN:\"^75\\\\d{3}-\\\\d{5}88\\\\d$\",FOREIGN_PHONE_REGEX:/^\\d{1,3}-\\d{1,10}$/,FOREIGN_ZIP_CODE:/^[\\da-zA-Z]{1,10}$/g,FULLNAME:\"^(.+[ ].+)$|^$\",HEX:/#[0-9a-fA-F]{6}/,IDENTITYS:{\"personal-id\":\"^\\\\d{6}[a-zA-Z]{2}$\",\"drivers-license\":\"^[a-zA-Z]{2}\\\\d{6}$\",passport:\"[a-zA-Z]{2}\\\\d{7}$\"},IOS:/ipad|iphone/i,LANDLINE_PHONES:[\"^1\\\\s\\\\d{3}\\\\s\\\\d{4}$\",\"^[02-9]\\\\d\\\\s\\\\d{3}\\\\s\\\\d{3,4}$\"],LAST_FOUR_DIGITS:/^\\d{4}$/,MOBILE_PHONE:\"^(70|20|30|31)\\\\s\\\\d{3}\\\\s\\\\d{4}$\",NAME:\"^[\\\\p{L}\\\\s\\\\.\\\\-\\\\']*$\",PENSIONER_NUMBER:\"^\\\\d{3}-\\\\d{5}-\\\\d{1}$\",TAX_NUMBER:\"^\\\\d{8}-\\\\d{1}-\\\\d{2}$\",YEAR:\"^\\\\d{4}$\",ZIP_CODE:\"^\\\\d{4}$\"});var e=Object.freeze({__proto__:null,HUNGARIAN_PHONE_NUMBER_PREFIX:\"+36\",OTP_BANK_ACCOUNT_NUMBER_PREFIX:\"117\"});var r=Object.freeze({__proto__:null,COOKIE_GDPR_LEVEL:\"gdpr_level\",GDPR_LEVELS:{LOW:1,MEDIUM:2,HIGH:3}});var d=Object.freeze({__proto__:null,BACKEND_DATE:\"YYYY-MM-DD\",DISPLAY_DATE:{hu:\"YYYY.MM.DD.\",en:\"MM/DD/YYYY\"},DISPLAY_TIME:{hu:\"HH:mm\",en:\"hh:mm A\"}});function i(){window.onkeydown=function(t){\"Space\"===t.code&&t.target==document.body&&t.preventDefault()}}function o(t){for(var e=0,r=0;t;){if(\"BODY\"==t.tagName){var d=t.scrollLeft||document.documentElement.scrollLeft,i=t.scrollTop||document.documentElement.scrollTop;e+=t.offsetLeft-d+t.clientLeft,r+=t.offsetTop-i+t.clientTop}else e+=t.offsetLeft-t.scrollLeft+t.clientLeft,r+=t.offsetTop-t.scrollTop+t.clientTop;t=t.offsetParent}return{x:e,y:r}}function s(t){let e=[],r=t.parentNode.firstChild;for(;r;)1===r.nodeType&&r!==t&&e.push(r),r=r.nextSibling;return e}function n(t,e,r){return r=r?parseInt(r,10):0,\"number\"==typeof e?t.slice(r,r+e):t}function p(t){return void 0!==t&&null!=t?Math.floor(t/12)+\" év\":\"\"}const u=767,_=959,h=1279;var a={data:()=>({viewportWidth:null}),methods:{setViewportWidth(){this.viewportWidth=window.innerWidth}},computed:{isMobile(){return this.viewportWidth<=u},isTablet(){return this.viewportWidth>u&&this.viewportWidth<_},isDesktop(){return this.viewportWidth>_&&this.viewportWidthh}},created(){window.addEventListener(\"resize\",this.setViewportWidth),this.setViewportWidth()},mounted(){this.setViewportWidth()},beforeDestroy(){window.removeEventListener(\"resize\",this.setViewportWidth)}},E=(t=8)=>{let e=\"\";const r=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";for(let d=0;d ({\n\t\tactiveTabIndex: 0,\n\t\tselectedMobilePage: null,\n\t\ttabNames: [],\n\t\tobserver: null\n\t}),\n\tprops: {\n\t\t/**\n\t\t * Id of the tabs\n\t\t */\n\t\tid: {\n\t\t\trequired: false,\n\t\t\ttype: String,\n\t\t\tdefault: 'tab-module'\n\t\t},\n\t\t/**\n\t\t * Label (aria-label) of the tabs\n\t\t */\n\t\tlabel: {\n\t\t\trequired: false,\n\t\t\ttype: String\n\t\t},\n\t\t/**\n\t\t * Specify the number of the initial active tab\n\t\t */\n\t\tinitTabIndex: {\n\t\t\ttype: Number,\n\t\t\tdefault: 0\n\t\t},\n\t\t/**\n\t\t * Background color of the tab-head & tab-content\n\t\t */\n\t\tbackgroundColor: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: 'gray',\n\t\t\tvalidator(val) {\n\t\t\t\treturn BGCOLOR.includes(val);\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Background color of select on mobile\n\t\t */\n\t\tselectColor: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tvalidator(val) {\n\t\t\t\treturn SELECT_COLOR.includes(val);\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Specify whether the content has padding or not\n\t\t */\n\t\thasPadding: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false,\n\t\t\tdefault: true\n\t\t},\n\t\t/**\n\t\t * Specify layout type on mobile (normal / inner tab)\n\t\t */\n\t\tlayoutType: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: LAYOUT_TYPE.DEFAULT\n\t\t},\n\t\t/**\n\t\t * Padding of the tab-head-item\n\t\t */\n\t\ttabHeadItemPadding: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: 'medium-normal',\n\t\t\tvalidator(val) {\n\t\t\t\treturn TAB_HEAD_PADDING.includes(val);\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * How to display the tab heads on mobile screens\n\t\t */\n\t\tmobileView: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: 'select',\n\t\t\tvalidator(val) {\n\t\t\t\treturn Object.values(MOBILE_VIEWS).includes(val);\n\t\t\t}\n\t\t},\n\t\tdesktopView: {\n\t\t\tdefault: 'tab',\n\t\t\tvalidator(val) {\n\t\t\t\treturn Object.values(DESKTOP_VIEWS).includes(val);\n\t\t\t}\n\t\t}\n\t},\n\tmixins: [a, l],\n\twatch: {\n\t\tactiveTabIndex(val) {\n\t\t\tthis.$emit('change', val);\n\t\t\tif (this.mobileView == 'pager') {\n\t\t\t\tthis.selectedMobilePage = `tab-head-${val}`;\n\t\t\t}\n\t\t},\n\t\tselectedMobilePage: {\n\t\t\thandler(val) {\n\t\t\t\tthis.activeTabIndex = this.columns.indexOf(val);\n\t\t\t},\n\t\t\timmediate: true\n\t\t}\n\t},\n\tmethods: {\n\t\thandleTabChangeOnClick(index) {\n\t\t\tthis.activeTabIndex = parseInt(index, 10);\n\t\t},\n\t\thandleMoveToLeft() {\n\t\t\tif (this.activeTabIndex != 0) {\n\t\t\t\tthis.$refs['tab-head'][this.activeTabIndex - 1].focus();\n\t\t\t\tthis.activeTabIndex--;\n\t\t\t} else {\n\t\t\t\tthis.$refs['tab-head'][this.tabNames.length - 1].focus();\n\t\t\t\tthis.activeTabIndex = this.tabNames.length - 1;\n\t\t\t}\n\t\t},\n\t\thandleMoveToRight() {\n\t\t\tif (this.activeTabIndex + 1 !== this.tabNames.length) {\n\t\t\t\tthis.$refs['tab-head'][this.activeTabIndex + 1].focus();\n\t\t\t\tthis.activeTabIndex++;\n\t\t\t} else {\n\t\t\t\tthis.$refs['tab-head'][0].focus();\n\t\t\t\tthis.activeTabIndex = 0;\n\t\t\t}\n\t\t},\n\t\tinitObserver() {\n\t\t\tconst config = {\n\t\t\t\tsubtree: true,\n\t\t\t\tchildList: true\n\t\t\t};\n\t\t\tconst vm = this;\n\t\t\tconst callback = () => {\n\t\t\t\tvm.$nextTick(() => {\n\t\t\t\t\tthis.tabNames = Object.keys(this.$slots)\n\t\t\t\t\t\t.filter((slot) => slot.includes('tab-panel'))\n\t\t\t\t\t\t.map((slotName) => slotName.split('-').pop());\n\t\t\t\t\tif (this.activeTabIndex >= this.tabNames.length) {\n\t\t\t\t\t\tthis.activeTabIndex = this.tabNames.length - 1;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t};\n\t\t\tconst observer = new MutationObserver(callback);\n\t\t\tobserver.observe(this.$el, config);\n\t\t\tthis.observer = observer;\n\t\t}\n\t},\n\tcomponents: {\n\t\tVueTablePager: (vue_table_pager_umd_default())\n\t},\n\tcomputed: {\n\t\tMOBILE_VIEWS: () => MOBILE_VIEWS,\n\t\tDESKTOP_VIEWS: () => DESKTOP_VIEWS,\n\t\tcolumns() {\n\t\t\treturn Object.keys(this.$slots).filter((slot) => slot.startsWith('tab-head'));\n\t\t},\n\t\tsetSelectColor() {\n\t\t\treturn 'sf-tab__select--' + this.selectColor;\n\t\t},\n\t\tactiveTabWidth() {\n\t\t\treturn `${100 / this.tabNames.length}%`;\n\t\t},\n\t\tactiveTabTranslateLeft() {\n\t\t\treturn `${(100 / this.tabNames.length) * this.activeTabIndex}%`;\n\t\t}\n\t},\n\tcreated() {\n\t\tconst params = querystring_component.parse(window.location.search.substring(1));\n\t\tconst tabIndexParam = params[`${this.id}-index`] && parseInt(params[`${this.id}-index`], 10);\n\t\tif (!isNaN(tabIndexParam)) {\n\t\t\tthis.activeTabIndex = tabIndexParam;\n\t\t} else {\n\t\t\tthis.activeTabIndex = this.initTabIndex;\n\t\t}\n\t\tthis.tabNames = Object.keys(this.$slots)\n\t\t\t.filter((slot) => slot.includes('tab-panel'))\n\t\t\t.map((slotName) => slotName.split('-').pop());\n\t},\n\tmounted() {\n\t\tthis.initObserver();\n\t},\n\tbeforeDestroy() {\n\t\tthis.observer.disconnect();\n\t}\n});\n\n;// CONCATENATED MODULE: ./src/components/VueTab.vue?vue&type=script&lang=js&\n /* harmony default export */ const components_VueTabvue_type_script_lang_js_ = (VueTabvue_type_script_lang_js_); \n;// CONCATENATED MODULE: ../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-62.use[0]!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??clonedRuleSet-62.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../node_modules/@vue/cli-service/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-62.use[2]!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-62.use[3]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/VueTab.vue?vue&type=style&index=0&id=c3044fec&prod&scoped=true&lang=scss&\n// extracted by mini-css-extract-plugin\n\n;// CONCATENATED MODULE: ./src/components/VueTab.vue?vue&type=style&index=0&id=c3044fec&prod&scoped=true&lang=scss&\n\n;// CONCATENATED MODULE: ../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nfunction normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n\n;// CONCATENATED MODULE: ./src/components/VueTab.vue\n\n\n\n;\n\n\n/* normalize component */\n\nvar component = normalizeComponent(\n components_VueTabvue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n \"c3044fec\",\n null\n \n)\n\n/* harmony default export */ const VueTab = (component.exports);\n;// CONCATENATED MODULE: ../../node_modules/@vue/cli-service/lib/commands/build/entry-lib.js\n\n\n/* harmony default export */ const entry_lib = (VueTab);\n\n\n})();\n\n__webpack_exports__ = __webpack_exports__[\"default\"];\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n//# sourceMappingURL=vue-tab.umd.js.map","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vue-table-of-content\"] = factory();\n\telse\n\t\troot[\"vue-table-of-content\"] = factory();\n})((typeof self !== 'undefined' ? self : this), () => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \t// The require scope\n/******/ \tvar __webpack_require__ = {};\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t(() => {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = (exports, definition) => {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t(() => {\n/******/ \t\t__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/publicPath */\n/******/ \t(() => {\n/******/ \t\t__webpack_require__.p = \"\";\n/******/ \t})();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": () => (/* binding */ entry_lib)\n});\n\n;// CONCATENATED MODULE: ../../node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js\n/* eslint-disable no-var */\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (false) { var getCurrentScript; }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_require__.p = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\n/* harmony default export */ const setPublicPath = (null);\n\n;// CONCATENATED MODULE: ../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[2]!../../node_modules/pug-plain-loader/index.js!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/VueTableOfContent.vue?vue&type=template&id=8a9ffce4&scoped=true&lang=pug&\nvar render = function render(){var _vm=this,_c=_vm._self._c;return _c('nav',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible),expression:\"visible\"}],ref:\"tocNav\",staticClass:\"sf-mobile-toc\",class:{ 'sf-mobile-toc--open': _vm.tocOpened, 'sf-mobile-toc--top': _vm.position === 'top', 'sf-mobile-toc--bottom': _vm.position === 'bottom' },attrs:{\"id\":\"sf-mobile-toc\",\"aria-labelledby\":'toc_button' + _vm.uuid}},[_c('transition',{attrs:{\"name\":\"toc-slide\"}},[_c('ul',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.tocOpened),expression:\"tocOpened\"}],staticClass:\"sf-mobile-toc__list sf-list sf-list--empty\",attrs:{\"id\":'toc_menu' + _vm.uuid,\"role\":\"navigation\",\"aria-labelledby\":'toc_button' + _vm.uuid,\"aria-expanded\":'' + _vm.tocOpened,\"aria-hidden\":'' + !_vm.tocOpened}},_vm._l((_vm.items),function(item){return _c('li',{staticClass:\"sf-mobile-toc__list-item\"},[_c('a',{class:{ 'active' : _vm.activeElement == item.name },attrs:{\"id\":item.name,\"href\":`#${item.name}`},on:{\"click\":function($event){$event.preventDefault();return _vm.scrollToItem(item.name, item.pageIndex)}}},[_vm._v(_vm._s(item.text))])])}),0)]),_c('button',{ref:\"tocButton\",staticClass:\"sf-mobile-toc__button\",attrs:{\"id\":'toc_button' + _vm.uuid,\"type\":\"button\",\"aria-controls\":\"toc_menu\",\"aria-haspopup\":\"true\",\"aria-expanded\":'' + _vm.tocOpened},on:{\"click\":function($event){_vm.tocOpened = !_vm.tocOpened}}},[_c('span',{staticClass:\"sr-only\"},[_vm._v(_vm._s(_vm.$t('choosenBookmark')))]),_c('svg',{attrs:{\"width\":\"14\",\"height\":\"8\",\"viewBox\":\"0 0 14 8\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M0.999999 7L7 0.999999L13 7\",\"stroke\":\"#52AE30\",\"stroke-width\":\"2\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}})])])],1)\n}\nvar staticRenderFns = []\n\n\n;// CONCATENATED MODULE: ../../node_modules/@ui-common/sf-js-utils/dist/sf-js-utils.esm.js\nvar t=Object.freeze({__proto__:null,ADDRESS_CARD:\"^\\\\d{6}[a-zA-Z]{2}$\",ALL_PHONE:[\"^1\\\\s\\\\d{3}\\\\s\\\\d{4}$\",\"^[02-9]\\\\d\\\\s\\\\d{3}\\\\s\\\\d{3,4}$\",\"^(70|20|30|31)\\\\s\\\\d{3}\\\\s\\\\d{4}$\"],BANK_ACCOUNT_SIXTEEN_NUMBERS:\"^\\\\d{8}-\\\\d{8}$\",BANK_ACCOUNT_THIRTEEN_NUMBERS:\"^\\\\d{5}-\\\\d{8}$\",BANK_ACCOUNT_TWENTY_FOUR_NUMBERS:\"^\\\\d{8}-\\\\d{8}-\\\\d{8}$\",DATE_SEPARATORS:/[.,\\/ -]/,DEVIZA_BANK_ACCOUNT_NUMBER_PATTERN:\"^75\\\\d{3}-\\\\d{5}88\\\\d$\",FOREIGN_PHONE_REGEX:/^\\d{1,3}-\\d{1,10}$/,FOREIGN_ZIP_CODE:/^[\\da-zA-Z]{1,10}$/g,FULLNAME:\"^(.+[ ].+)$|^$\",HEX:/#[0-9a-fA-F]{6}/,IDENTITYS:{\"personal-id\":\"^\\\\d{6}[a-zA-Z]{2}$\",\"drivers-license\":\"^[a-zA-Z]{2}\\\\d{6}$\",passport:\"[a-zA-Z]{2}\\\\d{7}$\"},IOS:/ipad|iphone/i,LANDLINE_PHONES:[\"^1\\\\s\\\\d{3}\\\\s\\\\d{4}$\",\"^[02-9]\\\\d\\\\s\\\\d{3}\\\\s\\\\d{3,4}$\"],LAST_FOUR_DIGITS:/^\\d{4}$/,MOBILE_PHONE:\"^(70|20|30|31)\\\\s\\\\d{3}\\\\s\\\\d{4}$\",NAME:\"^[\\\\p{L}\\\\s\\\\.\\\\-\\\\']*$\",PENSIONER_NUMBER:\"^\\\\d{3}-\\\\d{5}-\\\\d{1}$\",TAX_NUMBER:\"^\\\\d{8}-\\\\d{1}-\\\\d{2}$\",YEAR:\"^\\\\d{4}$\",ZIP_CODE:\"^\\\\d{4}$\"});var e=Object.freeze({__proto__:null,HUNGARIAN_PHONE_NUMBER_PREFIX:\"+36\",OTP_BANK_ACCOUNT_NUMBER_PREFIX:\"117\"});var r=Object.freeze({__proto__:null,COOKIE_GDPR_LEVEL:\"gdpr_level\",GDPR_LEVELS:{LOW:1,MEDIUM:2,HIGH:3}});var d=Object.freeze({__proto__:null,BACKEND_DATE:\"YYYY-MM-DD\",DISPLAY_DATE:{hu:\"YYYY.MM.DD.\",en:\"MM/DD/YYYY\"},DISPLAY_TIME:{hu:\"HH:mm\",en:\"hh:mm A\"}});function i(){window.onkeydown=function(t){\"Space\"===t.code&&t.target==document.body&&t.preventDefault()}}function o(t){for(var e=0,r=0;t;){if(\"BODY\"==t.tagName){var d=t.scrollLeft||document.documentElement.scrollLeft,i=t.scrollTop||document.documentElement.scrollTop;e+=t.offsetLeft-d+t.clientLeft,r+=t.offsetTop-i+t.clientTop}else e+=t.offsetLeft-t.scrollLeft+t.clientLeft,r+=t.offsetTop-t.scrollTop+t.clientTop;t=t.offsetParent}return{x:e,y:r}}function s(t){let e=[],r=t.parentNode.firstChild;for(;r;)1===r.nodeType&&r!==t&&e.push(r),r=r.nextSibling;return e}function n(t,e,r){return r=r?parseInt(r,10):0,\"number\"==typeof e?t.slice(r,r+e):t}function p(t){return void 0!==t&&null!=t?Math.floor(t/12)+\" év\":\"\"}const u=767,_=959,h=1279;var a={data:()=>({viewportWidth:null}),methods:{setViewportWidth(){this.viewportWidth=window.innerWidth}},computed:{isMobile(){return this.viewportWidth<=u},isTablet(){return this.viewportWidth>u&&this.viewportWidth<_},isDesktop(){return this.viewportWidth>_&&this.viewportWidthh}},created(){window.addEventListener(\"resize\",this.setViewportWidth),this.setViewportWidth()},mounted(){this.setViewportWidth()},beforeDestroy(){window.removeEventListener(\"resize\",this.setViewportWidth)}},E=(t=8)=>{let e=\"\";const r=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";for(let d=0;d {}\n\t\t}\n\t},\n\tmethods: {\n\t\tonScroll() {\n\t\t\tlet bookmarks = [...document.querySelectorAll('.bookmark')].reverse();\n\t\t\tthis.bookmarkHeights = bookmarks.map((bookmark) => {\n\t\t\t\treturn {\n\t\t\t\t\tid: bookmark.getAttribute('id'),\n\t\t\t\t\theight: o(bookmark).y - this.computedOffsetHeight,\n\t\t\t\t\ttext: bookmark.getAttribute('data-text')\n\t\t\t\t};\n\t\t\t});\n\t\t\tlet scrollTop = window.scrollY || document.body.scrollTop;\n\t\t\tthis.visible = scrollTop > 40;\n\t\t\tif (this.bookmarkHeights[this.bookmarkHeights.length - 1].height > 0) {\n\t\t\t\tthis.bookmarkTitle = this.$t('defaultText');\n\t\t\t} else {\n\t\t\t\tlet i = 0;\n\t\t\t\tdo {\n\t\t\t\t\tthis.bookmarkTitle = this.bookmarkHeights[i].text;\n\t\t\t\t\ti++;\n\t\t\t\t} while (i < this.bookmarkHeights.length && this.bookmarkHeights[i - 1].height > 0);\n\t\t\t}\n\t\t\t++this.scroll;\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.setActiveElement();\n\t\t\t});\n\t\t},\n\t\tasync scrollToItem(id, itemPage) {\n\t\t\tawait this.jumpToPage(itemPage);\n\t\t\tthis.tocOpened = false;\n\t\t\tthis.doScroll(id);\n\t\t},\n\t\tdoScroll(id) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (this.$refs.tocNav && this.$refs.tocNav.classList.contains('sf-mobile-toc--open')) {\n\t\t\t\t\tthis.doScroll(id);\n\t\t\t\t} else {\n\t\t\t\t\tif (this.$refs.tocButton) {\n\t\t\t\t\t\tthis.offsetHeight = parseInt(getComputedStyle(this.$refs.tocButton).height, 10);\n\t\t\t\t\t\tthis.$scrollTo(document.getElementById(id), {\n\t\t\t\t\t\t\toffset: -this.computedOffsetHeight,\n\t\t\t\t\t\t\tonDone: () => {\n\t\t\t\t\t\t\t\tthis.onScroll();\n\t\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\t\tthis.$scrollTo(document.getElementById(id), { offset: -this.computedOffsetHeight });\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t\tsetActiveElement() {\n\t\t\tconst scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n\t\t\tconst scrollDirection = scrollTop > this.prevScrollTop ? 'down' : 'up';\n\t\t\tconst itemArray = scrollDirection == 'down' ? [...this.items].map((obj) => ({ ...obj })) : [...this.items].reverse().map((obj) => ({ ...obj }));\n\t\t\titemArray.forEach((item) => {\n\t\t\t\tconst element = document.getElementById(item.name);\n\t\t\t\tconst rect = element.getBoundingClientRect();\n\t\t\t\tconst offsetHeight = document.getElementById('sf-mobile-toc')?.offsetHeight || 0;\n\t\t\t\tif (\n\t\t\t\t\trect.top >= 0 &&\n\t\t\t\t\trect.left >= 0 &&\n\t\t\t\t\trect.bottom <= (window.innerHeight - offsetHeight || document.documentElement.clientHeight - offsetHeight) &&\n\t\t\t\t\trect.right <= (window.innerWidth || document.documentElement.clientWidth)\n\t\t\t\t) {\n\t\t\t\t\tthis.activeElement = item.name;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.prevScrollTop = scrollTop;\n\t\t},\n\t\tasync jumpToPage(itemPage) {\n\t\t\tif (itemPage === null || this.activePage == -1) return;\n\t\t\tif (itemPage != this.activePage) {\n\t\t\t\tthis.jumpToPageFn(itemPage);\n\t\t\t\tawait this.$nextTick();\n\t\t\t}\n\t\t}\n\t},\n\tcomputed: {\n\t\tcomputedOffsetHeight() {\n\t\t\treturn this.scroll && this.$refs.tocButton ? parseInt(getComputedStyle(this.$refs.tocButton).height, 10) : 0;\n\t\t}\n\t},\n\twatch: {\n\t\ttocOpened(value) {\n\t\t\tif (value === false) {\n\t\t\t\tthis.offsetHeight = this.$refs.tocButton ? parseInt(getComputedStyle(this.$refs.tocButton).height, 10) : 0;\n\t\t\t}\n\t\t}\n\t},\n\tmounted() {\n\t\tthis.bookmarkTitle = this.$t('defaultText');\n\t\tthis.prevScrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n\t\tthis.setActiveElement();\n\t\twindow.addEventListener('scroll', this.onScroll);\n\t}\n});\n\n;// CONCATENATED MODULE: ./src/components/VueTableOfContent.vue?vue&type=script&lang=js&\n /* harmony default export */ const components_VueTableOfContentvue_type_script_lang_js_ = (VueTableOfContentvue_type_script_lang_js_); \n;// CONCATENATED MODULE: ../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-61.use[0]!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??clonedRuleSet-61.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../node_modules/@vue/cli-service/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-61.use[2]!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-61.use[3]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/VueTableOfContent.vue?vue&type=style&index=0&id=8a9ffce4&prod&lang=scss&scoped=true&\n// extracted by mini-css-extract-plugin\n\n;// CONCATENATED MODULE: ./src/components/VueTableOfContent.vue?vue&type=style&index=0&id=8a9ffce4&prod&lang=scss&scoped=true&\n\n;// CONCATENATED MODULE: ../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nfunction normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n\n;// CONCATENATED MODULE: ./src/components/VueTableOfContent.vue\n\n\n\n;\n\n\n/* normalize component */\n\nvar component = normalizeComponent(\n components_VueTableOfContentvue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n \"8a9ffce4\",\n null\n \n)\n\n/* harmony default export */ const VueTableOfContent = (component.exports);\n;// CONCATENATED MODULE: ../../node_modules/@vue/cli-service/lib/commands/build/entry-lib.js\n\n\n/* harmony default export */ const entry_lib = (VueTableOfContent);\n\n\n__webpack_exports__ = __webpack_exports__[\"default\"];\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n//# sourceMappingURL=vue-table-of-content.umd.js.map","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {import('.')} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\n/** @type {import('.')} */\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true) || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\nvar hasProto = require('has-proto')();\n\nvar getProto = Object.getPrototypeOf || (\n\thasProto\n\t\t? function (x) { return x.__proto__; } // eslint-disable-line no-proto\n\t\t: null\n);\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict'\n\nvar isUrl = require('is-url')\nvar queryString = require('query-string')\nvar normalizeUrl = require('normalize-url')\n\nmodule.exports = function(queryParam, url) {\n if (typeof queryParam !== 'string' || typeof url !== 'string') {\n throw new TypeError('get-query-param expected two strings')\n }\n\n var fullUrl = /^[\\/\\?]/.test(url) ? `foo.bar${url}` : url\n var normalizedUrl = normalizeUrl(fullUrl)\n\n if (!isUrl(normalizedUrl)) { return }\n\n var parsed = queryString.parse(normalizedUrl.split('?')[1])\n\n return parsed[queryParam]\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","/*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n(function(window, document, exportName, undefined) {\n 'use strict';\n\nvar VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\nvar TEST_ELEMENT = document.createElement('div');\n\nvar TYPE_FUNCTION = 'function';\n\nvar round = Math.round;\nvar abs = Math.abs;\nvar now = Date.now;\n\n/**\n * set a timeout with a given scope\n * @param {Function} fn\n * @param {Number} timeout\n * @param {Object} context\n * @returns {number}\n */\nfunction setTimeoutContext(fn, timeout, context) {\n return setTimeout(bindFn(fn, context), timeout);\n}\n\n/**\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\nfunction invokeArrayArg(arg, fn, context) {\n if (Array.isArray(arg)) {\n each(arg, context[fn], context);\n return true;\n }\n return false;\n}\n\n/**\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\nfunction each(obj, iterator, context) {\n var i;\n\n if (!obj) {\n return;\n }\n\n if (obj.forEach) {\n obj.forEach(iterator, context);\n } else if (obj.length !== undefined) {\n i = 0;\n while (i < obj.length) {\n iterator.call(context, obj[i], i, obj);\n i++;\n }\n } else {\n for (i in obj) {\n obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n }\n }\n}\n\n/**\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\nfunction deprecate(method, name, message) {\n var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\\n' + message + ' AT \\n';\n return function() {\n var e = new Error('get-stack-trace');\n var stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '')\n .replace(/^\\s+at\\s+/gm, '')\n .replace(/^Object.\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n\n var log = window.console && (window.console.warn || window.console.log);\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n return method.apply(this, arguments);\n };\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\nvar assign;\nif (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n return output;\n };\n} else {\n assign = Object.assign;\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\nvar extend = deprecate(function extend(dest, src, merge) {\n var keys = Object.keys(src);\n var i = 0;\n while (i < keys.length) {\n if (!merge || (merge && dest[keys[i]] === undefined)) {\n dest[keys[i]] = src[keys[i]];\n }\n i++;\n }\n return dest;\n}, 'extend', 'Use `assign`.');\n\n/**\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\nvar merge = deprecate(function merge(dest, src) {\n return extend(dest, src, true);\n}, 'merge', 'Use `assign`.');\n\n/**\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\nfunction inherit(child, base, properties) {\n var baseP = base.prototype,\n childP;\n\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n\n if (properties) {\n assign(childP, properties);\n }\n}\n\n/**\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\nfunction bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n}\n\n/**\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\nfunction boolOrFn(val, args) {\n if (typeof val == TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n return val;\n}\n\n/**\n * use the val2 when val1 is undefined\n * @param {*} val1\n * @param {*} val2\n * @returns {*}\n */\nfunction ifUndefined(val1, val2) {\n return (val1 === undefined) ? val2 : val1;\n}\n\n/**\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction addEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.addEventListener(type, handler, false);\n });\n}\n\n/**\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction removeEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.removeEventListener(type, handler, false);\n });\n}\n\n/**\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\nfunction hasParent(node, parent) {\n while (node) {\n if (node == parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}\n\n/**\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\nfunction inStr(str, find) {\n return str.indexOf(find) > -1;\n}\n\n/**\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\nfunction splitStr(str) {\n return str.trim().split(/\\s+/g);\n}\n\n/**\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\nfunction inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n var i = 0;\n while (i < src.length) {\n if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) {\n return i;\n }\n i++;\n }\n return -1;\n }\n}\n\n/**\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\nfunction toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n}\n\n/**\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\nfunction uniqueArray(src, key, sort) {\n var results = [];\n var values = [];\n var i = 0;\n\n while (i < src.length) {\n var val = key ? src[i][key] : src[i];\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n values[i] = val;\n i++;\n }\n\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort(function sortUniqueArray(a, b) {\n return a[key] > b[key];\n });\n }\n }\n\n return results;\n}\n\n/**\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\nfunction prefixed(obj, property) {\n var prefix, prop;\n var camelProp = property[0].toUpperCase() + property.slice(1);\n\n var i = 0;\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = (prefix) ? prefix + camelProp : property;\n\n if (prop in obj) {\n return prop;\n }\n i++;\n }\n return undefined;\n}\n\n/**\n * get a unique id\n * @returns {number} uniqueId\n */\nvar _uniqueId = 1;\nfunction uniqueId() {\n return _uniqueId++;\n}\n\n/**\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\nfunction getWindowForElement(element) {\n var doc = element.ownerDocument || element;\n return (doc.defaultView || doc.parentWindow || window);\n}\n\nvar MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\n\nvar SUPPORT_TOUCH = ('ontouchstart' in window);\nvar SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;\nvar SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\n\nvar INPUT_TYPE_TOUCH = 'touch';\nvar INPUT_TYPE_PEN = 'pen';\nvar INPUT_TYPE_MOUSE = 'mouse';\nvar INPUT_TYPE_KINECT = 'kinect';\n\nvar COMPUTE_INTERVAL = 25;\n\nvar INPUT_START = 1;\nvar INPUT_MOVE = 2;\nvar INPUT_END = 4;\nvar INPUT_CANCEL = 8;\n\nvar DIRECTION_NONE = 1;\nvar DIRECTION_LEFT = 2;\nvar DIRECTION_RIGHT = 4;\nvar DIRECTION_UP = 8;\nvar DIRECTION_DOWN = 16;\n\nvar DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\nvar DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\nvar DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\n\nvar PROPS_XY = ['x', 'y'];\nvar PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n/**\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\nfunction Input(manager, callback) {\n var self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget;\n\n // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n this.domHandler = function(ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n\n this.init();\n\n}\n\nInput.prototype = {\n /**\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n handler: function() { },\n\n /**\n * bind the events\n */\n init: function() {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n },\n\n /**\n * unbind the events\n */\n destroy: function() {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n }\n};\n\n/**\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\nfunction createInputInstance(manager) {\n var Type;\n var inputClass = manager.options.inputClass;\n\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n return new (Type)(manager, inputHandler);\n}\n\n/**\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\nfunction inputHandler(manager, eventType, input) {\n var pointersLen = input.pointers.length;\n var changedPointersLen = input.changedPointers.length;\n var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0));\n var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0));\n\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n\n if (isFirst) {\n manager.session = {};\n }\n\n // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n input.eventType = eventType;\n\n // compute scale, rotation etc\n computeInputData(manager, input);\n\n // emit secret event\n manager.emit('hammer.input', input);\n\n manager.recognize(input);\n manager.session.prevInput = input;\n}\n\n/**\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\nfunction computeInputData(manager, input) {\n var session = manager.session;\n var pointers = input.pointers;\n var pointersLength = pointers.length;\n\n // store the first input to calculate the distance and direction\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n }\n\n // to compute scale and rotation we need to store the multiple touches\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n\n var firstInput = session.firstInput;\n var firstMultiple = session.firstMultiple;\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n\n var center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n\n var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y;\n\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n\n input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length >\n session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers);\n\n computeIntervalInputData(session, input);\n\n // find the correct target\n var target = manager.element;\n if (hasParent(input.srcEvent.target, target)) {\n target = input.srcEvent.target;\n }\n input.target = target;\n}\n\nfunction computeDeltaXY(session, input) {\n var center = input.center;\n var offset = session.offsetDelta || {};\n var prevDelta = session.prevDelta || {};\n var prevInput = session.prevInput || {};\n\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n}\n\n/**\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\nfunction computeIntervalInputData(session, input) {\n var last = session.lastInterval || input,\n deltaTime = input.timeStamp - last.timeStamp,\n velocity, velocityX, velocityY, direction;\n\n if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n var deltaX = input.deltaX - last.deltaX;\n var deltaY = input.deltaY - last.deltaY;\n\n var v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n}\n\n/**\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\nfunction simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n var pointers = [];\n var i = 0;\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n\n return {\n timeStamp: now(),\n pointers: pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n}\n\n/**\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\nfunction getCenter(pointers) {\n var pointersLength = pointers.length;\n\n // no need to loop when only one touch\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n\n var x = 0, y = 0, i = 0;\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n}\n\n/**\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\nfunction getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n}\n\n/**\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\nfunction getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n\n/**\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\nfunction getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n\n return Math.sqrt((x * x) + (y * y));\n}\n\n/**\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\nfunction getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n}\n\n/**\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\nfunction getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n}\n\n/**\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\nfunction getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n}\n\nvar MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n};\n\nvar MOUSE_ELEMENT_EVENTS = 'mousedown';\nvar MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n\n/**\n * Mouse events input\n * @constructor\n * @extends Input\n */\nfunction MouseInput() {\n this.evEl = MOUSE_ELEMENT_EVENTS;\n this.evWin = MOUSE_WINDOW_EVENTS;\n\n this.pressed = false; // mousedown state\n\n Input.apply(this, arguments);\n}\n\ninherit(MouseInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function MEhandler(ev) {\n var eventType = MOUSE_INPUT_MAP[ev.type];\n\n // on start we want to have the left mouse button down\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n }\n\n // mouse must be down\n if (!this.pressed) {\n return;\n }\n\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n }\n});\n\nvar POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n};\n\n// in IE10 the pointer types is defined as an enum\nvar IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n};\n\nvar POINTER_ELEMENT_EVENTS = 'pointerdown';\nvar POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';\n\n// IE10 has prefixed support, and case-sensitive\nif (window.MSPointerEvent && !window.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n}\n\n/**\n * Pointer events input\n * @constructor\n * @extends Input\n */\nfunction PointerEventInput() {\n this.evEl = POINTER_ELEMENT_EVENTS;\n this.evWin = POINTER_WINDOW_EVENTS;\n\n Input.apply(this, arguments);\n\n this.store = (this.manager.session.pointerEvents = []);\n}\n\ninherit(PointerEventInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function PEhandler(ev) {\n var store = this.store;\n var removePointer = false;\n\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n\n var isTouch = (pointerType == INPUT_TYPE_TOUCH);\n\n // get index of the event in the store\n var storeIndex = inArray(store, ev.pointerId, 'pointerId');\n\n // start and mouse must be down\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n }\n\n // it not found, so the pointer hasn't been down (so it's probably a hover)\n if (storeIndex < 0) {\n return;\n }\n\n // update the event in the store\n store[storeIndex] = ev;\n\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType: pointerType,\n srcEvent: ev\n });\n\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n }\n});\n\nvar SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\nvar SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Touch events input\n * @constructor\n * @extends Input\n */\nfunction SingleTouchInput() {\n this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n this.started = false;\n\n Input.apply(this, arguments);\n}\n\ninherit(SingleTouchInput, Input, {\n handler: function TEhandler(ev) {\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type];\n\n // should we handle the touch events?\n if (type === INPUT_START) {\n this.started = true;\n }\n\n if (!this.started) {\n return;\n }\n\n var touches = normalizeSingleTouches.call(this, ev, type);\n\n // when done, reset the started state\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction normalizeSingleTouches(ev, type) {\n var all = toArray(ev.touches);\n var changed = toArray(ev.changedTouches);\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n\n return [all, changed];\n}\n\nvar TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\nfunction TouchInput() {\n this.evTarget = TOUCH_TARGET_EVENTS;\n this.targetIds = {};\n\n Input.apply(this, arguments);\n}\n\ninherit(TouchInput, Input, {\n handler: function MTEhandler(ev) {\n var type = TOUCH_INPUT_MAP[ev.type];\n var touches = getTouches.call(this, ev, type);\n if (!touches) {\n return;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction getTouches(ev, type) {\n var allTouches = toArray(ev.touches);\n var targetIds = this.targetIds;\n\n // when there is only one touch, the process can be simplified\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n\n var i,\n targetTouches,\n changedTouches = toArray(ev.changedTouches),\n changedTargetTouches = [],\n target = this.target;\n\n // get target touches from touches\n targetTouches = allTouches.filter(function(touch) {\n return hasParent(touch.target, target);\n });\n\n // collect touches\n if (type === INPUT_START) {\n i = 0;\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n }\n\n // filter changed touches to only contain touches that exist in the collected target ids\n i = 0;\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n }\n\n // cleanup removed touches\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n i++;\n }\n\n if (!changedTargetTouches.length) {\n return;\n }\n\n return [\n // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true),\n changedTargetTouches\n ];\n}\n\n/**\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\nvar DEDUP_TIMEOUT = 2500;\nvar DEDUP_DISTANCE = 25;\n\nfunction TouchMouseInput() {\n Input.apply(this, arguments);\n\n var handler = bindFn(this.handler, this);\n this.touch = new TouchInput(this.manager, handler);\n this.mouse = new MouseInput(this.manager, handler);\n\n this.primaryTouch = null;\n this.lastTouches = [];\n}\n\ninherit(TouchMouseInput, Input, {\n /**\n * handle mouse and touch events\n * @param {Hammer} manager\n * @param {String} inputEvent\n * @param {Object} inputData\n */\n handler: function TMEhandler(manager, inputEvent, inputData) {\n var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH),\n isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE);\n\n if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n return;\n }\n\n // when we're in a touch event, record touches to de-dupe synthetic mouse event\n if (isTouch) {\n recordTouches.call(this, inputEvent, inputData);\n } else if (isMouse && isSyntheticEvent.call(this, inputData)) {\n return;\n }\n\n this.callback(manager, inputEvent, inputData);\n },\n\n /**\n * remove the event listeners\n */\n destroy: function destroy() {\n this.touch.destroy();\n this.mouse.destroy();\n }\n});\n\nfunction recordTouches(eventType, eventData) {\n if (eventType & INPUT_START) {\n this.primaryTouch = eventData.changedPointers[0].identifier;\n setLastTouch.call(this, eventData);\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n setLastTouch.call(this, eventData);\n }\n}\n\nfunction setLastTouch(eventData) {\n var touch = eventData.changedPointers[0];\n\n if (touch.identifier === this.primaryTouch) {\n var lastTouch = {x: touch.clientX, y: touch.clientY};\n this.lastTouches.push(lastTouch);\n var lts = this.lastTouches;\n var removeLastTouch = function() {\n var i = lts.indexOf(lastTouch);\n if (i > -1) {\n lts.splice(i, 1);\n }\n };\n setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n }\n}\n\nfunction isSyntheticEvent(eventData) {\n var x = eventData.srcEvent.clientX, y = eventData.srcEvent.clientY;\n for (var i = 0; i < this.lastTouches.length; i++) {\n var t = this.lastTouches[i];\n var dx = Math.abs(x - t.x), dy = Math.abs(y - t.y);\n if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n return true;\n }\n }\n return false;\n}\n\nvar PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\nvar NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\n\n// magical touchAction value\nvar TOUCH_ACTION_COMPUTE = 'compute';\nvar TOUCH_ACTION_AUTO = 'auto';\nvar TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\nvar TOUCH_ACTION_NONE = 'none';\nvar TOUCH_ACTION_PAN_X = 'pan-x';\nvar TOUCH_ACTION_PAN_Y = 'pan-y';\nvar TOUCH_ACTION_MAP = getTouchActionProps();\n\n/**\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\nfunction TouchAction(manager, value) {\n this.manager = manager;\n this.set(value);\n}\n\nTouchAction.prototype = {\n /**\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n set: function(value) {\n // find out the touch-action by the event handlers\n if (value == TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n this.actions = value.toLowerCase().trim();\n },\n\n /**\n * just re-set the touchAction value\n */\n update: function() {\n this.set(this.manager.options.touchAction);\n },\n\n /**\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n compute: function() {\n var actions = [];\n each(this.manager.recognizers, function(recognizer) {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n },\n\n /**\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n preventDefaults: function(input) {\n var srcEvent = input.srcEvent;\n var direction = input.offsetDirection;\n\n // if the touch action did prevented once this session\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n\n var actions = this.actions;\n var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n if (hasNone) {\n //do not prevent defaults if this is a tap gesture\n\n var isTapPointer = input.pointers.length === 1;\n var isTapMovement = input.distance < 2;\n var isTapTouchTime = input.deltaTime < 250;\n\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n\n if (hasNone ||\n (hasPanY && direction & DIRECTION_HORIZONTAL) ||\n (hasPanX && direction & DIRECTION_VERTICAL)) {\n return this.preventSrc(srcEvent);\n }\n },\n\n /**\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n preventSrc: function(srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n }\n};\n\n/**\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\nfunction cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);\n\n // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n }\n\n // pan-x OR pan-y\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n }\n\n // manipulation\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n\n return TOUCH_ACTION_AUTO;\n}\n\nfunction getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n var touchMap = {};\n var cssSupports = window.CSS && window.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function(val) {\n\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n}\n\n/**\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\nvar STATE_POSSIBLE = 1;\nvar STATE_BEGAN = 2;\nvar STATE_CHANGED = 4;\nvar STATE_ENDED = 8;\nvar STATE_RECOGNIZED = STATE_ENDED;\nvar STATE_CANCELLED = 16;\nvar STATE_FAILED = 32;\n\n/**\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\nfunction Recognizer(options) {\n this.options = assign({}, this.defaults, options || {});\n\n this.id = uniqueId();\n\n this.manager = null;\n\n // default is enable true\n this.options.enable = ifUndefined(this.options.enable, true);\n\n this.state = STATE_POSSIBLE;\n\n this.simultaneous = {};\n this.requireFail = [];\n}\n\nRecognizer.prototype = {\n /**\n * @virtual\n * @type {Object}\n */\n defaults: {},\n\n /**\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n set: function(options) {\n assign(this.options, options);\n\n // also update the touchAction, in case something changed about the directions/enabled state\n this.manager && this.manager.touchAction.update();\n return this;\n },\n\n /**\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n recognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n\n var simultaneous = this.simultaneous;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n return this;\n },\n\n /**\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRecognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n },\n\n /**\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n requireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n\n var requireFail = this.requireFail;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n return this;\n },\n\n /**\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRequireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n var index = inArray(this.requireFail, otherRecognizer);\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n return this;\n },\n\n /**\n * has require failures boolean\n * @returns {boolean}\n */\n hasRequireFailures: function() {\n return this.requireFail.length > 0;\n },\n\n /**\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n canRecognizeWith: function(otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n },\n\n /**\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n emit: function(input) {\n var self = this;\n var state = this.state;\n\n function emit(event) {\n self.manager.emit(event, input);\n }\n\n // 'panstart' and 'panmove'\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n }\n\n // panend and pancancel\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n },\n\n /**\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n tryEmit: function(input) {\n if (this.canEmit()) {\n return this.emit(input);\n }\n // it's failing anyway\n this.state = STATE_FAILED;\n },\n\n /**\n * can we emit?\n * @returns {boolean}\n */\n canEmit: function() {\n var i = 0;\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n i++;\n }\n return true;\n },\n\n /**\n * update the recognizer\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n var inputDataClone = assign({}, inputData);\n\n // is is enabled and allow recognizing?\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n }\n\n // reset when we've reached the end\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n\n this.state = this.process(inputDataClone);\n\n // the recognizer has recognized a gesture\n // so trigger an event\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n },\n\n /**\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {Const} STATE\n */\n process: function(inputData) { }, // jshint ignore:line\n\n /**\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n getTouchAction: function() { },\n\n /**\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n reset: function() { }\n};\n\n/**\n * get a usable string, used as event postfix\n * @param {Const} state\n * @returns {String} state\n */\nfunction stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n return '';\n}\n\n/**\n * direction cons to string\n * @param {Const} direction\n * @returns {String}\n */\nfunction directionStr(direction) {\n if (direction == DIRECTION_DOWN) {\n return 'down';\n } else if (direction == DIRECTION_UP) {\n return 'up';\n } else if (direction == DIRECTION_LEFT) {\n return 'left';\n } else if (direction == DIRECTION_RIGHT) {\n return 'right';\n }\n return '';\n}\n\n/**\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\nfunction getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n var manager = recognizer.manager;\n if (manager) {\n return manager.get(otherRecognizer);\n }\n return otherRecognizer;\n}\n\n/**\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\nfunction AttrRecognizer() {\n Recognizer.apply(this, arguments);\n}\n\ninherit(AttrRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof AttrRecognizer\n */\n defaults: {\n /**\n * @type {Number}\n * @default 1\n */\n pointers: 1\n },\n\n /**\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n attrTest: function(input) {\n var optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n },\n\n /**\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n process: function(input) {\n var state = this.state;\n var eventType = input.eventType;\n\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n var isValid = this.attrTest(input);\n\n // on cancel input and we've recognized before, return STATE_CANCELLED\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n return state | STATE_CHANGED;\n }\n return STATE_FAILED;\n }\n});\n\n/**\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PanRecognizer() {\n AttrRecognizer.apply(this, arguments);\n\n this.pX = null;\n this.pY = null;\n}\n\ninherit(PanRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PanRecognizer\n */\n defaults: {\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL\n },\n\n getTouchAction: function() {\n var direction = this.options.direction;\n var actions = [];\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n return actions;\n },\n\n directionTest: function(input) {\n var options = this.options;\n var hasMoved = true;\n var distance = input.distance;\n var direction = input.direction;\n var x = input.deltaX;\n var y = input.deltaY;\n\n // lock to axis?\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x != this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y != this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n },\n\n attrTest: function(input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) &&\n (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input)));\n },\n\n emit: function(input) {\n\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n\n var direction = directionStr(input.direction);\n\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PinchRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(PinchRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'pinch',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n },\n\n emit: function(input) {\n if (input.scale !== 1) {\n var inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\nfunction PressRecognizer() {\n Recognizer.apply(this, arguments);\n\n this._timer = null;\n this._input = null;\n}\n\ninherit(PressRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PressRecognizer\n */\n defaults: {\n event: 'press',\n pointers: 1,\n time: 251, // minimal time of the pointer to be pressed\n threshold: 9 // a minimal movement is ok, but keep it low\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_AUTO];\n },\n\n process: function(input) {\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTime = input.deltaTime > options.time;\n\n this._input = input;\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.time, this);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function(input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n\n if (input && (input.eventType & INPUT_END)) {\n this.manager.emit(this.options.event + 'up', input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction RotateRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(RotateRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof RotateRecognizer\n */\n defaults: {\n event: 'rotate',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n }\n});\n\n/**\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction SwipeRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(SwipeRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof SwipeRecognizer\n */\n defaults: {\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1\n },\n\n getTouchAction: function() {\n return PanRecognizer.prototype.getTouchAction.call(this);\n },\n\n attrTest: function(input) {\n var direction = this.options.direction;\n var velocity;\n\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n\n return this._super.attrTest.call(this, input) &&\n direction & input.offsetDirection &&\n input.distance > this.options.threshold &&\n input.maxPointers == this.options.pointers &&\n abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n },\n\n emit: function(input) {\n var direction = directionStr(input.offsetDirection);\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n\n this.manager.emit(this.options.event, input);\n }\n});\n\n/**\n * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\nfunction TapRecognizer() {\n Recognizer.apply(this, arguments);\n\n // previous time and center,\n // used for tap counting\n this.pTime = false;\n this.pCenter = false;\n\n this._timer = null;\n this._input = null;\n this.count = 0;\n}\n\ninherit(TapRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300, // max time between the multi-tap taps\n time: 250, // max time of the pointer to be down (like finger on the screen)\n threshold: 9, // a minimal movement is ok, but keep it low\n posThreshold: 10 // a multi-tap can be a bit off the initial position\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_MANIPULATION];\n },\n\n process: function(input) {\n var options = this.options;\n\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTouchTime = input.deltaTime < options.time;\n\n this.reset();\n\n if ((input.eventType & INPUT_START) && (this.count === 0)) {\n return this.failTimeout();\n }\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType != INPUT_END) {\n return this.failTimeout();\n }\n\n var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true;\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n\n this._input = input;\n\n // if tap count matches we have recognized it,\n // else it has began recognizing...\n var tapCount = this.count % options.taps;\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.interval, this);\n return STATE_BEGAN;\n }\n }\n }\n return STATE_FAILED;\n },\n\n failTimeout: function() {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_FAILED;\n }, this.options.interval, this);\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function() {\n if (this.state == STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Hammer(element, options) {\n options = options || {};\n options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);\n return new Manager(element, options);\n}\n\n/**\n * @const {string}\n */\nHammer.VERSION = '2.0.7';\n\n/**\n * default settings\n * @namespace\n */\nHammer.defaults = {\n /**\n * set if DOM events are being triggered.\n * But this is slower and unused by simple implementations, so disabled by default.\n * @type {Boolean}\n * @default false\n */\n domEvents: false,\n\n /**\n * The value for the touchAction property/fallback.\n * When set to `compute` it will magically set the correct value based on the added recognizers.\n * @type {String}\n * @default compute\n */\n touchAction: TOUCH_ACTION_COMPUTE,\n\n /**\n * @type {Boolean}\n * @default true\n */\n enable: true,\n\n /**\n * EXPERIMENTAL FEATURE -- can be removed/changed\n * Change the parent input target element.\n * If Null, then it is being set the to main element.\n * @type {Null|EventTarget}\n * @default null\n */\n inputTarget: null,\n\n /**\n * force an input class\n * @type {Null|Function}\n * @default null\n */\n inputClass: null,\n\n /**\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * @type {Array}\n */\n preset: [\n // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\n [RotateRecognizer, {enable: false}],\n [PinchRecognizer, {enable: false}, ['rotate']],\n [SwipeRecognizer, {direction: DIRECTION_HORIZONTAL}],\n [PanRecognizer, {direction: DIRECTION_HORIZONTAL}, ['swipe']],\n [TapRecognizer],\n [TapRecognizer, {event: 'doubletap', taps: 2}, ['tap']],\n [PressRecognizer]\n ],\n\n /**\n * Some CSS properties can be used to improve the working of Hammer.\n * Add them to this method and they will be set when creating a new Manager.\n * @namespace\n */\n cssProps: {\n /**\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userSelect: 'none',\n\n /**\n * Disable the Windows Phone grippers when pressing an element.\n * @type {String}\n * @default 'none'\n */\n touchSelect: 'none',\n\n /**\n * Disables the default callout shown when you touch and hold a touch target.\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\n * a callout containing information about the link. This property allows you to disable that callout.\n * @type {String}\n * @default 'none'\n */\n touchCallout: 'none',\n\n /**\n * Specifies whether zooming is enabled. Used by IE10>\n * @type {String}\n * @default 'none'\n */\n contentZooming: 'none',\n\n /**\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userDrag: 'none',\n\n /**\n * Overrides the highlight color shown when the user taps a link or a JavaScript\n * clickable element in iOS. This property obeys the alpha value, if specified.\n * @type {String}\n * @default 'rgba(0,0,0,0)'\n */\n tapHighlightColor: 'rgba(0,0,0,0)'\n }\n};\n\nvar STOP = 1;\nvar FORCED_STOP = 2;\n\n/**\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Manager(element, options) {\n this.options = assign({}, Hammer.defaults, options || {});\n\n this.options.inputTarget = this.options.inputTarget || element;\n\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n\n toggleCssProps(this, true);\n\n each(this.options.recognizers, function(item) {\n var recognizer = this.add(new (item[0])(item[1]));\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n}\n\nManager.prototype = {\n /**\n * set options\n * @param {Object} options\n * @returns {Manager}\n */\n set: function(options) {\n assign(this.options, options);\n\n // Options that need a little more setup\n if (options.touchAction) {\n this.touchAction.update();\n }\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n return this;\n },\n\n /**\n * stop recognizing for this session.\n * This session will be discarded, when a new [input]start event is fired.\n * When forced, the recognizer cycle is stopped immediately.\n * @param {Boolean} [force]\n */\n stop: function(force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n },\n\n /**\n * run the recognizers!\n * called by the inputHandler function on every movement of the pointers (touches)\n * it walks through all the recognizers and tries to detect the gesture that is being made\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n var session = this.session;\n if (session.stopped) {\n return;\n }\n\n // run the touch-action polyfill\n this.touchAction.preventDefaults(inputData);\n\n var recognizer;\n var recognizers = this.recognizers;\n\n // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n var curRecognizer = session.curRecognizer;\n\n // reset when the last recognizer is recognized\n // or when we're in a new session\n if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) {\n curRecognizer = session.curRecognizer = null;\n }\n\n var i = 0;\n while (i < recognizers.length) {\n recognizer = recognizers[i];\n\n // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n if (session.stopped !== FORCED_STOP && ( // 1\n !curRecognizer || recognizer == curRecognizer || // 2\n recognizer.canRecognizeWith(curRecognizer))) { // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n }\n\n // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n curRecognizer = session.curRecognizer = recognizer;\n }\n i++;\n }\n },\n\n /**\n * get a recognizer by its event name.\n * @param {Recognizer|String} recognizer\n * @returns {Recognizer|Null}\n */\n get: function(recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n\n var recognizers = this.recognizers;\n for (var i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event == recognizer) {\n return recognizers[i];\n }\n }\n return null;\n },\n\n /**\n * add a recognizer to the manager\n * existing recognizers with the same event name will be removed\n * @param {Recognizer} recognizer\n * @returns {Recognizer|Manager}\n */\n add: function(recognizer) {\n if (invokeArrayArg(recognizer, 'add', this)) {\n return this;\n }\n\n // remove existing\n var existing = this.get(recognizer.options.event);\n if (existing) {\n this.remove(existing);\n }\n\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n\n this.touchAction.update();\n return recognizer;\n },\n\n /**\n * remove a recognizer by name or instance\n * @param {Recognizer|String} recognizer\n * @returns {Manager}\n */\n remove: function(recognizer) {\n if (invokeArrayArg(recognizer, 'remove', this)) {\n return this;\n }\n\n recognizer = this.get(recognizer);\n\n // let's make sure this recognizer exists\n if (recognizer) {\n var recognizers = this.recognizers;\n var index = inArray(recognizers, recognizer);\n\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n\n return this;\n },\n\n /**\n * bind event\n * @param {String} events\n * @param {Function} handler\n * @returns {EventEmitter} this\n */\n on: function(events, handler) {\n if (events === undefined) {\n return;\n }\n if (handler === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n },\n\n /**\n * unbind event, leave emit blank to remove all handlers\n * @param {String} events\n * @param {Function} [handler]\n * @returns {EventEmitter} this\n */\n off: function(events, handler) {\n if (events === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n },\n\n /**\n * emit event to the listeners\n * @param {String} event\n * @param {Object} data\n */\n emit: function(event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n }\n\n // no handlers, so skip it all\n var handlers = this.handlers[event] && this.handlers[event].slice();\n if (!handlers || !handlers.length) {\n return;\n }\n\n data.type = event;\n data.preventDefault = function() {\n data.srcEvent.preventDefault();\n };\n\n var i = 0;\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n },\n\n /**\n * destroy the manager and unbinds all events\n * it doesn't unbind dom events, that is the user own responsibility\n */\n destroy: function() {\n this.element && toggleCssProps(this, false);\n\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n }\n};\n\n/**\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\nfunction toggleCssProps(manager, add) {\n var element = manager.element;\n if (!element.style) {\n return;\n }\n var prop;\n each(manager.options.cssProps, function(value, name) {\n prop = prefixed(element.style, name);\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || '';\n }\n });\n if (!add) {\n manager.oldCssProps = {};\n }\n}\n\n/**\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\nfunction triggerDomEvent(event, data) {\n var gestureEvent = document.createEvent('Event');\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n}\n\nassign(Hammer, {\n INPUT_START: INPUT_START,\n INPUT_MOVE: INPUT_MOVE,\n INPUT_END: INPUT_END,\n INPUT_CANCEL: INPUT_CANCEL,\n\n STATE_POSSIBLE: STATE_POSSIBLE,\n STATE_BEGAN: STATE_BEGAN,\n STATE_CHANGED: STATE_CHANGED,\n STATE_ENDED: STATE_ENDED,\n STATE_RECOGNIZED: STATE_RECOGNIZED,\n STATE_CANCELLED: STATE_CANCELLED,\n STATE_FAILED: STATE_FAILED,\n\n DIRECTION_NONE: DIRECTION_NONE,\n DIRECTION_LEFT: DIRECTION_LEFT,\n DIRECTION_RIGHT: DIRECTION_RIGHT,\n DIRECTION_UP: DIRECTION_UP,\n DIRECTION_DOWN: DIRECTION_DOWN,\n DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,\n DIRECTION_VERTICAL: DIRECTION_VERTICAL,\n DIRECTION_ALL: DIRECTION_ALL,\n\n Manager: Manager,\n Input: Input,\n TouchAction: TouchAction,\n\n TouchInput: TouchInput,\n MouseInput: MouseInput,\n PointerEventInput: PointerEventInput,\n TouchMouseInput: TouchMouseInput,\n SingleTouchInput: SingleTouchInput,\n\n Recognizer: Recognizer,\n AttrRecognizer: AttrRecognizer,\n Tap: TapRecognizer,\n Pan: PanRecognizer,\n Swipe: SwipeRecognizer,\n Pinch: PinchRecognizer,\n Rotate: RotateRecognizer,\n Press: PressRecognizer,\n\n on: addEventListeners,\n off: removeEventListeners,\n each: each,\n merge: merge,\n extend: extend,\n assign: assign,\n inherit: inherit,\n bindFn: bindFn,\n prefixed: prefixed\n});\n\n// this prevents errors when Hammer is loaded in the presence of an AMD\n// style loader but by script tag, not by the loader.\nvar freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : {})); // jshint ignore:line\nfreeGlobal.Hammer = Hammer;\n\nif (typeof define === 'function' && define.amd) {\n define(function() {\n return Hammer;\n });\n} else if (typeof module != 'undefined' && module.exports) {\n module.exports = Hammer;\n} else {\n window[exportName] = Hammer;\n}\n\n})(window, document, 'Hammer');\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!$defineProperty) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar test = {\n\tfoo: {}\n};\n\nvar $Object = Object;\n\nmodule.exports = function hasProto() {\n\treturn { __proto__: test }.foo === test.foo && !({ __proto__: null } instanceof $Object);\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","'use strict';\nvar toString = Object.prototype.toString;\n\nmodule.exports = function (x) {\n\tvar prototype;\n\treturn toString.call(x) === '[object Object]' && (prototype = Object.getPrototypeOf(x), prototype === null || prototype === Object.getPrototypeOf({}));\n};\n","\n/**\n * Expose `isUrl`.\n */\n\nmodule.exports = isUrl;\n\n/**\n * RegExps.\n * A URL must match #1 and then at least one of #2/#3.\n * Use two levels of REs to avoid REDOS.\n */\n\nvar protocolAndDomainRE = /^(?:\\w+:)?\\/\\/(\\S+)$/;\n\nvar localhostDomainRE = /^localhost[\\:?\\d]*(?:[^\\:?\\d]\\S*)?$/\nvar nonLocalhostDomainRE = /^[^\\s\\.]+\\.\\S{2,}$/;\n\n/**\n * Loosely validate a URL `string`.\n *\n * @param {String} string\n * @return {Boolean}\n */\n\nfunction isUrl(string){\n if (typeof string !== 'string') {\n return false;\n }\n\n var match = string.match(protocolAndDomainRE);\n if (!match) {\n return false;\n }\n\n var everythingAfterProtocol = match[1];\n if (!everythingAfterProtocol) {\n return false;\n }\n\n if (localhostDomainRE.test(everythingAfterProtocol) ||\n nonLocalhostDomainRE.test(everythingAfterProtocol)) {\n return true;\n }\n\n return false;\n}\n","/* This program is free software. It comes without any warranty, to\n * the extent permitted by applicable law. You can redistribute it\n * and/or modify it under the terms of the Do What The Fuck You Want\n * To Public License, Version 2, as published by Sam Hocevar. See\n * http://www.wtfpl.net/ for more details. */\n'use strict';\nmodule.exports = leftPad;\n\nvar cache = [\n '',\n ' ',\n ' ',\n ' ',\n ' ',\n ' ',\n ' ',\n ' ',\n ' ',\n ' '\n];\n\nfunction leftPad (str, len, ch) {\n // convert `str` to a `string`\n str = str + '';\n // `len` is the `pad`'s length now\n len = len - str.length;\n // doesn't need to pad\n if (len <= 0) return str;\n // `ch` defaults to `' '`\n if (!ch && ch !== 0) ch = ' ';\n // convert `ch` to a `string` cuz it could be a number\n ch = ch + '';\n // cache common use cases\n if (ch === ' ' && len < 10) return cache[len] + str;\n // `pad` starts with an empty string\n var pad = '';\n // loop\n while (true) {\n // add `ch` to `pad` if `len` is odd\n if (len & 1) pad += ch;\n // divide `len` by 2, ditch the remainder\n len >>= 1;\n // \"double\" the `ch` so this operation count grows logarithmically on `len`\n // each time `ch` is \"doubled\", the `len` would need to be \"doubled\" too\n // similar to finding a value in binary search tree, hence O(log(n))\n if (len) ch += ch;\n // `len` is 0, exit the loop\n else break;\n }\n // pad `str`!\n return pad + str;\n}\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var expressionsInterfaces = null;\n var idPrefix$1 = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$6(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix$1 + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setExpressionInterfaces = function setExpressionInterfaces(value) {\n expressionsInterfaces = value;\n };\n\n var getExpressionInterfaces = function getExpressionInterfaces() {\n return expressionsInterfaces;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix$1 = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix$1;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), path, true);\n } catch (error) {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i].cm\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function getRegisteredRenderer() {\n // Returns canvas by default for compatibility\n if (renderers.canvas) {\n return 'canvas';\n } // Returns any renderer that is registered\n\n\n for (var key in renderers) {\n if (renderers[key]) {\n return key;\n }\n }\n\n return '';\n }\n\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\n this.expressionsPlugin = getExpressionsPlugin();\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : getRegisteredRenderer() || 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n if (!params.path) {\n this.trigger('destroy');\n } else {\n this.setParams(params);\n }\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function (width, height) {\n // Adding this validation for backwards compatibility in case an event object was being passed down\n var _width = typeof width === 'number' ? width : undefined;\n\n var _height = typeof height === 'number' ? height : undefined;\n\n this.renderer.updateContainerSize(_width, _height);\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n if (this.expressionsPlugin) {\n this.expressionsPlugin.resetFrame();\n }\n\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.trigger('_play');\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this.trigger('_pause');\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.expressionsPlugin = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setLoop = function (isLooping) {\n this.loop = isLooping;\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\n try {\n var element = this.renderer.getElementByPath(path);\n element.updateDocumentData(documentData, index);\n } catch (error) {// TODO: decide how to handle catch case\n }\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'drawnFrame':\n this.drawnFrameEvent.currentTime = this.currentFrame;\n this.drawnFrameEvent.totalTime = this.totalFrames;\n this.drawnFrameEvent.direction = this.frameModifier;\n this.triggerEvent(name, this.drawnFrameEvent);\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n var PropertyFactory = function () {\n function getProp(elem, data, type, mult, container) {\n if (data.sid) {\n data = elem.globalData.slotManager.getProp(data);\n }\n\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n ShapePath.prototype.length = function () {\n return this._length;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function multiply(matrix) {\n var matrixProps = matrix.props;\n return this.transform(matrixProps[0], matrixProps[1], matrixProps[2], matrixProps[3], matrixProps[4], matrixProps[5], matrixProps[6], matrixProps[7], matrixProps[8], matrixProps[9], matrixProps[10], matrixProps[11], matrixProps[12], matrixProps[13], matrixProps[14], matrixProps[15]);\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.multiply = multiply;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.12.2';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString = '';\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n this.appliedTransformations = 0;\n this.pre.reset();\n\n if (!this.a.effectsSequence.length) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function floatEqual(a, b) {\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\n }\n\n function floatZero(f) {\n return Math.abs(f) <= 0.00001;\n }\n\n function lerp(p0, p1, amount) {\n return p0 * (1 - amount) + p1 * amount;\n }\n\n function lerpPoint(p0, p1, amount) {\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\n }\n\n function quadRoots(a, b, c) {\n // no root\n if (a === 0) return [];\n var s = b * b - 4 * a * c; // Complex roots\n\n if (s < 0) return [];\n var singleRoot = -b / (2 * a); // 1 root\n\n if (s === 0) return [singleRoot];\n var delta = Math.sqrt(s) / (2 * a); // 2 roots\n\n return [singleRoot - delta, singleRoot + delta];\n }\n\n function polynomialCoefficients(p0, p1, p2, p3) {\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\n }\n\n function singlePoint(p) {\n return new PolynomialBezier(p, p, p, p, false);\n }\n\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\n if (linearize && pointEqual(p0, p1)) {\n p1 = lerpPoint(p0, p3, 1 / 3);\n }\n\n if (linearize && pointEqual(p2, p3)) {\n p2 = lerpPoint(p0, p3, 2 / 3);\n }\n\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\n this.a = [coeffx[0], coeffy[0]];\n this.b = [coeffx[1], coeffy[1]];\n this.c = [coeffx[2], coeffy[2]];\n this.d = [coeffx[3], coeffy[3]];\n this.points = [p0, p1, p2, p3];\n }\n\n PolynomialBezier.prototype.point = function (t) {\n return [((this.a[0] * t + this.b[0]) * t + this.c[0]) * t + this.d[0], ((this.a[1] * t + this.b[1]) * t + this.c[1]) * t + this.d[1]];\n };\n\n PolynomialBezier.prototype.derivative = function (t) {\n return [(3 * t * this.a[0] + 2 * this.b[0]) * t + this.c[0], (3 * t * this.a[1] + 2 * this.b[1]) * t + this.c[1]];\n };\n\n PolynomialBezier.prototype.tangentAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[1], p[0]);\n };\n\n PolynomialBezier.prototype.normalAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[0], p[1]);\n };\n\n PolynomialBezier.prototype.inflectionPoints = function () {\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\n if (floatZero(denom)) return [];\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\n if (square < 0) return [];\n var root = Math.sqrt(square);\n\n if (floatZero(root)) {\n if (root > 0 && root < 1) return [tcusp];\n return [];\n }\n\n return [tcusp - root, tcusp + root].filter(function (r) {\n return r > 0 && r < 1;\n });\n };\n\n PolynomialBezier.prototype.split = function (t) {\n if (t <= 0) return [singlePoint(this.points[0]), this];\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\n var p10 = lerpPoint(this.points[0], this.points[1], t);\n var p11 = lerpPoint(this.points[1], this.points[2], t);\n var p12 = lerpPoint(this.points[2], this.points[3], t);\n var p20 = lerpPoint(p10, p11, t);\n var p21 = lerpPoint(p11, p12, t);\n var p3 = lerpPoint(p20, p21, t);\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\n };\n\n function extrema(bez, comp) {\n var min = bez.points[0][comp];\n var max = bez.points[bez.points.length - 1][comp];\n\n if (min > max) {\n var e = max;\n max = min;\n min = e;\n } // Derivative roots to find min/max\n\n\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\n\n for (var i = 0; i < f.length; i += 1) {\n if (f[i] > 0 && f[i] < 1) {\n var val = bez.point(f[i])[comp];\n if (val < min) min = val;else if (val > max) max = val;\n }\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n PolynomialBezier.prototype.bounds = function () {\n return {\n x: extrema(this, 0),\n y: extrema(this, 1)\n };\n };\n\n PolynomialBezier.prototype.boundingBox = function () {\n var bounds = this.bounds();\n return {\n left: bounds.x.min,\n right: bounds.x.max,\n top: bounds.y.min,\n bottom: bounds.y.max,\n width: bounds.x.max - bounds.x.min,\n height: bounds.y.max - bounds.y.min,\n cx: (bounds.x.max + bounds.x.min) / 2,\n cy: (bounds.y.max + bounds.y.min) / 2\n };\n };\n\n function intersectData(bez, t1, t2) {\n var box = bez.boundingBox();\n return {\n cx: box.cx,\n cy: box.cy,\n width: box.width,\n height: box.height,\n bez: bez,\n t: (t1 + t2) / 2,\n t1: t1,\n t2: t2\n };\n }\n\n function splitData(data) {\n var split = data.bez.split(0.5);\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\n }\n\n function boxIntersect(b1, b2) {\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\n }\n\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\n if (!boxIntersect(d1, d2)) return;\n\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\n intersections.push([d1.t, d2.t]);\n return;\n }\n\n var d1s = splitData(d1);\n var d2s = splitData(d2);\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n }\n\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\n if (tolerance === undefined) tolerance = 2;\n if (maxRecursion === undefined) maxRecursion = 7;\n var intersections = [];\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\n return intersections;\n };\n\n PolynomialBezier.shapeSegment = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\n };\n\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\n };\n\n function crossProduct(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n }\n\n function lineIntersection(start1, end1, start2, end2) {\n var v1 = [start1[0], start1[1], 1];\n var v2 = [end1[0], end1[1], 1];\n var v3 = [start2[0], start2[1], 1];\n var v4 = [end2[0], end2[1], 1];\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\n if (floatZero(r[2])) return null;\n return [r[0] / r[2], r[1] / r[2]];\n }\n\n function polarOffset(p, angle, length) {\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\n }\n\n function pointDistance(p1, p2) {\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\n }\n\n function pointEqual(p1, p2) {\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\n }\n\n function ZigZagModifier() {}\n\n extendPrototype([ShapeModifier], ZigZagModifier);\n\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\n };\n\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\n var angO = angle - Math.PI / 2;\n var angI = angle + Math.PI / 2;\n var px = point[0] + Math.cos(angle) * direction * amplitude;\n var py = point[1] - Math.sin(angle) * direction * amplitude;\n outputBezier.setTripleAt(px, py, px + Math.cos(angO) * outAmplitude, py - Math.sin(angO) * outAmplitude, px + Math.cos(angI) * inAmplitude, py - Math.sin(angI) * inAmplitude, outputBezier.length());\n }\n\n function getPerpendicularVector(pt1, pt2) {\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\n var rot = -Math.PI * 0.5;\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\n return rotatedVector;\n }\n\n function getProjectingAngle(path, cur) {\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\n var nextIndex = (cur + 1) % path.length();\n var prevPoint = path.v[prevIndex];\n var nextPoint = path.v[nextIndex];\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\n }\n\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\n var angle = getProjectingAngle(path, cur);\n var point = path.v[cur % path._length];\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\n var nextPoint = path.v[(cur + 1) % path._length];\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\n }\n\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\n for (var i = 0; i < frequency; i += 1) {\n var t = (i + 1) / (frequency + 1);\n var dist = pointType === 2 ? Math.sqrt(Math.pow(segment.points[3][0] - segment.points[0][0], 2) + Math.pow(segment.points[3][1] - segment.points[0][1], 2)) : 0;\n var angle = segment.normalAngle(t);\n var point = segment.point(t);\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\n direction = -direction;\n }\n\n return direction;\n }\n\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\n var count = path._length;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n\n if (!path.c) {\n count -= 1;\n }\n\n if (count === 0) return clonedPath;\n var direction = -1;\n var segment = PolynomialBezier.shapeSegment(path, 0);\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\n\n for (var i = 0; i < count; i += 1) {\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\n\n if (i === count - 1 && !path.c) {\n segment = null;\n } else {\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\n }\n\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\n }\n\n return clonedPath;\n };\n\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amplitude = this.amplitude.v;\n var frequency = Math.max(0, Math.round(this.frequency.v));\n var pointType = this.pointsType.v;\n\n if (amplitude !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amplitude, frequency, pointType));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function linearOffset(p1, p2, amount) {\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\n }\n\n function offsetSegment(segment, amount) {\n var p0;\n var p1a;\n var p1b;\n var p2b;\n var p2a;\n var p3;\n var e;\n e = linearOffset(segment.points[0], segment.points[1], amount);\n p0 = e[0];\n p1a = e[1];\n e = linearOffset(segment.points[1], segment.points[2], amount);\n p1b = e[0];\n p2b = e[1];\n e = linearOffset(segment.points[2], segment.points[3], amount);\n p2a = e[0];\n p3 = e[1];\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\n if (p1 === null) p1 = p1a;\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\n if (p2 === null) p2 = p2a;\n return new PolynomialBezier(p0, p1, p2, p3);\n }\n\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\n var p0 = seg1.points[3];\n var p1 = seg2.points[0]; // Bevel\n\n if (lineJoin === 3) return p0; // Connected, they don't need a joint\n\n if (pointEqual(p0, p1)) return p0; // Round\n\n if (lineJoin === 2) {\n var angleOut = -seg1.tangentAngle(1);\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\n return p1;\n } // Miter\n\n\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\n var intersection = lineIntersection(t0, p0, p1, t1);\n\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\n return intersection;\n }\n\n return p0;\n }\n\n function getIntersection(a, b) {\n var intersect = a.intersections(b);\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\n if (intersect.length) return intersect[0];\n return null;\n }\n\n function pruneSegmentIntersection(a, b) {\n var outa = a.slice();\n var outb = b.slice();\n var intersect = getIntersection(a[a.length - 1], b[0]);\n\n if (intersect) {\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\n outb[0] = b[0].split(intersect[1])[1];\n }\n\n if (a.length > 1 && b.length > 1) {\n intersect = getIntersection(a[0], b[b.length - 1]);\n\n if (intersect) {\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\n }\n }\n\n return [outa, outb];\n }\n\n function pruneIntersections(segments) {\n var e;\n\n for (var i = 1; i < segments.length; i += 1) {\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\n segments[i - 1] = e[0];\n segments[i] = e[1];\n }\n\n if (segments.length > 1) {\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\n segments[segments.length - 1] = e[0];\n segments[0] = e[1];\n }\n\n return segments;\n }\n\n function offsetSegmentSplit(segment, amount) {\n /*\r\n We split each bezier segment into smaller pieces based\r\n on inflection points, this ensures the control point\r\n polygon is convex.\r\n (A cubic bezier can have none, one, or two inflection points)\r\n */\n var flex = segment.inflectionPoints();\n var left;\n var right;\n var split;\n var mid;\n\n if (flex.length === 0) {\n return [offsetSegment(segment, amount)];\n }\n\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\n split = segment.split(flex[0]);\n left = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\n }\n\n split = segment.split(flex[0]);\n left = split[0];\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\n split = split[1].split(t);\n mid = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\n }\n\n function OffsetPathModifier() {}\n\n extendPrototype([ShapeModifier], OffsetPathModifier);\n\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\n this.lineJoin = data.lj;\n this._isAnimated = this.amount.effectsSequence.length !== 0;\n };\n\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\n var outputBezier = shapePool.newElement();\n outputBezier.c = inputBezier.c;\n var count = inputBezier.length();\n\n if (!inputBezier.c) {\n count -= 1;\n }\n\n var i;\n var j;\n var segment;\n var multiSegments = [];\n\n for (i = 0; i < count; i += 1) {\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n\n if (!inputBezier.c) {\n for (i = count - 1; i >= 0; i -= 1) {\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n }\n\n multiSegments = pruneIntersections(multiSegments); // Add bezier segments to the output and apply line joints\n\n var lastPoint = null;\n var lastSeg = null;\n\n for (i = 0; i < multiSegments.length; i += 1) {\n var multiSegment = multiSegments[i];\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\n lastSeg = multiSegment[multiSegment.length - 1];\n\n for (j = 0; j < multiSegment.length; j += 1) {\n segment = multiSegment[j];\n\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\n } else {\n outputBezier.setTripleAt(segment.points[0][0], segment.points[0][1], segment.points[1][0], segment.points[1][1], segment.points[0][0], segment.points[0][1], outputBezier.length());\n }\n\n outputBezier.setTripleAt(segment.points[3][0], segment.points[3][1], segment.points[3][0], segment.points[3][1], segment.points[2][0], segment.points[2][1], outputBezier.length());\n lastPoint = segment.points[3];\n }\n }\n\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\n return outputBezier;\n };\n\n OffsetPathModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n var miterLimit = this.miterLimit.v;\n var lineJoin = this.lineJoin;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount, lineJoin, miterLimit));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var BLACK_FLAG_CODE_POINT = 127988;\n var CANCEL_TAG_CODE_POINT = 917631;\n var A_TAG_CODE_POINT = 917601;\n var Z_TAG_CODE_POINT = 917626;\n var VARIATION_SELECTOR_16_CODE_POINT = 65039;\n var ZERO_WIDTH_JOINER_CODE_POINT = 8205;\n var REGIONAL_CHARACTER_A_CODE_POINT = 127462;\n var REGIONAL_CHARACTER_Z_CODE_POINT = 127487;\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(fontData, def) {\n var engine = document.body && def ? 'svg' : 'canvas';\n var helper;\n var fontProps = getFontProperties(fontData);\n\n if (engine === 'svg') {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n helper = tHelper;\n } else {\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\n helper = tCanvasHelper;\n }\n\n function measure(text) {\n if (engine === 'svg') {\n helper.textContent = text;\n return helper.getComputedTextLength();\n }\n\n return helper.measureText(text).width;\n }\n\n return {\n measureText: measure\n };\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n if (!document.body) {\n this.isLoaded = true;\n fontData.list.forEach(function (data) {\n data.helper = createHelper(data);\n data.cache = {};\n });\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(fontArr[i], defs);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName); // Using the char instead of char.charCodeAt(0)\n // to avoid collisions between equal chars\n\n var index = _char2;\n\n if (!fontData.cache[index]) {\n var tHelper = fontData.helper;\n\n if (_char2 === ' ') {\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\n var singleSize = tHelper.measureText('||');\n fontData.cache[index] = (doubleSize - singleSize) / 100;\n } else {\n fontData.cache[index] = tHelper.measureText(_char2) / 100;\n }\n }\n\n return fontData.cache[index] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function getCodePoint(string) {\n var codePoint = 0;\n var first = string.charCodeAt(0);\n\n if (first >= 0xD800 && first <= 0xDBFF) {\n var second = string.charCodeAt(1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return codePoint;\n } // Skin tone modifiers\n\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(charCode) {\n return charCode === ZERO_WIDTH_JOINER_CODE_POINT;\n } // This codepoint may change the appearance of the preceding character.\n // If that is a symbol, dingbat or emoji, U+FE0F forces it to be rendered\n // as a colorful image as compared to a monochrome text variant.\n\n\n function isVariationSelector(charCode) {\n return charCode === VARIATION_SELECTOR_16_CODE_POINT;\n } // The regional indicator symbols are a set of 26 alphabetic Unicode\n /// characters (A–Z) intended to be used to encode ISO 3166-1 alpha-2\n // two-letter country codes in a way that allows optional special treatment.\n\n\n function isRegionalCode(string) {\n var codePoint = getCodePoint(string);\n\n if (codePoint >= REGIONAL_CHARACTER_A_CODE_POINT && codePoint <= REGIONAL_CHARACTER_Z_CODE_POINT) {\n return true;\n }\n\n return false;\n } // Some Emoji implementations represent combinations of\n // two “regional indicator” letters as a single flag symbol.\n\n\n function isFlagEmoji(string) {\n return isRegionalCode(string.substr(0, 2)) && isRegionalCode(string.substr(2, 2));\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n } // Regional flags start with a BLACK_FLAG_CODE_POINT\n // folowed by 5 chars in the TAG range\n // and end with a CANCEL_TAG_CODE_POINT\n\n\n function isRegionalFlag(text, index) {\n var codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint !== BLACK_FLAG_CODE_POINT) {\n return false;\n }\n\n var count = 0;\n index += 2;\n\n while (count < 5) {\n codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint < A_TAG_CODE_POINT || codePoint > Z_TAG_CODE_POINT) {\n return false;\n }\n\n count += 1;\n index += 2;\n }\n\n return getCodePoint(text.substr(index, 2)) === CANCEL_TAG_CODE_POINT;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isFlagEmoji = isFlagEmoji;\n Font.isRegionalCode = isRegionalCode;\n Font.isCombinedCharacter = isCombinedCharacter;\n Font.isRegionalFlag = isRegionalFlag;\n Font.isVariationSelector = isVariationSelector;\n Font.BLACK_FLAG_CODE_POINT = BLACK_FLAG_CODE_POINT;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function SlotManager(animationData) {\n this.animationData = animationData;\n }\n\n SlotManager.prototype.getProp = function (data) {\n if (this.animationData.slots && this.animationData.slots[data.sid]) {\n return Object.assign(data, this.animationData.slots[data.sid].p);\n }\n\n return data;\n };\n\n function slotFactory(animationData) {\n return new SlotManager(animationData);\n }\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var LayerExpressionInterface = expressionsInterfaces('layer');\n var EffectsExpressionInterface = expressionsInterfaces('effects');\n var ShapeExpressionInterface = expressionsInterfaces('shape');\n var TextExpressionInterface = expressionsInterfaces('text');\n var CompExpressionInterface = expressionsInterfaces('comp');\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var FootageInterface = expressionsInterfaces('footage');\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this._volumeMultiplier = 1;\n this._volume = 1;\n this._previousVolume = null;\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\n k: [100]\n }, 1, 0.01, this);\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n\n this._volume = this.lv.v[0];\n var totalVolume = this._volume * this._volumeMultiplier;\n\n if (this._previousVolume !== totalVolume) {\n this._previousVolume = totalVolume;\n this.audio.volume(totalVolume);\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this._volumeMultiplier = volumeValue;\n this._previousVolume = volumeValue * this._volume;\n this.audio.volume(this._previousVolume);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.getElementById = function (ind) {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.ind === ind) {\n return this.elements[i];\n }\n }\n\n return null;\n };\n\n BaseRenderer.prototype.getElementByPath = function (path) {\n var pathValue = path.shift();\n var element;\n\n if (typeof pathValue === 'number') {\n element = this.elements[pathValue];\n } else {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.nm === pathValue) {\n element = this.elements[i];\n break;\n }\n }\n }\n\n if (path.length === 0) {\n return element;\n }\n\n return element.getElementByPath(path);\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.slotManager = slotFactory(animData);\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n var effectTypes = {\n TRANSFORM_EFFECT: 'transformEFfect'\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n var mat = new Matrix();\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _localMatMdf: false,\n _opMdf: false,\n mat: mat,\n localMat: mat,\n localOpacity: 1\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n finalMat.multiply(this.hierarchy[i].finalTransform.mProp.v);\n }\n }\n }\n\n if (this.finalTransform._matMdf) {\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n }\n\n if (this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n }\n },\n renderLocalTransform: function renderLocalTransform() {\n if (this.localTransforms) {\n var i = 0;\n var len = this.localTransforms.length;\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n\n if (!this.finalTransform._localMatMdf || !this.finalTransform._opMdf) {\n while (i < len) {\n if (this.localTransforms[i]._mdf) {\n this.finalTransform._localMatMdf = true;\n }\n\n if (this.localTransforms[i]._opMdf && !this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n this.finalTransform._opMdf = true;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._localMatMdf) {\n var localMat = this.finalTransform.localMat;\n this.localTransforms[0].matrix.clone(localMat);\n\n for (i = 1; i < len; i += 1) {\n var lmat = this.localTransforms[i].matrix;\n localMat.multiply(lmat);\n }\n\n localMat.multiply(this.finalTransform.mat);\n }\n\n if (this.finalTransform._opMdf) {\n var localOp = this.finalTransform.localOpacity;\n\n for (i = 0; i < len; i += 1) {\n localOp *= this.localTransforms[i].opacity * 0.01;\n }\n\n this.finalTransform.localOpacity = localOp;\n }\n }\n },\n searchEffectTransforms: function searchEffectTransforms() {\n if (this.renderableEffectsManager) {\n var transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n\n if (transformEffects.length) {\n this.localTransforms = [];\n this.finalTransform.localMat = new Matrix();\n var i = 0;\n var len = transformEffects.length;\n\n for (i = 0; i < len; i += 1) {\n this.localTransforms.push(transformEffects[i]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true,\n svgLumaHidden: true,\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\n };\n\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n\n if (/firefox/i.test(navigator.userAgent)) {\n ob.svgLumaHidden = false;\n }\n\n return ob;\n }();\n\n var registeredEffects$1 = {};\n var idPrefix = 'filter_result_';\n\n function SVGEffects(elem) {\n var i;\n var source = 'SourceGraphic';\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects$1[type]) {\n var Effect = registeredEffects$1[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n\n if (registeredEffects$1[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n SVGEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect$1(id, effect, countsAsEffect) {\n registeredEffects$1[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n if (this.data.td) {\n this.matteMasks = {};\n var gg = createNS('g');\n gg.setAttribute('id', this.layerId);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n this.globalData.defs.appendChild(gg);\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._localMatMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.localMat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.localOpacity);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n this.searchEffectTransforms();\n },\n getMatte: function getMatte(matteType) {\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\n // It solves animations that have two consecutive layers marked as matte masks.\n // Which is an undefined behavior in AE.\n if (!this.matteMasks) {\n this.matteMasks = {};\n }\n\n if (!this.matteMasks[matteType]) {\n var id = this.layerId + '_' + matteType;\n var filId;\n var fil;\n var useElement;\n var gg;\n\n if (matteType === 1 || matteType === 3) {\n var masker = createNS('mask');\n masker.setAttribute('id', id);\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n masker.appendChild(useElement);\n this.globalData.defs.appendChild(masker);\n\n if (!featureSupport.maskType && matteType === 1) {\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(useElement);\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (matteType === 2) {\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', id);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n maskGrouper.appendChild(useElement);\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n\n this.matteMasks[matteType] = id;\n }\n\n return this.matteMasks[matteType];\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n\n if (this.assetData && this.assetData.sid) {\n this.assetData = globalData.slotManager.getProp(this.assetData);\n }\n\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n mat.multiply(itemData.transformers[k].mProps.v);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n\n if (data.d && data.d.sid) {\n data.d = elem.globalData.slotManager.getProp(data.d);\n }\n\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n var shouldCombineNext = false;\n var currentChars = '';\n\n while (i < len) {\n shouldCombine = shouldCombineNext;\n shouldCombineNext = false;\n charCode = text.charCodeAt(i);\n currentChars = text.charAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n shouldCombine = true; // It's a potential surrogate pair (this is the High surrogate)\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n if (FontManager.isRegionalFlag(text, i)) {\n currentChars = text.substr(i, 14);\n } else {\n secondCharCode = text.charCodeAt(i + 1); // It's a surrogate pair (this is the Low surrogate)\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (FontManager.isModifier(charCode, secondCharCode)) {\n currentChars = text.substr(i, 2);\n shouldCombine = true;\n } else if (FontManager.isFlagEmoji(text.substr(i, 4))) {\n currentChars = text.substr(i, 4);\n } else {\n currentChars = text.substr(i, 2);\n }\n }\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isVariationSelector(charCode)) {\n shouldCombine = true;\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n shouldCombine = true;\n shouldCombineNext = true;\n }\n\n if (shouldCombine) {\n charactersArray[charactersArray.length - 1] += currentChars;\n shouldCombine = false;\n } else {\n charactersArray.push(currentChars);\n }\n\n i += currentChars.length;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.setCurrentData(dData);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n ITextElement.prototype.validateText = function () {\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\n // but since text internal content gets only rendered once and then it's never rerendered,\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\n // Avoiding cloning is preferred since cloning each character shape data is expensive\n if (data.shapes && data.shapes.length) {\n var shape = data.shapes[0];\n\n if (shape.it) {\n var shapeItem = shape.it[shape.it.length - 1];\n\n if (shapeItem.s) {\n shapeItem.s.k[0] = scale;\n shapeItem.s.k[1] = scale;\n }\n }\n }\n\n return data;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = this.buildShapeData(charData.data, documentData.finalSize);\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n if (this.textSpans[i].glyph) {\n var glyph = this.textSpans[i].glyph;\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\n glyph.destroy();\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\n // this might have issues with strokes and might need a different solution\n\n if (charData.t === 1) {\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n }\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n this.validateText();\n\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.width) {\n this.svgElement.setAttribute('width', this.renderConfig.width);\n }\n\n if (this.renderConfig.height) {\n this.svgElement.setAttribute('height', this.renderConfig.height);\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.findIndexByInd = function (ind) {\n var i = 0;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ind === ind) {\n return i;\n }\n }\n\n return -1;\n };\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\n\n if (elementIndex === -1) {\n return;\n }\n\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\n this.buildItem(elementIndex);\n this.addPendingElement(element);\n } else {\n var matteElement = elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\n element.setMatte(matteMask);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\n var matteElement = this.elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[i].tt);\n element.setMatte(matteMask);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n },\n width: config && config.width,\n height: config && config.height,\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n\n var sequence = this.sequences[key];\n\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n\n i += 1;\n }\n\n if (_mdf) {\n sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n sequence.finalTransform.multiply(sequence.transforms[i].transform.mProps.v);\n }\n }\n\n sequence._mdf = _mdf;\n },\n processSequences: function processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n var lumaLoader = function lumaLoader() {\n var id = '__lottie_element_luma_buffer';\n var lumaBuffer = null;\n var lumaBufferCtx = null;\n var svg = null; // This alternate solution has a slight delay before the filter is applied, resulting in a flicker on the first frame.\n // Keeping this here for reference, and in the future, if offscreen canvas supports url filters, this can be used.\n // For now, neither of them work for offscreen canvas, so canvas workers can't support the luma track matte mask.\n // Naming it solution 2 to mark the extra comment lines.\n\n /*\r\n var svgString = [\r\n '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n ].join('');\r\n var blob = new Blob([svgString], { type: 'image/svg+xml' });\r\n var url = URL.createObjectURL(blob);\r\n */\n\n function createLumaSvgFilter() {\n var _svg = createNS('svg');\n\n var fil = createNS('filter');\n var matrix = createNS('feColorMatrix');\n fil.setAttribute('id', id);\n matrix.setAttribute('type', 'matrix');\n matrix.setAttribute('color-interpolation-filters', 'sRGB');\n matrix.setAttribute('values', '0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0');\n fil.appendChild(matrix);\n\n _svg.appendChild(fil);\n\n _svg.setAttribute('id', id + '_svg');\n\n if (featureSupport.svgLumaHidden) {\n _svg.style.display = 'none';\n }\n\n return _svg;\n }\n\n function loadLuma() {\n if (!lumaBuffer) {\n svg = createLumaSvgFilter();\n document.body.appendChild(svg);\n lumaBuffer = createTag('canvas');\n lumaBufferCtx = lumaBuffer.getContext('2d'); // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n lumaBufferCtx.fillStyle = 'rgba(0,0,0,0)';\n lumaBufferCtx.fillRect(0, 0, 1, 1);\n }\n }\n\n function getLuma(canvas) {\n if (!lumaBuffer) {\n loadLuma();\n }\n\n lumaBuffer.width = canvas.width;\n lumaBuffer.height = canvas.height; // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n return lumaBuffer;\n }\n\n return {\n load: loadLuma,\n get: getLuma\n };\n };\n\n function createCanvas(width, height) {\n if (featureSupport.offscreenCanvas) {\n return new OffscreenCanvas(width, height);\n }\n\n var canvas = createTag('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n\n var assetLoader = function () {\n return {\n loadLumaCanvas: lumaLoader.load,\n getLumaCanvas: lumaLoader.get,\n createCanvas: createCanvas\n };\n }();\n\n var registeredEffects = {};\n\n function CVEffects(elem) {\n var i;\n var len = elem.data.ef ? elem.data.ef.length : 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(elem.effectsManager.effectElements[i], elem);\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n CVEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n CVEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect(id, effect) {\n registeredEffects[id] = {\n effect: effect\n };\n }\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n\n this.hasMasks = hasMasks;\n\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n\n var operationsMap = {\n 1: 'source-in',\n 2: 'source-out',\n 3: 'source-in',\n 4: 'source-out'\n };\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n // If the layer is masked we will use two buffers to store each different states of the drawing\n // This solution is not ideal for several reason. But unfortunately, because of the recursive\n // nature of the render tree, it's the only simple way to make sure one inner mask doesn't override an outer mask.\n // TODO: try to reduce the size of these buffers to the size of the composition contaning the layer\n // It might be challenging because the layer most likely is transformed in some way\n if (this.data.tt >= 1) {\n this.buffers = [];\n var canvasContext = this.globalData.canvasContext;\n var bufferCanvas = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas);\n var bufferCanvas2 = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas2);\n\n if (this.data.tt >= 3 && !document._isProxy) {\n assetLoader.loadLumaCanvas();\n }\n }\n\n this.canvasContext = this.globalData.canvasContext;\n this.transformCanvas = this.globalData.transformCanvas;\n this.renderableEffectsManager = new CVEffects(this);\n this.searchEffectTransforms();\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n this.transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n clearCanvas: function clearCanvas(canvasContext) {\n canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\n },\n prepareLayer: function prepareLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[0];\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx); // on the first buffer we store the current state of the global drawing\n\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // The next four lines are to clear the canvas\n // TODO: Check if there is a way to clear the canvas without resetting the transform\n\n this.currentTransform = this.canvasContext.getTransform();\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform);\n }\n },\n exitLayer: function exitLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[1]; // On the second buffer we store the current state of the global drawing\n // that only contains the content of this layer\n // (if it is a composition, it also includes the nested layers)\n\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx);\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // We clear the canvas again\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform); // We draw the mask\n\n var mask = this.comp.getElementById('tp' in this.data ? this.data.tp : this.data.ind - 1);\n mask.renderFrame(true); // We draw the second buffer (that contains the content of this layer)\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0); // If the mask is a Luma matte, we need to do two extra painting operations\n // the _isProxy check is to avoid drawing a fake canvas in workers that will throw an error\n\n if (this.data.tt >= 3 && !document._isProxy) {\n // We copy the painted mask to a buffer that has a color matrix filter applied to it\n // that applies the rgb values to the alpha channel\n var lumaBuffer = assetLoader.getLumaCanvas(this.canvasContext.canvas);\n var lumaBufferCtx = lumaBuffer.getContext('2d');\n lumaBufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\n this.clearCanvas(this.canvasContext); // we repaint the context with the mask applied to it\n\n this.canvasContext.drawImage(lumaBuffer, 0, 0);\n }\n\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt];\n this.canvasContext.drawImage(buffer, 0, 0); // We finally draw the first buffer (that contains the content of the global drawing)\n // We use destination-over to draw the global drawing below the current layer\n\n this.canvasContext.globalCompositeOperation = 'destination-over';\n this.canvasContext.drawImage(this.buffers[0], 0, 0);\n this.canvasContext.setTransform(this.currentTransform); // We reset the globalCompositeOperation to source-over, the standard type of operation\n\n this.canvasContext.globalCompositeOperation = 'source-over';\n }\n },\n renderFrame: function renderFrame(forceRender) {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n if (this.data.td === 1 && !forceRender) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.prepareLayer();\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.localMat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.localOpacity);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n this.exitLayer();\n\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type; // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n\n if (type === 'st' || type === 'gs') {\n renderer.ctxStrokeStyle(type === 'st' ? currentStyle.co : currentStyle.grd); // ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n\n renderer.ctxLineWidth(currentStyle.wi); // ctx.lineWidth = currentStyle.wi;\n\n renderer.ctxLineCap(currentStyle.lc); // ctx.lineCap = currentStyle.lc;\n\n renderer.ctxLineJoin(currentStyle.lj); // ctx.lineJoin = currentStyle.lj;\n\n renderer.ctxMiterLimit(currentStyle.ml || 0); // ctx.miterLimit = currentStyle.ml || 0;\n } else {\n renderer.ctxFillStyle(type === 'fl' ? currentStyle.co : currentStyle.grd); // ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n }\n\n renderer.ctxOpacity(currentStyle.coOp);\n\n if (type !== 'st' && type !== 'gs') {\n ctx.beginPath();\n }\n\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n jLen = elems.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (type === 'st' || type === 'gs') {\n ctx.beginPath();\n\n if (currentStyle.da) {\n ctx.setLineDash(currentStyle.da);\n ctx.lineDashOffset = currentStyle[\"do\"];\n }\n }\n\n nodes = elems[j].trNodes;\n kLen = nodes.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (nodes[k].t === 'm') {\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n } else if (nodes[k].t === 'c') {\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n } else {\n ctx.closePath();\n }\n }\n\n if (type === 'st' || type === 'gs') {\n // ctx.stroke();\n renderer.ctxStroke();\n\n if (currentStyle.da) {\n ctx.setLineDash(this.dashResetter);\n }\n }\n }\n\n if (type !== 'st' && type !== 'gs') {\n // ctx.fill(currentStyle.r);\n this.globalData.renderer.ctxFill(currentStyle.r);\n }\n\n renderer.restore();\n }\n }\n };\n\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n var i;\n var len = items.length - 1;\n var groupTransform;\n groupTransform = parentTransform;\n\n for (i = len; i >= 0; i -= 1) {\n if (items[i].ty === 'tr') {\n groupTransform = data[i].transform;\n this.renderShapeTransform(parentTransform, groupTransform);\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n this.renderPath(items[i], data[i]);\n } else if (items[i].ty === 'fl') {\n this.renderFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'st') {\n this.renderStroke(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n this.renderGradientFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gr') {\n this.renderShape(groupTransform, items[i].it, data[i].it);\n } else if (items[i].ty === 'tm') {//\n }\n }\n\n if (isMain) {\n this.drawLayer();\n }\n };\n\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n\n styledShape.trNodes = shapeNodes;\n }\n };\n\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n\n styleElem.grd = grd;\n }\n\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n\n this.fill = hasFill;\n var hasStroke = false;\n\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n\n cnt += 1;\n }\n };\n\n CVTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n this.globalData.renderer.ctxLineCap('butt'); // ctx.lineCap = 'butt';\n\n this.globalData.renderer.ctxLineJoin('miter'); // ctx.lineJoin = 'miter';\n\n this.globalData.renderer.ctxMiterLimit(4); // ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n var renderer = this.globalData.renderer;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n renderer.save();\n renderer.ctxTransform(renderedLetter.p);\n renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n renderer.ctxFillStyle(renderedLetter.fc);\n lastFill = renderedLetter.fc; // ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n renderer.ctxFillStyle(this.values.fill); // ctx.fillStyle = this.values.fill;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxFill(); // this.globalData.canvasContext.fill();\n /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n renderer.ctxLineWidth(renderedLetter.sw); // ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n renderer.ctxLineWidth(this.values.sWidth); // ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n renderer.ctxStrokeStyle(renderedLetter.sc); // ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n renderer.ctxStrokeStyle(this.values.stroke); // ctx.strokeStyle = this.values.stroke;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxStroke(); // this.globalData.canvasContext.stroke();\n /// ctx.strokeText(letters[i].val,0,0);\n }\n\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVSolidElement.prototype.renderInnerContent = function () {\n // var ctx = this.canvasContext;\n this.globalData.renderer.ctxFillStyle(this.data.sc); // ctx.fillStyle = this.data.sc;\n\n this.globalData.renderer.ctxFillRect(0, 0, this.data.sw, this.data.sh); // ctx.fillRect(0, 0, this.data.sw, this.data.sh);\n //\n };\n\n function CanvasRendererBase() {}\n\n extendPrototype([BaseRenderer], CanvasRendererBase);\n\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n };\n\n CanvasRendererBase.prototype.ctxFillStyle = function (value) {\n this.canvasContext.fillStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxStrokeStyle = function (value) {\n this.canvasContext.strokeStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxLineWidth = function (value) {\n this.canvasContext.lineWidth = value;\n };\n\n CanvasRendererBase.prototype.ctxLineCap = function (value) {\n this.canvasContext.lineCap = value;\n };\n\n CanvasRendererBase.prototype.ctxLineJoin = function (value) {\n this.canvasContext.lineJoin = value;\n };\n\n CanvasRendererBase.prototype.ctxMiterLimit = function (value) {\n this.canvasContext.miterLimit = value;\n };\n\n CanvasRendererBase.prototype.ctxFill = function (rule) {\n this.canvasContext.fill(rule);\n };\n\n CanvasRendererBase.prototype.ctxFillRect = function (x, y, w, h) {\n this.canvasContext.fillRect(x, y, w, h);\n };\n\n CanvasRendererBase.prototype.ctxStroke = function () {\n this.canvasContext.stroke();\n };\n\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n this.contextData.reset();\n };\n\n CanvasRendererBase.prototype.save = function () {\n this.canvasContext.save();\n };\n\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n if (actionFlag) {\n this.globalData.blendMode = 'source-over';\n }\n\n this.contextData.restore(actionFlag);\n };\n\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n\n this.contextData.setContext(this.canvasContext);\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n\n CanvasRendererBase.prototype.updateContainerSize = function (width, height) {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (width) {\n elementWidth = width;\n elementHeight = height;\n this.canvasContext.canvas.width = elementWidth;\n this.canvasContext.canvas.height = elementHeight;\n } else {\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n } else {\n elementWidth = this.canvasContext.canvas.width;\n elementHeight = this.canvasContext.canvas.height;\n }\n\n this.canvasContext.canvas.width = elementWidth * this.renderConfig.dpr;\n this.canvasContext.canvas.height = elementHeight * this.renderConfig.dpr;\n }\n\n var elementRel;\n var animationRel;\n\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n // console.log('NEW: ',num);\n\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\n };\n\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CanvasContext() {\n this.opacity = -1;\n this.transform = createTypedArray('float32', 16);\n this.fillStyle = '';\n this.strokeStyle = '';\n this.lineWidth = '';\n this.lineCap = '';\n this.lineJoin = '';\n this.miterLimit = '';\n this.id = Math.random();\n }\n\n function CVContextData() {\n this.stack = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n var i;\n var len = 15;\n\n for (i = 0; i < len; i += 1) {\n var canvasContext = new CanvasContext();\n this.stack[i] = canvasContext;\n }\n\n this._length = len;\n this.nativeContext = null;\n this.transformMat = new Matrix();\n this.currentOpacity = 1; //\n\n this.currentFillStyle = '';\n this.appliedFillStyle = ''; //\n\n this.currentStrokeStyle = '';\n this.appliedStrokeStyle = ''; //\n\n this.currentLineWidth = '';\n this.appliedLineWidth = ''; //\n\n this.currentLineCap = '';\n this.appliedLineCap = ''; //\n\n this.currentLineJoin = '';\n this.appliedLineJoin = ''; //\n\n this.appliedMiterLimit = '';\n this.currentMiterLimit = '';\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.stack[i] = new CanvasContext();\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.stack[this.cArrPos].opacity = 1;\n };\n\n CVContextData.prototype.restore = function (forceRestore) {\n this.cArrPos -= 1;\n var currentContext = this.stack[this.cArrPos];\n var transform = currentContext.transform;\n var i;\n var arr = this.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = transform[i];\n }\n\n if (forceRestore) {\n this.nativeContext.restore();\n var prevStack = this.stack[this.cArrPos + 1];\n this.appliedFillStyle = prevStack.fillStyle;\n this.appliedStrokeStyle = prevStack.strokeStyle;\n this.appliedLineWidth = prevStack.lineWidth;\n this.appliedLineCap = prevStack.lineCap;\n this.appliedLineJoin = prevStack.lineJoin;\n this.appliedMiterLimit = prevStack.miterLimit;\n }\n\n this.nativeContext.setTransform(transform[0], transform[1], transform[4], transform[5], transform[12], transform[13]);\n\n if (forceRestore || currentContext.opacity !== -1 && this.currentOpacity !== currentContext.opacity) {\n this.nativeContext.globalAlpha = currentContext.opacity;\n this.currentOpacity = currentContext.opacity;\n }\n\n this.currentFillStyle = currentContext.fillStyle;\n this.currentStrokeStyle = currentContext.strokeStyle;\n this.currentLineWidth = currentContext.lineWidth;\n this.currentLineCap = currentContext.lineCap;\n this.currentLineJoin = currentContext.lineJoin;\n this.currentMiterLimit = currentContext.miterLimit;\n };\n\n CVContextData.prototype.save = function (saveOnNativeFlag) {\n if (saveOnNativeFlag) {\n this.nativeContext.save();\n }\n\n var props = this.cTr.props;\n\n if (this._length <= this.cArrPos) {\n this.duplicate();\n }\n\n var currentStack = this.stack[this.cArrPos];\n var i;\n\n for (i = 0; i < 16; i += 1) {\n currentStack.transform[i] = props[i];\n }\n\n this.cArrPos += 1;\n var newStack = this.stack[this.cArrPos];\n newStack.opacity = currentStack.opacity;\n newStack.fillStyle = currentStack.fillStyle;\n newStack.strokeStyle = currentStack.strokeStyle;\n newStack.lineWidth = currentStack.lineWidth;\n newStack.lineCap = currentStack.lineCap;\n newStack.lineJoin = currentStack.lineJoin;\n newStack.miterLimit = currentStack.miterLimit;\n };\n\n CVContextData.prototype.setOpacity = function (value) {\n this.stack[this.cArrPos].opacity = value;\n };\n\n CVContextData.prototype.setContext = function (value) {\n this.nativeContext = value;\n };\n\n CVContextData.prototype.fillStyle = function (value) {\n if (this.stack[this.cArrPos].fillStyle !== value) {\n this.currentFillStyle = value;\n this.stack[this.cArrPos].fillStyle = value;\n }\n };\n\n CVContextData.prototype.strokeStyle = function (value) {\n if (this.stack[this.cArrPos].strokeStyle !== value) {\n this.currentStrokeStyle = value;\n this.stack[this.cArrPos].strokeStyle = value;\n }\n };\n\n CVContextData.prototype.lineWidth = function (value) {\n if (this.stack[this.cArrPos].lineWidth !== value) {\n this.currentLineWidth = value;\n this.stack[this.cArrPos].lineWidth = value;\n }\n };\n\n CVContextData.prototype.lineCap = function (value) {\n if (this.stack[this.cArrPos].lineCap !== value) {\n this.currentLineCap = value;\n this.stack[this.cArrPos].lineCap = value;\n }\n };\n\n CVContextData.prototype.lineJoin = function (value) {\n if (this.stack[this.cArrPos].lineJoin !== value) {\n this.currentLineJoin = value;\n this.stack[this.cArrPos].lineJoin = value;\n }\n };\n\n CVContextData.prototype.miterLimit = function (value) {\n if (this.stack[this.cArrPos].miterLimit !== value) {\n this.currentMiterLimit = value;\n this.stack[this.cArrPos].miterLimit = value;\n }\n };\n\n CVContextData.prototype.transform = function (props) {\n this.transformMat.cloneFromProps(props); // Taking the last transform value from the stored stack of transforms\n\n var currentTransform = this.cTr; // Applying the last transform value after the new transform to respect the order of transformations\n\n this.transformMat.multiply(currentTransform); // Storing the new transformed value in the stored transform\n\n currentTransform.cloneFromProps(this.transformMat.props);\n var trProps = currentTransform.props; // Applying the new transform to the canvas\n\n this.nativeContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CVContextData.prototype.opacity = function (op) {\n var currentOpacity = this.stack[this.cArrPos].opacity;\n currentOpacity *= op < 0 ? 0 : op;\n\n if (this.stack[this.cArrPos].opacity !== currentOpacity) {\n if (this.currentOpacity !== op) {\n this.nativeContext.globalAlpha = op;\n this.currentOpacity = op;\n }\n\n this.stack[this.cArrPos].opacity = currentOpacity;\n }\n };\n\n CVContextData.prototype.fill = function (rule) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fill(rule);\n };\n\n CVContextData.prototype.fillRect = function (x, y, w, h) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fillRect(x, y, w, h);\n };\n\n CVContextData.prototype.stroke = function () {\n if (this.appliedStrokeStyle !== this.currentStrokeStyle) {\n this.appliedStrokeStyle = this.currentStrokeStyle;\n this.nativeContext.strokeStyle = this.appliedStrokeStyle;\n }\n\n if (this.appliedLineWidth !== this.currentLineWidth) {\n this.appliedLineWidth = this.currentLineWidth;\n this.nativeContext.lineWidth = this.appliedLineWidth;\n }\n\n if (this.appliedLineCap !== this.currentLineCap) {\n this.appliedLineCap = this.currentLineCap;\n this.nativeContext.lineCap = this.appliedLineCap;\n }\n\n if (this.appliedLineJoin !== this.currentLineJoin) {\n this.appliedLineJoin = this.currentLineJoin;\n this.nativeContext.lineJoin = this.appliedLineJoin;\n }\n\n if (this.appliedMiterLimit !== this.currentMiterLimit) {\n this.appliedMiterLimit = this.currentMiterLimit;\n this.nativeContext.miterLimit = this.appliedMiterLimit;\n }\n\n this.nativeContext.stroke();\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.layers = null;\n this.elements = null;\n };\n\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || '',\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n\n if (this.renderConfig.clearCanvas) {\n this.ctxTransform = this.contextData.transform.bind(this.contextData);\n this.ctxOpacity = this.contextData.opacity.bind(this.contextData);\n this.ctxFillStyle = this.contextData.fillStyle.bind(this.contextData);\n this.ctxStrokeStyle = this.contextData.strokeStyle.bind(this.contextData);\n this.ctxLineWidth = this.contextData.lineWidth.bind(this.contextData);\n this.ctxLineCap = this.contextData.lineCap.bind(this.contextData);\n this.ctxLineJoin = this.contextData.lineJoin.bind(this.contextData);\n this.ctxMiterLimit = this.contextData.miterLimit.bind(this.contextData);\n this.ctxFill = this.contextData.fill.bind(this.contextData);\n this.ctxFillRect = this.contextData.fillRect.bind(this.contextData);\n this.ctxStroke = this.contextData.stroke.bind(this.contextData);\n this.save = this.contextData.save.bind(this.contextData);\n }\n }\n\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n\n if (this.matteElement) {\n this.matteElement = null;\n }\n\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n HSolidElement.prototype.createContent = function () {\n var rect;\n\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n\n return point;\n };\n\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n\n if (len <= 1) {\n return;\n }\n\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n\n a |= 0; // eslint-disable-line no-bitwise\n\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {//\n } else if (a === 0) {\n t = -c / b;\n\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n };\n\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\n }\n }\n };\n\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\n var width = 0;\n\n if (widthProperty.keyframes) {\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\n var kfw = widthProperty.keyframes[i].s;\n\n if (kfw > width) {\n width = kfw;\n }\n }\n\n width *= widthProperty.mult;\n } else {\n width = widthProperty.v * widthProperty.mult;\n }\n\n boundingBox.x -= width;\n boundingBox.xMax += width;\n boundingBox.y -= width;\n boundingBox.yMax += width;\n };\n\n HShapeElement.prototype.currentBoxContains = function (box) {\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n };\n\n HShapeElement.prototype.renderInnerContent = function () {\n this._renderShapeFrame();\n\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n var tempBoundingBox = this.tempBoundingBox;\n var max = 999999;\n tempBoundingBox.x = max;\n tempBoundingBox.xMax = -max;\n tempBoundingBox.y = max;\n tempBoundingBox.yMax = -max;\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n if (this.currentBoxContains(tempBoundingBox)) {\n return;\n }\n\n var changed = false;\n\n if (this.currentBBox.w !== tempBoundingBox.width) {\n this.currentBBox.w = tempBoundingBox.width;\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\n changed = true;\n }\n\n if (this.currentBBox.h !== tempBoundingBox.height) {\n this.currentBBox.h = tempBoundingBox.height;\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\n changed = true;\n }\n\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n this.currentBBox.w = tempBoundingBox.width;\n this.currentBBox.h = tempBoundingBox.height;\n this.currentBBox.x = tempBoundingBox.x;\n this.currentBBox.y = tempBoundingBox.y;\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n var shapeStyle = this.shapeCont.style;\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n shapeStyle.transform = shapeTransform;\n shapeStyle.webkitTransform = shapeTransform;\n }\n }\n };\n\n function HTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.textPaths = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n this.renderType = 'svg';\n this.isMasked = false;\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n HTextElement.prototype.createContent = function () {\n this.isMasked = this.checkMasks();\n\n if (this.isMasked) {\n this.renderType = 'svg';\n this.compW = this.comp.data.w;\n this.compH = this.comp.data.h;\n this.svgElement.setAttribute('width', this.compW);\n this.svgElement.setAttribute('height', this.compH);\n var g = createNS('g');\n this.maskedElement.appendChild(g);\n this.innerElem = g;\n } else {\n this.renderType = 'html';\n this.innerElem = this.layerElement;\n }\n\n this.checkParenting();\n };\n\n HTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var innerElemStyle = this.innerElem.style;\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n innerElemStyle.fill = textColor;\n innerElemStyle.color = textColor;\n\n if (documentData.sc) {\n innerElemStyle.stroke = this.buildColor(documentData.sc);\n innerElemStyle.strokeWidth = documentData.sw + 'px';\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (!this.globalData.fontManager.chars) {\n innerElemStyle.fontSize = documentData.finalSize + 'px';\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\n\n if (fontData.fClass) {\n this.innerElem.className = fontData.fClass;\n } else {\n innerElemStyle.fontFamily = fontData.fFamily;\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n innerElemStyle.fontStyle = fStyle;\n innerElemStyle.fontWeight = fWeight;\n }\n }\n\n var i;\n var len;\n var letters = documentData.l;\n len = letters.length;\n var tSpan;\n var tParent;\n var tCont;\n var matrixHelper = this.mHelper;\n var shapes;\n var shapeStr = '';\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.globalData.fontManager.chars) {\n if (!this.textPaths[cnt]) {\n tSpan = createNS('path');\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n tSpan.setAttribute('stroke-miterlimit', '4');\n } else {\n tSpan = this.textPaths[cnt];\n }\n\n if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tCont = tParent.children[0];\n } else {\n tParent = createTag('div');\n tParent.style.lineHeight = 0;\n tCont = createNS('svg');\n tCont.appendChild(tSpan);\n styleDiv(tParent);\n }\n }\n } else if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tSpan = this.textPaths[cnt];\n } else {\n tParent = createTag('span');\n styleDiv(tParent);\n tSpan = createTag('span');\n styleDiv(tSpan);\n tParent.appendChild(tSpan);\n }\n } else {\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n } // tSpan.setAttribute('visibility', 'hidden');\n\n\n if (this.globalData.fontManager.chars) {\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var shapeData;\n\n if (charData) {\n shapeData = charData.data;\n } else {\n shapeData = null;\n }\n\n matrixHelper.reset();\n\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n shapes = shapeData.shapes[0].it;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n shapeStr = this.createPathShape(matrixHelper, shapes);\n tSpan.setAttribute('d', shapeStr);\n }\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n\n if (shapeData && shapeData.shapes) {\n // document.body.appendChild is needed to get exact measure of shape\n document.body.appendChild(tCont);\n var boundingBox = tCont.getBBox();\n tCont.setAttribute('width', boundingBox.width + 2);\n tCont.setAttribute('height', boundingBox.height + 2);\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n var tContStyle = tCont.style;\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n tContStyle.transform = tContTranslation;\n tContStyle.webkitTransform = tContTranslation;\n letters[i].yOffset = boundingBox.y - 1;\n } else {\n tCont.setAttribute('width', 1);\n tCont.setAttribute('height', 1);\n }\n\n tParent.appendChild(tCont);\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } else {\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent); //\n\n var tStyle = tSpan.style;\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n tStyle.transform = tSpanTranslation;\n tStyle.webkitTransform = tSpanTranslation;\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } //\n\n\n if (!this.isMasked) {\n this.textSpans[cnt] = tParent;\n } else {\n this.textSpans[cnt] = tSpan;\n }\n\n this.textSpans[cnt].style.display = 'block';\n this.textPaths[cnt] = tSpan;\n cnt += 1;\n }\n\n while (cnt < this.textSpans.length) {\n this.textSpans[cnt].style.display = 'none';\n cnt += 1;\n }\n };\n\n HTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var svgStyle;\n\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n textSpan.style.opacity = renderedLetter.o;\n\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n\n var margin = 1;\n\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\n this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n this.finalTransform = {\n mProp: this\n };\n }\n\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n\n HCameraElement.prototype.createElements = function () {};\n\n HCameraElement.prototype.hide = function () {};\n\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n\n if (this.hierarchy) {\n len = this.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\n this.mat.reset();\n\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n\n if (this.a) {\n var diffVector;\n\n if (this.p) {\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\n } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n\n this.mat.clone(this._prevMat);\n }\n }\n\n this._isFirstFrame = false;\n };\n\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n HCameraElement.prototype.destroy = function () {};\n\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n\n if (!newDOMElement) {\n return;\n }\n\n var layer = this.layers[pos];\n\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n\n i += 1;\n }\n\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n\n return new HShapeElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n\n return new HTextElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n\n return new HImageElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n\n return new HSolidElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n\n i += 1;\n }\n\n return null;\n };\n\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n\n len = this.threeDElements.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n\n break;\n }\n\n i += 1;\n }\n };\n\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData; // Mask animation\n\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n },\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([HybridRendererBase], HybridRenderer);\n\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n /* eslint-disable */\n\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n\n d *= width; // denominator and generating a\n\n x = arc4.g(1); // new least-significant-byte.\n }\n\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n\n d /= 2; // right using integer math until\n\n x >>>= 1; // we have exactly the desired bits.\n }\n\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n } // Only provide the .state method if requested via options.state.\n\n\n prng.state = function () {\n return copy(arc4, {});\n };\n } // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n } // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n\n math['seed' + rngname] = seedrandom; //\n // ARC4\n //\n // An ARC4 implementation. The constructor takes a key in the form of\n // an array of at most (width) integers that should be 0 <= x < (width).\n //\n // The g(count) method returns a pseudorandom integer that concatenates\n // the next (count) outputs from ARC4. Its return value is a number x\n // that is in the range 0 <= x < (width ^ count).\n //\n\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = []; // The empty key [] is treated as [0].\n\n if (!keylen) {\n key = [keylen++];\n } // Set up S using the standard key scheduling algorithm.\n\n\n while (i < width) {\n s[i] = i++;\n }\n\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n } // The \"g\" method returns the next (count) outputs as one number.\n\n\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n\n me.i = i;\n me.j = j;\n return r; // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n } //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n\n\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n } //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n\n\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$2(obj),\n prop;\n\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n } //\n // mixkey()\n // Mixes a string seed into a key that is an array of integers, and\n // returns a shortened string seed that is equivalent to the result key.\n //\n\n\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n\n return tostring(key);\n } //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n\n\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n } //\n // tostring()\n // Converts an array of charcodes to a string\n //\n\n\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\n } //\n // When seedrandom.js is loaded, we immediately mix a few bits\n // from the built-in RNG into the entropy pool. Because we do\n // not want to interfere with deterministic PRNG state later,\n // seedrandom will not call math.random on its own again after\n // initialization.\n //\n\n\n mixkey(math.random(), pool); //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n // End anonymous scope, and pass initial values.\n }\n\n ;\n\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n var _lottieGlobal = {};\n initialize$2(BMMath);\n\n function resetFrame() {\n _lottieGlobal = {};\n }\n\n function $bm_isInstanceOfArray(arr) {\n return arr.constructor === Array || arr.constructor === Float32Array;\n }\n\n function isNumerable(tOfV, v) {\n return tOfV === 'number' || v instanceof Number || tOfV === 'boolean' || tOfV === 'string';\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof$1(a);\n\n if (tOfA === 'number' || a instanceof Number || tOfA === 'boolean') {\n return -a;\n }\n\n if ($bm_isInstanceOfArray(a)) {\n var i;\n var lenA = a.length;\n var retArr = [];\n\n for (i = 0; i < lenA; i += 1) {\n retArr[i] = -a[i];\n }\n\n return retArr;\n }\n\n if (a.propType) {\n return a.v;\n }\n\n return -a;\n }\n\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n function sum(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b) || tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] += b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a + b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] + b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n var add = sum;\n\n function sub(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n if (tOfA === 'string') {\n a = parseInt(a, 10);\n }\n\n if (tOfB === 'string') {\n b = parseInt(b, 10);\n }\n\n return a - b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] -= b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a - b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] - b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n function mul(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function div(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n\n return a % b;\n }\n\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n\n return Math.min(Math.max(num, min), max);\n }\n\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n\n var radians_to_degrees = radiansToDegrees;\n\n function degreesToRadians(val) {\n return val * degToRads;\n }\n\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n\n return Math.sqrt(addedLength);\n }\n\n function normalize(vec) {\n return div(vec, length(vec));\n }\n\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n\n if (max === min) {\n h = 0; // achromatic\n\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, val[3]];\n }\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n\n if (s === 0) {\n r = l; // achromatic\n\n b = l; // achromatic\n\n g = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [r, g, b, val[3]];\n }\n\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n\n if (t <= tMin) {\n return value1;\n }\n\n if (t >= tMax) {\n return value2;\n }\n\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n\n return arr;\n }\n\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n\n if (max.length) {\n var i;\n var len = max.length;\n\n if (!min) {\n min = createTypedArray('float32', len);\n }\n\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n\n return arr;\n }\n\n if (min === undefined) {\n min = 0;\n }\n\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n }\n\n return path;\n }\n\n function initiateExpression(elem, data, property) {\n // Bail out if we don't want expressions\n function noOp(_value) {\n return _value;\n }\n\n if (!elem.globalData.renderConfig.runExpressions) {\n return noOp;\n }\n\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n var _needsRandom = val.indexOf('random') !== -1;\n\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n }\n\n iWiggle += 1;\n } // var rnd2 = BMMath.random();\n\n\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n\n return arr;\n }\n\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n\n var mult = fn(t);\n\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n\n return arr;\n }\n\n return (val2 - val1) * mult + val1;\n }\n\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n\n break;\n }\n }\n\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n\n return obKey;\n }\n\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return fr / fps;\n }\n\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return t * fps;\n }\n\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n\n return value.substring(init, end);\n }\n\n return '';\n }\n\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n\n return value.substr(init, end);\n }\n\n return '';\n }\n\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\n }\n }\n\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n\n if (!effect) {\n effect = thisLayer(4);\n }\n\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n\n expression_function();\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n } // Bundlers will see these as dead code and unless we reference them\n\n\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\n return executeExpression;\n }\n\n ob.initiateExpression = initiateExpression;\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath, _lottieGlobal];\n ob.resetFrame = resetFrame;\n return ob;\n }();\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n ob.resetFrame = ExpressionManager.resetFrame;\n\n function initExpressions(animation) {\n var stackCount = 0;\n var registers = [];\n\n function pushExpression() {\n stackCount += 1;\n }\n\n function popExpression() {\n stackCount -= 1;\n\n if (stackCount === 0) {\n releaseInstances();\n }\n }\n\n function registerExpressionProperty(expression) {\n if (registers.indexOf(expression) === -1) {\n registers.push(expression);\n }\n }\n\n function releaseInstances() {\n var i;\n var len = registers.length;\n\n for (i = 0; i < len; i += 1) {\n registers[i].release();\n }\n\n registers.length = 0;\n }\n\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n animation.renderer.globalData.pushExpression = pushExpression;\n animation.renderer.globalData.popExpression = popExpression;\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n }\n\n return ob;\n }();\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (!_sourceText || stringValue !== _sourceText.value) {\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n\n Object.defineProperty(_sourceText, 'style', {\n get: function get() {\n return {\n fillColor: elem.textProperty.currentData.fc\n };\n }\n });\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n var propertyNameIndex = value.indexOf(currentPropertyName);\n\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n var interfaces = {\n layer: LayerExpressionInterface,\n effects: EffectsExpressionInterface,\n comp: CompExpressionInterface,\n shape: ShapeExpressionInterface,\n text: TextExpressionInterface,\n footage: FootageInterface\n };\n\n function getInterface(type) {\n return interfaces[type] || null;\n }\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n\n return this._cachingAtTime.value;\n }\n\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n\n if (v1.length) {\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n\n return speed;\n }\n\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n\n var delta = -0.001; // frameNum += this.elem.data.st;\n\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n\n return velocity;\n }\n\n function getStaticValueAtTime() {\n return this.pv;\n }\n\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var firstKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n\n return ret;\n }\n\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n\n return ret;\n }\n\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var lastKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n\n return ret;\n }\n\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return ret;\n }\n\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n\n if (samples <= 1) {\n return this.pv;\n }\n\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n\n var sampleValue;\n\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n\n i += 1;\n }\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n\n return value;\n }\n\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n } /// /\n\n\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\n }\n\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n\n return matrix; /// /\n }\n\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n\n var propertyGetProp = PropertyFactory.getProp;\n\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n\n return prop;\n };\n\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n\n return this._cachingAtTime.shapeValue;\n }\n\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n function ShapeExpressions() {}\n\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n\n i += 1;\n }\n\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n if (magnitude === 0) {\n return [0, 0];\n }\n\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n };\n }\n\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n\n return null;\n }\n\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n\n return currentValue;\n };\n\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n\n function initialize() {\n addDecorator();\n }\n\n function SVGComposableEffect() {}\n\n SVGComposableEffect.prototype = {\n createMergeNode: function createMergeNode(resultId, ins) {\n var feMerge = createNS('feMerge');\n feMerge.setAttribute('result', resultId);\n var feMergeNode;\n var i;\n\n for (i = 0; i < ins.length; i += 1) {\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', ins[i]);\n feMerge.appendChild(feMergeNode);\n feMerge.appendChild(feMergeNode);\n }\n\n return feMerge;\n }\n };\n\n var linearFilterValue = '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0';\n\n function SVGTintFilter(filter, filterManager, elem, id, source) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', linearFilterValue + ' 1 0');\n this.linearFilter = feColorMatrix;\n feColorMatrix.setAttribute('result', id + '_tint_1');\n filter.appendChild(feColorMatrix);\n feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id + '_tint_2');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\n filter.appendChild(feMerge);\n }\n\n extendPrototype([SVGComposableEffect], SVGTintFilter);\n\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var colorBlack = this.filterManager.effectElements[0].p.v;\n var colorWhite = this.filterManager.effectElements[1].p.v;\n var opacity = this.filterManager.effectElements[2].p.v / 100;\n this.linearFilter.setAttribute('values', linearFilterValue + ' ' + opacity + ' 0');\n this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 1 0');\n }\n };\n\n function SVGFillFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id);\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n }\n\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color = this.filterManager.effectElements[2].p.v;\n var opacity = this.filterManager.effectElements[6].p.v;\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGStrokeEffect(fil, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.elem = elem;\n this.paths = [];\n }\n\n SVGStrokeEffect.prototype.initialize = function () {\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n var path;\n var groupPath;\n var i;\n var len;\n\n if (this.filterManager.effectElements[1].p.v === 1) {\n len = this.elem.maskManager.masksProperties.length;\n i = 0;\n } else {\n i = this.filterManager.effectElements[0].p.v - 1;\n len = i + 1;\n }\n\n groupPath = createNS('g');\n groupPath.setAttribute('fill', 'none');\n groupPath.setAttribute('stroke-linecap', 'round');\n groupPath.setAttribute('stroke-dashoffset', 1);\n\n for (i; i < len; i += 1) {\n path = createNS('path');\n groupPath.appendChild(path);\n this.paths.push({\n p: path,\n m: i\n });\n }\n\n if (this.filterManager.effectElements[10].p.v === 3) {\n var mask = createNS('mask');\n var id = createElementID();\n mask.setAttribute('id', id);\n mask.setAttribute('mask-type', 'alpha');\n mask.appendChild(groupPath);\n this.elem.globalData.defs.appendChild(mask);\n var g = createNS('g');\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\n while (elemChildren[0]) {\n g.appendChild(elemChildren[0]);\n }\n\n this.elem.layerElement.appendChild(g);\n this.masker = mask;\n groupPath.setAttribute('stroke', '#fff');\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (this.filterManager.effectElements[10].p.v === 2) {\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\n while (elemChildren.length) {\n this.elem.layerElement.removeChild(elemChildren[0]);\n }\n }\n\n this.elem.layerElement.appendChild(groupPath);\n this.elem.layerElement.removeAttribute('mask');\n groupPath.setAttribute('stroke', '#fff');\n }\n\n this.initialized = true;\n this.pathMasker = groupPath;\n };\n\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n if (!this.initialized) {\n this.initialize();\n }\n\n var i;\n var len = this.paths.length;\n var mask;\n var path;\n\n for (i = 0; i < len; i += 1) {\n if (this.paths[i].m !== -1) {\n mask = this.elem.maskManager.viewData[this.paths[i].m];\n path = this.paths[i].p;\n\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n path.setAttribute('d', mask.lastPath);\n }\n\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n var dasharrayValue;\n\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var l = path.getTotalLength();\n dasharrayValue = '0 0 0 ' + l * s + ' ';\n var lineLength = l * (e - s);\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n var units = Math.floor(lineLength / segment);\n var j;\n\n for (j = 0; j < units; j += 1) {\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n }\n\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\n } else {\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n }\n\n path.setAttribute('stroke-dasharray', dasharrayValue);\n }\n }\n }\n\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n }\n\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n }\n\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n var color = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n }\n }\n };\n\n function SVGTritoneFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n filter.appendChild(feColorMatrix);\n var feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n this.matrixFilter = feComponentTransfer;\n var feFuncR = createNS('feFuncR');\n feFuncR.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncR);\n this.feFuncR = feFuncR;\n var feFuncG = createNS('feFuncG');\n feFuncG.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncG);\n this.feFuncG = feFuncG;\n var feFuncB = createNS('feFuncB');\n feFuncB.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncB);\n this.feFuncB = feFuncB;\n filter.appendChild(feComponentTransfer);\n }\n\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color1 = this.filterManager.effectElements[0].p.v;\n var color2 = this.filterManager.effectElements[1].p.v;\n var color3 = this.filterManager.effectElements[2].p.v;\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n this.feFuncR.setAttribute('tableValues', tableR);\n this.feFuncG.setAttribute('tableValues', tableG);\n this.feFuncB.setAttribute('tableValues', tableB);\n }\n };\n\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var effectElements = this.filterManager.effectElements;\n var feComponentTransfer = createNS('feComponentTransfer'); // Red\n\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n } // Green\n\n\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n } // Blue\n\n\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n } // Alpha\n\n\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n } // RGB\n\n\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n }\n\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n filter.appendChild(feComponentTransfer);\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n }\n\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n var feFunc = createNS(type);\n feFunc.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFunc);\n return feFunc;\n };\n\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n var cnt = 0;\n var segments = 256;\n var perc;\n var min = Math.min(inputBlack, inputWhite);\n var max = Math.max(inputBlack, inputWhite);\n var table = Array.call(null, {\n length: segments\n });\n var colorValue;\n var pos = 0;\n var outputDelta = outputWhite - outputBlack;\n var inputDelta = inputWhite - inputBlack;\n\n while (cnt <= 256) {\n perc = cnt / 256;\n\n if (perc <= min) {\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n } else if (perc >= max) {\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n } else {\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n }\n\n table[pos] = colorValue;\n pos += 1;\n cnt += 256 / (segments - 1);\n }\n\n return table.join(' ');\n };\n\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var val;\n var effectElements = this.filterManager.effectElements;\n\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n this.feFuncRComposed.setAttribute('tableValues', val);\n this.feFuncGComposed.setAttribute('tableValues', val);\n this.feFuncBComposed.setAttribute('tableValues', val);\n }\n\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n this.feFuncR.setAttribute('tableValues', val);\n }\n\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n this.feFuncG.setAttribute('tableValues', val);\n }\n\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n this.feFuncB.setAttribute('tableValues', val);\n }\n\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n this.feFuncA.setAttribute('tableValues', val);\n }\n }\n };\n\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\n var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\n var filterSize = filterManager.data.fs || globalFilterSize;\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\n filter.setAttribute('height', filterSize.height || globalFilterSize.height);\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\n feGaussianBlur.setAttribute('stdDeviation', '0');\n this.feGaussianBlur = feGaussianBlur;\n filter.appendChild(feGaussianBlur);\n var feOffset = createNS('feOffset');\n feOffset.setAttribute('dx', '25');\n feOffset.setAttribute('dy', '0');\n feOffset.setAttribute('in', id + '_drop_shadow_1');\n feOffset.setAttribute('result', id + '_drop_shadow_2');\n this.feOffset = feOffset;\n filter.appendChild(feOffset);\n var feFlood = createNS('feFlood');\n feFlood.setAttribute('flood-color', '#00ff00');\n feFlood.setAttribute('flood-opacity', '1');\n feFlood.setAttribute('result', id + '_drop_shadow_3');\n this.feFlood = feFlood;\n filter.appendChild(feFlood);\n var feComposite = createNS('feComposite');\n feComposite.setAttribute('in', id + '_drop_shadow_3');\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\n feComposite.setAttribute('operator', 'in');\n feComposite.setAttribute('result', id + '_drop_shadow_4');\n filter.appendChild(feComposite);\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\n filter.appendChild(feMerge); //\n }\n\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\n\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n }\n\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n var col = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n }\n\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n }\n\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var distance = this.filterManager.effectElements[3].p.v;\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n var x = distance * Math.cos(angle);\n var y = distance * Math.sin(angle);\n this.feOffset.setAttribute('dx', x);\n this.feOffset.setAttribute('dy', y);\n }\n }\n };\n\n var _svgMatteSymbols = [];\n\n function SVGMatte3Effect(filterElem, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.filterElem = filterElem;\n this.elem = elem;\n elem.matteElement = createNS('g');\n elem.matteElement.appendChild(elem.layerElement);\n elem.matteElement.appendChild(elem.transformedElement);\n elem.baseElement = elem.matteElement;\n }\n\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\n var i = 0;\n var len = _svgMatteSymbols.length;\n\n while (i < len) {\n if (_svgMatteSymbols[i] === mask) {\n return _svgMatteSymbols[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n var parentNode = mask.layerElement.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n var children = parentNode.children;\n var i = 0;\n var len = children.length;\n\n while (i < len) {\n if (children[i] === mask.layerElement) {\n break;\n }\n\n i += 1;\n }\n\n var nextChild;\n\n if (i <= len - 2) {\n nextChild = children[i + 1];\n }\n\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n\n if (nextChild) {\n parentNode.insertBefore(useElem, nextChild);\n } else {\n parentNode.appendChild(useElem);\n }\n };\n\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n if (!this.findSymbol(mask)) {\n var symbolId = createElementID();\n var masker = createNS('mask');\n masker.setAttribute('id', mask.layerId);\n masker.setAttribute('mask-type', 'alpha');\n\n _svgMatteSymbols.push(mask);\n\n var defs = elem.globalData.defs;\n defs.appendChild(masker);\n var symbol = createNS('symbol');\n symbol.setAttribute('id', symbolId);\n this.replaceInParent(mask, symbolId);\n symbol.appendChild(mask.layerElement);\n defs.appendChild(symbol);\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n masker.appendChild(useElem);\n mask.data.hd = false;\n mask.show();\n }\n\n elem.setMatte(mask.layerId);\n };\n\n SVGMatte3Effect.prototype.initialize = function () {\n var ind = this.filterManager.effectElements[0].p.v;\n var elements = this.elem.comp.elements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i] && elements[i].data.ind === ind) {\n this.setElementAsMask(this.elem, elements[i]);\n }\n\n i += 1;\n }\n\n this.initialized = true;\n };\n\n SVGMatte3Effect.prototype.renderFrame = function () {\n if (!this.initialized) {\n this.initialize();\n }\n };\n\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\n filter.setAttribute('x', '-100%');\n filter.setAttribute('y', '-100%');\n filter.setAttribute('width', '300%');\n filter.setAttribute('height', '300%');\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('result', id);\n filter.appendChild(feGaussianBlur);\n this.feGaussianBlur = feGaussianBlur;\n }\n\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n // Empirical value, matching AE's blur appearance.\n var kBlurrinessToSigma = 0.3;\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n //\n // 1 -> horizontal & vertical\n // 2 -> horizontal only\n // 3 -> vertical only\n //\n\n var dimensions = this.filterManager.effectElements[1].p.v;\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\n //\n // 0 -> off -> duplicate\n // 1 -> on -> wrap\n\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n }\n };\n\n function TransformEffect() {}\n\n TransformEffect.prototype.init = function (effectsManager) {\n this.effectsManager = effectsManager;\n this.type = effectTypes.TRANSFORM_EFFECT;\n this.matrix = new Matrix();\n this.opacity = -1;\n this._mdf = false;\n this._opMdf = false;\n };\n\n TransformEffect.prototype.renderFrame = function (forceFrame) {\n this._opMdf = false;\n this._mdf = false;\n\n if (forceFrame || this.effectsManager._mdf) {\n var effectElements = this.effectsManager.effectElements;\n var anchor = effectElements[0].p.v;\n var position = effectElements[1].p.v;\n var isUniformScale = effectElements[2].p.v === 1;\n var scaleHeight = effectElements[3].p.v;\n var scaleWidth = isUniformScale ? scaleHeight : effectElements[4].p.v;\n var skew = effectElements[5].p.v;\n var skewAxis = effectElements[6].p.v;\n var rotation = effectElements[7].p.v;\n this.matrix.reset();\n this.matrix.translate(-anchor[0], -anchor[1], anchor[2]);\n this.matrix.scale(scaleWidth * 0.01, scaleHeight * 0.01, 1);\n this.matrix.rotate(-rotation * degToRads);\n this.matrix.skewFromAxis(-skew * degToRads, (skewAxis + 90) * degToRads);\n this.matrix.translate(position[0], position[1], 0);\n this._mdf = true;\n\n if (this.opacity !== effectElements[8].p.v) {\n this.opacity = effectElements[8].p.v;\n this._opMdf = true;\n }\n }\n };\n\n function SVGTransformEffect(_, filterManager) {\n this.init(filterManager);\n }\n\n extendPrototype([TransformEffect], SVGTransformEffect);\n\n function CVTransformEffect(effectsManager) {\n this.init(effectsManager);\n }\n\n extendPrototype([TransformEffect], CVTransformEffect);\n\n registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\n ShapeModifiers.registerModifier('op', OffsetPathModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n setExpressionInterfaces(getInterface);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect$1(20, SVGTintFilter, true);\n registerEffect$1(21, SVGFillFilter, true);\n registerEffect$1(22, SVGStrokeEffect, false);\n registerEffect$1(23, SVGTritoneFilter, true);\n registerEffect$1(24, SVGProLevelsFilter, true);\n registerEffect$1(25, SVGDropShadowEffect, true);\n registerEffect$1(28, SVGMatte3Effect, false);\n registerEffect$1(29, SVGGaussianBlurEffect, true);\n registerEffect$1(35, SVGTransformEffect, false);\n registerEffect(35, CVTransformEffect);\n\n return lottie;\n\n}));\n","'use strict';\nvar url = require('url');\nvar punycode = require('punycode');\nvar queryString = require('query-string');\nvar prependHttp = require('prepend-http');\nvar sortKeys = require('sort-keys');\nvar objectAssign = require('object-assign');\n\nvar DEFAULT_PORTS = {\n\t'http:': 80,\n\t'https:': 443,\n\t'ftp:': 21\n};\n\n// protocols that always contain a `//`` bit\nvar slashedProtocol = {\n\t'http': true,\n\t'https': true,\n\t'ftp': true,\n\t'gopher': true,\n\t'file': true,\n\t'http:': true,\n\t'https:': true,\n\t'ftp:': true,\n\t'gopher:': true,\n\t'file:': true\n};\n\nfunction testParameter(name, filters) {\n\treturn filters.some(function (filter) {\n\t\treturn filter instanceof RegExp ? filter.test(name) : filter === name;\n\t});\n}\n\nmodule.exports = function (str, opts) {\n\topts = objectAssign({\n\t\tnormalizeProtocol: true,\n\t\tnormalizeHttps: false,\n\t\tstripFragment: true,\n\t\tstripWWW: true,\n\t\tremoveQueryParameters: [/^utm_\\w+/i],\n\t\tremoveTrailingSlash: true,\n\t\tremoveDirectoryIndex: false\n\t}, opts);\n\n\tif (typeof str !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\tvar hasRelativeProtocol = str.indexOf('//') === 0;\n\n\t// prepend protocol\n\tstr = prependHttp(str.trim()).replace(/^\\/\\//, 'http://');\n\n\tvar urlObj = url.parse(str);\n\n\tif (opts.normalizeHttps && urlObj.protocol === 'https:') {\n\t\turlObj.protocol = 'http:';\n\t}\n\n\tif (!urlObj.hostname && !urlObj.pathname) {\n\t\tthrow new Error('Invalid URL');\n\t}\n\n\t// prevent these from being used by `url.format`\n\tdelete urlObj.host;\n\tdelete urlObj.query;\n\n\t// remove fragment\n\tif (opts.stripFragment) {\n\t\tdelete urlObj.hash;\n\t}\n\n\t// remove default port\n\tvar port = DEFAULT_PORTS[urlObj.protocol];\n\tif (Number(urlObj.port) === port) {\n\t\tdelete urlObj.port;\n\t}\n\n\t// remove duplicate slashes\n\tif (urlObj.pathname) {\n\t\turlObj.pathname = urlObj.pathname.replace(/\\/{2,}/g, '/');\n\t}\n\n\t// decode URI octets\n\tif (urlObj.pathname) {\n\t\turlObj.pathname = decodeURI(urlObj.pathname);\n\t}\n\n\t// remove directory index\n\tif (opts.removeDirectoryIndex === true) {\n\t\topts.removeDirectoryIndex = [/^index\\.[a-z]+$/];\n\t}\n\n\tif (Array.isArray(opts.removeDirectoryIndex) && opts.removeDirectoryIndex.length) {\n\t\tvar pathComponents = urlObj.pathname.split('/');\n\t\tvar lastComponent = pathComponents[pathComponents.length - 1];\n\n\t\tif (testParameter(lastComponent, opts.removeDirectoryIndex)) {\n\t\t\tpathComponents = pathComponents.slice(0, pathComponents.length - 1);\n\t\t\turlObj.pathname = pathComponents.slice(1).join('/') + '/';\n\t\t}\n\t}\n\n\t// resolve relative paths, but only for slashed protocols\n\tif (slashedProtocol[urlObj.protocol]) {\n\t\tvar domain = urlObj.protocol + '//' + urlObj.hostname;\n\t\tvar relative = url.resolve(domain, urlObj.pathname);\n\t\turlObj.pathname = relative.replace(domain, '');\n\t}\n\n\tif (urlObj.hostname) {\n\t\t// IDN to Unicode\n\t\turlObj.hostname = punycode.toUnicode(urlObj.hostname).toLowerCase();\n\n\t\t// remove trailing dot\n\t\turlObj.hostname = urlObj.hostname.replace(/\\.$/, '');\n\n\t\t// remove `www.`\n\t\tif (opts.stripWWW) {\n\t\t\turlObj.hostname = urlObj.hostname.replace(/^www\\./, '');\n\t\t}\n\t}\n\n\t// remove URL with empty query string\n\tif (urlObj.search === '?') {\n\t\tdelete urlObj.search;\n\t}\n\n\tvar queryParameters = queryString.parse(urlObj.search);\n\n\t// remove query unwanted parameters\n\tif (Array.isArray(opts.removeQueryParameters)) {\n\t\tfor (var key in queryParameters) {\n\t\t\tif (testParameter(key, opts.removeQueryParameters)) {\n\t\t\t\tdelete queryParameters[key];\n\t\t\t}\n\t\t}\n\t}\n\n\t// sort query parameters\n\turlObj.search = queryString.stringify(sortKeys(queryParameters));\n\n\t// decode query parameters\n\turlObj.search = decodeURIComponent(urlObj.search);\n\n\t// take advantage of many of the Node `url` normalizations\n\tstr = url.format(urlObj);\n\n\t// remove ending `/`\n\tif (opts.removeTrailingSlash || urlObj.pathname === '/') {\n\t\tstr = str.replace(/\\/$/, '');\n\t}\n\n\t// restore relative protocol, if applicable\n\tif (hasRelativeProtocol && !opts.normalizeProtocol) {\n\t\tstr = str.replace(/^http:\\/\\//, '//');\n\t}\n\n\treturn str;\n};\n","'use strict';\nvar strictUriEncode = require('strict-uri-encode');\nvar objectAssign = require('object-assign');\n\nfunction encoderForArrayFormat(opts) {\n\tswitch (opts.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn function (key, value, index) {\n\t\t\t\treturn value === null ? [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[',\n\t\t\t\t\tindex,\n\t\t\t\t\t']'\n\t\t\t\t].join('') : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[',\n\t\t\t\t\tencode(index, opts),\n\t\t\t\t\t']=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn function (key, value) {\n\t\t\t\treturn value === null ? encode(key, opts) : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[]=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn function (key, value) {\n\t\t\t\treturn value === null ? encode(key, opts) : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(opts) {\n\tvar result;\n\n\tswitch (opts.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t} else if (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction encode(value, opts) {\n\tif (opts.encode) {\n\t\treturn opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t} else if (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input)).sort(function (a, b) {\n\t\t\treturn Number(a) - Number(b);\n\t\t}).map(function (key) {\n\t\t\treturn input[key];\n\t\t});\n\t}\n\n\treturn input;\n}\n\nexports.extract = function (str) {\n\treturn str.split('?')[1] || '';\n};\n\nexports.parse = function (str, opts) {\n\topts = objectAssign({arrayFormat: 'none'}, opts);\n\n\tvar formatter = parserForArrayFormat(opts);\n\n\t// Create an object with no prototype\n\t// https://github.com/sindresorhus/query-string/issues/47\n\tvar ret = Object.create(null);\n\n\tif (typeof str !== 'string') {\n\t\treturn ret;\n\t}\n\n\tstr = str.trim().replace(/^(\\?|#|&)/, '');\n\n\tif (!str) {\n\t\treturn ret;\n\t}\n\n\tstr.split('&').forEach(function (param) {\n\t\tvar parts = param.replace(/\\+/g, ' ').split('=');\n\t\t// Firefox (pre 40) decodes `%3D` to `=`\n\t\t// https://github.com/sindresorhus/query-string/pull/37\n\t\tvar key = parts.shift();\n\t\tvar val = parts.length > 0 ? parts.join('=') : undefined;\n\n\t\t// missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tval = val === undefined ? null : decodeURIComponent(val);\n\n\t\tformatter(decodeURIComponent(key), val, ret);\n\t});\n\n\treturn Object.keys(ret).sort().reduce(function (result, key) {\n\t\tvar val = ret[key];\n\t\tif (Boolean(val) && typeof val === 'object' && !Array.isArray(val)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(val);\n\t\t} else {\n\t\t\tresult[key] = val;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n};\n\nexports.stringify = function (obj, opts) {\n\tvar defaults = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none'\n\t};\n\n\topts = objectAssign(defaults, opts);\n\n\tvar formatter = encoderForArrayFormat(opts);\n\n\treturn obj ? Object.keys(obj).sort().map(function (key) {\n\t\tvar val = obj[key];\n\n\t\tif (val === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (val === null) {\n\t\t\treturn encode(key, opts);\n\t\t}\n\n\t\tif (Array.isArray(val)) {\n\t\t\tvar result = [];\n\n\t\t\tval.slice().forEach(function (val2) {\n\t\t\t\tif (val2 === undefined) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresult.push(formatter(key, val2, result.length));\n\t\t\t});\n\n\t\t\treturn result.join('&');\n\t\t}\n\n\t\treturn encode(key, opts) + '=' + encode(val, opts);\n\t}).filter(function (x) {\n\t\treturn x.length > 0;\n\t}).join('&') : '';\n};\n","module.exports = function (element) {\n \n var computed = window.getComputedStyle(element);\n var left = computed.marginLeft.replace('px', '');\n var right = computed.marginRight.replace('px', '');\n \n return +element.offsetWidth + +left + +right;\n};","\n /*! \n * portal-vue © Thorsten Lünborg, 2019 \n * \n * Version: 2.1.7\n * \n * LICENCE: MIT \n * \n * https://github.com/linusborg/portal-vue\n * \n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Vue = _interopDefault(require('vue'));\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar inBrowser = typeof window !== 'undefined';\nfunction freeze(item) {\n if (Array.isArray(item) || _typeof(item) === 'object') {\n return Object.freeze(item);\n }\n\n return item;\n}\nfunction combinePassengers(transports) {\n var slotProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return transports.reduce(function (passengers, transport) {\n var temp = transport.passengers[0];\n var newPassengers = typeof temp === 'function' ? temp(slotProps) : transport.passengers;\n return passengers.concat(newPassengers);\n }, []);\n}\nfunction stableSort(array, compareFn) {\n return array.map(function (v, idx) {\n return [idx, v];\n }).sort(function (a, b) {\n return compareFn(a[1], b[1]) || a[0] - b[0];\n }).map(function (c) {\n return c[1];\n });\n}\nfunction pick(obj, keys) {\n return keys.reduce(function (acc, key) {\n if (obj.hasOwnProperty(key)) {\n acc[key] = obj[key];\n }\n\n return acc;\n }, {});\n}\n\nvar transports = {};\nvar targets = {};\nvar sources = {};\nvar Wormhole = Vue.extend({\n data: function data() {\n return {\n transports: transports,\n targets: targets,\n sources: sources,\n trackInstances: inBrowser\n };\n },\n methods: {\n open: function open(transport) {\n if (!inBrowser) return;\n var to = transport.to,\n from = transport.from,\n passengers = transport.passengers,\n _transport$order = transport.order,\n order = _transport$order === void 0 ? Infinity : _transport$order;\n if (!to || !from || !passengers) return;\n var newTransport = {\n to: to,\n from: from,\n passengers: freeze(passengers),\n order: order\n };\n var keys = Object.keys(this.transports);\n\n if (keys.indexOf(to) === -1) {\n Vue.set(this.transports, to, []);\n }\n\n var currentIndex = this.$_getTransportIndex(newTransport); // Copying the array here so that the PortalTarget change event will actually contain two distinct arrays\n\n var newTransports = this.transports[to].slice(0);\n\n if (currentIndex === -1) {\n newTransports.push(newTransport);\n } else {\n newTransports[currentIndex] = newTransport;\n }\n\n this.transports[to] = stableSort(newTransports, function (a, b) {\n return a.order - b.order;\n });\n },\n close: function close(transport) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var to = transport.to,\n from = transport.from;\n if (!to || !from && force === false) return;\n\n if (!this.transports[to]) {\n return;\n }\n\n if (force) {\n this.transports[to] = [];\n } else {\n var index = this.$_getTransportIndex(transport);\n\n if (index >= 0) {\n // Copying the array here so that the PortalTarget change event will actually contain two distinct arrays\n var newTransports = this.transports[to].slice(0);\n newTransports.splice(index, 1);\n this.transports[to] = newTransports;\n }\n }\n },\n registerTarget: function registerTarget(target, vm, force) {\n if (!inBrowser) return;\n\n if (this.trackInstances && !force && this.targets[target]) {\n console.warn(\"[portal-vue]: Target \".concat(target, \" already exists\"));\n }\n\n this.$set(this.targets, target, Object.freeze([vm]));\n },\n unregisterTarget: function unregisterTarget(target) {\n this.$delete(this.targets, target);\n },\n registerSource: function registerSource(source, vm, force) {\n if (!inBrowser) return;\n\n if (this.trackInstances && !force && this.sources[source]) {\n console.warn(\"[portal-vue]: source \".concat(source, \" already exists\"));\n }\n\n this.$set(this.sources, source, Object.freeze([vm]));\n },\n unregisterSource: function unregisterSource(source) {\n this.$delete(this.sources, source);\n },\n hasTarget: function hasTarget(to) {\n return !!(this.targets[to] && this.targets[to][0]);\n },\n hasSource: function hasSource(to) {\n return !!(this.sources[to] && this.sources[to][0]);\n },\n hasContentFor: function hasContentFor(to) {\n return !!this.transports[to] && !!this.transports[to].length;\n },\n // Internal\n $_getTransportIndex: function $_getTransportIndex(_ref) {\n var to = _ref.to,\n from = _ref.from;\n\n for (var i in this.transports[to]) {\n if (this.transports[to][i].from === from) {\n return +i;\n }\n }\n\n return -1;\n }\n }\n});\nvar wormhole = new Wormhole(transports);\n\nvar _id = 1;\nvar Portal = Vue.extend({\n name: 'portal',\n props: {\n disabled: {\n type: Boolean\n },\n name: {\n type: String,\n default: function _default() {\n return String(_id++);\n }\n },\n order: {\n type: Number,\n default: 0\n },\n slim: {\n type: Boolean\n },\n slotProps: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n tag: {\n type: String,\n default: 'DIV'\n },\n to: {\n type: String,\n default: function _default() {\n return String(Math.round(Math.random() * 10000000));\n }\n }\n },\n created: function created() {\n var _this = this;\n\n this.$nextTick(function () {\n wormhole.registerSource(_this.name, _this);\n });\n },\n mounted: function mounted() {\n if (!this.disabled) {\n this.sendUpdate();\n }\n },\n updated: function updated() {\n if (this.disabled) {\n this.clear();\n } else {\n this.sendUpdate();\n }\n },\n beforeDestroy: function beforeDestroy() {\n wormhole.unregisterSource(this.name);\n this.clear();\n },\n watch: {\n to: function to(newValue, oldValue) {\n oldValue && oldValue !== newValue && this.clear(oldValue);\n this.sendUpdate();\n }\n },\n methods: {\n clear: function clear(target) {\n var closer = {\n from: this.name,\n to: target || this.to\n };\n wormhole.close(closer);\n },\n normalizeSlots: function normalizeSlots() {\n return this.$scopedSlots.default ? [this.$scopedSlots.default] : this.$slots.default;\n },\n normalizeOwnChildren: function normalizeOwnChildren(children) {\n return typeof children === 'function' ? children(this.slotProps) : children;\n },\n sendUpdate: function sendUpdate() {\n var slotContent = this.normalizeSlots();\n\n if (slotContent) {\n var transport = {\n from: this.name,\n to: this.to,\n passengers: _toConsumableArray(slotContent),\n order: this.order\n };\n wormhole.open(transport);\n } else {\n this.clear();\n }\n }\n },\n render: function render(h) {\n var children = this.$slots.default || this.$scopedSlots.default || [];\n var Tag = this.tag;\n\n if (children && this.disabled) {\n return children.length <= 1 && this.slim ? this.normalizeOwnChildren(children)[0] : h(Tag, [this.normalizeOwnChildren(children)]);\n } else {\n return this.slim ? h() : h(Tag, {\n class: {\n 'v-portal': true\n },\n style: {\n display: 'none'\n },\n key: 'v-portal-placeholder'\n });\n }\n }\n});\n\nvar PortalTarget = Vue.extend({\n name: 'portalTarget',\n props: {\n multiple: {\n type: Boolean,\n default: false\n },\n name: {\n type: String,\n required: true\n },\n slim: {\n type: Boolean,\n default: false\n },\n slotProps: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n tag: {\n type: String,\n default: 'div'\n },\n transition: {\n type: [String, Object, Function]\n }\n },\n data: function data() {\n return {\n transports: wormhole.transports,\n firstRender: true\n };\n },\n created: function created() {\n var _this = this;\n\n this.$nextTick(function () {\n wormhole.registerTarget(_this.name, _this);\n });\n },\n watch: {\n ownTransports: function ownTransports() {\n this.$emit('change', this.children().length > 0);\n },\n name: function name(newVal, oldVal) {\n /**\r\n * TODO\r\n * This should warn as well ...\r\n */\n wormhole.unregisterTarget(oldVal);\n wormhole.registerTarget(newVal, this);\n }\n },\n mounted: function mounted() {\n var _this2 = this;\n\n if (this.transition) {\n this.$nextTick(function () {\n // only when we have a transition, because it causes a re-render\n _this2.firstRender = false;\n });\n }\n },\n beforeDestroy: function beforeDestroy() {\n wormhole.unregisterTarget(this.name);\n },\n computed: {\n ownTransports: function ownTransports() {\n var transports = this.transports[this.name] || [];\n\n if (this.multiple) {\n return transports;\n }\n\n return transports.length === 0 ? [] : [transports[transports.length - 1]];\n },\n passengers: function passengers() {\n return combinePassengers(this.ownTransports, this.slotProps);\n }\n },\n methods: {\n // can't be a computed prop because it has to \"react\" to $slot changes.\n children: function children() {\n return this.passengers.length !== 0 ? this.passengers : this.$scopedSlots.default ? this.$scopedSlots.default(this.slotProps) : this.$slots.default || [];\n },\n // can't be a computed prop because it has to \"react\" to this.children().\n noWrapper: function noWrapper() {\n var noWrapper = this.slim && !this.transition;\n\n if (noWrapper && this.children().length > 1) {\n console.warn('[portal-vue]: PortalTarget with `slim` option received more than one child element.');\n }\n\n return noWrapper;\n }\n },\n render: function render(h) {\n var noWrapper = this.noWrapper();\n var children = this.children();\n var Tag = this.transition || this.tag;\n return noWrapper ? children[0] : this.slim && !Tag ? h() : h(Tag, {\n props: {\n // if we have a transition component, pass the tag if it exists\n tag: this.transition && this.tag ? this.tag : undefined\n },\n class: {\n 'vue-portal-target': true\n }\n }, children);\n }\n});\n\nvar _id$1 = 0;\nvar portalProps = ['disabled', 'name', 'order', 'slim', 'slotProps', 'tag', 'to'];\nvar targetProps = ['multiple', 'transition'];\nvar MountingPortal = Vue.extend({\n name: 'MountingPortal',\n inheritAttrs: false,\n props: {\n append: {\n type: [Boolean, String]\n },\n bail: {\n type: Boolean\n },\n mountTo: {\n type: String,\n required: true\n },\n // Portal\n disabled: {\n type: Boolean\n },\n // name for the portal\n name: {\n type: String,\n default: function _default() {\n return 'mounted_' + String(_id$1++);\n }\n },\n order: {\n type: Number,\n default: 0\n },\n slim: {\n type: Boolean\n },\n slotProps: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n tag: {\n type: String,\n default: 'DIV'\n },\n // name for the target\n to: {\n type: String,\n default: function _default() {\n return String(Math.round(Math.random() * 10000000));\n }\n },\n // Target\n multiple: {\n type: Boolean,\n default: false\n },\n targetSlim: {\n type: Boolean\n },\n targetSlotProps: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n targetTag: {\n type: String,\n default: 'div'\n },\n transition: {\n type: [String, Object, Function]\n }\n },\n created: function created() {\n if (typeof document === 'undefined') return;\n var el = document.querySelector(this.mountTo);\n\n if (!el) {\n console.error(\"[portal-vue]: Mount Point '\".concat(this.mountTo, \"' not found in document\"));\n return;\n }\n\n var props = this.$props; // Target already exists\n\n if (wormhole.targets[props.name]) {\n if (props.bail) {\n console.warn(\"[portal-vue]: Target \".concat(props.name, \" is already mounted.\\n Aborting because 'bail: true' is set\"));\n } else {\n this.portalTarget = wormhole.targets[props.name];\n }\n\n return;\n }\n\n var append = props.append;\n\n if (append) {\n var type = typeof append === 'string' ? append : 'DIV';\n var mountEl = document.createElement(type);\n el.appendChild(mountEl);\n el = mountEl;\n } // get props for target from $props\n // we have to rename a few of them\n\n\n var _props = pick(this.$props, targetProps);\n\n _props.slim = this.targetSlim;\n _props.tag = this.targetTag;\n _props.slotProps = this.targetSlotProps;\n _props.name = this.to;\n this.portalTarget = new PortalTarget({\n el: el,\n parent: this.$parent || this,\n propsData: _props\n });\n },\n beforeDestroy: function beforeDestroy() {\n var target = this.portalTarget;\n\n if (this.append) {\n var el = target.$el;\n el.parentNode.removeChild(el);\n }\n\n target.$destroy();\n },\n render: function render(h) {\n if (!this.portalTarget) {\n console.warn(\"[portal-vue] Target wasn't mounted\");\n return h();\n } // if there's no \"manual\" scoped slot, so we create a ourselves\n\n\n if (!this.$scopedSlots.manual) {\n var props = pick(this.$props, portalProps);\n return h(Portal, {\n props: props,\n attrs: this.$attrs,\n on: this.$listeners,\n scopedSlots: this.$scopedSlots\n }, this.$slots.default);\n } // else, we render the scoped slot\n\n\n var content = this.$scopedSlots.manual({\n to: this.to\n }); // if user used