{"version":3,"file":"show.7339cb36.js","sources":["../../../resources/js/icons/icon-pdf.vue","../../../resources/js/apis/FeedbackApi.js","../../../resources/js/widgets/threeDots.vue","../../../resources/js/widgets/ShareThisWorksheet.vue","../../../resources/js/components/Feedback.vue","../../../resources/js/pages/document/show.js"],"sourcesContent":["\n\n","import apiClient from './apiClient';\n\nexport default {\n /* issue tracking will be moved to Groove\n createIssue(user_id, email, response_requested, comment, pagename, user_agent, browser_name, browser_version, operating_system) {\n return apiClient.post('/feedback', {\n type: 1,\n user_id,\n email,\n response_requested,\n comment,\n pagename,\n user_agent,\n browser_name,\n browser_version,\n operating_system\n }).then(response => {\n return response.data;\n });\n },*/\n createSuggestion(email, response_requested, comment, pagename) {\n return apiClient.post('/feedback', {\n type: 2,\n email,\n response_requested,\n comment,\n pagename,\n user_agent: navigator.userAgent\n }).then(response => {\n return response.data;\n });\n },\n createFeedback(worksheet_id, email, smile_option, pagename) {\n return apiClient.post('/feedback', {\n type: 3,\n worksheet_id,\n email,\n smile_option,\n pagename,\n user_agent: navigator.userAgent\n }).then(response => {\n return response.data;\n });\n },\n\n updateFeedback(feedback_id, feedback_option, response_requested, comment) {\n return apiClient.put('/feedback', {\n feedback_id,\n feedback_option,\n response_requested,\n comment\n }).then(response => {\n return response.data;\n });\n }\n}\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","// npm libraries\nimport Vue from 'vue'\nimport Tooltip from 'vue-directive-tooltip'\nimport Notifications from 'vue-notification'\nimport VueInputAutowidth from 'vue-input-autowidth'\nimport { BootstrapVue, BootstrapVueIcons } from 'bootstrap-vue'\nimport VueDraggableResizable from 'vue-draggable-resizable'\nimport DocumentApi from '../../apis/DocumentApi'\nimport EventApi from '../../apis/EventApi'\n//supporting files\nimport Errors from '../../libraries/errors'\nimport iconPdf from '../../icons/icon-pdf.vue'\n\n//components\nimport LogoLoader from '../../components/logos/LogoLoader.vue'\nimport Login from '../../components/Login.vue'\nimport MainMenu from '../../widgets/main-menu.vue'\nimport Feedback from '../../components/Feedback.vue'\nimport Canny from '../../components/Canny.vue'\nimport CheckoutModal from '../../components/modals/CheckoutModal.vue'\nimport ThreeDots from '../../widgets/threeDots.vue'\nimport premiumMarker from '../../widgets/premium-marker.vue'\nimport DocumentsPage from '../../documents/pages.vue'\n\n//worksheets\nimport Bingo from '../../documents/bingo/bingo.vue'\nimport Flashcard from '../../documents/flashcard/flashcard.vue'\n\nimport { mapGetters, mapState } from 'vuex'\n\n// app components\nimport modal from '../../widgets/modal.vue'\nimport documentComponent from '../../documents/document.vue'\nimport MaintenanceAlert from '../../components/MaintenanceAlert.vue'\n\nimport Lang from '../../libraries/Lang'\nimport Loader from '../../widgets/Loader.vue'\nimport ShareThisWorksheet from '../../widgets/ShareThisWorksheet.vue'\nimport ErrorHandlingModal from '../../components/ErrorHandlingModal.vue'\nimport wmAlert from '../../helpers/wmAlerts'\n\n// Repositories\nimport { Fonts } from '../../repos/Fonts'\nimport { Modals } from '../../repos/Modals'\n\n//Import the VueX store\nimport store from '../../store/document'\nimport 'vue-draggable-resizable/dist/VueDraggableResizable.css'\nimport PageSetup from '../../components/widgets/PageSetup.vue'\nimport Paywall from '../../components/Paywall.vue'\nimport OneClickSuccessModal from '../../components/OneClickSuccessModal.vue'\nimport * as Sentry from '@sentry/vue'\nimport { BrowserTracing } from '@sentry/tracing'\nimport { hasNonIconImages } from '../../helpers/jsonObjectHelper'\nimport Onboarding from '../../components/OnboardingModal.vue'\nimport OnboardingSinglePurchase from '../../components/OnboardingSinglePurchase.vue'\nimport UserApi from '../../apis/UserApi'\nimport { isEqual, sortBy, cloneDeep } from 'lodash'\nimport _debounce from 'lodash/debounce'\nimport { dangerToast, successToast } from '../../helpers/toasts'\n\n// Mixins\nimport WithBrand from '../../mixins/WithBrand'\nimport Common from '../../mixins/Common'\nimport EditPayWall from '../../mixins/EditPayWall'\nimport StatsigHelper from '../../mixins/StatsigHelper'\nimport PushListener from '../../mixins/PushListener'\nimport TopnavUtil from '../../mixins/TopnavUtil'\nimport LogInWatcher from '../../mixins/LogInWatcher'\nimport DocumentResizeListener from '../../mixins/DocumentResizeListener'\n\nVue.use(Tooltip)\nVue.use(Notifications)\nVue.use(VueInputAutowidth)\n\n//bootstrap components\nVue.use(BootstrapVue)\nVue.use(BootstrapVueIcons)\n\nVue.component('MainMenu', MainMenu)\nVue.component('PremiumMarker', premiumMarker)\nVue.component('Loader', Loader)\nVue.component('MwmModal', modal)\nVue.component('Document', documentComponent)\nVue.component('IconPdf', iconPdf)\nVue.component('MaintenanceAlert', MaintenanceAlert)\nVue.component('VueDraggableResizable', VueDraggableResizable)\nVue.component('Paywall', Paywall)\nVue.component('OneClickSuccess', OneClickSuccessModal)\nVue.component('OnboardingModal', Onboarding)\nVue.component('OnboardingSinglePurchase', OnboardingSinglePurchase)\n\n//set up some Vue values\nVue.prototype.$lang = new Lang()\n\n//repos\nVue.prototype.$fonts = Fonts\nVue.prototype.$modals = Modals\nVue.prototype.$eventApi = EventApi\n\nSentry.init({\n Vue,\n dsn: window.sentryDSN,\n integrations: [\n new BrowserTracing({\n tracingOrigins: [window.sentryTracingOrigin, /^\\//],\n }),\n new Sentry.Replay({\n networkCaptureBodies: true,\n networkDetailAllowUrls: [window.location.origin],\n }),\n ],\n logErrors: true,\n tracesSampleRate: window.sentryTraceSampleRate,\n replaysOnErrorSampleRate: 1.0,\n})\n\nwindow.app = new Vue({\n store,\n el: '#app',\n components: {\n 'logo-loader': LogoLoader,\n //widgets\n ThreeDots,\n //subscription/auth\n Login,\n\n //social\n ShareThisWorksheet,\n\n //Modals\n Feedback,\n Canny,\n CheckoutModal,\n ErrorHandlingModal,\n\n // Documents page\n DocumentsPage,\n\n //bingo\n Bingo,\n\n //flashcard\n Flashcard,\n PageSetup,\n },\n mixins: [WithBrand, EditPayWall, StatsigHelper, Common, TopnavUtil, PushListener, LogInWatcher, DocumentResizeListener],\n data: {\n errors: new Errors(),\n userRating: null,\n ratingNeedsSaving: false,\n show_unpublish: false,\n isPrivate: false,\n pageSetupOpen: false,\n isLoading: false,\n mediumWidth: 1304,\n workspaceWidth: 730,\n resizedUp: false,\n currentWidth: window.innerWidth,\n previousWidth: window.innerWidth,\n allowRescale: false,\n originalPageSetup: null,\n generating: false,\n },\n computed: {\n isFirefox() {\n return window.navigator.userAgent.match(/Firefox\\/([0-9]+)\\./)\n },\n screenSizeTooSmall() {\n return this.document.zoom * 100 < 50 || this.workspaceWidth < 729\n },\n eventMessage() {\n if (!this.isLoggedIn) {\n return 'not_signed_in'\n }\n\n return this.document.user_id === this.user.user.id ? 'creator' : 'non_creator'\n },\n ...mapGetters({\n isLoggedIn: 'user/isLoggedIn',\n documentTypes: 'document/allDocumentTypes',\n documentRequiresPagination: 'document/documentRequiresPagination',\n zoomLevels: 'document/getZoomLevels',\n hasPlans: 'subscription/hasPlans',\n worksheet: 'document/worksheet',\n isBingo: 'document/isBingo',\n isFlashcard: 'document/isFlashcard',\n isWorksheet: 'document/isWorksheet',\n answerable: 'document/answerable',\n documentModel: 'document/documentModel',\n flashcard: 'document/flashcard',\n worksheetImages: 'document/worksheetImages',\n flashcardImages: 'document/flashcardImages',\n bingoImages: 'document/bingoImages',\n entityType: 'document/entityType',\n persistAction: 'document/immediatePersistAction',\n style: 'document/documentStyle',\n }),\n ...mapState(['user', 'document']),\n images() {\n if (this.entityType === 'worksheet') return this.worksheetImages\n if (this.entityType === 'flashcard') return this.flashcardImages\n if (this.entityType === 'bingo') return this.bingoImages\n return []\n },\n premiumImages() {\n // should return personal images and premium iconfinder images\n // todo: this should be updated after iconfinder implemented\n return this.images\n },\n hasPremiumImages() {\n return this.premiumImages.length > 0 && hasNonIconImages(this.premiumImages)\n },\n documentItem() {\n return window.doc ? window.doc : this.documentModel\n },\n showAnswerOption() {\n return this.answerable && !['bingo', 'flashcard'].includes(this.document.entity_type)\n },\n pdf_key() {\n let key = 'pdf'\n\n if (this.answer_key) {\n key += '_answer_key'\n }\n\n if (this.ink_saver) {\n key += '_ink_saver'\n }\n\n if (this.user.user.white_label) {\n key += '_white_label'\n }\n\n return key\n },\n pdf_url() {\n return this.document.media.pdfs[this.pdf_key]\n },\n mediaLoaded() {\n for (let key in this.document.media.pdfs) {\n if (this.document.media.pdfs[key] == '') {\n return false\n }\n }\n return true\n },\n answer_key: {\n get() {\n return this.isBingo || this.isFlashcard ? 0 : this.document.show_answer_key\n },\n set(value) {\n this.$store.dispatch('document/setDocument', {\n show_answer_key: value,\n })\n },\n },\n ink_saver: {\n get() {\n if (typeof window.force_ink_saver != 'undefined') {\n return window.force_ink_saver\n } else {\n return this.user.user.ink_saver\n }\n },\n set(value) {\n this.$store.dispatch('user/updateUser', { ink_saver: value })\n },\n },\n loadCompleted() {\n return {\n type: this.worksheet.type,\n fonts: this.$fonts.ready,\n }\n },\n ratingCount() {\n let s = 's' //plural\n if (this.document.rating_count == 1) {\n s = ''\n }\n return this.document.rating_count + ' rating' + s\n },\n belongsToUser() {\n if (this.document.user_id == this.user.user.id) {\n return true\n }\n return false\n },\n pageSetupData() {\n return {\n page_setup: this.flashcard.page_setup,\n flashcard_item_height: parseFloat(this.flashcard.flashcard_item_height),\n style: this.style,\n }\n },\n shouldGeneratePdf() {\n if (this.ink_saver || this.answer_key) return true\n\n if (this.isFlashcard) return !isEqual(sortBy(this.pageSetupData), sortBy(this.originalPageSetup))\n\n return false\n },\n },\n watch: {\n isLoggedIn: function (newValue) {\n if (newValue && this.userRating !== null && this.ratingNeedsSaving) {\n //user logged in\n this.setRating()\n }\n },\n loadCompleted: {\n deep: true,\n handler() {\n this.$nextTick(() => {\n if (this.loadCompleted.fonts) {\n this.$store.dispatch('document/paginateItems')\n }\n })\n },\n },\n documentRequiresPagination: {\n // repaginate anytime the worksheet changes.\n deep: true,\n handler() {\n this.$nextTick(() => {\n if (this.loadCompleted.fonts) {\n this.$store.dispatch('document/paginateItems')\n }\n })\n },\n },\n pageSetupData: {\n deep: true,\n handler(newValue, oldValue) {\n if (this.isFlashcard && oldValue.style !== undefined) {\n this.saveOwnerChanges()\n }\n this.$nextTick(() => {\n this.$store.dispatch('document/adjustZoomContainer')\n })\n },\n },\n },\n beforeCreate() {\n this.$store.dispatch('user/initialize')\n this.$store.dispatch('abtests/initialize')\n },\n created() {\n this.$store.dispatch('document/setVueInstance', this)\n window.addEventListener('keydown', this.printHandler)\n\n //if we have a user waiting for us load in that user to the store\n if (window.user?.id) {\n this.$store.dispatch('user/setUser', window.user)\n if (window.user.ratings !== undefined && window.user.ratings.length > 0) {\n this.userRating = window.user.ratings[0].rating\n } else {\n this.userRating = 0\n }\n }\n\n if (window.doc) {\n this.$store.dispatch('document/setWindowDocument', window.doc)\n\n this.$store.dispatch('document/setDocument', {\n edited: window.doc.edited,\n })\n }\n\n if (typeof window.force_answer_key != 'undefined') {\n this.$store.dispatch('document/setDocument', {\n show_answer_key: window.force_answer_key,\n })\n }\n\n if (this.isLoggedIn && window.doc.user_id == window.user.id) {\n this.$store.dispatch('document/fetchDocumentPurchaseStatus')\n }\n\n if (!this.mediaLoaded && !window.isQueueWorker) {\n let mediainterval = setInterval(() => {\n DocumentApi.get(this.document.entity_type, this.document.id)\n .then((result) => {\n let documentMedia = {}\n if (result.data.pdfs) {\n documentMedia.pdfs = result.data.pdfs\n }\n if (result.data.image) {\n documentMedia.image = result.data.image\n }\n if (result.data.thumb) {\n documentMedia.thumb = result.data.thumb\n }\n if (result.data.bordered_image) {\n documentMedia.bordered_image = result.data.bordered_image\n }\n if (result.data.medias) {\n this.$store.dispatch('document/setDocument', { medias: result.data.medias })\n }\n\n //update the worksheet\n this.$store.dispatch('document/setDocumentMedia', documentMedia)\n\n if (this.mediaLoaded) {\n //no longer need to poll the server\n clearInterval(mediainterval)\n }\n })\n .catch((error) => {\n this.$store.dispatch('document/setApiCallFeedback', 'There was a problem loading this document.')\n this.$modals.open('error_handling')\n })\n }, 3000)\n }\n },\n mounted() {\n //add pinterest JS library\n let pinterest = document.createElement('script')\n pinterest.setAttribute('src', '//assets.pinterest.com/js/pinit.js') //generate partial url\n pinterest.setAttribute('async', true)\n document.getElementsByTagName('head')[0].appendChild(pinterest)\n\n //add twitter JS library\n let twitter = document.createElement('script')\n twitter.setAttribute('src', 'https://platform.twitter.com/widgets.js') //generate partial url\n twitter.setAttribute('charset', 'utf-8')\n document.getElementsByTagName('head')[0].appendChild(twitter)\n\n window.onresize = (event) => {\n this.resizeDocument(event)\n this.updateResizeDirection()\n }\n\n window.document.addEventListener('DOMContentLoaded', (event) => {\n this.resizeDocument(event)\n })\n\n this.$store.dispatch('document/adjustZoomContainer')\n this.$store.dispatch('document/paginateItems')\n this.$store.dispatch('document/scaleDocument', true)\n\n this.originalPageSetup = cloneDeep({\n page_setup: this.flashcard.page_setup,\n flashcard_item_height: this.flashcard.flashcard_item_height,\n style: this.style,\n })\n },\n methods: {\n updateResizeDirection() {\n this.currentWidth = window.innerWidth\n\n if (this.currentWidth > this.previousWidth) {\n this.resizedUp = true\n } else if (this.currentWidth < this.previousWidth) {\n this.resizedUp = false\n }\n\n this.previousWidth = this.currentWidth\n },\n setZoom(size) {\n this.$store.dispatch('document/setZoom', size)\n this.$store.dispatch('document/scaleDocument', true)\n },\n isDocumentHidden(selectorId, containerId) {\n const selectedElement = document.getElementById(selectorId)\n const selectedElementBoundingRect = selectedElement.getBoundingClientRect()\n\n const viewportWidth = window.innerWidth || document.documentElement.clientWidth\n\n let selectedElementRightBoundary = selectedElementBoundingRect.right\n\n if (containerId) {\n let containerElement = document.getElementById(containerId)\n let containerStyles = window.getComputedStyle(containerElement)\n let rightPadding = parseFloat(containerStyles.getPropertyValue('padding-right'))\n\n selectedElementRightBoundary += rightPadding\n }\n\n return selectedElementRightBoundary > viewportWidth\n },\n hasFeatureShowPage(feature, document, docType) {\n if (this.isLoggedIn) {\n return this.hasFeature(feature, document, docType)\n } else {\n return false\n }\n },\n printHandler(e) {\n if (!e.repeat && ((e.metaKey && e.keyCode == 80) || (e.ctrlKey && e.keyCode == 80))) {\n this.$eventApi.create_event('print_shortcut', this.eventMessage)\n }\n },\n downloadPDF() {\n this.$eventApi.create_event('pdf_download', this.eventMessage)\n if (this.shouldGeneratePdf) {\n this.generating = true\n let payload = {\n document_id: this.document.id,\n white_label: this.user.user.white_label,\n ink_saver: this.ink_saver,\n answer_key: this.answer_key,\n }\n if (this.isFlashcard) {\n payload.details = this.pageSetupData\n }\n this.$store\n .dispatch('document/generatePdf', payload)\n .then((response) => {\n fetch(`data:application/pdf;base64,${response.data.base64pdf}`)\n .then((base64Response) => base64Response.blob())\n .then((blobResponse) => {\n const blob = new Blob([blobResponse], { type: 'application/pdf' })\n const blobUrl = URL.createObjectURL(blob)\n this.newTab(blobUrl, false, response.data.filename)\n })\n })\n .catch((error) => {\n this.$bvToast.toast('There was an error generating the PDF. Please try again.', dangerToast)\n console.log('PDF ERROR: ', error)\n })\n .finally(() => {\n this.generating = false\n })\n } else {\n if (this.pdf_url) this.newTab(this.pdf_url)\n }\n },\n goPremium() {\n this.$store.dispatch('document/setGoPremium')\n\n if (this.isLoggedIn) {\n this.$eventApi.create_event('plan_selection_overlay_seen', `${this.eventMessage}|remove-logo`)\n this.showPremiumPaywall()\n } else {\n this.$eventApi.create_event('plan_selection_overlay_seen', 'not-logged-in|remove-logo')\n this.$modals.open('logIn')\n }\n },\n setWhiteLabel(value) {\n this.isLoading = true\n this.$store\n .dispatch('user/updateUser', { white_label: value })\n .then(() => {\n this.$store\n .dispatch('user/setWhiteLabel', value)\n .then(() => {\n this.isLoading = false\n })\n .catch((error) => {\n this.isLoading = false\n })\n })\n .catch((error) => {\n this.isLoading = false\n })\n },\n updateUserValues() {\n this.$store.dispatch('user/updateUser', {})\n if (this.isLoggedIn) {\n UserApi.update(this.user.user.id, {\n white_label: this.user.user.white_label,\n ink_saver: this.user.user.ink_saver,\n }).then((response) => {\n // do nothing from here. We're just updating for later.\n })\n }\n },\n print() {\n this.$eventApi.create_event('print', this.eventMessage) //alternate redo from Jonah\n if (this.document.user_id == this.user.user.id) {\n this.$modals.feedback = true\n }\n window.print()\n },\n floatStars(ev) {\n let parent = ev.target.parentElement\n let children = parent.children\n let showBorder = false\n for (let i = 0; i < children.length; i++) {\n if (!showBorder) {\n children[i].classList.add('rating-hover-solid')\n } else {\n children[i].classList.add('rating-hover-border')\n }\n\n if (children[i] == ev.target) {\n showBorder = true\n }\n }\n },\n unfloatStars(ev) {\n let children = ev.target.parentElement.children\n for (let i = 0; i <= children.length; i++) {\n if (children[i]) {\n children[i].classList.remove('rating-hover-solid')\n children[i].classList.remove('rating-hover-border')\n }\n }\n },\n starTest(star) {\n let avg_rating = parseFloat(this.document.avg_rating ?? 0)\n\n //if the worksheet belongs to this user default to 0\n if (this.belongsToUser) {\n avg_rating = 0\n }\n\n //if the user has rated this worksheet override the avg_rating with the users rating\n if (this.userRating) {\n avg_rating = this.userRating\n }\n\n if (star <= avg_rating) {\n return 'star-fill'\n } else if (star == Math.ceil(avg_rating)) {\n return 'star-half'\n } else {\n return 'star'\n }\n },\n activateRating(rating) {\n this.userRating = rating\n this.ratingNeedsSaving = true\n\n if (this.isLoggedIn) {\n this.setRating()\n } else {\n this.$modals.open('logIn')\n this.$modals.logIn.active_tab = 'log_in'\n this.$eventApi.create_event('log-in-view-worksheet-rating', this.eventMessage)\n }\n },\n setRating(rating) {\n DocumentApi.rate(this.document.entity_type, this.document.id, this.userRating).catch(() => {\n //failed\n this.$store.dispatch('document/setApiCallFeedback', 'There was an error saving your rating.')\n this.$modals.open('error_handling')\n })\n },\n onDeleteDocument() {\n wmAlert\n .confirm({\n html: 'This will permanently delete your document and cannot be undone.',\n })\n .then((result) => {\n if (result.isConfirmed) {\n this.deleteDocument()\n }\n })\n },\n deleteDocument() {\n DocumentApi.delete(this.document.entity_type, this.document.id)\n .then((response) => {\n window.location = '/user/my-documents'\n })\n .catch((error) => {\n this.$store.dispatch('document/setApiCallFeedback', 'There was a problem deleting this document.')\n this.$modals.open('error_handling')\n })\n },\n unpublishDocument() {\n window.location = `/${this.document.entity_type}/${this.document.id}/unpublish`\n },\n updatePrivacy() {\n this.$store.dispatch('document/requestUpdateDocument')\n this.$store.dispatch(this.persistAction)\n },\n setPageSetupData(updated) {\n this.$store.dispatch('document/setFlashcard', {\n ...updated,\n })\n },\n pageSetupOpenClose() {\n this.pageSetupOpen = !this.pageSetupOpen\n },\n saveOwnerChanges: _debounce(function () {\n if (this.isLoggedIn && this.user.user.id == this.document.user_id) {\n this.$store.dispatch('document/updateDocument', true)\n }\n }, 1500),\n copyDocument() {\n const elem = document.querySelector('#copy-document')\n let url = elem.dataset.url\n\n if (this.isFlashcard && this.shouldGeneratePdf) {\n url = `${url}?details=${btoa(JSON.stringify(this.pageSetupData))}`\n }\n window.location = url\n },\n },\n})\n"],"names":["_sfc_main","feedbackApi","email","response_requested","comment","pagename","apiClient","response","worksheet_id","smile_option","feedback_id","feedback_option","ThreeDots","mapState","mapGetters","dotTimer","_a","service","pinUrl","val","ShareThisWorksheet","Errors","error","Vue","Tooltip","Notifications","VueInputAutowidth","BootstrapVue","BootstrapVueIcons","MainMenu","premiumMarker","Loader","modal","documentComponent","iconPdf","MaintenanceAlert","VueDraggableResizable","Paywall","OneClickSuccessModal","Onboarding","OnboardingSinglePurchase","Lang","Fonts","Modals","EventApi","Sentry.init","BrowserTracing","Sentry.Replay","store","LogoLoader","Login","Feedback","Canny","CheckoutModal","ErrorHandlingModal","DocumentsPage","Bingo","Flashcard","PageSetup","WithBrand","EditPayWall","StatsigHelper","Common","TopnavUtil","PushListener","LogInWatcher","DocumentResizeListener","hasNonIconImages","key","value","isEqual","sortBy","newValue","oldValue","mediainterval","DocumentApi","result","documentMedia","pinterest","twitter","event","cloneDeep","size","selectorId","containerId","selectedElementBoundingRect","viewportWidth","selectedElementRightBoundary","containerElement","containerStyles","rightPadding","feature","document","docType","e","payload","base64Response","blobResponse","blob","blobUrl","dangerToast","UserApi","ev","children","showBorder","i","star","avg_rating","rating","wmAlert","updated","_debounce","url"],"mappings":"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"}