{"version":3,"sources":["webpack:///../WCC.UI/App/components/task/topics/slider/group.html?6bd8","webpack:///../WCC.UI/App/components/task/topics/slider/group.scss?958d","webpack:///../WCC.UI/App/components/task/topics/slider/group.ts","webpack:///../WCC.UI/App/components/task/topics/slider/item.ts","webpack:///../WCC.UI/App/components/task/topics/slider/pageControl.html?ca04","webpack:///../WCC.UI/App/components/task/topics/slider/pageControl.ts","webpack:///../WCC.UI/App/components/task/topics/slider/slider.html?28f3","webpack:///../WCC.UI/App/components/task/topics/slider/slider.scss?7616","webpack:///../WCC.UI/App/components/task/topics/slider/slider.ts","webpack:///../WCC.UI/App/components/task/topics/slider/topic.html?a4a6","webpack:///../WCC.UI/App/components/task/topics/slider/topic.scss?a3ac","webpack:///../WCC.UI/App/components/task/topics/slider/topic.ts","webpack:///../WCC.UI/App/webpack/runtime/htmlExposer.js","webpack:///../WCC.UI/App/components/task/topics/slider/group.scss","webpack:///../WCC.UI/App/components/task/topics/slider/slider.scss","webpack:///../WCC.UI/App/components/task/topics/slider/topic.scss","webpack:///../WCC.UI/App/components/task/topics/slider/group.html","webpack:///../WCC.UI/App/components/task/topics/slider/pageControl.html","webpack:///../WCC.UI/App/components/task/topics/slider/slider.html","webpack:///../WCC.UI/App/components/task/topics/slider/topic.html"],"names":["content","expose","__esModule","default","api","module","i","options","exports","locals","TopicsSliderGroup","TopicsSliderItem","constructor","group","super","containsTopic","topicId","this","topics","some","topic","id","map","TopicsSliderTopic","TopicsSliderGroupVM","model","info","title","toDoCount","reduce","result","shouldBeAnswered","ToDoCountShown","is","count","ko","applyBindingsToNode","element","isSelected","not","isHighlighted","__decorate","injectable","__param","inject","wccModules","componentConfig","componentInfo","isActive","observable","TopicsSliderPageControlVM","config","labels","todoCount","flattenComputed","pages","pluck","flatten","item","data","isAnswered","hasToDo","v","components","registerLocal","require","preload","TopicsSliderVM","storage","effects","_config$onTopicClick","pickedGroupItem","allowHighlighting","isBusy","pickGroup","groupItem","pickTopic","topicItem","onTopicClick","getTopicConfig","theme","activate","undefined","onTopicActivate","system","lockOrSkip","_this$onTopicActivate","Promise","resolve","call","taskId","groupId","activeTopicId","selectedTopicId","filters","searchString","f","peopleTagsIDs","_","noop","topicsManager","get","SimpleTopicsManager","discussionId","groups","observableArray","cachedGroups","cache","cachedGroup","newGroup","update","toJson","clone","extend","deferred","filteredGroups","filter","g","groupItems","groupsShown","length","selectedGroupItem","find","allTopicItems","trackArrayChanges","topicItems","selectedTopicItem","selectedTopicIdOrDefault","first","activeTopicIdOrDefault","groupsSlider","source","selectedItem","showControlsOverContent","sliderItemMinWidth","sliderItemMaxWidth","settings","isMaterialUIEnabled","topicsSlider","layout","type","minWidth","maxWidth","otherPages","itemWidth","isReady","pureComputed","register","subscribe","onTopicsChanged","onArrayChange","add","onTopicAdded","computed","forEach","withEffect","newGroups","isLoading","loading","defer","delay","TopicsSliderTopicVM","isNotSelected","isInactive","topicBoxConfig","showExpander","canActivate","SystemHelpers","html","getTemplatesAndResources","node","document","head","appendChild","___CSS_LOADER_API_IMPORT___","push"],"mappings":"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","file":"125.5235abf8fbf7158a7469.js","sourcesContent":["define([\n        \"!!../../../../../node_modules/html-loader/dist/cjs.js??ref--26-1!./group.html\", \n        \"!../../../../webpack/runtime/htmlExposer.js\"], function (content, expose) {\n            content = content.__esModule ? content.default : content;\n            expose(content);\n            return content;\n        });","var api = require(\"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n            var content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/sass-loader/dist/cjs.js!./group.scss\");\n\n            content = content.__esModule ? content.default : content;\n\n            if (typeof content === 'string') {\n              content = [[module.id, content, '']];\n            }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","import { wccModules } from 'enums/wccModules';\r\nimport { inject, injectable } from 'inversify';\r\nimport { ObservableArray, Subscribable } from 'knockout';\r\nimport { SimpleTopic } from 'models/simpleTopic';\r\nimport { SimpleTopicsGroup } from 'models/simpleTopicsGroup';\r\nimport './group.html';\r\nimport './group.scss';\r\nimport TopicsSliderItem from './item';\r\nimport { TopicsSliderTopic } from './topic';\r\n\r\nexport class TopicsSliderGroup extends TopicsSliderItem {\n    topics: Subscribable<Array<TopicsSliderTopic>>\n\n    constructor(public group: SimpleTopicsGroup) {\r\n        super();\r\n\r\n        this.topics = this.group.topics.map(topic => new TopicsSliderTopic(topic));\r\n    }\r\n\r\n    containsTopic = (topicId: string) => {\r\n        return this.group.topics().some(topic => topic.id() == topicId);\r\n    }\r\n}\n\n@injectable()\nexport default class TopicsSliderGroupVM {\n    topics: ObservableArray<SimpleTopic>\n\n    title: Subscribable<string>\n    toDoCount: Subscribable<number>\n\n    ToDoCountShown: Subscribable<boolean>\n\n    constructor(\r\n        @inject(wccModules.componentConfig) model: TopicsSliderGroup,\r\n        @inject(wccModules.componentInfo) info: ko.components.ComponentInfo\r\n    ) {\r\n        const group = model.group;\r\n        this.title = group.title;\r\n\r\n        this.topics = group.topics;\r\n        this.toDoCount = this.topics.reduce((result, topic) => result + (topic.shouldBeAnswered() ? 1 : topic.toDoCount()), () => 0);\r\n\r\n        this.ToDoCountShown = this.toDoCount.is(count => count > 0);\r\n\r\n        ko.applyBindingsToNode(info.element, {\n            'css': {\n                'task__topics-slider__group': true,\n                'task__topics-slider__group--selected': model.isSelected,\n                'task__topics-slider__group--not-selected': model.isSelected.not(),\n                'task__topics-slider__group--highlighted': model.isHighlighted\n            }\n        });\r\n    }    \r\n}","export default abstract class TopicsSliderItem {\n    isActive = ko.observable(false);\n    isSelected = ko.observable(false);\n    isHighlighted = ko.observable(false);\n\n    constructor() { }\r\n}","define([\n        \"!!../../../../../node_modules/html-loader/dist/cjs.js??ref--26-1!./pageControl.html\", \n        \"!../../../../webpack/runtime/htmlExposer.js\"], function (content, expose) {\n            content = content.__esModule ? content.default : content;\n            expose(content);\n            return content;\n        });","import { wccModules } from 'enums/wccModules';\r\nimport { inject, injectable } from 'inversify';\r\nimport { Subscribable, SubscribableOrNullableValue } from 'knockout';\r\nimport './pageControl.html';\r\nimport { TopicsSliderTopic } from './topic';\r\n\r\nexport interface TopicsSliderPageControlVMConfig {\n    pages: SubscribableOrNullableValue<Array<any>>\r\n}\n\n@injectable()\nexport default class TopicsSliderPageControlVM {\n    labels = labels;\n\n    hasToDo: Subscribable<boolean>\n\n    constructor(\r\n        @inject(wccModules.componentConfig) config: TopicsSliderPageControlVMConfig,\r\n        @inject(wccModules.componentInfo) info: ko.components.ComponentInfo\r\n    ) {\r\n        const pages = ko.flattenComputed(config.pages, []);\n        const items = pages.pluck('items').flatten();\n        const topics = items.pluck(item => <TopicsSliderTopic>item.data).pluck(item => item.topic);\n        const todoCount = topics.reduce((count, topic) => count + (topic.isAnswered() ? 0 : 1), () => 0);\n        this.hasToDo = todoCount.is(v => v > 0);\r\n\r\n        ko.applyBindingsToNode(info.element, {\n            'css': {\n                'task__topics-slider__page-control': true,\n                'task__topics-slider__page-control--with-todo': this.hasToDo,\n                'wcc-slider__control__body': true,\n                'qzy-primary-color': true\n            }\n        });\r\n    }\r\n}","define([\n        \"!!../../../../../node_modules/html-loader/dist/cjs.js??ref--26-1!./slider.html\", \n        \"!../../../../webpack/runtime/htmlExposer.js\"], function (content, expose) {\n            content = content.__esModule ? content.default : content;\n            expose(content);\n            return content;\n        });","var api = require(\"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n            var content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/sass-loader/dist/cjs.js!./slider.scss\");\n\n            content = content.__esModule ? content.default : content;\n\n            if (typeof content === 'string') {\n              content = [[module.id, content, '']];\n            }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","import { WCCSliderConfig } from 'components/slider/slider.interfaces';\r\nimport { wccModules } from 'enums/wccModules';\r\nimport { Func } from 'interfaces/func';\r\nimport { inject, injectable } from 'inversify';\r\nimport { Subscribable, SubscribableOrNullableValue } from 'knockout';\r\nimport SimpleTopicsManager from 'managers/discussion/simpleTopics';\r\nimport { IWCCStorageManager } from 'managers/iStorage';\r\nimport { withEffect } from 'mixins/withEffect';\r\nimport { EffectsContainer } from 'mixins/withEffects';\r\nimport CommentsFilters from 'models/commentsFilters';\r\nimport { SimpleTopicsGroup } from 'models/simpleTopicsGroup';\r\nimport { TopicsSliderGroup } from './group';\r\nimport './slider.html';\r\nimport './slider.scss';\r\nimport { TopicsSliderTopic, TopicsSliderTopicVMConfig, TopicsSliderTopicVMTheme } from './topic';\r\n\r\ncomponents.registerLocal('task-topics-slider-group', () => require('components/task/topics/slider/group'));\ncomponents.registerLocal('task-topics-slider-topic', () => require('components/task/topics/slider/topic'));\ncomponents.registerLocal('task-topics-slider-page-control', () => require('components/task/topics/slider/pageControl'));\n\ncomponents.preload('wcc-slider', 'topic-box');\r\n\r\nexport type TopicsSliderVMTheme = TopicsSliderTopicVMTheme;\r\n\r\nexport interface TopicsSliderVMConfig {\n    taskId?: SubscribableOrNullableValue<string>\r\n    groupId?: SubscribableOrNullableValue<string>\r\n    activeTopicId?: SubscribableOrNullableValue<string>\r\n    selectedTopicId?: SubscribableOrNullableValue<string>\r\n    filters?: SubscribableOrNullableValue<CommentsFilters>\r\n    theme?: SubscribableOrNullableValue<TopicsSliderVMTheme>\r\n\r\n    onTopicClick?: Action<[string]>\r\n    onTopicActivate?: Action<[string]> | Func<Promise<void>, [string]>\r\n}\n\n@injectable()\nexport default class TopicsSliderVM {\n    private pickedGroupItem = ko.observable<TopicsSliderGroup>();\n    private allowHighlighting = ko.observable(false);\n\n    private theme: Subscribable<TopicsSliderVMTheme>\n    private groupItems: Subscribable<Array<TopicsSliderGroup>>\n    private allTopicItems: Subscribable<Array<TopicsSliderTopic>>\n\n    private onTopicClick: Action<[string]>\n    private onTopicActivate?: Action<[string]> | Func<Promise<void>, [string]>\n\n    isBusy = ko.observable(false);\n\n    groupsSlider: WCCSliderConfig<TopicsSliderGroup>\n    topicsSlider: WCCSliderConfig<TopicsSliderTopic>\n\n    groupsShown: Subscribable<boolean>\n\n    isReady: Subscribable<boolean>\n\n    constructor(\r\n        @inject(wccModules.componentConfig) private config: TopicsSliderVMConfig,\r\n        @inject(wccModules.componentInfo) info: ko.components.ComponentInfo,\r\n        @inject(wccModules.storage) storage: IWCCStorageManager,\r\n        @inject(wccModules.effects) effects: EffectsContainer\r\n    ) {\r\n        const taskId = ko.flattenComputed(config.taskId);\n        const groupId = ko.flattenComputed(config.groupId);\n        const activeTopicId = ko.flattenComputed(config.activeTopicId);\n        const selectedTopicId = ko.flattenComputed(config.selectedTopicId);        \n        const filters = ko.flattenComputed(config.filters);\n        const searchString = filters.pluck(f => f.searchString, '');\n        const peopleTagsIDs = filters.pluck(f => f.peopleTagsIDs, []);\n\n        this.theme = ko.flattenComputed(config.theme, 'classic');\n\n        this.onTopicClick = config.onTopicClick ?? _.noop;\n        this.onTopicActivate = config.onTopicActivate;\n\n        const topicsManager = storage.get(SimpleTopicsManager, { discussionId: taskId, searchString, peopleTagsIDs });\n        const groups = ko.observableArray<SimpleTopicsGroup>();\n        const cachedGroups = groups.cache('id', (cachedGroup, newGroup) => cachedGroup.update(newGroup.toJson()), group => group.clone()).extend({ deferred: true });\n        const filteredGroups = cachedGroups.filter(g => groupId() == undefined ? true : g.id() === groupId());\n\n        this.groupItems = filteredGroups.map(group => new TopicsSliderGroup(group));\n        this.groupsShown = filteredGroups.is(groups => groups.length > 1);\n        const selectedGroupItem = this.groupItems.find(item => item.isSelected());\n\n        this.allTopicItems = this.groupItems.pluck(item => item.topics).flatten().extend({ trackArrayChanges: true });\n\n        const topicItems = selectedGroupItem.pluck(item => item.topics, []);\n        const selectedTopicItem = topicItems.find(item => item.isSelected());\n\n        const selectedTopicIdOrDefault = selectedTopicId.default(topicItems.first().pluck(item => item.topic.id()));\n        const activeTopicIdOrDefault = activeTopicId.default(selectedTopicIdOrDefault);\n\n        this.groupsSlider = {\n            source: this.groupItems,\n            selectedItem: selectedGroupItem,\n            showControlsOverContent: false\n        };\n\n        let sliderItemMinWidth = 285, sliderItemMaxWidth = 350;\n\n        if (settings.isMaterialUIEnabled()) {\n            sliderItemMinWidth = 115;\r\n            sliderItemMaxWidth = 250;\r\n        }\n\n        this.topicsSlider = {\n            source: topicItems,\n            selectedItem: selectedTopicItem,\n            layout: { type: 'dynamic', minWidth: sliderItemMinWidth, maxWidth: sliderItemMaxWidth },\n            otherPages: { itemWidth: 0.4 },\n            showControlsOverContent: false\n        };\n\n        this.isReady = ko.pureComputed(() => cachedGroups().length > 0);\n\n        effects.register([\n            selectedTopicId.subscribe(() => this.pickedGroupItem(undefined)),\n\n            this.allTopicItems.subscribe(topics => this.onTopicsChanged(topics)),\n            this.allTopicItems.onArrayChange({ add: topic => this.onTopicAdded(topic) }),\n\n            ko.computed(() => {\n                const pickedGroupItem = this.pickedGroupItem();\n\n                if (pickedGroupItem == undefined) {\n                    if (groupId() != undefined) {\n                        this.groupItems().forEach(item => item.isSelected(item.group.id() === groupId()));\n                    } else {\n                        this.groupItems().forEach(item => item.isSelected(item.containsTopic(<string>selectedTopicId())));\n                    }\n                } else {\n                    this.groupItems().forEach(item => item.isSelected(item == pickedGroupItem));\n                }\n            }),\n\n            ko.computed(() => topicItems().forEach(item => item.isSelected(item.topic.id() == selectedTopicIdOrDefault()))),\n            ko.computed(() => topicItems().forEach(item => item.isActive(item.topic.id() == activeTopicIdOrDefault())))\n        ]);\n\n        effects.register((topicsManager) => {\n            if (topicsManager)\n                return withEffect((newGroups, isLoading) => {\n                    if (!isLoading)\r\n                        groups(newGroups);\r\n                }, [topicsManager.groups, topicsManager.loading]);\r\n        }, [topicsManager]);\n\n        ko.applyBindingsToNode(info.element, {\n            'visible': this.isReady,\n\n            'css': {\n                'task__topics-slider': true,\n                'task__topics-slider--no-groups': this.groupsShown.not()\n            }\n        });\r\n    }\r\n\r\n    pickGroup = (groupItem: TopicsSliderGroup) => {\n        this.pickedGroupItem(groupItem);\n    }\n\n    pickTopic = (topicItem: TopicsSliderTopic) => {\n        this.onTopicClick(<string>topicItem.topic.id());\n    }\n\n    getTopicConfig = (topicItem: TopicsSliderTopic) => {\n        return <TopicsSliderTopicVMConfig>{\r\n            topicItem: topicItem,\r\n            theme: this.theme,\r\n\r\n            activate: this.onTopicActivate != undefined ?\r\n                () => system.lockOrSkip(this.isBusy, () => Promise.resolve(this.onTopicActivate?.(<string>topicItem.topic.id()))) :\r\n                undefined\r\n        }\r\n    }\n\n    private onTopicsChanged(topicItems: Array<TopicsSliderTopic>) {\n        if (topicItems.length > 0)\n            _.defer(() => this.allowHighlighting(true));\n    }\n\n    private onTopicAdded(topicItem: TopicsSliderTopic) {\n        if (this.allowHighlighting()) {\n            const groupItem = this.groupItems().find(item => item.containsTopic(<string>topicItem.topic.id()));\n\n            if (groupItem != undefined) {\n                if (groupItem.group.topics().length === 1)\n                    groupItem.isHighlighted(true);\n\n                if (topicItem != undefined) {\n                    topicItem.isHighlighted(true);\n\n                    _.delay(() => {\n                        groupItem.isHighlighted(false);\n                        topicItem.isHighlighted(false);\n                    }, 5000);\n                }\n            }\n        }\n    };\r\n}","define([\n        \"!!../../../../../node_modules/html-loader/dist/cjs.js??ref--26-1!./topic.html\", \n        \"!../../../../webpack/runtime/htmlExposer.js\"], function (content, expose) {\n            content = content.__esModule ? content.default : content;\n            expose(content);\n            return content;\n        });","var api = require(\"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n            var content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/sass-loader/dist/cjs.js!./topic.scss\");\n\n            content = content.__esModule ? content.default : content;\n\n            if (typeof content === 'string') {\n              content = [[module.id, content, '']];\n            }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","import { TopicBoxVMConfig, TopicBoxVMTheme } from 'components/topic/box/box';\r\nimport { wccModules } from 'enums/wccModules';\r\nimport { Func } from 'interfaces/func';\r\nimport { inject, injectable } from 'inversify';\r\nimport { SubscribableOrNullableValue } from 'knockout';\r\nimport { SimpleTopic } from 'models/simpleTopic';\r\nimport TopicsSliderItem from './item';\r\nimport './topic.html';\r\nimport './topic.scss';\r\n\r\ncomponents.preload('topic-box');\r\n\nexport class TopicsSliderTopic extends TopicsSliderItem {\n    constructor(public topic: SimpleTopic) {\r\n        super();\r\n    }\r\n}\n\nexport interface TopicsSliderTopicVMConfig {\n    topicItem: TopicsSliderTopic\r\n    theme?: SubscribableOrNullableValue<TopicsSliderTopicVMTheme>\r\n\r\n    activate?: Action<[topicItem: TopicsSliderTopic]> | Func<Promise<void>, [topicItem: TopicsSliderTopic]>\r\n}\n\nexport type TopicsSliderTopicVMTheme = TopicBoxVMTheme;\n\n@injectable()\nexport default class TopicsSliderTopicVM {\n    topicBoxConfig: TopicBoxVMConfig\n\n    constructor(\r\n        @inject(wccModules.componentConfig) config: TopicsSliderTopicVMConfig,\r\n        @inject(wccModules.componentInfo) info: ko.components.ComponentInfo\r\n    ) {\r\n        const topicItem = config.topicItem;\r\n        const theme = ko.flattenComputed(config.theme, 'classic');\r\n\r\n        const isSelected = topicItem.isSelected;\r\n        const isNotSelected = isSelected.not();\r\n\r\n        const isActive = topicItem.isActive;\r\n        const isInactive = isActive.not();\r\n\r\n        this.topicBoxConfig = {\r\n            topic: topicItem.topic,\r\n            theme: theme,\r\n            showExpander: true,\r\n            canActivate: isInactive,\r\n\r\n            activate: config.activate ? () => config.activate?.(topicItem) : undefined\r\n        }\r\n\r\n        ko.applyBindingsToNode(info.element, {\n            'css': {\n                'task__topics-slider__topic': true,\n                'task__topics-slider__topic--theme-small': theme.is('small', 'small-rounded'),\n                'task__topics-slider__topic--theme-rounded': theme.is('small-rounded'),\n                'task__topics-slider__topic--selected': isSelected,\n                'task__topics-slider__topic--not-selected': isNotSelected,\n                'task__topics-slider__topic--highlighted': topicItem.isHighlighted\n            }\n        });\r\n    }\r\n}","define(function () {\r\n    const system = require('helpers/system').SystemHelpers;\r\n\r\n    return function (html) {\r\n        system.getTemplatesAndResources(html)\r\n            .forEach(function (node) { document.head.appendChild(node) });\r\n    }\r\n});","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".task__topics-slider__group{-webkit-transition:background 5s ease-in-out;-moz-transition:background 5s ease-in-out;-o-transition:background 5s ease-in-out;transition:background 5s ease-in-out;display:block;background-color:transparent;padding:0 10px;line-height:24px}.task__topics-slider__group .wcc-badge{margin-left:3px}.task__topics-slider__group>*{vertical-align:middle}.task__topics-slider__group.task__topics-slider__group--selected .task__topics-slider__group__title{color:#262626;border-bottom-color:#262626}.task__topics-slider__group.task__topics-slider__group--selected .task__topics-slider__group__title:hover{color:#000;border-bottom-color:#000}.task__topics-slider__group.task__topics-slider__group--not-selected{cursor:pointer}.task__topics-slider__group.task__topics-slider__group--not-selected .task__topics-slider__group__title{color:#a0a0a0;border-bottom-color:#a0a0a0;border-bottom-color:transparent}.task__topics-slider__group.task__topics-slider__group--not-selected .task__topics-slider__group__title:hover{color:#6d6d6d;border-bottom-color:#6d6d6d}.task__topics-slider__group.task__topics-slider__group--highlighted{background-color:#fff89e}.task__topics-slider__group__title{cursor:pointer;border-bottom:1px dotted transparent}.task__topics-slider__group__title:focus,.task__topics-slider__group__title:hover{outline:none;text-decoration:none}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".task__topics-slider{position:relative;display:block;background-color:#f8f8f7;padding:10px;min-height:24px}.task__topics-slider.task__topics-slider--no-groups .task__topics-slider__topics-slider{margin:-10px}.task__topics-slider__groups-slider{margin:0 -10px}.task__topics-slider__groups-slider .wcc-slider__item:after{position:absolute;right:0;top:50%;transform:translate(50%, -50%);content:\\\"·\\\"}.task__topics-slider__groups-slider .wcc-slider__item:last-child:after{content:none}.task__topics-slider__topics-slider{margin:0 -10px -10px}.task__topics-slider__topics-slider .wcc-slider__item:last-child .task__topics-slider__topic{margin-right:0px}.task__topics-slider__topics-slider .wcc-slider__control--next .task__topics-slider__page-control--with-todo{border-top-left-radius:0 !important;border-bottom-left-radius:0 !important}.task__topics-slider__topics-slider .wcc-slider__control--next .task__topics-slider__page-control__body{right:100%;border-top-right-radius:0;border-bottom-right-radius:0;border-right:none}.task__topics-slider__topics-slider .wcc-slider__control--prev .task__topics-slider__page-control--with-todo{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.task__topics-slider__topics-slider .wcc-slider__control--prev .task__topics-slider__page-control__body{left:100%;border-top-left-radius:0;border-bottom-left-radius:0;border-left:none}.task__topics-slider__page-control{display:block}.task__topics-slider__page-control--with-todo{background-color:#cd2723 !important;border:1px solid #fff !important}.task__topics-slider__page-control__body{position:absolute;top:-1px;bottom:-1px;padding:0 5px;background-color:#cd2723;border:1px solid #f8f8f7;border-radius:4px;color:#fff;white-space:nowrap}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".task__topics-slider__topic{display:block;padding:15px 10px}.task__topics-slider__topic .topic__box{-webkit-transition:background 5s ease-in-out;-moz-transition:background 5s ease-in-out;-o-transition:background 5s ease-in-out;transition:background 5s ease-in-out}.task__topics-slider__topic.task__topics-slider__topic--theme-rounded .task__topics-slider__topic__body{border-radius:4px}.task__topics-slider__topic.task__topics-slider__topic--selected .task__topics-slider__topic__body{border-color:#9d9d9d;box-shadow:0 0 11px 0 rgba(0,0,0,.3)}.task__topics-slider__topic.task__topics-slider__topic--selected .task__topics-slider__topic__body:before{position:absolute;left:50%;bottom:-17px;width:0;height:0;border:solid transparent;border-bottom-color:#444;border-width:13px;margin-left:-13px;pointer-events:none;content:\\\" \\\"}.task__topics-slider__topic.task__topics-slider__topic--not-selected{cursor:pointer}.task__topics-slider__topic.task__topics-slider__topic--not-selected .topic__box{cursor:pointer}.task__topics-slider__topic.task__topics-slider__topic--highlighted .topic__box{background-color:#fff89e}.task__topics-slider__topic__body{position:relative;border:2px solid #c6c6c6}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","// Module\nvar code = \"<script id=\\\"wcc-components-task-topics-slider-group\\\" type=\\\"text/template\\\">\\r\\n    <span class=\\\"task__topics-slider__group__title\\\" data-bind=\\\"safehtml: title\\\"></span>\\r\\n    <span class=\\\"wcc-badge wcc-badge--red qzy-primary-color\\\" data-bind=\\\"text: toDoCount, visible: ToDoCountShown\\\"></span>\\r\\n</script>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<script id=\\\"wcc-components-task-topics-slider-page-control\\\" type=\\\"text/template\\\">\\r\\n    <div class=\\\"task__topics-slider__page-control__body qzy-primary-color\\\" data-bind=\\\"visible: hasToDo\\\">\\r\\n        <span class=\\\"text-xs\\\" data-bind=\\\"text: labels.ToDo\\\"></span>\\r\\n    </div>\\r\\n</script>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<script id=\\\"wcc-components-task-topics-slider\\\" type=\\\"text/template\\\">\\r\\n    <wcc-slider-sync class=\\\"task__topics-slider__groups-slider\\\" params=\\\"model: groupsSlider\\\" data-bind=\\\"visible: groupsShown\\\">\\r\\n        <task-topics-slider-group params=\\\"model: $data\\\" data-bind=\\\"click: $component.pickGroup\\\"></task-topics-slider-group>\\r\\n    </wcc-slider-sync>\\r\\n\\r\\n    <wcc-slider-sync class=\\\"task__topics-slider__topics-slider\\\" params=\\\"model: topicsSlider\\\">\\r\\n        <slider-control-prev>\\r\\n            <task-topics-slider-page-control params=\\\"pages: prevPages\\\"></task-topics-slider-page-control>\\r\\n        </slider-control-prev>\\r\\n\\r\\n        <slider-item>\\r\\n            <task-topics-slider-topic params=\\\"model: $component.getTopicConfig($data)\\\" data-bind=\\\"click: $component.pickTopic\\\"></task-topics-slider-topic>\\r\\n        </slider-item>\\r\\n\\r\\n        <slider-control-next>\\r\\n            <task-topics-slider-page-control params=\\\"pages: nextPages\\\"></task-topics-slider-page-control>\\r\\n        </slider-control-next>\\r\\n    </wcc-slider-sync>\\r\\n\\r\\n    <div class=\\\"nonEditableCover flex\\\" data-bind=\\\"visible: isBusy\\\">\\r\\n        <wcs-spinner params=\\\"small: true, center: true\\\"></wcs-spinner>\\r\\n    </div>\\r\\n</script>\";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<script id=\\\"wcc-components-task-topics-slider-topic\\\" type=\\\"text/template\\\">\\r\\n    <div class=\\\"task__topics-slider__topic__body\\\">\\r\\n        <topic-box-sync params=\\\"model: topicBoxConfig\\\"></topic-box-sync>\\r\\n    </div>\\r\\n</script>\";\n// Exports\nmodule.exports = code;"],"sourceRoot":""}