{"version":3,"sources":["webpack:///../../../src/mixins/rippleable/index.ts","webpack:///../../../src/mixins/comparable/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///./src/components/Admin/crud/Lesson Settings.vue?5d91","webpack:///src/components/Admin/crud/Lesson Settings.vue","webpack:///./src/components/Admin/crud/Lesson Settings.vue?f288","webpack:///./src/components/Admin/crud/Lesson Settings.vue","webpack:///../../../src/components/VSwitch/VSwitch.ts","webpack:///../../../src/mixins/selectable/index.ts"],"names":["name","directives","ripple","props","type","Boolean","default","methods","genRipple","data","this","value","center","$createElement","valueComparator","inserted","modifiers","binding","handler","options","observer","IntersectionObserver","entries","el","isIntersecting","entry","unbind","init","observe","Intersect","render","_vm","_h","_c","_self","staticClass","attrs","_v","model","callback","$$v","expression","loading","$store","state","profile","role","readyTeacher","readyPractice","readyGrammar","on","onSave","_e","staticRenderFns","getters","ready","computed","lesson","watch","val","component","VBtn","VCard","VCardText","VCardTitle","VCol","VRow","VSwitch","VTextField","Touch","inset","flat","classes","String","validationState","hasError","hasColor","switchData","setTextColor","undefined","class","themeClasses","genDefaultSlot","genSwitch","genInput","attrs$","left","right","onSwipeRight","genProgress","$slots","progress","color","size","width","indeterminate","onSwipeLeft","onChange","onKeydown","e","prop","event","id","inputValue","falseValue","trueValue","multiple","label","lazyValue","computedColor","isDark","isMultiple","Array","isActive","input","item","isDirty","rippleState","genLabel","click","prevent","Object","disabled","domProps","checked","blur","change","focus","keydown","ref","onBlur","onClick","length","onFocus"],"mappings":"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","file":"js/chunk-4225d4ce.d16dde34.js","sourcesContent":["// Directives\nimport ripple from '../../directives/ripple'\n\n// Types\nimport Vue, { VNode, VNodeData, VNodeDirective } from 'vue'\n\nexport default Vue.extend({\n name: 'rippleable',\n\n directives: { ripple },\n\n props: {\n ripple: {\n type: [Boolean, Object],\n default: true,\n },\n },\n\n methods: {\n genRipple (data: VNodeData = {}): VNode | null {\n if (!this.ripple) return null\n\n data.staticClass = 'v-input--selection-controls__ripple'\n\n data.directives = data.directives || []\n data.directives.push({\n name: 'ripple',\n value: { center: true },\n } as VNodeDirective)\n\n return this.$createElement('div', data)\n },\n },\n})\n","import Vue from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { deepEqual } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'comparable',\n props: {\n valueComparator: {\n type: Function,\n default: deepEqual,\n } as PropValidator,\n },\n})\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n )\n ) {\n const isIntersecting = Boolean(entries.find(entry => entry.isIntersecting))\n\n handler(entries, observer, isIntersecting)\n }\n\n // If has already been initted and\n // has the once modifier, unbind\n if (el._observe.init && modifiers.once) unbind(el)\n // Otherwise, mark the observer as initted\n else (el._observe.init = true)\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',{staticClass:\"pt-10\",attrs:{\"justify\":\"center\"}},[_c('v-card',{staticClass:\"px-5 py-3 overflow-x-hidden overflow-y-auto custom-scroll\",attrs:{\"max-width\":\"700\",\"width\":\"80vw\",\"min-height\":\"500\",\"max-height\":\"80vh\"}},[_c('v-card-title',[_vm._v(\"Lesson Name\")]),_c('v-card-text',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"dense\":\"\"},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-switch',{attrs:{\"loading\":_vm.loading,\"readonly\":_vm.$store.state.profile.role === 'EDITOR',\"label\":\"Live Lesson Ready\"},model:{value:(_vm.readyTeacher),callback:function ($$v) {_vm.readyTeacher=$$v},expression:\"readyTeacher\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-switch',{attrs:{\"loading\":_vm.loading,\"readonly\":_vm.$store.state.profile.role === 'EDITOR',\"label\":\"Lesson Practice Ready\"},model:{value:(_vm.readyPractice),callback:function ($$v) {_vm.readyPractice=$$v},expression:\"readyPractice\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-switch',{attrs:{\"loading\":_vm.loading,\"readonly\":_vm.$store.state.profile.role === 'EDITOR',\"label\":\"Sentence Structure Ready\"},model:{value:(_vm.readyGrammar),callback:function ($$v) {_vm.readyGrammar=$$v},expression:\"readyGrammar\"}})],1)],1)],1),(_vm.$store.state.profile.role === 'ADMIN')?_c('v-btn',{staticClass:\"d-flex ml-auto\",attrs:{\"text\":\"\",\"loading\":_vm.loading,\"color\":\"#FF347C\"},on:{\"click\":_vm.onSave}},[_vm._v(\"Save\")]):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vuetify-loader/lib/loader.js??ref--18-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Lesson Settings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vuetify-loader/lib/loader.js??ref--18-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Lesson Settings.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Lesson Settings.vue?vue&type=template&id=2bcca675&\"\nimport script from \"./Lesson Settings.vue?vue&type=script&lang=js&\"\nexport * from \"./Lesson Settings.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardText,VCardTitle,VCol,VRow,VSwitch,VTextField})\n","// Styles\nimport '../../styles/components/_selection-controls.sass'\nimport './VSwitch.sass'\n\n// Mixins\nimport Selectable from '../../mixins/selectable'\nimport VInput from '../VInput'\n\n// Directives\nimport Touch from '../../directives/touch'\n\n// Components\nimport { VFabTransition } from '../transitions'\nimport VProgressCircular from '../VProgressCircular/VProgressCircular'\n\n// Helpers\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\n/* @vue/component */\nexport default Selectable.extend({\n name: 'v-switch',\n\n directives: { Touch },\n\n props: {\n inset: Boolean,\n loading: {\n type: [Boolean, String],\n default: false,\n },\n flat: {\n type: Boolean,\n default: false,\n },\n },\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input--selection-controls v-input--switch': true,\n 'v-input--switch--flat': this.flat,\n 'v-input--switch--inset': this.inset,\n }\n },\n attrs (): object {\n return {\n 'aria-checked': String(this.isActive),\n 'aria-disabled': String(this.isDisabled),\n role: 'switch',\n }\n },\n // Do not return undefined if disabled,\n // according to spec, should still show\n // a color when disabled and active\n validationState (): string | undefined {\n if (this.hasError && this.shouldValidate) return 'error'\n if (this.hasSuccess) return 'success'\n if (this.hasColor !== null) return this.computedColor\n return undefined\n },\n switchData (): VNodeData {\n return this.setTextColor(this.loading ? undefined : this.validationState, {\n class: this.themeClasses,\n })\n },\n },\n\n methods: {\n genDefaultSlot (): (VNode | null)[] {\n return [\n this.genSwitch(),\n this.genLabel(),\n ]\n },\n genSwitch (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-input--selection-controls__input',\n }, [\n this.genInput('checkbox', {\n ...this.attrs,\n ...this.attrs$,\n }),\n this.genRipple(this.setTextColor(this.validationState, {\n directives: [{\n name: 'touch',\n value: {\n left: this.onSwipeLeft,\n right: this.onSwipeRight,\n },\n }],\n })),\n this.$createElement('div', {\n staticClass: 'v-input--switch__track',\n ...this.switchData,\n }),\n this.$createElement('div', {\n staticClass: 'v-input--switch__thumb',\n ...this.switchData,\n }, [this.genProgress()]),\n ])\n },\n genProgress (): VNode {\n return this.$createElement(VFabTransition, {}, [\n this.loading === false\n ? null\n : this.$slots.progress || this.$createElement(VProgressCircular, {\n props: {\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n size: 16,\n width: 2,\n indeterminate: true,\n },\n }),\n ])\n },\n onSwipeLeft () {\n if (this.isActive) this.onChange()\n },\n onSwipeRight () {\n if (!this.isActive) this.onChange()\n },\n onKeydown (e: KeyboardEvent) {\n if (\n (e.keyCode === keyCodes.left && this.isActive) ||\n (e.keyCode === keyCodes.right && !this.isActive)\n ) this.onChange()\n },\n },\n})\n","// Components\nimport VInput from '../../components/VInput'\n\n// Mixins\nimport Rippleable from '../rippleable'\nimport Comparable from '../comparable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\nexport function prevent (e: Event) {\n e.preventDefault()\n}\n\n/* @vue/component */\nexport default mixins(\n VInput,\n Rippleable,\n Comparable\n).extend({\n name: 'selectable',\n\n model: {\n prop: 'inputValue',\n event: 'change',\n },\n\n props: {\n id: String,\n inputValue: null as any,\n falseValue: null as any,\n trueValue: null as any,\n multiple: {\n type: Boolean,\n default: null,\n },\n label: String,\n },\n\n data () {\n return {\n hasColor: this.inputValue,\n lazyValue: this.inputValue,\n }\n },\n\n computed: {\n computedColor (): string | undefined {\n if (!this.isActive) return undefined\n if (this.color) return this.color\n if (this.isDark && !this.appIsDark) return 'white'\n return 'primary'\n },\n isMultiple (): boolean {\n return this.multiple === true || (this.multiple === null && Array.isArray(this.internalValue))\n },\n isActive (): boolean {\n const value = this.value\n const input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) return false\n\n return input.some(item => this.valueComparator(item, value))\n }\n\n if (this.trueValue === undefined || this.falseValue === undefined) {\n return value\n ? this.valueComparator(value, input)\n : Boolean(input)\n }\n\n return this.valueComparator(input, this.trueValue)\n },\n isDirty (): boolean {\n return this.isActive\n },\n rippleState (): string | undefined {\n return !this.isDisabled && !this.validationState\n ? undefined\n : this.validationState\n },\n },\n\n watch: {\n inputValue (val) {\n this.lazyValue = val\n this.hasColor = val\n },\n },\n\n methods: {\n genLabel () {\n const label = VInput.options.methods.genLabel.call(this)\n\n if (!label) return label\n\n label!.data!.on = {\n // Label shouldn't cause the input to focus\n click: prevent,\n }\n\n return label\n },\n genInput (type: string, attrs: object) {\n return this.$createElement('input', {\n attrs: Object.assign({\n 'aria-checked': this.isActive.toString(),\n disabled: this.isDisabled,\n id: this.computedId,\n role: type,\n type,\n }, attrs),\n domProps: {\n value: this.value,\n checked: this.isActive,\n },\n on: {\n blur: this.onBlur,\n change: this.onChange,\n focus: this.onFocus,\n keydown: this.onKeydown,\n click: prevent,\n },\n ref: 'input',\n })\n },\n onBlur () {\n this.isFocused = false\n },\n onClick (e: Event) {\n this.onChange()\n this.$emit('click', e)\n },\n onChange () {\n if (!this.isInteractive) return\n\n const value = this.value\n let input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) {\n input = []\n }\n\n const length = input.length\n\n input = input.filter((item: any) => !this.valueComparator(item, value))\n\n if (input.length === length) {\n input.push(value)\n }\n } else if (this.trueValue !== undefined && this.falseValue !== undefined) {\n input = this.valueComparator(input, this.trueValue) ? this.falseValue : this.trueValue\n } else if (value) {\n input = this.valueComparator(input, value) ? null : value\n } else {\n input = !input\n }\n\n this.validate(true, input)\n this.internalValue = input\n this.hasColor = input\n },\n onFocus () {\n this.isFocused = true\n },\n /** @abstract */\n onKeydown (e: Event) {},\n },\n})\n"],"sourceRoot":""}