@touchpoll/tp-survey 0.0.50 → 0.0.52
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/touchpoll-tp-survey.mjs +18 -5
- package/fesm2022/touchpoll-tp-survey.mjs.map +1 -1
- package/lib/component/survey.play/survey.play.component.d.ts +1 -1
- package/lib/tp.survey.interface.d.ts +1 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/styles/theme/theme-colors.touchpoll.scss +137 -137
|
@@ -4,7 +4,7 @@ import { isPlatformServer, KeyValuePipe, isPlatformBrowser, DOCUMENT, NgTemplate
|
|
|
4
4
|
import * as i1 from '@angular/platform-browser';
|
|
5
5
|
import * as i2 from '@angular/material/icon';
|
|
6
6
|
import { MatIcon } from '@angular/material/icon';
|
|
7
|
-
import { filter, tap, debounceTime, Subject, BehaviorSubject, mergeMap, from, concatMap, of, delay, distinctUntilChanged, merge } from 'rxjs';
|
|
7
|
+
import { filter, tap, debounceTime, Subject, BehaviorSubject, mergeMap, from, concatMap, of, delay, distinctUntilChanged, merge, delayWhen, timer } from 'rxjs';
|
|
8
8
|
import { map } from 'rxjs/operators';
|
|
9
9
|
import { takeUntilDestroyed, toSignal, toObservable } from '@angular/core/rxjs-interop';
|
|
10
10
|
import { MatButton } from '@angular/material/button';
|
|
@@ -2481,9 +2481,22 @@ class SurveyPlayComponent {
|
|
|
2481
2481
|
* кнопка далее нужно проверять при показе вопроса и при изменении ответа. При показе она может быть доступна сразу(например info).
|
|
2482
2482
|
* Кнопка доступна если ответ корректно заполнен(questionIsComplete) и это не eqEND вопрос
|
|
2483
2483
|
* */
|
|
2484
|
-
this.nextButtonAvailable = toSignal(merge(this.#core.on(SurveyEvents.seQuestionAnswersChange).pipe(map(data => data.question)), this.#core.on(SurveyEvents.seQuestionShow).pipe(map(data => data))).pipe(
|
|
2485
|
-
|
|
2486
|
-
|
|
2484
|
+
this.nextButtonAvailable = toSignal(merge(this.#core.on(SurveyEvents.seQuestionAnswersChange).pipe(map(data => data.question)), this.#core.on(SurveyEvents.seQuestionShow).pipe(map(data => data))).pipe(map(question => {
|
|
2485
|
+
//вопрос должен быть не eqEND и не eqLANG(для них кнопки далее быть не должно) + вопрос должен быть заполнен или его можно пропустить(указано в настройках)
|
|
2486
|
+
const isAvailable = !([QuestionsType.eqEND, QuestionsType.eqLANG].includes(question.QuestionType)) && (this.#core.questionIsComplete(question.QuestionGuid) || question.CanSkip);
|
|
2487
|
+
//в настройках вопроса можно указать задержку перед активацией кнопки Далее
|
|
2488
|
+
let delayInSettings = isNaN(Number(question.BtnNextDelaySec)) ? 1 : Number(question.BtnNextDelaySec);
|
|
2489
|
+
//но если isAvailable не равно true(может быть undefined или false) то кнопка "не активируется" сразу
|
|
2490
|
+
if (!(isAvailable === true)) {
|
|
2491
|
+
delayInSettings = 1;
|
|
2492
|
+
}
|
|
2493
|
+
//уберём отрицательные и нулевые значения, если они случайно попали в настройки
|
|
2494
|
+
delayInSettings = Math.max(1, delayInSettings);
|
|
2495
|
+
return {
|
|
2496
|
+
isAvailable,
|
|
2497
|
+
delay: delayInSettings
|
|
2498
|
+
};
|
|
2499
|
+
}), delayWhen(params => timer(params.delay)), map(res => res.isAvailable)), { initialValue: false });
|
|
2487
2500
|
//кнопку Назад можно показывать если в настройках указали ShowBtnBack и это не eqEND вопрос
|
|
2488
2501
|
this.backButtonAvailable = toSignal(this.#core.on(SurveyEvents.seQuestionShow).pipe(filter(question => !!question), map((question) => question.QuestionNum > 1 && question.ShowBtnBack && question.QuestionType !== QuestionsType.eqEND && question.QuestionType !== QuestionsType.eqLANG), delay(1)));
|
|
2489
2502
|
this.#core.on(SurveyEvents.seSurveyEnd).pipe(takeUntilDestroyed(this.#destroyRef)).subscribe({
|
|
@@ -2638,5 +2651,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImpor
|
|
|
2638
2651
|
* Generated bundle index. Do not edit.
|
|
2639
2652
|
*/
|
|
2640
2653
|
|
|
2641
|
-
export { AdditionalAnswerType, BASE_HEIGHT, BASE_WIDTH, LOGIC_FUNC_TEXT, MISSING_VALUE, QuestionsType, ResultativeStatus, SurveyEvents, SurveyPlayComponent, SurveyQuestionPreviewComponent, TP_SURVEY_CONFIGURATION, TpSurveyModule, VIDEO_EXTENSION_LIST, ValidStatus, ViewModel, executeLogicExpression };
|
|
2654
|
+
export { AdditionalAnswerType, Answer, BASE_HEIGHT, BASE_WIDTH, LOGIC_FUNC_TEXT, MISSING_VALUE, QuestionsType, ResultativeStatus, SurveyEvents, SurveyPlayComponent, SurveyQuestionPreviewComponent, TP_SURVEY_CONFIGURATION, TpSurveyModule, VIDEO_EXTENSION_LIST, ValidStatus, ViewModel, executeLogicExpression };
|
|
2642
2655
|
//# sourceMappingURL=touchpoll-tp-survey.mjs.map
|