1AppRegistry.registerBundle({applicationId:'limepark.page-feedback|3.1.0',bundle: {"en":{"gdprFieldLabel":"Data storage","gdprConfirmation":"I agree that information is stored to collect and respond to feedback.","errorGeneralError":"The message could not be sent.","returnToPage":"Click here to return to the page","confirmation":"Thanks for your feedback!","errorNoConfirmation":"Please check to box to agree that we store your personal information.","mandatory":"Mandatory","unknownError":"An unknown error occured.","helpfulInformation":"Was this information helpful?","fieldEmail":"Your e-mail address","errorInvalidEmail":"Please check your e-mail address.","alternativeNo":"No","fieldImprovements":"How can we improve the information on this page?","errorInvalidRecipient":"Unfortunately the message could not be sent.","errorNotConfigured":"The module has not been properly configured.","errorMessageText":"A problem occured","errorWrongCaptcha":"Please fill the captcha to confirm that you're not a robot.","alternativeYes":"Yes","errorNoMessageSpecified":"Please suggest improvements through the feedback form."},"sv":{"gdprFieldLabel":"Godkännande av datalagring","gdprConfirmation":"Jag godkänner att informationen lagras i syfte att kunna ta till sig av och besvara feedback.","errorGeneralError":"Meddelandet kunde tyvärr inte skickas.","returnToPage":"Klicka här för att gå tillbaka till sidan","confirmation":"Tack för din feedback!","errorNoConfirmation":"Du måste godkänna att vi lagrar informationen","mandatory":"Obligatoriskt","unknownError":"Ett okänt fel uppstod","helpfulInformation":"Hjälpte informationen på sidan dig?","fieldEmail":"E-postadress","errorInvalidEmail":"Felaktig e-postadress","alternativeNo":"Nej","fieldImprovements":"Vad kan vi göra bättre på denna sida?","errorInvalidRecipient":"Meddelandet kunde tyvärr inte skickas till mottagaren.","errorNotConfigured":"Modulen har inte konfigurerats korrekt.","errorMessageText":"Ett fel uppstod","errorWrongCaptcha":"Vänligen fyll i captchan för att bekräfta att du inte är en robot.","alternativeYes":"Ja","errorNoMessageSpecified":"Vänligen fyll i ett förbättringsförslag i meddelandefältet."}}}); 2AppRegistry.registerModule({applicationId:'limepark.page-feedback|3.1.0',path:'/template/modules/error',module:function(define){define(function(require){var _=require('underscore');return function(obj){ 3var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');}; 4with(obj||{}){ 5__p+='<div class="lp-page-feedback">\n '; 6 if(formErrors) { 7__p+='\n '; 8 _(formErrors).each(function(message) { 9__p+='\n <div class="lp-form-error">\n '+ 10((__t=( i18n('errorMessageText') ))==null?'':__t)+ 11':<br/>\n <span>'+ 12((__t=( i18n(message) ))==null?'':__t)+ 13'</span>\n </div>\n '; 14 }) 15__p+='\n '; 16 } 17__p+='\n</div>\n'; 18} 19return __p; 20};});}}); 21AppRegistry.registerModule({applicationId:'limepark.page-feedback|3.1.0',path:'/reducer',module:function(define){'use strict';define(function (require) { 22 'use strict'; 23 24 var _ = require('underscore'); 25 26 var reducer = function reducer(state, action) { 27 switch (action.type) { 28 case 'TOGGLE_FORM_SHOW': 29 return _.extend({}, state, { 30 showForm: true 31 }); 32 33 case 'TOGGLE_FORM_HIDE': 34 return _.extend({}, state, { 35 showForm: false 36 }); 37 38 case 'TOGGLE_QUESTION_SHOW': 39 return _.extend({}, state, { 40 showQuestion: true 41 }); 42 43 case 'TOGGLE_QUESTION_HIDE': 44 return _.extend({}, state, { 45 showQuestion: false 46 }); 47 48 case 'TOGGLE_FORM_DISABLED': 49 return _.extend({}, state, { 50 disableForm: true 51 }); 52 53 case 'TOGGLE_FORM_ENABLED': 54 return _.extend({}, state, { 55 disableForm: false 56 }); 57 58 case 'TOGGLE_BUTTONS_DISABLED': 59 return _.extend({}, state, { 60 disableButtons: true 61 }); 62 63 case 'TOGGLE_BUTTONS_ENABLED': 64 return _.extend({}, state, { 65 disableButtons: false 66 }); 67 68 case 'SHOW_CONFIRMATION': 69 return _.extend({}, state, { 70 showConfirmation: true 71 }); 72 73 case 'CLEAR_FORM_ERRORS': 74 return _.extend({}, state, { 75 formErrors: [] 76 }); 77 78 case 'ADD_FORM_ERROR': 79 var errorArray = state.formErrors.reduce(function (acc, value) { 80 var array = acc; 81 array.push(value); 82 return array; 83 }, []); 84 errorArray.push(action.error); 85 return _.extend({}, state, { 86 formErrors: errorArray 87 }); 88 89 case 'SET_FORM_VALUES': 90 return _.extend({}, state, { 91 formValues: { 92 email: action.email, 93 message: action.message, 94 confirmation: action.confirmation 95 } 96 }); 97 98 default: 99 return state; 100 } 101 }; 102 103 return reducer; 104});}}); 105AppRegistry.registerModule({applicationId:'limepark.page-feedback|3.1.0',path:'/module/client/helpers',module:function(define){'use strict';define(function () { 106 'use strict'; 107
108 var ANIMATION_SPEED = 65; 109 return { 110 // Function to toggle form disabled/enabled 111 toggleDisableForm: function toggleDisableForm(form, disabled) { 112 if (disabled) { 113 form.animate({ 114 opacity: 0.5 115 }, ANIMATION_SPEED); 116 } else { 117 form.css({ 118 opacity: 1 119 }); 120 } 121 } 122 }; 123});}}); 124AppRegistry.registerModule({applicationId:'limepark.page-feedback|3.1.0',path:'/template/modules/form',module:function(define){define(function(require){var _=require('underscore');return function(obj){ 125var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');}; 126with(obj||{}){ 127__p+=''; 128 if (showRecaptcha) { 129__p+='\n <script src=\'https://www.google.com/recaptcha/api.js\'></script>\n'; 130 } 131__p+='\n\n<div class="env-form env-m-top--medium lp-feedback-form'; 132 if (!showForm) { 133__p+=' env-d--none'; 134 } 135__p+='" id="'+ 136((__t=( appContext.getWebAppNamespace('form-component') ))==null?'':__t)+ 137'" role="form" aria-hidden="'+ 138((__t=( !showForm ))==null?'':__t)+ 139'">\n\n '; 140 if (texts.formTop) { 141__p+='\n <div class="lp-form-information-text lp-form-information-text--top">\n <p class="env-text">'+ 142((__t=( texts.formTop ))==null?'':_.escape(__t))+ 143'</p>\n </div>\n '; 144 } 145__p+='\n\n <form action="'+ 146((__t=( getUrl('/sendFeedback') ))==null?'':_.escape(__t))+ 147'" method="post">\n '; 148 if(formErrors) { 149__p+='\n '; 150 _(formErrors).each(function(message) { 151__p+='\n <div class="env-alert env-alert--danger lp-feedback-form-alert lp-feedback-form-error" role="alert">\n <strong>'+ 152((__t=( i18n('errorMessageText') ))==null?'':__t)+ 153'!</strong> '+ 154((__t=( i18n(message) ))==null?'':__t)+ 155'\n </div>\n '; 156 }) 157__p+='\n '; 158 } 159__p+='\n\n <div class="env-form-element lp-feedback-form-element">\n <label for="'+ 160((__t=( appContext.getWebAppNamespace('feedback-text') ))==null?'':__t)+ 161'" class="env-form-element__label lp-feedback-form-element__label">'+ 162((__t=( texts.feedbackLabel || i18n('fieldImprovements') ))==null?'':_.escape(__t))+ 163' <span class="lp-feedback-form-element__required">('+ 164((__t=( i18n('mandatory') ))==null?'':_.escape(__t))+ 165')</span></label>\n <div class="env-form-element__control lp-feedback-form-element__control">\n <textarea id="'+ 166((__t=( appContext.getWebAppNamespace('feedback-text') ))==null?'':__t)+ 167'" class="env-form-input lp-feedback-form-input" name="feedback-text" rows="3" '+ 168((__t=( texts.feedbackDescription ? 'aria-describedby="' + appContext.getWebAppNamespace('feedback-description') + '"' : '' ))==null?'':__t)+ 169' required>'+ 170((__t=( formValues.message ))==null?'':__t)+ 171'</textarea>\n </div>\n '; 172 if (texts.feedbackDescription) { 173__p+='\n <span id="'+ 174((__t=( appContext.getWebAppNamespace('feedback-description') ))==null?'':__t)+ 175'" class="env-form-element__help lp-feedback-form-element__help">'+ 176((__t=( texts.feedbackDescription ))==null?'':_.escape(__t))+ 177'</span>\n '; 178 } 179__p+='\n </div>\n\n '; 180 if (emailField.show) { 181__p+='\n <div class="env-form-element lp-feedback-form-element">\n <label for="'+ 182((__t=( appContext.getWebAppNamespace('feedback-email') ))==null?'':__t)+ 183'" class="env-form-element__label lp-feedback-form-element__label">'+ 184((__t=( i18n('fieldEmail') ))==null?'':__t)+ 185''+ 186((__t=( (emailField.required ? ' <span class="lp-feedback-form-element__required">(' + i18n('mandatory') + ')</span>' : '') ))==null?'':__t)+ 187'</label>\n <div class="env-form-element__control lp-feedback-form-element__control">\n <input id="'+ 188((__t=( appContext.getWebAppNamespace('feedback-email') ))==null?'':__t)+ 189'" class="env-form-input lp-feedback-form-input" name="feedback-email" type="email" value="'+ 190((__t=( formValues.email ))==null?'':__t)+ 191'"'; 192 if (emailField.required) { 193__p+=' required'; 194 } 195__p+='>\n </div>\n </div>\n '; 196 } 197__p+='\n\n '; 198 if (showConfirmationCheckbox) { 199__p+='\n <div class="env-form-element lp-feedback-form-element">\n <span class="env-form-element__label lp-feedback-form-element__label" id="'+ 200((__t=( appContext.getWebAppNamespace('gdpr-checkbox-header') ))==null?'':__t)+ 201'">'+ 202((__t=( texts.gdprLabel || i18n('gdprFieldLabel') ))==null?'':_.escape(__t))+ 203'</span>\n <div class="env-form-element__control lp-feedback-form-element__control" aria-labelledby="'+ 204((__t=( appContext.getWebAppNamespace('gdpr-checkbox-header') ))==null?'':__t)+ 205'">\n <div class="env-checkbox lp-feedback-checkbox">\n <input type="checkbox" id="'+ 206((__t=( appContext.getWebAppNamespace('gdpr-checkbox') ))==null?'':__t)+ 207'" name="feedback-gdpr-confirmation" '; 208 if (formValues.confirmation) { 209__p+='checked="checked"'; 210 } 211__p+=' value="true" required>\n <label class="env-form-element__label lp-feedback-form-element__label" for="'+ 212((__t=( appContext.getWebAppNamespace('gdpr-checkbox') ))==null?'':__t)+ 213'">
213\n <span class="env-checkbox__fake lp-feedback-checkbox__fake"></span>\n <span class="env-checkbox__label lp-feedback-checkbox__label">'+ 214((__t=( texts.gdprCheckbox || i18n('gdprConfirmation') ))==null?'':_.escape(__t))+ 215' <span class="lp-feedback-form-element__required">('+ 216((__t=( i18n('mandatory') ))==null?'':_.escape(__t))+ 217')</span></span>\n </label>\n </div>\n </div>\n </div>\n '; 218 } 219__p+='\n\n '; 220 if (showRecaptcha) { 221__p+='\n <div class="env-form-element lp-feedback-form-element">\n <div class="lp-feedback-recaptcha g-recaptcha" data-sitekey="'+ 222((__t=( recaptchaKey ))==null?'':_.escape(__t))+ 223'" id="'+ 224((__t=( appContext.getWebAppNamespace('lp-feedback-recaptcha') ))==null?'':__t)+ 225'"></div>\n <noscript>\n <div>\n <div style="width: 302px; height: 422px; position: relative;">\n <div style="width: 302px; height: 422px; position: absolute;">\n <iframe src="https://www.google.com/recaptcha/api/fallback?k='+ 226((__t=( recaptchaKey ))==null?'':_.escape(__t))+ 227'" style="width: 302px; height:422px; border-style: none;"></iframe>\n </div>\n </div>\n <div style="width: 300px; height: 60px; border-style: none; bottom: 12px; left: 25px; margin: 0px; padding: 0px; right: 25px; background: #f9f9f9; border: 1px solid #c1c1c1; border-radius: 3px;">\n <textarea name="captchaResponse" rows="1" class="g-recaptcha-response" style="width: 250px; height: 30px; border: 1px solid #c1c1c1; margin: 10px 25px; padding: 0px; resize: none; padding: 0;"></textarea>\n </div>\n </div>\n </noscript>\n </div>\n '; 228 } 229__p+='\n\n <div class="env-form-element lp-feedback-form-element">\n <input type="hidden" name="request-url" value="'+ 230((__t=( requestUrl ))==null?'':_.escape(__t))+ 231'">\n <input type="submit" value="Skicka" class="env-button env-button--primary lp-feedback-form-submit">\n </div>\n </form>\n\n '; 232 if (texts.formBottom) { 233__p+='\n <div class="lp-form-information-text lp-form-information-text--bottom">\n <p class="env-text">'+ 234((__t=( texts.formBottom ))==null?'':_.escape(__t))+ 235'</p>\n </div>\n '; 236 } 237__p+='\n</div>\n'; 238} 239return __p; 240};});}}); 241AppRegistry.registerModule({applicationId:'limepark.page-feedback|3.1.0',path:'/template/main',module:function(define){define(function(require){var _=require('underscore');return function(obj){ 242var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');}; 243with(obj||{}){ 244__p+='<div class="lp-page-feedback lp-page-feedback--theme-'+ 245((__t=(theme))==null?'':__t)+ 246'">\n '; 247 if (showQuestion) { 248__p+='\n <div class="lp-page-feedback__question">\n <span class="env-text">'+ 249((__t=( texts.question || i18n('helpfulInformation') ))==null?'':_.escape(__t))+ 250'</span>\n <div class="env-d--inline-block lp-feedback-buttons">\n <button data-option="yes"'; 251 if (disableButtons) { 252__p+=' disabled="disabled"'; 253 } 254__p+=' class="env-m-left--xx-small env-button env-button--small">\n '; 255 if (icons.yesButton) { 256__p+='\n '; 257 if (icons.yesButton.type === 'svg') { 258__p+='\n <svg class="lp-icon lp-page-feedback-buttons__icon" aria-hidden="true" role="presentation" xmlns="http://www.w3.org/2000/svg"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/rest-api/svg-sources/'+ 259((__t=( icons.yesButton.source ))==null?'':__t)+ 260'#'+ 261((__t=( icons.yesButton.symbol ))==null?'':__t)+ 262'"></use></svg>\n '; 263 } else { 264__p+='\n <img class="lp-img-icon" src="'+ 265((__t=( icons.yesButton.URI ))==null?'':__t)+ 266'" alt="" />\n '; 267 } 268__p+='\n '; 269 } 270__p+='\n <span>'+ 271((__t=( i18n('alternativeYes') ))==null?'':__t)+ 272'</span>\n </button>\n <button data-option="no"'; 273 if (disableButtons) { 274__p+=' disabled="disabled"'; 275 } 276__p+=' class="env-m-left--xx-small env-button env-button--small" aria-controls="'+ 277((__t=( appContext.getWebAppNamespace('form-component') ))==null?'':__t)+ 278'">\n '; 279 if (icons.noButton) { 280__p+='\n ';
281 if (icons.noButton.type === 'svg') { 282__p+='\n <svg class="lp-icon lp-page-feedback-buttons__icon" aria-hidden="true" role="presentation" xmlns="http://www.w3.org/2000/svg">\n <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/rest-api/svg-sources/'+ 283((__t=( icons.noButton.source ))==null?'':__t)+ 284'#'+ 285((__t=( icons.noButton.symbol ))==null?'':__t)+ 286'"></use>\n </svg>\n '; 287 } else { 288__p+='\n <img class="lp-img-icon lp-page-feedback-buttons__img-icon" src="'+ 289((__t=( icons.noButton.URI ))==null?'':__t)+ 290'" alt="" />\n '; 291 } 292__p+='\n '; 293 } 294__p+='\n <span>'+ 295((__t=( i18n('alternativeNo') ))==null?'':__t)+ 296'</span>\n </button>\n </div>\n </div>\n '; 297 } 298__p+='\n\n '; 299 if (!showConfirmation) { 300__p+='\n '+ 301((__t=( renderer.renderComponent('form') ))==null?'':__t)+ 302'\n '; 303 } else { 304__p+='\n <div class="lp-feedback-confirmation-text__wrapper">\n <p class="env-text lp-feedback-confirmation-text">'+ 305((__t=( texts.submitConfirmation || i18n('confirmation') ))==null?'':__t)+ 306'</p>\n </div>\n '; 307 } 308__p+='\n</div>\n'; 309} 310return __p; 311};});}}); 312AppRegistry.registerModule({applicationId:'limepark.page-feedback|3.1.0',path:'/component/form',module:function(define){'use strict';define(function (require) { 313 'use strict'; 314 315 var _ = require('underscore'); 316 317 var Component = require('Component'); 318 319 var template = require('/template/modules/form'); 320 321 var store = require('store'); 322 323 var $ = require('jquery'); 324 325 var requester = require('requester'); 326 327 var helperModule = require('/module/client/helpers'); 328 329 return Component.extend({ 330 template: template, 331 events: { 332 dom: { 333 'submit form': 'sendEmail' 334 }, 335 self: { 336 'state:changed:disableForm': 'toggleDisableForm', 337 'state:changed:formErrors': 'render', 338 'state:changed:showForm': 'render' 339 }, 340 router: { 341 'path:changed': 'render' 342 }, 343 store: 'handleStoreChange' 344 }, 345 onRendered: function onRendered() { 346 this.formElement = this.$('.lp-feedback-form'); 347 this.$('input[name="request-url"]').val(window.location.href); 348 349 if (this.state.showForm) { 350 this.$(!this.state.formErrors.length ? '.env-form-element label' : '.lp-feedback-form-error').first().focus(); 351 } 352 }, 353 sendEmail: function sendEmail(e) { 354 e.preventDefault(); 355 var targetForm = $(e.currentTarget); 356 store.dispatch({ 357 type: 'TOGGLE_FORM_DISABLED' 358 }); 359 store.dispatch({ 360 type: 'SET_FORM_VALUES', 361 email: this.$('input[name=feedback-email]').val() || null, 362 message: this.$('textarea[name=feedback-text]').val(), 363 confirmation: this.$('input[name=feedback-gdpr-confirmation]').is(':checked') 364 }); 365 requester.doPost({ 366 url: targetForm.attr('action'), 367 data: { 368 'request-url': decodeURI(this.$('input[name="request-url"]').val()), 369 'feedback-email': this.state.formValues.email, 370 'feedback-text': this.state.formValues.message, 371 'feedback-gdpr-confirmation': this.state.formValues.confirmation, 372 captchaResponse: this.state.showRecaptcha ? this.$('textarea[name="g-recaptcha-response"]').val() : null 373 }, 374 context: this 375 }).done(function (response) { 376 if (response.success) { 377 store.dispatch({ 378 type: 'TOGGLE_QUESTION_HIDE' 379 }); 380 store.dispatch({ 381 type: 'SHOW_CONFIRMATION' 382 }); 383 } else { 384 store.dispatch({ 385 type: 'CLEAR_FORM_ERRORS' 386 }); 387 store.dispatch({ 388 type: 'TOGGLE_FORM_ENABLED' 389 }); 390 store.dispatch({ 391 type: 'ADD_FORM_ERROR', 392 error: response.error || 'unknownError' 393 }); 394 } 395 }).fail(function () { 396 store.dispatch({ 397 type: 'CLEAR_FORM_ERRORS' 398 }); 399 store.dispatch({ 400 type: 'TOGGLE_FORM_ENABLED' 401 }); 402 store.dispatch({ 403 type: 'ADD_FORM_ERROR', 404 error: 'errorGeneralError' 405 }); 406 }); 407 }, 408 toggleDisableForm: function toggleDisableForm(disable) { 409 this.$el.find('form input[type="submit"]').prop('disabled', disable); 410 helperModule.toggleDisableForm(this.$el.find('form'), disable); 411 }, 412 handleStoreChange: function handleStoreChange(newState) { 413 this.setState(newState); 414 }, 415 filterState: function filterState(state) { 416 return _.extend({}, { 417 showForm: state.showForm, 418 disableForm: state.disableForm, 419 emailField: state.emailField, 420 showConfirmationCheckbox: state.showConfirmationCheckbox, 421 showRecaptcha: state.showRecaptcha, 422 recaptchaKey: state.recaptchaKey, 423 formErrors: state.formErrors, 424 formValues: state.formValues, 425 currentPage: state.currentPage, 426 requestUrl: state.requestUrl, 427 texts: state.texts 428 }); 429 } 430 }); 431});}}); 432AppRegistry.registerModule({applicationId:'limepark.page-feedback|3.1.0',path:'/main',module:function(define){'use strict';/* global ga, sv, $vizzit */ 433define(function (require) { 434 'use strict'; 435 436 var _ = require('underscore'); 437 438 var Component = require('Component'); 439 440 var store = require('store'); 441 442 var app = require('app'); 443 444 var mainTemplate = require('/template/main'); 445 446 return Component.extend({ 447 template: mainTemplate, 448 events: { 449 dom: { 450 'click [data-option]': 'handleChoice' 451 }, 452 app: { 453 'option:selected': 'saveButtonFeedback' 454 }, 455 self: { 456 'state:changed:disableButtons': 'toggleDisableButtons', 457 'state:changed:view': 'render', 458 'state:changed:showConfirmation': 'render' 459 }, 460 router: { 461 'path:changed': 'render' 462 }, 463 store: 'handleStoreChange' 464 }, 465 handleChoice: function handleChoice(e) { 466 var choice = this.$(e.currentTarget).data('option'); 467 468 if (choice === 'yes') { 469 store.dispatch({ 470 type: 'TOGGLE_FORM_HIDE' 471 }); 472 } else { 473 store.dispatch({ 474 type: 'TOGGLE_FORM_SHOW' 475 }); 476 } 477 478 store.dispatch({ 479 type: 'TOGGLE_BUTTONS_DISABLED' 480 }); 481 app.trigger('option:selected', choice); 482 },
483 toggleShowForm: function toggleShowForm(show) { 484 var ANIMATION_SPEED = 150; 485 486 if (show) { 487 this.formElement.slideDown(ANIMATION_SPEED); 488 } else { 489 this.formElement.slideUp(ANIMATION_SPEED); 490 } 491 }, 492 toggleDisableButtons: function toggleDisableButtons(disable) { 493 this.$el.find('button').prop('disabled', disable); 494 }, 495 saveButtonFeedback: function saveButtonFeedback(choice) { 496 switch (this.state.buttonLogging) { 497 case 'ga': 498 if (window.ga && ga.create) { 499 var trackerName = ga.getAll()[0].get('name'); 500 ga(trackerName + '.send', { 501 hitType: 'event', 502 eventCategory: 'Page Feedback', 503 eventAction: choice === 'yes' ? 'Helpful' : 'Not helpful', 504 eventLabel: this.state.currentPage 505 }); 506 } else { 507 window.console.log('ERROR: Tracking of button event failed. Google Analytics could not be found.'); 508 } 509 510 break; 511 512 case 'vizzit': 513 if (typeof $vizzit !== 'undefined') { 514 var vizzitLink = this.$('button[data-option="' + choice + '"]').first(); 515 var pageId = sv.PageContext.pageId; 516 vizzitLink.vizzit = { 517 location: '/vizzit_like/' + pageId + '/' + (choice === 'yes' ? 'like' : 'dislike') 518 }; 519 $vizzit.event.click(vizzitLink); 520 } else { 521 window.console.log('ERROR: Tracking of button event failed. Vizzit could not be found.'); 522 } 523 524 break; 525 } 526 527 if (choice === 'yes') { 528 store.dispatch({ 529 type: 'TOGGLE_FORM_HIDE' 530 }); 531 store.dispatch({ 532 type: 'TOGGLE_QUESTION_HIDE' 533 }); 534 store.dispatch({ 535 type: 'SHOW_CONFIRMATION' 536 }); 537 } 538 }, 539 handleStoreChange: function handleStoreChange(newState) { 540 this.setState(newState); 541 }, 542 filterState: function filterState(state) { 543 return _.extend({}, { 544 showConfirmation: state.showConfirmation, 545 showQuestion: state.showQuestion, 546 disableButtons: state.disableButtons, 547 buttonLogging: state.buttonLogging, 548 currentPage: state.currentPage, 549 texts: state.texts, 550 icons: state.icons, 551 theme: state.theme 552 }); 553 } 554 }); 555});}});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.