{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./node_modules/@angular/localize/fesm2015/init.js","./node_modules/classlist.js/classList.js","./node_modules/core-js/es/reflect/index.js","./node_modules/core-js/internals/a-function.js","./node_modules/core-js/internals/a-possible-prototype.js","./node_modules/core-js/internals/an-object.js","./node_modules/core-js/internals/array-includes.js","./node_modules/core-js/internals/classof-raw.js","./node_modules/core-js/internals/copy-constructor-properties.js","./node_modules/core-js/internals/correct-prototype-getter.js","./node_modules/core-js/internals/create-non-enumerable-property.js","./node_modules/core-js/internals/create-property-descriptor.js","./node_modules/core-js/internals/descriptors.js","./node_modules/core-js/internals/document-create-element.js","./node_modules/core-js/internals/enum-bug-keys.js","./node_modules/core-js/internals/export.js","./node_modules/core-js/internals/fails.js","./node_modules/core-js/internals/freezing.js","./node_modules/core-js/internals/function-bind.js","./node_modules/core-js/internals/get-built-in.js","./node_modules/core-js/internals/global.js","./node_modules/core-js/internals/has.js","./node_modules/core-js/internals/hidden-keys.js","./node_modules/core-js/internals/html.js","./node_modules/core-js/internals/ie8-dom-define.js","./node_modules/core-js/internals/indexed-object.js","./node_modules/core-js/internals/inspect-source.js","./node_modules/core-js/internals/internal-state.js","./node_modules/core-js/internals/is-forced.js","./node_modules/core-js/internals/is-object.js","./node_modules/core-js/internals/is-pure.js","./node_modules/core-js/internals/native-weak-map.js","./node_modules/core-js/internals/object-create.js","./node_modules/core-js/internals/object-define-properties.js","./node_modules/core-js/internals/object-define-property.js","./node_modules/core-js/internals/object-get-own-property-descriptor.js","./node_modules/core-js/internals/object-get-own-property-names.js","./node_modules/core-js/internals/object-get-own-property-symbols.js","./node_modules/core-js/internals/object-get-prototype-of.js","./node_modules/core-js/internals/object-keys-internal.js","./node_modules/core-js/internals/object-keys.js","./node_modules/core-js/internals/object-property-is-enumerable.js","./node_modules/core-js/internals/object-set-prototype-of.js","./node_modules/core-js/internals/own-keys.js","./node_modules/core-js/internals/path.js","./node_modules/core-js/internals/redefine.js","./node_modules/core-js/internals/require-object-coercible.js","./node_modules/core-js/internals/set-global.js","./node_modules/core-js/internals/shared-key.js","./node_modules/core-js/internals/shared-store.js","./node_modules/core-js/internals/shared.js","./node_modules/core-js/internals/to-absolute-index.js","./node_modules/core-js/internals/to-indexed-object.js","./node_modules/core-js/internals/to-integer.js","./node_modules/core-js/internals/to-length.js","./node_modules/core-js/internals/to-object.js","./node_modules/core-js/internals/to-primitive.js","./node_modules/core-js/internals/uid.js","./node_modules/core-js/modules/es.reflect.apply.js","./node_modules/core-js/modules/es.reflect.construct.js","./node_modules/core-js/modules/es.reflect.define-property.js","./node_modules/core-js/modules/es.reflect.delete-property.js","./node_modules/core-js/modules/es.reflect.get-own-property-descriptor.js","./node_modules/core-js/modules/es.reflect.get-prototype-of.js","./node_modules/core-js/modules/es.reflect.get.js","./node_modules/core-js/modules/es.reflect.has.js","./node_modules/core-js/modules/es.reflect.is-extensible.js","./node_modules/core-js/modules/es.reflect.own-keys.js","./node_modules/core-js/modules/es.reflect.prevent-extensions.js","./node_modules/core-js/modules/es.reflect.set-prototype-of.js","./node_modules/core-js/modules/es.reflect.set.js","./node_modules/hammerjs/hammer.js","./node_modules/moment/locale sync ^\\.\\/.*$","./node_modules/web-animations-js/web-animations.min.js","./node_modules/zone.js/dist/zone-evergreen.js","./src/app/admin/action-log.ts","./src/app/admin/action-log.html","./src/app/admin/admin.ts","./src/app/admin/admin.html","./src/app/admin/code-editor.ts","./src/app/admin/code-editor.html","./src/app/admin/component.ts","./src/app/admin/component/input.html","./src/app/admin/component/checkbox.html","./src/app/admin/component/select.html","./src/app/admin/component/radio.html","./src/app/admin/component/file.html","./src/app/admin/component/editor.html","./src/app/admin/component/date.html","./src/app/admin/component/copy.html","./src/app/admin/component/column.html","./src/app/admin/component/court.html","./src/app/admin/component/order.html","./src/app/admin/library.ts","./src/app/admin/library.html","./src/app/admin/library-item.html","./src/app/admin/library-parse.html","./src/app/admin/links.ts","./src/app/admin/links.html","./src/app/admin/links-item.html","./src/app/admin/login.ts","./src/app/admin/login.html","./src/app/admin/news.ts","./src/app/admin/news.html","./src/app/admin/news-item.html","./src/app/admin/pages.ts","./src/app/admin/pages.html","./src/app/admin/pages-item.html","./src/app/admin/poll.ts","./src/app/admin/poll.html","./src/app/admin/poll-item.html","./src/app/admin/request-form.ts","./src/app/admin/request-form.html","./src/app/admin/request-form-item.html","./src/app/admin/request-type.ts","./src/app/admin/request-type.html","./src/app/admin/request-type-item.html","./src/app/admin/settings.ts","./src/app/admin/settings.html","./src/app/admin/settings-item.html","./src/app/admin/template.ts","./src/app/admin/template.html","./src/app/admin/template-item.html","./src/app/admin/template-parse.html","./src/app/admin/user-control.ts","./src/app/admin/user-control.html","./src/app/admin/user-control-item.html","./src/app/app.component.ts","./src/app/app.component.html","./src/app/article.ts","./src/app/article.html","./src/app/components/date-time-picker/date-time-picker.component.ts","./src/app/components/date-time-picker/date-time-picker.component.html","./src/app/confirm-menu.ts","./src/app/confirm-menu.html","./src/app/diia-qr-page/diia-qr-page.component.ts","./src/app/diia-qr-page/diia-qr-page.component.html","./src/app/document-save.ts","./src/app/document-save.html","./src/app/etsp.ts","./src/app/etsp.html","./src/app/home.ts","./src/app/home.html","./src/app/index.ts","./src/app/index.html","./src/app/info-menu.ts","./src/app/info-menu.html","./src/app/interfaces/diia-interfaces.ts","./src/app/loading/loading.component.ts","./src/app/material-module.ts","./src/app/news.ts","./src/app/news.html","./src/app/request-code-menu.ts","./src/app/request-code-menu.html","./src/app/request-dialog.ts","./src/app/request-dialog.html","./src/app/request-edit.ts","./src/app/request-edit.html","./src/app/request-poll.ts","./src/app/request-poll.html","./src/app/request.ts","./src/app/request.html","./src/app/services/indexed-db.service.ts","./src/app/signed-document-page/signed-document-page.component.ts","./src/app/signed-document-page/signed-document-page.component.html","./src/app/tooltip-menu.ts","./src/app/tooltip-menu.html","./src/main.ts","./src/polyfills.ts","crypto (ignored)"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,wE;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA,mCAAmC;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,KAAK,cAAc,aAAa;AACnD;AACA;AACA,0CAA0C,IAAI,aAAa,MAAM;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,aAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,MAAM,YAAY;AAClC;AACA,gBAAgB,MAAM,MAAM;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,6BAA6B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,IAAI;AACrE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACrMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,aAAa;AACf;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA,CAAC;;AAED,CAAC;AACD;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAED;;AAEA;;;;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ACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,UAAU;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B,WAAW,MAAM;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK;AAC3C,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,MAAM,GAAG,KAAK,EAAE,KAAK;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB,EAAE;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO,KAAK;AACvB,WAAW,OAAO,KAAK;AACvB,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB;;AAEzB;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;;AAED;AACA,UAAU;AACV,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;;AAED;AACA,UAAU;AACV,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA,4BAA4B,8BAA8B;;AAE1D;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA,gBAAgB;;AAEhB;AACA;AACA,eAAe,OAAO;AACtB,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,WAAW;AAC1B,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,WAAW;AAC1B,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,WAAW;AAC1B,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,WAAW;AAC1B,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,WAAW;AAC1B,iBAAiB;AACjB;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iCAAiC;;AAEjC,oCAAoC;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,sCAAsC;;AAEtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA,kCAAkC,EAAE;;AAEpC;AACA;AACA;AACA,iBAAiB;AACjB;AACA,gCAAgC,EAAE;;AAElC;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,WAAW;AACtB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,4BAA4B,cAAc;AAC1C,2BAA2B,cAAc;AACzC,2BAA2B,gCAAgC;AAC3D,yBAAyB,gCAAgC;AACzD;AACA,yBAAyB,4BAA4B;AACrD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB;AACA;AACA;AACA,4BAA4B,gCAAgC;;AAE5D;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,kBAAkB;AACjC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,eAAe,WAAW;AAC1B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,kBAAkB;AACjC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,aAAa;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,aAAa;AAC9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,mGAAmG,GAAG;AACtG;;AAEA,IAAI,IAA0C;AAC9C,IAAI,mCAAO;AACX;AACA,KAAK;AAAA,oGAAC;AACN,CAAC,MAAM,EAIN;;AAED,CAAC;;;;;;;;;;;;ACllFD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6E;;;;;;;;;;;ACvSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY,QAAQ,MAAM,eAAe,cAAc,+BAA+B,SAAS,yBAAyB,SAAS,aAAa,uMAAuM,aAAa,8GAA8G,kBAAkB,YAAY,uIAAuI,iBAAiB,uFAAuF,yCAAyC,8CAA8C,+IAA+I,WAAW,iBAAiB,cAAc,uCAAuC,WAAW,EAAE,WAAW,IAAI,gBAAgB,2CAA2C,oBAAoB,wCAAwC,kBAAkB,6CAA6C,SAAS,QAAQ,sCAAsC,SAAS,QAAQ,8DAA8D,gBAAgB,IAAI,EAAE,yBAAyB,sCAAsC,YAAY,iBAAiB,gBAAgB,mBAAmB,iBAAiB,UAAU,oBAAoB,cAAc,oGAAoG,gCAAgC,wEAAwE,SAAS,cAAc,wBAAwB,gBAAgB,iDAAiD,gBAAgB,8BAA8B,gBAAgB,yBAAyB,uBAAuB,gBAAgB,cAAc,qCAAqC,cAAc,kEAAkE,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AM,qNAAqN,eAAe,sCAAsC,gBAAgB,IAAI,cAAc,gEAAgE,MAAM,wDAAwD,0BAA0B,sBAAsB,mBAAmB,sBAAsB,mNAAmN,oCAAoC,+CAA+C,uBAAuB,qCAAqC,eAAe,oBAAoB,aAAa,2FAA2F,sBAAsB,sBAAsB,mBAAmB,EAAE,KAAK,yBAAyB,iCAAiC,iFAAiF,4BAA4B,2CAA2C,gBAAgB,sCAAsC,uCAAuC,sBAAsB,KAAK,eAAe,2CAA2C,IAAI,uEAAuE,aAAa,cAAc,EAAE,WAAW,uEAAuE,UAAU,QAAQ,cAAc,OAAO,uCAAuC,+CAA+C,8KAA8K,IAAI;AAC/h8C,8C;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAA0C,GAAG,oCAAO,OAAO;AAAA;AAAA;AAAA;AAAA,oGAAC;AAChE,IAAI,SAAS;AACb,CAAC,eAAe;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iEAAiE;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,4BAA4B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,+BAA+B;AACjE,sCAAsC,qBAAqB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qBAAqB;AAC/C,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,UAAU,6CAA6C,eAAe;AAC5I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0BAA0B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C,yBAAyB,oBAAoB;AAC7C,qCAAqC,8CAA8C;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,UAAU,IAAI,YAAY,4BAA4B,QAAQ,sBAAsB,WAAW,GAAG,+CAA+C,SAAS,YAAY;AAC7M;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gIAAgI,wBAAwB,oCAAoC;AAC5L;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,4BAA4B,EAAE;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,4BAA4B;AAChE,2CAA2C,cAAc;AACzD,8CAA8C,2CAA2C;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,qCAAqC,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,qCAAqC,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,sEAAsE;AAC1J;AACA;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,oDAAoD;AAChG;AACA;AACA;AACA;AACA;AACA,+BAA+B,mCAAmC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,2EAA2E,gBAAgB;AAC3F,kCAAkC;AAClC;AACA,+BAA+B,qCAAqC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,2CAA2C,gBAAgB;AAC3D,0CAA0C,eAAe;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iDAAiD;AACjF;AACA;AACA;AACA,+CAA+C,6BAA6B;AAC5E,8CAA8C,kCAAkC;AAChF,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,kBAAkB;AAC1D,oCAAoC,yBAAyB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,0CAA0C,EAAE;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,EAAE;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,0CAA0C,wCAAwC;AAClF,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oBAAoB,EAAE;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,uCAAuC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,oCAAoC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,cAAc,mBAAmB,yBAAyB,EAAE,EAAE;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sBAAsB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sBAAsB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,yDAAyD,aAAa,gBAAgB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0BAA0B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,8BAA8B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,0BAA0B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0BAA0B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iBAAiB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,wBAAwB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,wBAAwB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,kBAAkB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,WAAW,GAAG,OAAO;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,sDAAsD;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,8FAA8F;AAC9F,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,wCAAwC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4EAA4E;AAC3F;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,uBAAuB,4BAA4B;AACnD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,yBAAyB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,sBAAsB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,0CAA0C;AAClH;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,CAAC;;;;;;;;;;;;;AC33FD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0D;AACL;AAEM;AACV;AACY;AACE;AAI/B;AAGI;;;;;;;;;;;;;;;;;IC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","file":"main-es2015.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","/**\n * @license Angular v9.1.13\n * (c) 2010-2020 Google LLC. https://angular.io/\n * License: MIT\n */\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst __globalThis = typeof globalThis !== 'undefined' && globalThis;\nconst __window = typeof window !== 'undefined' && window;\nconst __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&\n self instanceof WorkerGlobalScope && self;\nconst __global = typeof global !== 'undefined' && global;\n// Always use __globalThis if available; this is the spec-defined global variable across all\n// environments.\n// Then fallback to __global first; in Node tests both __global and __window may be defined.\nconst _global = __globalThis || __global || __window || __self;\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Tag a template literal string for localization.\n *\n * For example:\n *\n * ```ts\n * $localize `some string to localize`\n * ```\n *\n * **Providing meaning, description and id**\n *\n * You can optionally specify one or more of `meaning`, `description` and `id` for a localized\n * string by pre-pending it with a colon delimited block of the form:\n *\n * ```ts\n * $localize`:meaning|description@@id:source message text`;\n *\n * $localize`:meaning|:source message text`;\n * $localize`:description:source message text`;\n * $localize`:@@id:source message text`;\n * ```\n *\n * This format is the same as that used for `i18n` markers in Angular templates. See the\n * [Angular 18n guide](guide/i18n#template-translations).\n *\n * **Naming placeholders**\n *\n * If the template literal string contains expressions, then the expressions will be automatically\n * associated with placeholder names for you.\n *\n * For example:\n *\n * ```ts\n * $localize `Hi ${name}! There are ${items.length} items.`;\n * ```\n *\n * will generate a message-source of `Hi {$PH}! There are {$PH_1} items`.\n *\n * The recommended practice is to name the placeholder associated with each expression though.\n *\n * Do this by providing the placeholder name wrapped in `:` characters directly after the\n * expression. These placeholder names are stripped out of the rendered localized string.\n *\n * For example, to name the `items.length` expression placeholder `itemCount` you write:\n *\n * ```ts\n * $localize `There are ${items.length}:itemCount: items`;\n * ```\n *\n * **Escaping colon markers**\n *\n * If you need to use a `:` character directly at the start of a tagged string that has no\n * metadata block, or directly after a substitution expression that has no name you must escape\n * the `:` by preceding it with a backslash:\n *\n * For example:\n *\n * ```ts\n * // message has a metadata block so no need to escape colon\n * $localize `:some description::this message starts with a colon (:)`;\n * // no metadata block so the colon must be escaped\n * $localize `\\:this message starts with a colon (:)`;\n * ```\n *\n * ```ts\n * // named substitution so no need to escape colon\n * $localize `${label}:label:: ${}`\n * // anonymous substitution so colon must be escaped\n * $localize `${label}\\: ${}`\n * ```\n *\n * **Processing localized strings:**\n *\n * There are three scenarios:\n *\n * * **compile-time inlining**: the `$localize` tag is transformed at compile time by a\n * transpiler, removing the tag and replacing the template literal string with a translated\n * literal string from a collection of translations provided to the transpilation tool.\n *\n * * **run-time evaluation**: the `$localize` tag is a run-time function that replaces and\n * reorders the parts (static strings and expressions) of the template literal string with strings\n * from a collection of translations loaded at run-time.\n *\n * * **pass-through evaluation**: the `$localize` tag is a run-time function that simply evaluates\n * the original template literal string without applying any translations to the parts. This\n * version is used during development or where there is no need to translate the localized\n * template literals.\n * @param messageParts a collection of the static parts of the template string.\n * @param expressions a collection of the values of each placeholder in the template string.\n * @returns the translated string, with the `messageParts` and `expressions` interleaved together.\n */\nconst $localize = function (messageParts, ...expressions) {\n if ($localize.translate) {\n // Don't use array expansion here to avoid the compiler adding `__read()` helper unnecessarily.\n const translation = $localize.translate(messageParts, expressions);\n messageParts = translation[0];\n expressions = translation[1];\n }\n let message = stripBlock(messageParts[0], messageParts.raw[0]);\n for (let i = 1; i < messageParts.length; i++) {\n message += expressions[i - 1] + stripBlock(messageParts[i], messageParts.raw[i]);\n }\n return message;\n};\nconst BLOCK_MARKER = ':';\n/**\n * Strip a delimited \"block\" from the start of the `messagePart`, if it is found.\n *\n * If a marker character (:) actually appears in the content at the start of a tagged string or\n * after a substitution expression, where a block has not been provided the character must be\n * escaped with a backslash, `\\:`. This function checks for this by looking at the `raw`\n * messagePart, which should still contain the backslash.\n *\n * @param messagePart The cooked message part to process.\n * @param rawMessagePart The raw message part to check.\n * @returns the message part with the placeholder name stripped, if found.\n * @throws an error if the block is unterminated\n */\nfunction stripBlock(messagePart, rawMessagePart) {\n return rawMessagePart.charAt(0) === BLOCK_MARKER ?\n messagePart.substring(findEndOfBlock(messagePart, rawMessagePart) + 1) :\n messagePart;\n}\n/**\n * Find the end of a \"marked block\" indicated by the first non-escaped colon.\n *\n * @param cooked The cooked string (where escaped chars have been processed)\n * @param raw The raw string (where escape sequences are still in place)\n *\n * @returns the index of the end of block marker\n * @throws an error if the block is unterminated\n */\nfunction findEndOfBlock(cooked, raw) {\n /***********************************************************************************************\n * This function is repeated in `src/utils/messages.ts` and the two should be kept in sync.\n * The reason is that this file is marked as having side-effects, and if we import `messages.ts`\n * into it, the whole of `src/utils` will be included in this bundle and none of the functions\n * will be tree shaken.\n ***********************************************************************************************/\n for (let cookedIndex = 1, rawIndex = 1; cookedIndex < cooked.length; cookedIndex++, rawIndex++) {\n if (raw[rawIndex] === '\\\\') {\n rawIndex++;\n }\n else if (cooked[cookedIndex] === BLOCK_MARKER) {\n return cookedIndex;\n }\n }\n throw new Error(`Unterminated $localize metadata block in \"${raw}\".`);\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Attach $localize to the global context, as a side-effect of this module.\n_global.$localize = $localize;\n//# sourceMappingURL=init.js.map\n","/*\n * classList.js: Cross-browser full element.classList implementation.\n * 1.1.20150312\n *\n * By Eli Grey, http://eligrey.com\n * License: Dedicated to the public domain.\n * See https://github.com/eligrey/classList.js/blob/master/LICENSE.md\n */\n\n/*global self, document, DOMException */\n\n/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js */\n\nif (\"document\" in self) {\n\n// Full polyfill for browsers with no classList support\n// Including IE < Edge missing SVGElement.classList\nif (!(\"classList\" in document.createElement(\"_\")) \n\t|| document.createElementNS && !(\"classList\" in document.createElementNS(\"http://www.w3.org/2000/svg\",\"g\"))) {\n\n(function (view) {\n\n\"use strict\";\n\nif (!('Element' in view)) return;\n\nvar\n\t classListProp = \"classList\"\n\t, protoProp = \"prototype\"\n\t, elemCtrProto = view.Element[protoProp]\n\t, objCtr = Object\n\t, strTrim = String[protoProp].trim || function () {\n\t\treturn this.replace(/^\\s+|\\s+$/g, \"\");\n\t}\n\t, arrIndexOf = Array[protoProp].indexOf || function (item) {\n\t\tvar\n\t\t\t i = 0\n\t\t\t, len = this.length\n\t\t;\n\t\tfor (; i < len; i++) {\n\t\t\tif (i in this && this[i] === item) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t}\n\t// Vendors: please allow content code to instantiate DOMExceptions\n\t, DOMEx = function (type, message) {\n\t\tthis.name = type;\n\t\tthis.code = DOMException[type];\n\t\tthis.message = message;\n\t}\n\t, checkTokenAndGetIndex = function (classList, token) {\n\t\tif (token === \"\") {\n\t\t\tthrow new DOMEx(\n\t\t\t\t \"SYNTAX_ERR\"\n\t\t\t\t, \"An invalid or illegal string was specified\"\n\t\t\t);\n\t\t}\n\t\tif (/\\s/.test(token)) {\n\t\t\tthrow new DOMEx(\n\t\t\t\t \"INVALID_CHARACTER_ERR\"\n\t\t\t\t, \"String contains an invalid character\"\n\t\t\t);\n\t\t}\n\t\treturn arrIndexOf.call(classList, token);\n\t}\n\t, ClassList = function (elem) {\n\t\tvar\n\t\t\t trimmedClasses = strTrim.call(elem.getAttribute(\"class\") || \"\")\n\t\t\t, classes = trimmedClasses ? trimmedClasses.split(/\\s+/) : []\n\t\t\t, i = 0\n\t\t\t, len = classes.length\n\t\t;\n\t\tfor (; i < len; i++) {\n\t\t\tthis.push(classes[i]);\n\t\t}\n\t\tthis._updateClassName = function () {\n\t\t\telem.setAttribute(\"class\", this.toString());\n\t\t};\n\t}\n\t, classListProto = ClassList[protoProp] = []\n\t, classListGetter = function () {\n\t\treturn new ClassList(this);\n\t}\n;\n// Most DOMException implementations don't allow calling DOMException's toString()\n// on non-DOMExceptions. Error's toString() is sufficient here.\nDOMEx[protoProp] = Error[protoProp];\nclassListProto.item = function (i) {\n\treturn this[i] || null;\n};\nclassListProto.contains = function (token) {\n\ttoken += \"\";\n\treturn checkTokenAndGetIndex(this, token) !== -1;\n};\nclassListProto.add = function () {\n\tvar\n\t\t tokens = arguments\n\t\t, i = 0\n\t\t, l = tokens.length\n\t\t, token\n\t\t, updated = false\n\t;\n\tdo {\n\t\ttoken = tokens[i] + \"\";\n\t\tif (checkTokenAndGetIndex(this, token) === -1) {\n\t\t\tthis.push(token);\n\t\t\tupdated = true;\n\t\t}\n\t}\n\twhile (++i < l);\n\n\tif (updated) {\n\t\tthis._updateClassName();\n\t}\n};\nclassListProto.remove = function () {\n\tvar\n\t\t tokens = arguments\n\t\t, i = 0\n\t\t, l = tokens.length\n\t\t, token\n\t\t, updated = false\n\t\t, index\n\t;\n\tdo {\n\t\ttoken = tokens[i] + \"\";\n\t\tindex = checkTokenAndGetIndex(this, token);\n\t\twhile (index !== -1) {\n\t\t\tthis.splice(index, 1);\n\t\t\tupdated = true;\n\t\t\tindex = checkTokenAndGetIndex(this, token);\n\t\t}\n\t}\n\twhile (++i < l);\n\n\tif (updated) {\n\t\tthis._updateClassName();\n\t}\n};\nclassListProto.toggle = function (token, force) {\n\ttoken += \"\";\n\n\tvar\n\t\t result = this.contains(token)\n\t\t, method = result ?\n\t\t\tforce !== true && \"remove\"\n\t\t:\n\t\t\tforce !== false && \"add\"\n\t;\n\n\tif (method) {\n\t\tthis[method](token);\n\t}\n\n\tif (force === true || force === false) {\n\t\treturn force;\n\t} else {\n\t\treturn !result;\n\t}\n};\nclassListProto.toString = function () {\n\treturn this.join(\" \");\n};\n\nif (objCtr.defineProperty) {\n\tvar classListPropDesc = {\n\t\t get: classListGetter\n\t\t, enumerable: true\n\t\t, configurable: true\n\t};\n\ttry {\n\t\tobjCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n\t} catch (ex) { // IE 8 doesn't support enumerable:true\n\t\tif (ex.number === -0x7FF5EC54) {\n\t\t\tclassListPropDesc.enumerable = false;\n\t\t\tobjCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n\t\t}\n\t}\n} else if (objCtr[protoProp].__defineGetter__) {\n\telemCtrProto.__defineGetter__(classListProp, classListGetter);\n}\n\n}(self));\n\n} else {\n// There is full or partial native classList support, so just check if we need\n// to normalize the add/remove and toggle APIs.\n\n(function () {\n\t\"use strict\";\n\n\tvar testElement = document.createElement(\"_\");\n\n\ttestElement.classList.add(\"c1\", \"c2\");\n\n\t// Polyfill for IE 10/11 and Firefox <26, where classList.add and\n\t// classList.remove exist but support only one argument at a time.\n\tif (!testElement.classList.contains(\"c2\")) {\n\t\tvar createMethod = function(method) {\n\t\t\tvar original = DOMTokenList.prototype[method];\n\n\t\t\tDOMTokenList.prototype[method] = function(token) {\n\t\t\t\tvar i, len = arguments.length;\n\n\t\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\t\ttoken = arguments[i];\n\t\t\t\t\toriginal.call(this, token);\n\t\t\t\t}\n\t\t\t};\n\t\t};\n\t\tcreateMethod('add');\n\t\tcreateMethod('remove');\n\t}\n\n\ttestElement.classList.toggle(\"c3\", false);\n\n\t// Polyfill for IE 10 and Firefox <24, where classList.toggle does not\n\t// support the second argument.\n\tif (testElement.classList.contains(\"c3\")) {\n\t\tvar _toggle = DOMTokenList.prototype.toggle;\n\n\t\tDOMTokenList.prototype.toggle = function(token, force) {\n\t\t\tif (1 in arguments && !this.contains(token) === !force) {\n\t\t\t\treturn force;\n\t\t\t} else {\n\t\t\t\treturn _toggle.call(this, token);\n\t\t\t}\n\t\t};\n\n\t}\n\n\ttestElement = null;\n}());\n\n}\n\n}\n\n","require('../../modules/es.reflect.apply');\nrequire('../../modules/es.reflect.construct');\nrequire('../../modules/es.reflect.define-property');\nrequire('../../modules/es.reflect.delete-property');\nrequire('../../modules/es.reflect.get');\nrequire('../../modules/es.reflect.get-own-property-descriptor');\nrequire('../../modules/es.reflect.get-prototype-of');\nrequire('../../modules/es.reflect.has');\nrequire('../../modules/es.reflect.is-extensible');\nrequire('../../modules/es.reflect.own-keys');\nrequire('../../modules/es.reflect.prevent-extensions');\nrequire('../../modules/es.reflect.set');\nrequire('../../modules/es.reflect.set-prototype-of');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Reflect;\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","'use strict';\nvar aFunction = require('../internals/a-function');\nvar isObject = require('../internals/is-object');\n\nvar slice = [].slice;\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!(argsLength in factories)) {\n for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[argsLength] = Function('C,a', 'return new C(' + list.join(',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.github.io/ecma262/#sec-function.prototype.bind\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = slice.call(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = partArgs.concat(slice.call(arguments));\n return this instanceof boundFunction ? construct(fn, args.length, args) : fn.apply(that, args);\n };\n if (isObject(fn.prototype)) boundFunction.prototype = fn.prototype;\n return boundFunction;\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","module.exports = {};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = false;\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.4',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\n\nvar nativeApply = getBuiltIn('Reflect', 'apply');\nvar functionApply = Function.apply;\n\n// MS Edge argumentsList argument is optional\nvar OPTIONAL_ARGUMENTS_LIST = !fails(function () {\n nativeApply(function () { /* empty */ });\n});\n\n// `Reflect.apply` method\n// https://tc39.github.io/ecma262/#sec-reflect.apply\n$({ target: 'Reflect', stat: true, forced: OPTIONAL_ARGUMENTS_LIST }, {\n apply: function apply(target, thisArgument, argumentsList) {\n aFunction(target);\n anObject(argumentsList);\n return nativeApply\n ? nativeApply(target, thisArgument, argumentsList)\n : functionApply.call(target, thisArgument, argumentsList);\n }\n});\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar bind = require('../internals/function-bind');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\n\n// `Reflect.construct` method\n// https://tc39.github.io/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\n});\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar fails = require('../internals/fails');\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\nvar ERROR_INSTEAD_OF_FALSE = fails(function () {\n // eslint-disable-next-line no-undef\n Reflect.defineProperty(definePropertyModule.f({}, 1, { value: 1 }), 1, { value: 2 });\n});\n\n// `Reflect.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-reflect.defineproperty\n$({ target: 'Reflect', stat: true, forced: ERROR_INSTEAD_OF_FALSE, sham: !DESCRIPTORS }, {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n anObject(target);\n var key = toPrimitive(propertyKey, true);\n anObject(attributes);\n try {\n definePropertyModule.f(target, key, attributes);\n return true;\n } catch (error) {\n return false;\n }\n }\n});\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Reflect.deleteProperty` method\n// https://tc39.github.io/ecma262/#sec-reflect.deleteproperty\n$({ target: 'Reflect', stat: true }, {\n deleteProperty: function deleteProperty(target, propertyKey) {\n var descriptor = getOwnPropertyDescriptor(anObject(target), propertyKey);\n return descriptor && !descriptor.configurable ? false : delete target[propertyKey];\n }\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar anObject = require('../internals/an-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\n\n// `Reflect.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-reflect.getownpropertydescriptor\n$({ target: 'Reflect', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n return getOwnPropertyDescriptorModule.f(anObject(target), propertyKey);\n }\n});\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar objectGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\n// `Reflect.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-reflect.getprototypeof\n$({ target: 'Reflect', stat: true, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(target) {\n return objectGetPrototypeOf(anObject(target));\n }\n});\n","var $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar has = require('../internals/has');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\n// `Reflect.get` method\n// https://tc39.github.io/ecma262/#sec-reflect.get\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var descriptor, prototype;\n if (anObject(target) === receiver) return target[propertyKey];\n if (descriptor = getOwnPropertyDescriptorModule.f(target, propertyKey)) return has(descriptor, 'value')\n ? descriptor.value\n : descriptor.get === undefined\n ? undefined\n : descriptor.get.call(receiver);\n if (isObject(prototype = getPrototypeOf(target))) return get(prototype, propertyKey, receiver);\n}\n\n$({ target: 'Reflect', stat: true }, {\n get: get\n});\n","var $ = require('../internals/export');\n\n// `Reflect.has` method\n// https://tc39.github.io/ecma262/#sec-reflect.has\n$({ target: 'Reflect', stat: true }, {\n has: function has(target, propertyKey) {\n return propertyKey in target;\n }\n});\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\n\nvar objectIsExtensible = Object.isExtensible;\n\n// `Reflect.isExtensible` method\n// https://tc39.github.io/ecma262/#sec-reflect.isextensible\n$({ target: 'Reflect', stat: true }, {\n isExtensible: function isExtensible(target) {\n anObject(target);\n return objectIsExtensible ? objectIsExtensible(target) : true;\n }\n});\n","var $ = require('../internals/export');\nvar ownKeys = require('../internals/own-keys');\n\n// `Reflect.ownKeys` method\n// https://tc39.github.io/ecma262/#sec-reflect.ownkeys\n$({ target: 'Reflect', stat: true }, {\n ownKeys: ownKeys\n});\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar anObject = require('../internals/an-object');\nvar FREEZING = require('../internals/freezing');\n\n// `Reflect.preventExtensions` method\n// https://tc39.github.io/ecma262/#sec-reflect.preventextensions\n$({ target: 'Reflect', stat: true, sham: !FREEZING }, {\n preventExtensions: function preventExtensions(target) {\n anObject(target);\n try {\n var objectPreventExtensions = getBuiltIn('Object', 'preventExtensions');\n if (objectPreventExtensions) objectPreventExtensions(target);\n return true;\n } catch (error) {\n return false;\n }\n }\n});\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\nvar objectSetPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Reflect.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-reflect.setprototypeof\nif (objectSetPrototypeOf) $({ target: 'Reflect', stat: true }, {\n setPrototypeOf: function setPrototypeOf(target, proto) {\n anObject(target);\n aPossiblePrototype(proto);\n try {\n objectSetPrototypeOf(target, proto);\n return true;\n } catch (error) {\n return false;\n }\n }\n});\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar fails = require('../internals/fails');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\n// `Reflect.set` method\n// https://tc39.github.io/ecma262/#sec-reflect.set\nfunction set(target, propertyKey, V /* , receiver */) {\n var receiver = arguments.length < 4 ? target : arguments[3];\n var ownDescriptor = getOwnPropertyDescriptorModule.f(anObject(target), propertyKey);\n var existingDescriptor, prototype;\n if (!ownDescriptor) {\n if (isObject(prototype = getPrototypeOf(target))) {\n return set(prototype, propertyKey, V, receiver);\n }\n ownDescriptor = createPropertyDescriptor(0);\n }\n if (has(ownDescriptor, 'value')) {\n if (ownDescriptor.writable === false || !isObject(receiver)) return false;\n if (existingDescriptor = getOwnPropertyDescriptorModule.f(receiver, propertyKey)) {\n if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;\n existingDescriptor.value = V;\n definePropertyModule.f(receiver, propertyKey, existingDescriptor);\n } else definePropertyModule.f(receiver, propertyKey, createPropertyDescriptor(0, V));\n return true;\n }\n return ownDescriptor.set === undefined ? false : (ownDescriptor.set.call(receiver, V), true);\n}\n\n// MS Edge 17-18 Reflect.set allows setting the property to object\n// with non-writable property on the prototype\nvar MS_EDGE_BUG = fails(function () {\n var object = definePropertyModule.f({}, 'a', { configurable: true });\n // eslint-disable-next-line no-undef\n return Reflect.set(getPrototypeOf(object), 'a', 1, object) !== false;\n});\n\n$({ target: 'Reflect', stat: true, forced: MS_EDGE_BUG }, {\n set: set\n});\n","/*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n(function(window, document, exportName, undefined) {\n 'use strict';\n\nvar VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\nvar TEST_ELEMENT = document.createElement('div');\n\nvar TYPE_FUNCTION = 'function';\n\nvar round = Math.round;\nvar abs = Math.abs;\nvar now = Date.now;\n\n/**\n * set a timeout with a given scope\n * @param {Function} fn\n * @param {Number} timeout\n * @param {Object} context\n * @returns {number}\n */\nfunction setTimeoutContext(fn, timeout, context) {\n return setTimeout(bindFn(fn, context), timeout);\n}\n\n/**\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\nfunction invokeArrayArg(arg, fn, context) {\n if (Array.isArray(arg)) {\n each(arg, context[fn], context);\n return true;\n }\n return false;\n}\n\n/**\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\nfunction each(obj, iterator, context) {\n var i;\n\n if (!obj) {\n return;\n }\n\n if (obj.forEach) {\n obj.forEach(iterator, context);\n } else if (obj.length !== undefined) {\n i = 0;\n while (i < obj.length) {\n iterator.call(context, obj[i], i, obj);\n i++;\n }\n } else {\n for (i in obj) {\n obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n }\n }\n}\n\n/**\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\nfunction deprecate(method, name, message) {\n var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\\n' + message + ' AT \\n';\n return function() {\n var e = new Error('get-stack-trace');\n var stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '')\n .replace(/^\\s+at\\s+/gm, '')\n .replace(/^Object.\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n\n var log = window.console && (window.console.warn || window.console.log);\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n return method.apply(this, arguments);\n };\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\nvar assign;\nif (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n return output;\n };\n} else {\n assign = Object.assign;\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\nvar extend = deprecate(function extend(dest, src, merge) {\n var keys = Object.keys(src);\n var i = 0;\n while (i < keys.length) {\n if (!merge || (merge && dest[keys[i]] === undefined)) {\n dest[keys[i]] = src[keys[i]];\n }\n i++;\n }\n return dest;\n}, 'extend', 'Use `assign`.');\n\n/**\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\nvar merge = deprecate(function merge(dest, src) {\n return extend(dest, src, true);\n}, 'merge', 'Use `assign`.');\n\n/**\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\nfunction inherit(child, base, properties) {\n var baseP = base.prototype,\n childP;\n\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n\n if (properties) {\n assign(childP, properties);\n }\n}\n\n/**\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\nfunction bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n}\n\n/**\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\nfunction boolOrFn(val, args) {\n if (typeof val == TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n return val;\n}\n\n/**\n * use the val2 when val1 is undefined\n * @param {*} val1\n * @param {*} val2\n * @returns {*}\n */\nfunction ifUndefined(val1, val2) {\n return (val1 === undefined) ? val2 : val1;\n}\n\n/**\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction addEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.addEventListener(type, handler, false);\n });\n}\n\n/**\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction removeEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.removeEventListener(type, handler, false);\n });\n}\n\n/**\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\nfunction hasParent(node, parent) {\n while (node) {\n if (node == parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}\n\n/**\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\nfunction inStr(str, find) {\n return str.indexOf(find) > -1;\n}\n\n/**\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\nfunction splitStr(str) {\n return str.trim().split(/\\s+/g);\n}\n\n/**\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\nfunction inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n var i = 0;\n while (i < src.length) {\n if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) {\n return i;\n }\n i++;\n }\n return -1;\n }\n}\n\n/**\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\nfunction toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n}\n\n/**\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\nfunction uniqueArray(src, key, sort) {\n var results = [];\n var values = [];\n var i = 0;\n\n while (i < src.length) {\n var val = key ? src[i][key] : src[i];\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n values[i] = val;\n i++;\n }\n\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort(function sortUniqueArray(a, b) {\n return a[key] > b[key];\n });\n }\n }\n\n return results;\n}\n\n/**\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\nfunction prefixed(obj, property) {\n var prefix, prop;\n var camelProp = property[0].toUpperCase() + property.slice(1);\n\n var i = 0;\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = (prefix) ? prefix + camelProp : property;\n\n if (prop in obj) {\n return prop;\n }\n i++;\n }\n return undefined;\n}\n\n/**\n * get a unique id\n * @returns {number} uniqueId\n */\nvar _uniqueId = 1;\nfunction uniqueId() {\n return _uniqueId++;\n}\n\n/**\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\nfunction getWindowForElement(element) {\n var doc = element.ownerDocument || element;\n return (doc.defaultView || doc.parentWindow || window);\n}\n\nvar MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\n\nvar SUPPORT_TOUCH = ('ontouchstart' in window);\nvar SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;\nvar SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\n\nvar INPUT_TYPE_TOUCH = 'touch';\nvar INPUT_TYPE_PEN = 'pen';\nvar INPUT_TYPE_MOUSE = 'mouse';\nvar INPUT_TYPE_KINECT = 'kinect';\n\nvar COMPUTE_INTERVAL = 25;\n\nvar INPUT_START = 1;\nvar INPUT_MOVE = 2;\nvar INPUT_END = 4;\nvar INPUT_CANCEL = 8;\n\nvar DIRECTION_NONE = 1;\nvar DIRECTION_LEFT = 2;\nvar DIRECTION_RIGHT = 4;\nvar DIRECTION_UP = 8;\nvar DIRECTION_DOWN = 16;\n\nvar DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\nvar DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\nvar DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\n\nvar PROPS_XY = ['x', 'y'];\nvar PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n/**\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\nfunction Input(manager, callback) {\n var self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget;\n\n // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n this.domHandler = function(ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n\n this.init();\n\n}\n\nInput.prototype = {\n /**\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n handler: function() { },\n\n /**\n * bind the events\n */\n init: function() {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n },\n\n /**\n * unbind the events\n */\n destroy: function() {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n }\n};\n\n/**\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\nfunction createInputInstance(manager) {\n var Type;\n var inputClass = manager.options.inputClass;\n\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n return new (Type)(manager, inputHandler);\n}\n\n/**\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\nfunction inputHandler(manager, eventType, input) {\n var pointersLen = input.pointers.length;\n var changedPointersLen = input.changedPointers.length;\n var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0));\n var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0));\n\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n\n if (isFirst) {\n manager.session = {};\n }\n\n // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n input.eventType = eventType;\n\n // compute scale, rotation etc\n computeInputData(manager, input);\n\n // emit secret event\n manager.emit('hammer.input', input);\n\n manager.recognize(input);\n manager.session.prevInput = input;\n}\n\n/**\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\nfunction computeInputData(manager, input) {\n var session = manager.session;\n var pointers = input.pointers;\n var pointersLength = pointers.length;\n\n // store the first input to calculate the distance and direction\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n }\n\n // to compute scale and rotation we need to store the multiple touches\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n\n var firstInput = session.firstInput;\n var firstMultiple = session.firstMultiple;\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n\n var center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n\n var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y;\n\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n\n input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length >\n session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers);\n\n computeIntervalInputData(session, input);\n\n // find the correct target\n var target = manager.element;\n if (hasParent(input.srcEvent.target, target)) {\n target = input.srcEvent.target;\n }\n input.target = target;\n}\n\nfunction computeDeltaXY(session, input) {\n var center = input.center;\n var offset = session.offsetDelta || {};\n var prevDelta = session.prevDelta || {};\n var prevInput = session.prevInput || {};\n\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n}\n\n/**\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\nfunction computeIntervalInputData(session, input) {\n var last = session.lastInterval || input,\n deltaTime = input.timeStamp - last.timeStamp,\n velocity, velocityX, velocityY, direction;\n\n if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n var deltaX = input.deltaX - last.deltaX;\n var deltaY = input.deltaY - last.deltaY;\n\n var v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n}\n\n/**\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\nfunction simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n var pointers = [];\n var i = 0;\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n\n return {\n timeStamp: now(),\n pointers: pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n}\n\n/**\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\nfunction getCenter(pointers) {\n var pointersLength = pointers.length;\n\n // no need to loop when only one touch\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n\n var x = 0, y = 0, i = 0;\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n}\n\n/**\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\nfunction getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n}\n\n/**\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\nfunction getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n\n/**\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\nfunction getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n\n return Math.sqrt((x * x) + (y * y));\n}\n\n/**\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\nfunction getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n}\n\n/**\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\nfunction getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n}\n\n/**\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\nfunction getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n}\n\nvar MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n};\n\nvar MOUSE_ELEMENT_EVENTS = 'mousedown';\nvar MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n\n/**\n * Mouse events input\n * @constructor\n * @extends Input\n */\nfunction MouseInput() {\n this.evEl = MOUSE_ELEMENT_EVENTS;\n this.evWin = MOUSE_WINDOW_EVENTS;\n\n this.pressed = false; // mousedown state\n\n Input.apply(this, arguments);\n}\n\ninherit(MouseInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function MEhandler(ev) {\n var eventType = MOUSE_INPUT_MAP[ev.type];\n\n // on start we want to have the left mouse button down\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n }\n\n // mouse must be down\n if (!this.pressed) {\n return;\n }\n\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n }\n});\n\nvar POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n};\n\n// in IE10 the pointer types is defined as an enum\nvar IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n};\n\nvar POINTER_ELEMENT_EVENTS = 'pointerdown';\nvar POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';\n\n// IE10 has prefixed support, and case-sensitive\nif (window.MSPointerEvent && !window.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n}\n\n/**\n * Pointer events input\n * @constructor\n * @extends Input\n */\nfunction PointerEventInput() {\n this.evEl = POINTER_ELEMENT_EVENTS;\n this.evWin = POINTER_WINDOW_EVENTS;\n\n Input.apply(this, arguments);\n\n this.store = (this.manager.session.pointerEvents = []);\n}\n\ninherit(PointerEventInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function PEhandler(ev) {\n var store = this.store;\n var removePointer = false;\n\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n\n var isTouch = (pointerType == INPUT_TYPE_TOUCH);\n\n // get index of the event in the store\n var storeIndex = inArray(store, ev.pointerId, 'pointerId');\n\n // start and mouse must be down\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n }\n\n // it not found, so the pointer hasn't been down (so it's probably a hover)\n if (storeIndex < 0) {\n return;\n }\n\n // update the event in the store\n store[storeIndex] = ev;\n\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType: pointerType,\n srcEvent: ev\n });\n\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n }\n});\n\nvar SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\nvar SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Touch events input\n * @constructor\n * @extends Input\n */\nfunction SingleTouchInput() {\n this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n this.started = false;\n\n Input.apply(this, arguments);\n}\n\ninherit(SingleTouchInput, Input, {\n handler: function TEhandler(ev) {\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type];\n\n // should we handle the touch events?\n if (type === INPUT_START) {\n this.started = true;\n }\n\n if (!this.started) {\n return;\n }\n\n var touches = normalizeSingleTouches.call(this, ev, type);\n\n // when done, reset the started state\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction normalizeSingleTouches(ev, type) {\n var all = toArray(ev.touches);\n var changed = toArray(ev.changedTouches);\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n\n return [all, changed];\n}\n\nvar TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\nfunction TouchInput() {\n this.evTarget = TOUCH_TARGET_EVENTS;\n this.targetIds = {};\n\n Input.apply(this, arguments);\n}\n\ninherit(TouchInput, Input, {\n handler: function MTEhandler(ev) {\n var type = TOUCH_INPUT_MAP[ev.type];\n var touches = getTouches.call(this, ev, type);\n if (!touches) {\n return;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction getTouches(ev, type) {\n var allTouches = toArray(ev.touches);\n var targetIds = this.targetIds;\n\n // when there is only one touch, the process can be simplified\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n\n var i,\n targetTouches,\n changedTouches = toArray(ev.changedTouches),\n changedTargetTouches = [],\n target = this.target;\n\n // get target touches from touches\n targetTouches = allTouches.filter(function(touch) {\n return hasParent(touch.target, target);\n });\n\n // collect touches\n if (type === INPUT_START) {\n i = 0;\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n }\n\n // filter changed touches to only contain touches that exist in the collected target ids\n i = 0;\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n }\n\n // cleanup removed touches\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n i++;\n }\n\n if (!changedTargetTouches.length) {\n return;\n }\n\n return [\n // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true),\n changedTargetTouches\n ];\n}\n\n/**\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\nvar DEDUP_TIMEOUT = 2500;\nvar DEDUP_DISTANCE = 25;\n\nfunction TouchMouseInput() {\n Input.apply(this, arguments);\n\n var handler = bindFn(this.handler, this);\n this.touch = new TouchInput(this.manager, handler);\n this.mouse = new MouseInput(this.manager, handler);\n\n this.primaryTouch = null;\n this.lastTouches = [];\n}\n\ninherit(TouchMouseInput, Input, {\n /**\n * handle mouse and touch events\n * @param {Hammer} manager\n * @param {String} inputEvent\n * @param {Object} inputData\n */\n handler: function TMEhandler(manager, inputEvent, inputData) {\n var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH),\n isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE);\n\n if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n return;\n }\n\n // when we're in a touch event, record touches to de-dupe synthetic mouse event\n if (isTouch) {\n recordTouches.call(this, inputEvent, inputData);\n } else if (isMouse && isSyntheticEvent.call(this, inputData)) {\n return;\n }\n\n this.callback(manager, inputEvent, inputData);\n },\n\n /**\n * remove the event listeners\n */\n destroy: function destroy() {\n this.touch.destroy();\n this.mouse.destroy();\n }\n});\n\nfunction recordTouches(eventType, eventData) {\n if (eventType & INPUT_START) {\n this.primaryTouch = eventData.changedPointers[0].identifier;\n setLastTouch.call(this, eventData);\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n setLastTouch.call(this, eventData);\n }\n}\n\nfunction setLastTouch(eventData) {\n var touch = eventData.changedPointers[0];\n\n if (touch.identifier === this.primaryTouch) {\n var lastTouch = {x: touch.clientX, y: touch.clientY};\n this.lastTouches.push(lastTouch);\n var lts = this.lastTouches;\n var removeLastTouch = function() {\n var i = lts.indexOf(lastTouch);\n if (i > -1) {\n lts.splice(i, 1);\n }\n };\n setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n }\n}\n\nfunction isSyntheticEvent(eventData) {\n var x = eventData.srcEvent.clientX, y = eventData.srcEvent.clientY;\n for (var i = 0; i < this.lastTouches.length; i++) {\n var t = this.lastTouches[i];\n var dx = Math.abs(x - t.x), dy = Math.abs(y - t.y);\n if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n return true;\n }\n }\n return false;\n}\n\nvar PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\nvar NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\n\n// magical touchAction value\nvar TOUCH_ACTION_COMPUTE = 'compute';\nvar TOUCH_ACTION_AUTO = 'auto';\nvar TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\nvar TOUCH_ACTION_NONE = 'none';\nvar TOUCH_ACTION_PAN_X = 'pan-x';\nvar TOUCH_ACTION_PAN_Y = 'pan-y';\nvar TOUCH_ACTION_MAP = getTouchActionProps();\n\n/**\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\nfunction TouchAction(manager, value) {\n this.manager = manager;\n this.set(value);\n}\n\nTouchAction.prototype = {\n /**\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n set: function(value) {\n // find out the touch-action by the event handlers\n if (value == TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n this.actions = value.toLowerCase().trim();\n },\n\n /**\n * just re-set the touchAction value\n */\n update: function() {\n this.set(this.manager.options.touchAction);\n },\n\n /**\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n compute: function() {\n var actions = [];\n each(this.manager.recognizers, function(recognizer) {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n },\n\n /**\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n preventDefaults: function(input) {\n var srcEvent = input.srcEvent;\n var direction = input.offsetDirection;\n\n // if the touch action did prevented once this session\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n\n var actions = this.actions;\n var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n if (hasNone) {\n //do not prevent defaults if this is a tap gesture\n\n var isTapPointer = input.pointers.length === 1;\n var isTapMovement = input.distance < 2;\n var isTapTouchTime = input.deltaTime < 250;\n\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n\n if (hasNone ||\n (hasPanY && direction & DIRECTION_HORIZONTAL) ||\n (hasPanX && direction & DIRECTION_VERTICAL)) {\n return this.preventSrc(srcEvent);\n }\n },\n\n /**\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n preventSrc: function(srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n }\n};\n\n/**\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\nfunction cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);\n\n // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n }\n\n // pan-x OR pan-y\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n }\n\n // manipulation\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n\n return TOUCH_ACTION_AUTO;\n}\n\nfunction getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n var touchMap = {};\n var cssSupports = window.CSS && window.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function(val) {\n\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n}\n\n/**\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\nvar STATE_POSSIBLE = 1;\nvar STATE_BEGAN = 2;\nvar STATE_CHANGED = 4;\nvar STATE_ENDED = 8;\nvar STATE_RECOGNIZED = STATE_ENDED;\nvar STATE_CANCELLED = 16;\nvar STATE_FAILED = 32;\n\n/**\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\nfunction Recognizer(options) {\n this.options = assign({}, this.defaults, options || {});\n\n this.id = uniqueId();\n\n this.manager = null;\n\n // default is enable true\n this.options.enable = ifUndefined(this.options.enable, true);\n\n this.state = STATE_POSSIBLE;\n\n this.simultaneous = {};\n this.requireFail = [];\n}\n\nRecognizer.prototype = {\n /**\n * @virtual\n * @type {Object}\n */\n defaults: {},\n\n /**\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n set: function(options) {\n assign(this.options, options);\n\n // also update the touchAction, in case something changed about the directions/enabled state\n this.manager && this.manager.touchAction.update();\n return this;\n },\n\n /**\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n recognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n\n var simultaneous = this.simultaneous;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n return this;\n },\n\n /**\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRecognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n },\n\n /**\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n requireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n\n var requireFail = this.requireFail;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n return this;\n },\n\n /**\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRequireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n var index = inArray(this.requireFail, otherRecognizer);\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n return this;\n },\n\n /**\n * has require failures boolean\n * @returns {boolean}\n */\n hasRequireFailures: function() {\n return this.requireFail.length > 0;\n },\n\n /**\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n canRecognizeWith: function(otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n },\n\n /**\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n emit: function(input) {\n var self = this;\n var state = this.state;\n\n function emit(event) {\n self.manager.emit(event, input);\n }\n\n // 'panstart' and 'panmove'\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n }\n\n // panend and pancancel\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n },\n\n /**\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n tryEmit: function(input) {\n if (this.canEmit()) {\n return this.emit(input);\n }\n // it's failing anyway\n this.state = STATE_FAILED;\n },\n\n /**\n * can we emit?\n * @returns {boolean}\n */\n canEmit: function() {\n var i = 0;\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n i++;\n }\n return true;\n },\n\n /**\n * update the recognizer\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n var inputDataClone = assign({}, inputData);\n\n // is is enabled and allow recognizing?\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n }\n\n // reset when we've reached the end\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n\n this.state = this.process(inputDataClone);\n\n // the recognizer has recognized a gesture\n // so trigger an event\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n },\n\n /**\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {Const} STATE\n */\n process: function(inputData) { }, // jshint ignore:line\n\n /**\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n getTouchAction: function() { },\n\n /**\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n reset: function() { }\n};\n\n/**\n * get a usable string, used as event postfix\n * @param {Const} state\n * @returns {String} state\n */\nfunction stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n return '';\n}\n\n/**\n * direction cons to string\n * @param {Const} direction\n * @returns {String}\n */\nfunction directionStr(direction) {\n if (direction == DIRECTION_DOWN) {\n return 'down';\n } else if (direction == DIRECTION_UP) {\n return 'up';\n } else if (direction == DIRECTION_LEFT) {\n return 'left';\n } else if (direction == DIRECTION_RIGHT) {\n return 'right';\n }\n return '';\n}\n\n/**\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\nfunction getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n var manager = recognizer.manager;\n if (manager) {\n return manager.get(otherRecognizer);\n }\n return otherRecognizer;\n}\n\n/**\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\nfunction AttrRecognizer() {\n Recognizer.apply(this, arguments);\n}\n\ninherit(AttrRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof AttrRecognizer\n */\n defaults: {\n /**\n * @type {Number}\n * @default 1\n */\n pointers: 1\n },\n\n /**\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n attrTest: function(input) {\n var optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n },\n\n /**\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n process: function(input) {\n var state = this.state;\n var eventType = input.eventType;\n\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n var isValid = this.attrTest(input);\n\n // on cancel input and we've recognized before, return STATE_CANCELLED\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n return state | STATE_CHANGED;\n }\n return STATE_FAILED;\n }\n});\n\n/**\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PanRecognizer() {\n AttrRecognizer.apply(this, arguments);\n\n this.pX = null;\n this.pY = null;\n}\n\ninherit(PanRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PanRecognizer\n */\n defaults: {\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL\n },\n\n getTouchAction: function() {\n var direction = this.options.direction;\n var actions = [];\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n return actions;\n },\n\n directionTest: function(input) {\n var options = this.options;\n var hasMoved = true;\n var distance = input.distance;\n var direction = input.direction;\n var x = input.deltaX;\n var y = input.deltaY;\n\n // lock to axis?\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x != this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y != this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n },\n\n attrTest: function(input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) &&\n (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input)));\n },\n\n emit: function(input) {\n\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n\n var direction = directionStr(input.direction);\n\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PinchRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(PinchRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'pinch',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n },\n\n emit: function(input) {\n if (input.scale !== 1) {\n var inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\nfunction PressRecognizer() {\n Recognizer.apply(this, arguments);\n\n this._timer = null;\n this._input = null;\n}\n\ninherit(PressRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PressRecognizer\n */\n defaults: {\n event: 'press',\n pointers: 1,\n time: 251, // minimal time of the pointer to be pressed\n threshold: 9 // a minimal movement is ok, but keep it low\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_AUTO];\n },\n\n process: function(input) {\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTime = input.deltaTime > options.time;\n\n this._input = input;\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.time, this);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function(input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n\n if (input && (input.eventType & INPUT_END)) {\n this.manager.emit(this.options.event + 'up', input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction RotateRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(RotateRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof RotateRecognizer\n */\n defaults: {\n event: 'rotate',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n }\n});\n\n/**\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction SwipeRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(SwipeRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof SwipeRecognizer\n */\n defaults: {\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1\n },\n\n getTouchAction: function() {\n return PanRecognizer.prototype.getTouchAction.call(this);\n },\n\n attrTest: function(input) {\n var direction = this.options.direction;\n var velocity;\n\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n\n return this._super.attrTest.call(this, input) &&\n direction & input.offsetDirection &&\n input.distance > this.options.threshold &&\n input.maxPointers == this.options.pointers &&\n abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n },\n\n emit: function(input) {\n var direction = directionStr(input.offsetDirection);\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n\n this.manager.emit(this.options.event, input);\n }\n});\n\n/**\n * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\nfunction TapRecognizer() {\n Recognizer.apply(this, arguments);\n\n // previous time and center,\n // used for tap counting\n this.pTime = false;\n this.pCenter = false;\n\n this._timer = null;\n this._input = null;\n this.count = 0;\n}\n\ninherit(TapRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300, // max time between the multi-tap taps\n time: 250, // max time of the pointer to be down (like finger on the screen)\n threshold: 9, // a minimal movement is ok, but keep it low\n posThreshold: 10 // a multi-tap can be a bit off the initial position\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_MANIPULATION];\n },\n\n process: function(input) {\n var options = this.options;\n\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTouchTime = input.deltaTime < options.time;\n\n this.reset();\n\n if ((input.eventType & INPUT_START) && (this.count === 0)) {\n return this.failTimeout();\n }\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType != INPUT_END) {\n return this.failTimeout();\n }\n\n var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true;\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n\n this._input = input;\n\n // if tap count matches we have recognized it,\n // else it has began recognizing...\n var tapCount = this.count % options.taps;\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.interval, this);\n return STATE_BEGAN;\n }\n }\n }\n return STATE_FAILED;\n },\n\n failTimeout: function() {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_FAILED;\n }, this.options.interval, this);\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function() {\n if (this.state == STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Hammer(element, options) {\n options = options || {};\n options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);\n return new Manager(element, options);\n}\n\n/**\n * @const {string}\n */\nHammer.VERSION = '2.0.7';\n\n/**\n * default settings\n * @namespace\n */\nHammer.defaults = {\n /**\n * set if DOM events are being triggered.\n * But this is slower and unused by simple implementations, so disabled by default.\n * @type {Boolean}\n * @default false\n */\n domEvents: false,\n\n /**\n * The value for the touchAction property/fallback.\n * When set to `compute` it will magically set the correct value based on the added recognizers.\n * @type {String}\n * @default compute\n */\n touchAction: TOUCH_ACTION_COMPUTE,\n\n /**\n * @type {Boolean}\n * @default true\n */\n enable: true,\n\n /**\n * EXPERIMENTAL FEATURE -- can be removed/changed\n * Change the parent input target element.\n * If Null, then it is being set the to main element.\n * @type {Null|EventTarget}\n * @default null\n */\n inputTarget: null,\n\n /**\n * force an input class\n * @type {Null|Function}\n * @default null\n */\n inputClass: null,\n\n /**\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * @type {Array}\n */\n preset: [\n // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\n [RotateRecognizer, {enable: false}],\n [PinchRecognizer, {enable: false}, ['rotate']],\n [SwipeRecognizer, {direction: DIRECTION_HORIZONTAL}],\n [PanRecognizer, {direction: DIRECTION_HORIZONTAL}, ['swipe']],\n [TapRecognizer],\n [TapRecognizer, {event: 'doubletap', taps: 2}, ['tap']],\n [PressRecognizer]\n ],\n\n /**\n * Some CSS properties can be used to improve the working of Hammer.\n * Add them to this method and they will be set when creating a new Manager.\n * @namespace\n */\n cssProps: {\n /**\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userSelect: 'none',\n\n /**\n * Disable the Windows Phone grippers when pressing an element.\n * @type {String}\n * @default 'none'\n */\n touchSelect: 'none',\n\n /**\n * Disables the default callout shown when you touch and hold a touch target.\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\n * a callout containing information about the link. This property allows you to disable that callout.\n * @type {String}\n * @default 'none'\n */\n touchCallout: 'none',\n\n /**\n * Specifies whether zooming is enabled. Used by IE10>\n * @type {String}\n * @default 'none'\n */\n contentZooming: 'none',\n\n /**\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userDrag: 'none',\n\n /**\n * Overrides the highlight color shown when the user taps a link or a JavaScript\n * clickable element in iOS. This property obeys the alpha value, if specified.\n * @type {String}\n * @default 'rgba(0,0,0,0)'\n */\n tapHighlightColor: 'rgba(0,0,0,0)'\n }\n};\n\nvar STOP = 1;\nvar FORCED_STOP = 2;\n\n/**\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Manager(element, options) {\n this.options = assign({}, Hammer.defaults, options || {});\n\n this.options.inputTarget = this.options.inputTarget || element;\n\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n\n toggleCssProps(this, true);\n\n each(this.options.recognizers, function(item) {\n var recognizer = this.add(new (item[0])(item[1]));\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n}\n\nManager.prototype = {\n /**\n * set options\n * @param {Object} options\n * @returns {Manager}\n */\n set: function(options) {\n assign(this.options, options);\n\n // Options that need a little more setup\n if (options.touchAction) {\n this.touchAction.update();\n }\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n return this;\n },\n\n /**\n * stop recognizing for this session.\n * This session will be discarded, when a new [input]start event is fired.\n * When forced, the recognizer cycle is stopped immediately.\n * @param {Boolean} [force]\n */\n stop: function(force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n },\n\n /**\n * run the recognizers!\n * called by the inputHandler function on every movement of the pointers (touches)\n * it walks through all the recognizers and tries to detect the gesture that is being made\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n var session = this.session;\n if (session.stopped) {\n return;\n }\n\n // run the touch-action polyfill\n this.touchAction.preventDefaults(inputData);\n\n var recognizer;\n var recognizers = this.recognizers;\n\n // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n var curRecognizer = session.curRecognizer;\n\n // reset when the last recognizer is recognized\n // or when we're in a new session\n if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) {\n curRecognizer = session.curRecognizer = null;\n }\n\n var i = 0;\n while (i < recognizers.length) {\n recognizer = recognizers[i];\n\n // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n if (session.stopped !== FORCED_STOP && ( // 1\n !curRecognizer || recognizer == curRecognizer || // 2\n recognizer.canRecognizeWith(curRecognizer))) { // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n }\n\n // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n curRecognizer = session.curRecognizer = recognizer;\n }\n i++;\n }\n },\n\n /**\n * get a recognizer by its event name.\n * @param {Recognizer|String} recognizer\n * @returns {Recognizer|Null}\n */\n get: function(recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n\n var recognizers = this.recognizers;\n for (var i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event == recognizer) {\n return recognizers[i];\n }\n }\n return null;\n },\n\n /**\n * add a recognizer to the manager\n * existing recognizers with the same event name will be removed\n * @param {Recognizer} recognizer\n * @returns {Recognizer|Manager}\n */\n add: function(recognizer) {\n if (invokeArrayArg(recognizer, 'add', this)) {\n return this;\n }\n\n // remove existing\n var existing = this.get(recognizer.options.event);\n if (existing) {\n this.remove(existing);\n }\n\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n\n this.touchAction.update();\n return recognizer;\n },\n\n /**\n * remove a recognizer by name or instance\n * @param {Recognizer|String} recognizer\n * @returns {Manager}\n */\n remove: function(recognizer) {\n if (invokeArrayArg(recognizer, 'remove', this)) {\n return this;\n }\n\n recognizer = this.get(recognizer);\n\n // let's make sure this recognizer exists\n if (recognizer) {\n var recognizers = this.recognizers;\n var index = inArray(recognizers, recognizer);\n\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n\n return this;\n },\n\n /**\n * bind event\n * @param {String} events\n * @param {Function} handler\n * @returns {EventEmitter} this\n */\n on: function(events, handler) {\n if (events === undefined) {\n return;\n }\n if (handler === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n },\n\n /**\n * unbind event, leave emit blank to remove all handlers\n * @param {String} events\n * @param {Function} [handler]\n * @returns {EventEmitter} this\n */\n off: function(events, handler) {\n if (events === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n },\n\n /**\n * emit event to the listeners\n * @param {String} event\n * @param {Object} data\n */\n emit: function(event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n }\n\n // no handlers, so skip it all\n var handlers = this.handlers[event] && this.handlers[event].slice();\n if (!handlers || !handlers.length) {\n return;\n }\n\n data.type = event;\n data.preventDefault = function() {\n data.srcEvent.preventDefault();\n };\n\n var i = 0;\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n },\n\n /**\n * destroy the manager and unbinds all events\n * it doesn't unbind dom events, that is the user own responsibility\n */\n destroy: function() {\n this.element && toggleCssProps(this, false);\n\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n }\n};\n\n/**\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\nfunction toggleCssProps(manager, add) {\n var element = manager.element;\n if (!element.style) {\n return;\n }\n var prop;\n each(manager.options.cssProps, function(value, name) {\n prop = prefixed(element.style, name);\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || '';\n }\n });\n if (!add) {\n manager.oldCssProps = {};\n }\n}\n\n/**\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\nfunction triggerDomEvent(event, data) {\n var gestureEvent = document.createEvent('Event');\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n}\n\nassign(Hammer, {\n INPUT_START: INPUT_START,\n INPUT_MOVE: INPUT_MOVE,\n INPUT_END: INPUT_END,\n INPUT_CANCEL: INPUT_CANCEL,\n\n STATE_POSSIBLE: STATE_POSSIBLE,\n STATE_BEGAN: STATE_BEGAN,\n STATE_CHANGED: STATE_CHANGED,\n STATE_ENDED: STATE_ENDED,\n STATE_RECOGNIZED: STATE_RECOGNIZED,\n STATE_CANCELLED: STATE_CANCELLED,\n STATE_FAILED: STATE_FAILED,\n\n DIRECTION_NONE: DIRECTION_NONE,\n DIRECTION_LEFT: DIRECTION_LEFT,\n DIRECTION_RIGHT: DIRECTION_RIGHT,\n DIRECTION_UP: DIRECTION_UP,\n DIRECTION_DOWN: DIRECTION_DOWN,\n DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,\n DIRECTION_VERTICAL: DIRECTION_VERTICAL,\n DIRECTION_ALL: DIRECTION_ALL,\n\n Manager: Manager,\n Input: Input,\n TouchAction: TouchAction,\n\n TouchInput: TouchInput,\n MouseInput: MouseInput,\n PointerEventInput: PointerEventInput,\n TouchMouseInput: TouchMouseInput,\n SingleTouchInput: SingleTouchInput,\n\n Recognizer: Recognizer,\n AttrRecognizer: AttrRecognizer,\n Tap: TapRecognizer,\n Pan: PanRecognizer,\n Swipe: SwipeRecognizer,\n Pinch: PinchRecognizer,\n Rotate: RotateRecognizer,\n Press: PressRecognizer,\n\n on: addEventListeners,\n off: removeEventListeners,\n each: each,\n merge: merge,\n extend: extend,\n assign: assign,\n inherit: inherit,\n bindFn: bindFn,\n prefixed: prefixed\n});\n\n// this prevents errors when Hammer is loaded in the presence of an AMD\n// style loader but by script tag, not by the loader.\nvar freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : {})); // jshint ignore:line\nfreeGlobal.Hammer = Hammer;\n\nif (typeof define === 'function' && define.amd) {\n define(function() {\n return Hammer;\n });\n} else if (typeof module != 'undefined' && module.exports) {\n module.exports = Hammer;\n} else {\n window[exportName] = Hammer;\n}\n\n})(window, document, 'Hammer');\n","var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ps\": \"./node_modules/moment/locale/ar-ps.js\",\n\t\"./ar-ps.js\": \"./node_modules/moment/locale/ar-ps.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn-bd\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn-bd.js\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-in\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-in.js\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-sg\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./en-sg.js\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-mx\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-mx.js\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fil\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fil.js\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-deva\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-deva.js\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ku-kmr\": \"./node_modules/moment/locale/ku-kmr.js\",\n\t\"./ku-kmr.js\": \"./node_modules/moment/locale/ku-kmr.js\",\n\t\"./ku.js\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./oc-lnc\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./oc-lnc.js\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tk\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tk.js\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-mo\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-mo.js\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","// Copyright 2014 Google Inc. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n!function(){var a={},b={};!function(a,b){function c(a){if(\"number\"==typeof a)return a;var b={};for(var c in a)b[c]=a[c];return b}function d(){this._delay=0,this._endDelay=0,this._fill=\"none\",this._iterationStart=0,this._iterations=1,this._duration=0,this._playbackRate=1,this._direction=\"normal\",this._easing=\"linear\",this._easingFunction=x}function e(){return a.isDeprecated(\"Invalid timing inputs\",\"2016-03-02\",\"TypeError exceptions will be thrown instead.\",!0)}function f(b,c,e){var f=new d;return c&&(f.fill=\"both\",f.duration=\"auto\"),\"number\"!=typeof b||isNaN(b)?void 0!==b&&Object.getOwnPropertyNames(b).forEach(function(c){if(\"auto\"!=b[c]){if((\"number\"==typeof f[c]||\"duration\"==c)&&(\"number\"!=typeof b[c]||isNaN(b[c])))return;if(\"fill\"==c&&-1==v.indexOf(b[c]))return;if(\"direction\"==c&&-1==w.indexOf(b[c]))return;if(\"playbackRate\"==c&&1!==b[c]&&a.isDeprecated(\"AnimationEffectTiming.playbackRate\",\"2014-11-28\",\"Use Animation.playbackRate instead.\"))return;f[c]=b[c]}}):f.duration=b,f}function g(a){return\"number\"==typeof a&&(a=isNaN(a)?{duration:0}:{duration:a}),a}function h(b,c){return b=a.numericTimingToObject(b),f(b,c)}function i(a,b,c,d){return a<0||a>1||c<0||c>1?x:function(e){function f(a,b,c){return 3*a*(1-c)*(1-c)*c+3*b*(1-c)*c*c+c*c*c}if(e<=0){var g=0;return a>0?g=b/a:!b&&c>0&&(g=d/c),g*e}if(e>=1){var h=0;return c<1?h=(d-1)/(c-1):1==c&&a<1&&(h=(b-1)/(a-1)),1+h*(e-1)}for(var i=0,j=1;i=1)return 1;var d=1/a;return(c+=b*d)-c%d}}function k(a){C||(C=document.createElement(\"div\").style),C.animationTimingFunction=\"\",C.animationTimingFunction=a;var b=C.animationTimingFunction;if(\"\"==b&&e())throw new TypeError(a+\" is not a valid value for easing\");return b}function l(a){if(\"linear\"==a)return x;var b=E.exec(a);if(b)return i.apply(this,b.slice(1).map(Number));var c=F.exec(a);if(c)return j(Number(c[1]),A);var d=G.exec(a);return d?j(Number(d[1]),{start:y,middle:z,end:A}[d[2]]):B[a]||x}function m(a){return Math.abs(n(a)/a.playbackRate)}function n(a){return 0===a.duration||0===a.iterations?0:a.duration*a.iterations}function o(a,b,c){if(null==b)return H;var d=c.delay+a+c.endDelay;return b=Math.min(c.delay+a,d)?J:K}function p(a,b,c,d,e){switch(d){case I:return\"backwards\"==b||\"both\"==b?0:null;case K:return c-e;case J:return\"forwards\"==b||\"both\"==b?a:null;case H:return null}}function q(a,b,c,d,e){var f=e;return 0===a?b!==I&&(f+=c):f+=d/a,f}function r(a,b,c,d,e,f){var g=a===1/0?b%1:a%1;return 0!==g||c!==J||0===d||0===e&&0!==f||(g=1),g}function s(a,b,c,d){return a===J&&b===1/0?1/0:1===c?Math.floor(d)-1:Math.floor(d)}function t(a,b,c){var d=a;if(\"normal\"!==a&&\"reverse\"!==a){var e=b;\"alternate-reverse\"===a&&(e+=1),d=\"normal\",e!==1/0&&e%2!=0&&(d=\"reverse\")}return\"normal\"===d?c:1-c}function u(a,b,c){var d=o(a,b,c),e=p(a,c.fill,b,d,c.delay);if(null===e)return null;var f=q(c.duration,d,c.iterations,e,c.iterationStart),g=r(f,c.iterationStart,d,c.iterations,e,c.duration),h=s(d,c.iterations,g,f),i=t(c.direction,h,g);return c._easingFunction(i)}var v=\"backwards|forwards|both|none\".split(\"|\"),w=\"reverse|alternate|alternate-reverse\".split(\"|\"),x=function(a){return a};d.prototype={_setMember:function(b,c){this[\"_\"+b]=c,this._effect&&(this._effect._timingInput[b]=c,this._effect._timing=a.normalizeTimingInput(this._effect._timingInput),this._effect.activeDuration=a.calculateActiveDuration(this._effect._timing),this._effect._animation&&this._effect._animation._rebuildUnderlyingAnimation())},get playbackRate(){return this._playbackRate},set delay(a){this._setMember(\"delay\",a)},get delay(){return this._delay},set endDelay(a){this._setMember(\"endDelay\",a)},get endDelay(){return this._endDelay},set fill(a){this._setMember(\"fill\",a)},get fill(){return this._fill},set iterationStart(a){if((isNaN(a)||a<0)&&e())throw new TypeError(\"iterationStart must be a non-negative number, received: \"+a);this._setMember(\"iterationStart\",a)},get iterationStart(){return this._iterationStart},set duration(a){if(\"auto\"!=a&&(isNaN(a)||a<0)&&e())throw new TypeError(\"duration must be non-negative or auto, received: \"+a);this._setMember(\"duration\",a)},get duration(){return this._duration},set direction(a){this._setMember(\"direction\",a)},get direction(){return this._direction},set easing(a){this._easingFunction=l(k(a)),this._setMember(\"easing\",a)},get easing(){return this._easing},set iterations(a){if((isNaN(a)||a<0)&&e())throw new TypeError(\"iterations must be non-negative, received: \"+a);this._setMember(\"iterations\",a)},get iterations(){return this._iterations}};var y=1,z=.5,A=0,B={ease:i(.25,.1,.25,1),\"ease-in\":i(.42,0,1,1),\"ease-out\":i(0,0,.58,1),\"ease-in-out\":i(.42,0,.58,1),\"step-start\":j(1,y),\"step-middle\":j(1,z),\"step-end\":j(1,A)},C=null,D=\"\\\\s*(-?\\\\d+\\\\.?\\\\d*|-?\\\\.\\\\d+)\\\\s*\",E=new RegExp(\"cubic-bezier\\\\(\"+D+\",\"+D+\",\"+D+\",\"+D+\"\\\\)\"),F=/steps\\(\\s*(\\d+)\\s*\\)/,G=/steps\\(\\s*(\\d+)\\s*,\\s*(start|middle|end)\\s*\\)/,H=0,I=1,J=2,K=3;a.cloneTimingInput=c,a.makeTiming=f,a.numericTimingToObject=g,a.normalizeTimingInput=h,a.calculateActiveDuration=m,a.calculateIterationProgress=u,a.calculatePhase=o,a.normalizeEasing=k,a.parseEasingFunction=l}(a),function(a,b){function c(a,b){return a in k?k[a][b]||b:b}function d(a){return\"display\"===a||0===a.lastIndexOf(\"animation\",0)||0===a.lastIndexOf(\"transition\",0)}function e(a,b,e){if(!d(a)){var f=h[a];if(f){i.style[a]=b;for(var g in f){var j=f[g],k=i.style[j];e[j]=c(j,k)}}else e[a]=c(a,b)}}function f(a){var b=[];for(var c in a)if(!(c in[\"easing\",\"offset\",\"composite\"])){var d=a[c];Array.isArray(d)||(d=[d]);for(var e,f=d.length,g=0;g1&&null==d[0].offset&&(d[0].offset=0);for(var b=0,c=d[0].offset,e=1;e1)throw new TypeError(\"Keyframe offsets must be between 0 and 1.\")}}else if(\"composite\"==d){if(\"add\"==f||\"accumulate\"==f)throw{type:DOMException.NOT_SUPPORTED_ERR,name:\"NotSupportedError\",message:\"add compositing is not supported\"};if(\"replace\"!=f)throw new TypeError(\"Invalid composite mode \"+f+\".\")}else f=\"easing\"==d?a.normalizeEasing(f):\"\"+f;e(d,f,c)}return void 0==c.offset&&(c.offset=null),void 0==c.easing&&(c.easing=\"linear\"),c}),g=!0,h=-1/0,i=0;i=0&&a.offset<=1}),g||c(),d}var h={background:[\"backgroundImage\",\"backgroundPosition\",\"backgroundSize\",\"backgroundRepeat\",\"backgroundAttachment\",\"backgroundOrigin\",\"backgroundClip\",\"backgroundColor\"],border:[\"borderTopColor\",\"borderTopStyle\",\"borderTopWidth\",\"borderRightColor\",\"borderRightStyle\",\"borderRightWidth\",\"borderBottomColor\",\"borderBottomStyle\",\"borderBottomWidth\",\"borderLeftColor\",\"borderLeftStyle\",\"borderLeftWidth\"],borderBottom:[\"borderBottomWidth\",\"borderBottomStyle\",\"borderBottomColor\"],borderColor:[\"borderTopColor\",\"borderRightColor\",\"borderBottomColor\",\"borderLeftColor\"],borderLeft:[\"borderLeftWidth\",\"borderLeftStyle\",\"borderLeftColor\"],borderRadius:[\"borderTopLeftRadius\",\"borderTopRightRadius\",\"borderBottomRightRadius\",\"borderBottomLeftRadius\"],borderRight:[\"borderRightWidth\",\"borderRightStyle\",\"borderRightColor\"],borderTop:[\"borderTopWidth\",\"borderTopStyle\",\"borderTopColor\"],borderWidth:[\"borderTopWidth\",\"borderRightWidth\",\"borderBottomWidth\",\"borderLeftWidth\"],flex:[\"flexGrow\",\"flexShrink\",\"flexBasis\"],font:[\"fontFamily\",\"fontSize\",\"fontStyle\",\"fontVariant\",\"fontWeight\",\"lineHeight\"],margin:[\"marginTop\",\"marginRight\",\"marginBottom\",\"marginLeft\"],outline:[\"outlineColor\",\"outlineStyle\",\"outlineWidth\"],padding:[\"paddingTop\",\"paddingRight\",\"paddingBottom\",\"paddingLeft\"]},i=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"div\"),j={thin:\"1px\",medium:\"3px\",thick:\"5px\"},k={borderBottomWidth:j,borderLeftWidth:j,borderRightWidth:j,borderTopWidth:j,fontSize:{\"xx-small\":\"60%\",\"x-small\":\"75%\",small:\"89%\",medium:\"100%\",large:\"120%\",\"x-large\":\"150%\",\"xx-large\":\"200%\"},fontWeight:{normal:\"400\",bold:\"700\"},outlineWidth:j,textShadow:{none:\"0px 0px 0px transparent\"},boxShadow:{none:\"0px 0px 0px 0px transparent\"}};a.convertToArrayForm=f,a.normalizeKeyframes=g}(a),function(a){var b={};a.isDeprecated=function(a,c,d,e){var f=e?\"are\":\"is\",g=new Date,h=new Date(c);return h.setMonth(h.getMonth()+3),!(g=a.applyFrom&&cthis._surrogateStyle.length;)this._length--,Object.defineProperty(this,this._length,{configurable:!0,enumerable:!1,value:void 0})},_set:function(b,c){this._style[b]=c,this._isAnimatedProperty[b]=!0,this._updateSvgTransformAttr&&\"transform\"==a.unprefixedPropertyName(b)&&(null==this._savedTransformAttr&&(this._savedTransformAttr=this._element.getAttribute(\"transform\")),this._element.setAttribute(\"transform\",a.transformToSvgMatrix(c)))},_clear:function(b){this._style[b]=this._surrogateStyle[b],this._updateSvgTransformAttr&&\"transform\"==a.unprefixedPropertyName(b)&&(this._savedTransformAttr?this._element.setAttribute(\"transform\",this._savedTransformAttr):this._element.removeAttribute(\"transform\"),this._savedTransformAttr=null),delete this._isAnimatedProperty[b]}};for(var k in i)e.prototype[k]=function(a,b){return function(){var c=this._surrogateStyle[a].apply(this._surrogateStyle,arguments);return b&&(this._isAnimatedProperty[arguments[0]]||this._style[a].apply(this._style,arguments),this._updateIndices()),c}}(k,k in j);for(var l in document.documentElement.style)l in h||l in i||function(a){d(e.prototype,a,{get:function(){return this._surrogateStyle[a]},set:function(b){this._surrogateStyle[a]=b,this._updateIndices(),this._isAnimatedProperty[a]||(this._style[a]=b)}})}(l);a.apply=function(b,c,d){f(b),b.style._set(a.propertyName(c),d)},a.clear=function(b,c){b._webAnimationsPatchedStyle&&b.style._clear(a.propertyName(c))}}(b),function(a){window.Element.prototype.animate=function(b,c){var d=\"\";return c&&c.id&&(d=c.id),a.timeline._play(a.KeyframeEffect(this,b,c,d))}}(b),function(a,b){function c(a,b,d){if(\"number\"==typeof a&&\"number\"==typeof b)return a*(1-d)+b*d;if(\"boolean\"==typeof a&&\"boolean\"==typeof b)return d<.5?a:b;if(a.length==b.length){for(var e=[],f=0;f0?this._totalDuration:0),this._ensureAlive())},get currentTime(){return this._idle||this._currentTimePending?null:this._currentTime},set currentTime(a){a=+a,isNaN(a)||(b.restart(),this._paused||null==this._startTime||(this._startTime=this._timeline.currentTime-a/this._playbackRate),this._currentTimePending=!1,this._currentTime!=a&&(this._idle&&(this._idle=!1,this._paused=!0),this._tickCurrentTime(a,!0),b.applyDirtiedAnimation(this)))},get startTime(){return this._startTime},set startTime(a){a=+a,isNaN(a)||this._paused||this._idle||(this._startTime=a,this._tickCurrentTime((this._timeline.currentTime-this._startTime)*this.playbackRate),b.applyDirtiedAnimation(this))},get playbackRate(){return this._playbackRate},set playbackRate(a){if(a!=this._playbackRate){var c=this.currentTime;this._playbackRate=a,this._startTime=null,\"paused\"!=this.playState&&\"idle\"!=this.playState&&(this._finishedFlag=!1,this._idle=!1,this._ensureAlive(),b.applyDirtiedAnimation(this)),null!=c&&(this.currentTime=c)}},get _isFinished(){return!this._idle&&(this._playbackRate>0&&this._currentTime>=this._totalDuration||this._playbackRate<0&&this._currentTime<=0)},get _totalDuration(){return this._effect._totalDuration},get playState(){return this._idle?\"idle\":null==this._startTime&&!this._paused&&0!=this.playbackRate||this._currentTimePending?\"pending\":this._paused?\"paused\":this._isFinished?\"finished\":\"running\"},_rewind:function(){if(this._playbackRate>=0)this._currentTime=0;else{if(!(this._totalDuration<1/0))throw new DOMException(\"Unable to rewind negative playback rate animation with infinite duration\",\"InvalidStateError\");this._currentTime=this._totalDuration}},play:function(){this._paused=!1,(this._isFinished||this._idle)&&(this._rewind(),this._startTime=null),this._finishedFlag=!1,this._idle=!1,this._ensureAlive(),b.applyDirtiedAnimation(this)},pause:function(){this._isFinished||this._paused||this._idle?this._idle&&(this._rewind(),this._idle=!1):this._currentTimePending=!0,this._startTime=null,this._paused=!0},finish:function(){this._idle||(this.currentTime=this._playbackRate>0?this._totalDuration:0,this._startTime=this._totalDuration-this.currentTime,this._currentTimePending=!1,b.applyDirtiedAnimation(this))},cancel:function(){this._inEffect&&(this._inEffect=!1,this._idle=!0,this._paused=!1,this._finishedFlag=!0,this._currentTime=0,this._startTime=null,this._effect._update(null),b.applyDirtiedAnimation(this))},reverse:function(){this.playbackRate*=-1,this.play()},addEventListener:function(a,b){\"function\"==typeof b&&\"finish\"==a&&this._finishHandlers.push(b)},removeEventListener:function(a,b){if(\"finish\"==a){var c=this._finishHandlers.indexOf(b);c>=0&&this._finishHandlers.splice(c,1)}},_fireEvents:function(a){if(this._isFinished){if(!this._finishedFlag){var b=new d(this,this._currentTime,a),c=this._finishHandlers.concat(this.onfinish?[this.onfinish]:[]);setTimeout(function(){c.forEach(function(a){a.call(b.target,b)})},0),this._finishedFlag=!0}}else this._finishedFlag=!1},_tick:function(a,b){this._idle||this._paused||(null==this._startTime?b&&(this.startTime=a-this._currentTime/this.playbackRate):this._isFinished||this._tickCurrentTime((a-this._startTime)*this.playbackRate)),b&&(this._currentTimePending=!1,this._fireEvents(a))},get _needsTick(){return this.playState in{pending:1,running:1}||!this._finishedFlag},_targetAnimations:function(){var a=this._effect._target;return a._activeAnimations||(a._activeAnimations=[]),a._activeAnimations},_markTarget:function(){var a=this._targetAnimations();-1===a.indexOf(this)&&a.push(this)},_unmarkTarget:function(){var a=this._targetAnimations(),b=a.indexOf(this);-1!==b&&a.splice(b,1)}}}(a,b),function(a,b,c){function d(a){var b=j;j=[],a1e-4?(u=.5/Math.sqrt(w),v=[(q[2][1]-q[1][2])*u,(q[0][2]-q[2][0])*u,(q[1][0]-q[0][1])*u,.25/u]):q[0][0]>q[1][1]&&q[0][0]>q[2][2]?(u=2*Math.sqrt(1+q[0][0]-q[1][1]-q[2][2]),v=[.25*u,(q[0][1]+q[1][0])/u,(q[0][2]+q[2][0])/u,(q[2][1]-q[1][2])/u]):q[1][1]>q[2][2]?(u=2*Math.sqrt(1+q[1][1]-q[0][0]-q[2][2]),v=[(q[0][1]+q[1][0])/u,.25*u,(q[1][2]+q[2][1])/u,(q[0][2]-q[2][0])/u]):(u=2*Math.sqrt(1+q[2][2]-q[0][0]-q[1][1]),v=[(q[0][2]+q[2][0])/u,(q[1][2]+q[2][1])/u,.25*u,(q[1][0]-q[0][1])/u]),[p,r,s,v,n]}return j}();a.dot=c,a.makeMatrixDecomposition=h,a.transformListToMatrix=g}(b),function(a){function b(a,b){var c=a.exec(b);if(c)return c=a.ignoreCase?c[0].toLowerCase():c[0],[c,b.substr(c.length)]}function c(a,b){b=b.replace(/^\\s*/,\"\");var c=a(b);if(c)return[c[0],c[1].replace(/^\\s*/,\"\")]}function d(a,d,e){a=c.bind(null,a);for(var f=[];;){var g=a(e);if(!g)return[f,e];if(f.push(g[0]),e=g[1],!(g=b(d,e))||\"\"==g[1])return[f,e];e=g[1]}}function e(a,b){for(var c=0,d=0;dd?c%=d:d%=c;return c=a*b/(c+d)}function g(a){return function(b){var c=a(b);return c&&(c[0]=void 0),c}}function h(a,b){return function(c){return a(c)||[b,c]}}function i(b,c){for(var d=[],e=0;e=1?b:\"visible\"}]}a.addPropertiesHandler(String,c,[\"visibility\"])}(b),function(a,b){function c(a){a=a.trim(),f.fillStyle=\"#000\",f.fillStyle=a;var b=f.fillStyle;if(f.fillStyle=\"#fff\",f.fillStyle=a,b==f.fillStyle){f.fillRect(0,0,1,1);var c=f.getImageData(0,0,1,1).data;f.clearRect(0,0,1,1);var d=c[3]/255;return[c[0]*d,c[1]*d,c[2]*d,d]}}function d(b,c){return[b,c,function(b){function c(a){return Math.max(0,Math.min(255,a))}if(b[3])for(var d=0;d<3;d++)b[d]=Math.round(c(b[d]/b[3]));return b[3]=a.numberToString(a.clamp(0,1,b[3])),\"rgba(\"+b.join(\",\")+\")\"}]}var e=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\");e.width=e.height=1;var f=e.getContext(\"2d\");a.addPropertiesHandler(c,d,[\"background-color\",\"border-bottom-color\",\"border-left-color\",\"border-right-color\",\"border-top-color\",\"color\",\"fill\",\"flood-color\",\"lighting-color\",\"outline-color\",\"stop-color\",\"stroke\",\"text-decoration-color\"]),a.consumeColor=a.consumeParenthesised.bind(null,c),a.mergeColors=d}(b),function(a,b){function c(a){function b(){var b=h.exec(a);g=b?b[0]:void 0}function c(){var a=Number(g);return b(),a}function d(){if(\"(\"!==g)return c();b();var a=f();return\")\"!==g?NaN:(b(),a)}function e(){for(var a=d();\"*\"===g||\"/\"===g;){var c=g;b();var e=d();\"*\"===c?a*=e:a/=e}return a}function f(){for(var a=e();\"+\"===g||\"-\"===g;){var c=g;b();var d=e();\"+\"===c?a+=d:a-=d}return a}var g,h=/([\\+\\-\\w\\.]+|[\\(\\)\\*\\/])/g;return b(),f()}function d(a,b){if(\"0\"==(b=b.trim().toLowerCase())&&\"px\".search(a)>=0)return{px:0};if(/^[^(]*$|^calc/.test(b)){b=b.replace(/calc\\(/g,\"(\");var d={};b=b.replace(a,function(a){return d[a]=null,\"U\"+a});for(var e=\"U(\"+a.source+\")\",f=b.replace(/[-+]?(\\d*\\.)?\\d+([Ee][-+]?\\d+)?/g,\"N\").replace(new RegExp(\"N\"+e,\"g\"),\"D\").replace(/\\s[+-]\\s/g,\"O\").replace(/\\s/g,\"\"),g=[/N\\*(D)/g,/(N|D)[*\\/]N/g,/(N|D)O\\1/g,/\\((N|D)\\)/g],h=0;h1?\"calc(\"+c+\")\":c}]}var g=\"px|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc\",h=d.bind(null,new RegExp(g,\"g\")),i=d.bind(null,new RegExp(g+\"|%\",\"g\")),j=d.bind(null,/deg|rad|grad|turn/g);a.parseLength=h,a.parseLengthOrPercent=i,a.consumeLengthOrPercent=a.consumeParenthesised.bind(null,i),a.parseAngle=j,a.mergeDimensions=f;var k=a.consumeParenthesised.bind(null,h),l=a.consumeRepeated.bind(void 0,k,/^/),m=a.consumeRepeated.bind(void 0,l,/^,/);a.consumeSizePairList=m;var n=function(a){var b=m(a);if(b&&\"\"==b[1])return b[0]},o=a.mergeNestedRepeated.bind(void 0,e,\" \"),p=a.mergeNestedRepeated.bind(void 0,o,\",\");a.mergeNonNegativeSizePair=o,a.addPropertiesHandler(n,p,[\"background-size\"]),a.addPropertiesHandler(i,e,[\"border-bottom-width\",\"border-image-width\",\"border-left-width\",\"border-right-width\",\"border-top-width\",\"flex-basis\",\"font-size\",\"height\",\"line-height\",\"max-height\",\"max-width\",\"outline-width\",\"width\"]),a.addPropertiesHandler(i,f,[\"border-bottom-left-radius\",\"border-bottom-right-radius\",\"border-top-left-radius\",\"border-top-right-radius\",\"bottom\",\"left\",\"letter-spacing\",\"margin-bottom\",\"margin-left\",\"margin-right\",\"margin-top\",\"min-height\",\"min-width\",\"outline-offset\",\"padding-bottom\",\"padding-left\",\"padding-right\",\"padding-top\",\"perspective\",\"right\",\"shape-margin\",\"stroke-dashoffset\",\"text-indent\",\"top\",\"vertical-align\",\"word-spacing\"])}(b),function(a,b){function c(b){return a.consumeLengthOrPercent(b)||a.consumeToken(/^auto/,b)}function d(b){var d=a.consumeList([a.ignore(a.consumeToken.bind(null,/^rect/)),a.ignore(a.consumeToken.bind(null,/^\\(/)),a.consumeRepeated.bind(null,c,/^,/),a.ignore(a.consumeToken.bind(null,/^\\)/))],b);if(d&&4==d[0].length)return d[0]}function e(b,c){return\"auto\"==b||\"auto\"==c?[!0,!1,function(d){var e=d?b:c;if(\"auto\"==e)return\"auto\";var f=a.mergeDimensions(e,e);return f[2](f[0])}]:a.mergeDimensions(b,c)}function f(a){return\"rect(\"+a+\")\"}var g=a.mergeWrappedNestedRepeated.bind(null,f,e,\", \");a.parseBox=d,a.mergeBoxes=g,a.addPropertiesHandler(d,g,[\"clip\"])}(b),function(a,b){function c(a){return function(b){var c=0;return a.map(function(a){return a===k?b[c++]:a})}}function d(a){return a}function e(b){if(\"none\"==(b=b.toLowerCase().trim()))return[];for(var c,d=/\\s*(\\w+)\\(([^)]*)\\)/g,e=[],f=0;c=d.exec(b);){if(c.index!=f)return;f=c.index+c[0].length;var g=c[1],h=n[g];if(!h)return;var i=c[2].split(\",\"),j=h[0];if(j.length900||b%100!=0))return b}function c(b){return b=100*Math.round(b/100),b=a.clamp(100,900,b),400===b?\"normal\":700===b?\"bold\":String(b)}function d(a,b){return[a,b,c]}a.addPropertiesHandler(b,d,[\"font-weight\"])}(b),function(a){function b(a){var b={};for(var c in a)b[c]=-a[c];return b}function c(b){return a.consumeToken(/^(left|center|right|top|bottom)\\b/i,b)||a.consumeLengthOrPercent(b)}function d(b,d){var e=a.consumeRepeated(c,/^/,d);if(e&&\"\"==e[1]){var f=e[0];if(f[0]=f[0]||\"center\",f[1]=f[1]||\"center\",3==b&&(f[2]=f[2]||{px:0}),f.length==b){if(/top|bottom/.test(f[0])||/left|right/.test(f[1])){var h=f[0];f[0]=f[1],f[1]=h}if(/left|right|center|Object/.test(f[0])&&/top|bottom|center|Object/.test(f[1]))return f.map(function(a){return\"object\"==typeof a?a:g[a]})}}}function e(d){var e=a.consumeRepeated(c,/^/,d);if(e){for(var f=e[0],h=[{\"%\":50},{\"%\":50}],i=0,j=!1,k=0;k=0&&this._cancelHandlers.splice(c,1)}else i.call(this,a,b)},f}}}(),function(a){var b=document.documentElement,c=null,d=!1;try{var e=getComputedStyle(b).getPropertyValue(\"opacity\"),f=\"0\"==e?\"1\":\"0\";c=b.animate({opacity:[f,f]},{duration:1}),c.currentTime=0,d=getComputedStyle(b).getPropertyValue(\"opacity\")==f}catch(a){}finally{c&&c.cancel()}if(!d){var g=window.Element.prototype.animate;window.Element.prototype.animate=function(b,c){return window.Symbol&&Symbol.iterator&&Array.prototype.from&&b[Symbol.iterator]&&(b=Array.from(b)),Array.isArray(b)||null===b||(b=a.convertToArrayForm(b)),g.call(this,b,c)}}}(a)}();\n//# sourceMappingURL=web-animations.min.js.map","/**\n* @license Angular v9.1.0-next.4+61.sha-e552591.with-local-changes\n* (c) 2010-2020 Google LLC. https://angular.io/\n* License: MIT\n*/\n(function (factory) {\n typeof define === 'function' && define.amd ? define(factory) :\n factory();\n}((function () { 'use strict';\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n const Zone$1 = (function (global) {\n const performance = global['performance'];\n function mark(name) { performance && performance['mark'] && performance['mark'](name); }\n function performanceMeasure(name, label) {\n performance && performance['measure'] && performance['measure'](name, label);\n }\n mark('Zone');\n // Initialize before it's accessed below.\n // __Zone_symbol_prefix global can be used to override the default zone\n // symbol prefix with a custom one if needed.\n const symbolPrefix = global['__Zone_symbol_prefix'] || '__zone_symbol__';\n function __symbol__(name) { return symbolPrefix + name; }\n const checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true;\n if (global['Zone']) {\n // if global['Zone'] already exists (maybe zone.js was already loaded or\n // some other lib also registered a global object named Zone), we may need\n // to throw an error, but sometimes user may not want this error.\n // For example,\n // we have two web pages, page1 includes zone.js, page2 doesn't.\n // and the 1st time user load page1 and page2, everything work fine,\n // but when user load page2 again, error occurs because global['Zone'] already exists.\n // so we add a flag to let user choose whether to throw this error or not.\n // By default, if existing Zone is from zone.js, we will not throw the error.\n if (checkDuplicate || typeof global['Zone'].__symbol__ !== 'function') {\n throw new Error('Zone already loaded.');\n }\n else {\n return global['Zone'];\n }\n }\n class Zone {\n constructor(parent, zoneSpec) {\n this._parent = parent;\n this._name = zoneSpec ? zoneSpec.name || 'unnamed' : '';\n this._properties = zoneSpec && zoneSpec.properties || {};\n this._zoneDelegate =\n new ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec);\n }\n static assertZonePatched() {\n if (global['Promise'] !== patches['ZoneAwarePromise']) {\n throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' +\n 'has been overwritten.\\n' +\n 'Most likely cause is that a Promise polyfill has been loaded ' +\n 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' +\n 'If you must load one, do so before loading zone.js.)');\n }\n }\n static get root() {\n let zone = Zone.current;\n while (zone.parent) {\n zone = zone.parent;\n }\n return zone;\n }\n static get current() { return _currentZoneFrame.zone; }\n static get currentTask() { return _currentTask; }\n // tslint:disable-next-line:require-internal-with-underscore\n static __load_patch(name, fn) {\n if (patches.hasOwnProperty(name)) {\n if (checkDuplicate) {\n throw Error('Already loaded patch: ' + name);\n }\n }\n else if (!global['__Zone_disable_' + name]) {\n const perfName = 'Zone:' + name;\n mark(perfName);\n patches[name] = fn(global, Zone, _api);\n performanceMeasure(perfName, perfName);\n }\n }\n get parent() { return this._parent; }\n get name() { return this._name; }\n get(key) {\n const zone = this.getZoneWith(key);\n if (zone)\n return zone._properties[key];\n }\n getZoneWith(key) {\n let current = this;\n while (current) {\n if (current._properties.hasOwnProperty(key)) {\n return current;\n }\n current = current._parent;\n }\n return null;\n }\n fork(zoneSpec) {\n if (!zoneSpec)\n throw new Error('ZoneSpec required!');\n return this._zoneDelegate.fork(this, zoneSpec);\n }\n wrap(callback, source) {\n if (typeof callback !== 'function') {\n throw new Error('Expecting function got: ' + callback);\n }\n const _callback = this._zoneDelegate.intercept(this, callback, source);\n const zone = this;\n return function () {\n return zone.runGuarded(_callback, this, arguments, source);\n };\n }\n run(callback, applyThis, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n }\n runGuarded(callback, applyThis = null, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n }\n runTask(task, applyThis, applyArgs) {\n if (task.zone != this) {\n throw new Error('A task can only be run in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n }\n // https://github.com/angular/zone.js/issues/778, sometimes eventTask\n // will run in notScheduled(canceled) state, we should not try to\n // run such kind of task but just return\n if (task.state === notScheduled && (task.type === eventTask || task.type === macroTask)) {\n return;\n }\n const reEntryGuard = task.state != running;\n reEntryGuard && task._transitionTo(running, scheduled);\n task.runCount++;\n const previousTask = _currentTask;\n _currentTask = task;\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n if (task.type == macroTask && task.data && !task.data.isPeriodic) {\n task.cancelFn = undefined;\n }\n try {\n return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n // if the task's state is notScheduled or unknown, then it has already been cancelled\n // we should not reset the state to scheduled\n if (task.state !== notScheduled && task.state !== unknown) {\n if (task.type == eventTask || (task.data && task.data.isPeriodic)) {\n reEntryGuard && task._transitionTo(scheduled, running);\n }\n else {\n task.runCount = 0;\n this._updateTaskCount(task, -1);\n reEntryGuard &&\n task._transitionTo(notScheduled, running, notScheduled);\n }\n }\n _currentZoneFrame = _currentZoneFrame.parent;\n _currentTask = previousTask;\n }\n }\n scheduleTask(task) {\n if (task.zone && task.zone !== this) {\n // check if the task was rescheduled, the newZone\n // should not be the children of the original zone\n let newZone = this;\n while (newZone) {\n if (newZone === task.zone) {\n throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${task.zone.name}`);\n }\n newZone = newZone.parent;\n }\n }\n task._transitionTo(scheduling, notScheduled);\n const zoneDelegates = [];\n task._zoneDelegates = zoneDelegates;\n task._zone = this;\n try {\n task = this._zoneDelegate.scheduleTask(this, task);\n }\n catch (err) {\n // should set task's state to unknown when scheduleTask throw error\n // because the err may from reschedule, so the fromState maybe notScheduled\n task._transitionTo(unknown, scheduling, notScheduled);\n // TODO: @JiaLiPassion, should we check the result from handleError?\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n if (task._zoneDelegates === zoneDelegates) {\n // we have to check because internally the delegate can reschedule the task.\n this._updateTaskCount(task, 1);\n }\n if (task.state == scheduling) {\n task._transitionTo(scheduled, scheduling);\n }\n return task;\n }\n scheduleMicroTask(source, callback, data, customSchedule) {\n return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined));\n }\n scheduleMacroTask(source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel));\n }\n scheduleEventTask(source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel));\n }\n cancelTask(task) {\n if (task.zone != this)\n throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n task._transitionTo(canceling, scheduled, running);\n try {\n this._zoneDelegate.cancelTask(this, task);\n }\n catch (err) {\n // if error occurs when cancelTask, transit the state to unknown\n task._transitionTo(unknown, canceling);\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n this._updateTaskCount(task, -1);\n task._transitionTo(notScheduled, canceling);\n task.runCount = 0;\n return task;\n }\n _updateTaskCount(task, count) {\n const zoneDelegates = task._zoneDelegates;\n if (count == -1) {\n task._zoneDelegates = null;\n }\n for (let i = 0; i < zoneDelegates.length; i++) {\n zoneDelegates[i]._updateTaskCount(task.type, count);\n }\n }\n }\n // tslint:disable-next-line:require-internal-with-underscore\n Zone.__symbol__ = __symbol__;\n const DELEGATE_ZS = {\n name: '',\n onHasTask: (delegate, _, target, hasTaskState) => delegate.hasTask(target, hasTaskState),\n onScheduleTask: (delegate, _, target, task) => delegate.scheduleTask(target, task),\n onInvokeTask: (delegate, _, target, task, applyThis, applyArgs) => delegate.invokeTask(target, task, applyThis, applyArgs),\n onCancelTask: (delegate, _, target, task) => delegate.cancelTask(target, task)\n };\n class ZoneDelegate {\n constructor(zone, parentDelegate, zoneSpec) {\n this._taskCounts = { 'microTask': 0, 'macroTask': 0, 'eventTask': 0 };\n this.zone = zone;\n this._parentDelegate = parentDelegate;\n this._forkZS =\n zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS);\n this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt);\n this._forkCurrZone =\n zoneSpec && (zoneSpec.onFork ? this.zone : parentDelegate._forkCurrZone);\n this._interceptZS =\n zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS);\n this._interceptDlgt =\n zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt);\n this._interceptCurrZone =\n zoneSpec && (zoneSpec.onIntercept ? this.zone : parentDelegate._interceptCurrZone);\n this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS);\n this._invokeDlgt =\n zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt);\n this._invokeCurrZone =\n zoneSpec && (zoneSpec.onInvoke ? this.zone : parentDelegate._invokeCurrZone);\n this._handleErrorZS =\n zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS);\n this._handleErrorDlgt = zoneSpec &&\n (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt);\n this._handleErrorCurrZone =\n zoneSpec && (zoneSpec.onHandleError ? this.zone : parentDelegate._handleErrorCurrZone);\n this._scheduleTaskZS =\n zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS);\n this._scheduleTaskDlgt = zoneSpec &&\n (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt);\n this._scheduleTaskCurrZone = zoneSpec &&\n (zoneSpec.onScheduleTask ? this.zone : parentDelegate._scheduleTaskCurrZone);\n this._invokeTaskZS =\n zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS);\n this._invokeTaskDlgt =\n zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt);\n this._invokeTaskCurrZone =\n zoneSpec && (zoneSpec.onInvokeTask ? this.zone : parentDelegate._invokeTaskCurrZone);\n this._cancelTaskZS =\n zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS);\n this._cancelTaskDlgt =\n zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt);\n this._cancelTaskCurrZone =\n zoneSpec && (zoneSpec.onCancelTask ? this.zone : parentDelegate._cancelTaskCurrZone);\n this._hasTaskZS = null;\n this._hasTaskDlgt = null;\n this._hasTaskDlgtOwner = null;\n this._hasTaskCurrZone = null;\n const zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask;\n const parentHasTask = parentDelegate && parentDelegate._hasTaskZS;\n if (zoneSpecHasTask || parentHasTask) {\n // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such\n // a case all task related interceptors must go through this ZD. We can't short circuit it.\n this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS;\n this._hasTaskDlgt = parentDelegate;\n this._hasTaskDlgtOwner = this;\n this._hasTaskCurrZone = zone;\n if (!zoneSpec.onScheduleTask) {\n this._scheduleTaskZS = DELEGATE_ZS;\n this._scheduleTaskDlgt = parentDelegate;\n this._scheduleTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onInvokeTask) {\n this._invokeTaskZS = DELEGATE_ZS;\n this._invokeTaskDlgt = parentDelegate;\n this._invokeTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onCancelTask) {\n this._cancelTaskZS = DELEGATE_ZS;\n this._cancelTaskDlgt = parentDelegate;\n this._cancelTaskCurrZone = this.zone;\n }\n }\n }\n fork(targetZone, zoneSpec) {\n return this._forkZS ?\n this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) :\n new Zone(targetZone, zoneSpec);\n }\n intercept(targetZone, callback, source) {\n return this._interceptZS ?\n this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) :\n callback;\n }\n invoke(targetZone, callback, applyThis, applyArgs, source) {\n return this._invokeZS ?\n this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) :\n callback.apply(applyThis, applyArgs);\n }\n handleError(targetZone, error) {\n return this._handleErrorZS ?\n this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) :\n true;\n }\n scheduleTask(targetZone, task) {\n let returnTask = task;\n if (this._scheduleTaskZS) {\n if (this._hasTaskZS) {\n returnTask._zoneDelegates.push(this._hasTaskDlgtOwner);\n }\n // clang-format off\n returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task);\n // clang-format on\n if (!returnTask)\n returnTask = task;\n }\n else {\n if (task.scheduleFn) {\n task.scheduleFn(task);\n }\n else if (task.type == microTask) {\n scheduleMicroTask(task);\n }\n else {\n throw new Error('Task is missing scheduleFn.');\n }\n }\n return returnTask;\n }\n invokeTask(targetZone, task, applyThis, applyArgs) {\n return this._invokeTaskZS ?\n this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) :\n task.callback.apply(applyThis, applyArgs);\n }\n cancelTask(targetZone, task) {\n let value;\n if (this._cancelTaskZS) {\n value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task);\n }\n else {\n if (!task.cancelFn) {\n throw Error('Task is not cancelable');\n }\n value = task.cancelFn(task);\n }\n return value;\n }\n hasTask(targetZone, isEmpty) {\n // hasTask should not throw error so other ZoneDelegate\n // can still trigger hasTask callback\n try {\n this._hasTaskZS &&\n this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty);\n }\n catch (err) {\n this.handleError(targetZone, err);\n }\n }\n // tslint:disable-next-line:require-internal-with-underscore\n _updateTaskCount(type, count) {\n const counts = this._taskCounts;\n const prev = counts[type];\n const next = counts[type] = prev + count;\n if (next < 0) {\n throw new Error('More tasks executed then were scheduled.');\n }\n if (prev == 0 || next == 0) {\n const isEmpty = {\n microTask: counts['microTask'] > 0,\n macroTask: counts['macroTask'] > 0,\n eventTask: counts['eventTask'] > 0,\n change: type\n };\n this.hasTask(this.zone, isEmpty);\n }\n }\n }\n class ZoneTask {\n constructor(type, source, callback, options, scheduleFn, cancelFn) {\n // tslint:disable-next-line:require-internal-with-underscore\n this._zone = null;\n this.runCount = 0;\n // tslint:disable-next-line:require-internal-with-underscore\n this._zoneDelegates = null;\n // tslint:disable-next-line:require-internal-with-underscore\n this._state = 'notScheduled';\n this.type = type;\n this.source = source;\n this.data = options;\n this.scheduleFn = scheduleFn;\n this.cancelFn = cancelFn;\n if (!callback) {\n throw new Error('callback is not defined');\n }\n this.callback = callback;\n const self = this;\n // TODO: @JiaLiPassion options should have interface\n if (type === eventTask && options && options.useG) {\n this.invoke = ZoneTask.invokeTask;\n }\n else {\n this.invoke = function () {\n return ZoneTask.invokeTask.call(global, self, this, arguments);\n };\n }\n }\n static invokeTask(task, target, args) {\n if (!task) {\n task = this;\n }\n _numberOfNestedTaskFrames++;\n try {\n task.runCount++;\n return task.zone.runTask(task, target, args);\n }\n finally {\n if (_numberOfNestedTaskFrames == 1) {\n drainMicroTaskQueue();\n }\n _numberOfNestedTaskFrames--;\n }\n }\n get zone() { return this._zone; }\n get state() { return this._state; }\n cancelScheduleRequest() { this._transitionTo(notScheduled, scheduling); }\n // tslint:disable-next-line:require-internal-with-underscore\n _transitionTo(toState, fromState1, fromState2) {\n if (this._state === fromState1 || this._state === fromState2) {\n this._state = toState;\n if (toState == notScheduled) {\n this._zoneDelegates = null;\n }\n }\n else {\n throw new Error(`${this.type} '${this.source}': can not transition to '${toState}', expecting state '${fromState1}'${fromState2 ? ' or \\'' + fromState2 + '\\'' : ''}, was '${this._state}'.`);\n }\n }\n toString() {\n if (this.data && typeof this.data.handleId !== 'undefined') {\n return this.data.handleId.toString();\n }\n else {\n return Object.prototype.toString.call(this);\n }\n }\n // add toJSON method to prevent cyclic error when\n // call JSON.stringify(zoneTask)\n toJSON() {\n return {\n type: this.type,\n state: this.state,\n source: this.source,\n zone: this.zone.name,\n runCount: this.runCount\n };\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// MICROTASK QUEUE\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n const symbolSetTimeout = __symbol__('setTimeout');\n const symbolPromise = __symbol__('Promise');\n const symbolThen = __symbol__('then');\n let _microTaskQueue = [];\n let _isDrainingMicrotaskQueue = false;\n let nativeMicroTaskQueuePromise;\n function scheduleMicroTask(task) {\n // if we are not running in any task, and there has not been anything scheduled\n // we must bootstrap the initial task creation by manually scheduling the drain\n if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) {\n // We are not running in Task, so we need to kickstart the microtask queue.\n if (!nativeMicroTaskQueuePromise) {\n if (global[symbolPromise]) {\n nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0);\n }\n }\n if (nativeMicroTaskQueuePromise) {\n let nativeThen = nativeMicroTaskQueuePromise[symbolThen];\n if (!nativeThen) {\n // native Promise is not patchable, we need to use `then` directly\n // issue 1078\n nativeThen = nativeMicroTaskQueuePromise['then'];\n }\n nativeThen.call(nativeMicroTaskQueuePromise, drainMicroTaskQueue);\n }\n else {\n global[symbolSetTimeout](drainMicroTaskQueue, 0);\n }\n }\n task && _microTaskQueue.push(task);\n }\n function drainMicroTaskQueue() {\n if (!_isDrainingMicrotaskQueue) {\n _isDrainingMicrotaskQueue = true;\n while (_microTaskQueue.length) {\n const queue = _microTaskQueue;\n _microTaskQueue = [];\n for (let i = 0; i < queue.length; i++) {\n const task = queue[i];\n try {\n task.zone.runTask(task, null, null);\n }\n catch (error) {\n _api.onUnhandledError(error);\n }\n }\n }\n _api.microtaskDrainDone();\n _isDrainingMicrotaskQueue = false;\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// BOOTSTRAP\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n const NO_ZONE = { name: 'NO ZONE' };\n const notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown';\n const microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask';\n const patches = {};\n const _api = {\n symbol: __symbol__,\n currentZoneFrame: () => _currentZoneFrame,\n onUnhandledError: noop,\n microtaskDrainDone: noop,\n scheduleMicroTask: scheduleMicroTask,\n showUncaughtError: () => !Zone[__symbol__('ignoreConsoleErrorUncaughtError')],\n patchEventTarget: () => [],\n patchOnProperties: noop,\n patchMethod: () => noop,\n bindArguments: () => [],\n patchThen: () => noop,\n patchMacroTask: () => noop,\n setNativePromise: (NativePromise) => {\n // sometimes NativePromise.resolve static function\n // is not ready yet, (such as core-js/es6.promise)\n // so we need to check here.\n if (NativePromise && typeof NativePromise.resolve === 'function') {\n nativeMicroTaskQueuePromise = NativePromise.resolve(0);\n }\n },\n patchEventPrototype: () => noop,\n isIEOrEdge: () => false,\n getGlobalObjects: () => undefined,\n ObjectDefineProperty: () => noop,\n ObjectGetOwnPropertyDescriptor: () => undefined,\n ObjectCreate: () => undefined,\n ArraySlice: () => [],\n patchClass: () => noop,\n wrapWithCurrentZone: () => noop,\n filterProperties: () => [],\n attachOriginToPatched: () => noop,\n _redefineProperty: () => noop,\n patchCallbacks: () => noop\n };\n let _currentZoneFrame = { parent: null, zone: new Zone(null, null) };\n let _currentTask = null;\n let _numberOfNestedTaskFrames = 0;\n function noop() { }\n performanceMeasure('Zone', 'Zone');\n return global['Zone'] = Zone;\n })(typeof window !== 'undefined' && window || typeof self !== 'undefined' && self || global);\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n Zone.__load_patch('ZoneAwarePromise', (global, Zone, api) => {\n const ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n const ObjectDefineProperty = Object.defineProperty;\n function readableObjectToString(obj) {\n if (obj && obj.toString === Object.prototype.toString) {\n const className = obj.constructor && obj.constructor.name;\n return (className ? className : '') + ': ' + JSON.stringify(obj);\n }\n return obj ? obj.toString() : Object.prototype.toString.call(obj);\n }\n const __symbol__ = api.symbol;\n const _uncaughtPromiseErrors = [];\n const isDisableWrappingUncaughtPromiseRejection = global[__symbol__('DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION')] === true;\n const symbolPromise = __symbol__('Promise');\n const symbolThen = __symbol__('then');\n const creationTrace = '__creationTrace__';\n api.onUnhandledError = (e) => {\n if (api.showUncaughtError()) {\n const rejection = e && e.rejection;\n if (rejection) {\n console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined);\n }\n else {\n console.error(e);\n }\n }\n };\n api.microtaskDrainDone = () => {\n while (_uncaughtPromiseErrors.length) {\n const uncaughtPromiseError = _uncaughtPromiseErrors.shift();\n try {\n uncaughtPromiseError.zone.runGuarded(() => { throw uncaughtPromiseError; });\n }\n catch (error) {\n handleUnhandledRejection(error);\n }\n }\n };\n const UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler');\n function handleUnhandledRejection(e) {\n api.onUnhandledError(e);\n try {\n const handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL];\n if (typeof handler === 'function') {\n handler.call(this, e);\n }\n }\n catch (err) {\n }\n }\n function isThenable(value) { return value && value.then; }\n function forwardResolution(value) { return value; }\n function forwardRejection(rejection) { return ZoneAwarePromise.reject(rejection); }\n const symbolState = __symbol__('state');\n const symbolValue = __symbol__('value');\n const symbolFinally = __symbol__('finally');\n const symbolParentPromiseValue = __symbol__('parentPromiseValue');\n const symbolParentPromiseState = __symbol__('parentPromiseState');\n const source = 'Promise.then';\n const UNRESOLVED = null;\n const RESOLVED = true;\n const REJECTED = false;\n const REJECTED_NO_CATCH = 0;\n function makeResolver(promise, state) {\n return (v) => {\n try {\n resolvePromise(promise, state, v);\n }\n catch (err) {\n resolvePromise(promise, false, err);\n }\n // Do not return value or you will break the Promise spec.\n };\n }\n const once = function () {\n let wasCalled = false;\n return function wrapper(wrappedFunction) {\n return function () {\n if (wasCalled) {\n return;\n }\n wasCalled = true;\n wrappedFunction.apply(null, arguments);\n };\n };\n };\n const TYPE_ERROR = 'Promise resolved with itself';\n const CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace');\n // Promise Resolution\n function resolvePromise(promise, state, value) {\n const onceWrapper = once();\n if (promise === value) {\n throw new TypeError(TYPE_ERROR);\n }\n if (promise[symbolState] === UNRESOLVED) {\n // should only get value.then once based on promise spec.\n let then = null;\n try {\n if (typeof value === 'object' || typeof value === 'function') {\n then = value && value.then;\n }\n }\n catch (err) {\n onceWrapper(() => { resolvePromise(promise, false, err); })();\n return promise;\n }\n // if (value instanceof ZoneAwarePromise) {\n if (state !== REJECTED && value instanceof ZoneAwarePromise &&\n value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) &&\n value[symbolState] !== UNRESOLVED) {\n clearRejectedNoCatch(value);\n resolvePromise(promise, value[symbolState], value[symbolValue]);\n }\n else if (state !== REJECTED && typeof then === 'function') {\n try {\n then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false)));\n }\n catch (err) {\n onceWrapper(() => { resolvePromise(promise, false, err); })();\n }\n }\n else {\n promise[symbolState] = state;\n const queue = promise[symbolValue];\n promise[symbolValue] = value;\n if (promise[symbolFinally] === symbolFinally) {\n // the promise is generated by Promise.prototype.finally\n if (state === RESOLVED) {\n // the state is resolved, should ignore the value\n // and use parent promise value\n promise[symbolState] = promise[symbolParentPromiseState];\n promise[symbolValue] = promise[symbolParentPromiseValue];\n }\n }\n // record task information in value when error occurs, so we can\n // do some additional work such as render longStackTrace\n if (state === REJECTED && value instanceof Error) {\n // check if longStackTraceZone is here\n const trace = Zone.currentTask && Zone.currentTask.data &&\n Zone.currentTask.data[creationTrace];\n if (trace) {\n // only keep the long stack trace into error when in longStackTraceZone\n ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, { configurable: true, enumerable: false, writable: true, value: trace });\n }\n }\n for (let i = 0; i < queue.length;) {\n scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]);\n }\n if (queue.length == 0 && state == REJECTED) {\n promise[symbolState] = REJECTED_NO_CATCH;\n let uncaughtPromiseError = value;\n if (!isDisableWrappingUncaughtPromiseRejection) {\n // If disable wrapping uncaught promise reject\n // and the rejected value is an Error object,\n // use the value instead of wrapping it.\n try {\n // Here we throws a new Error to print more readable error log\n // and if the value is not an error, zone.js builds an `Error`\n // Object here to attach the stack information.\n throw new Error('Uncaught (in promise): ' + readableObjectToString(value) +\n (value && value.stack ? '\\n' + value.stack : ''));\n }\n catch (err) {\n uncaughtPromiseError = err;\n }\n }\n uncaughtPromiseError.rejection = value;\n uncaughtPromiseError.promise = promise;\n uncaughtPromiseError.zone = Zone.current;\n uncaughtPromiseError.task = Zone.currentTask;\n _uncaughtPromiseErrors.push(uncaughtPromiseError);\n api.scheduleMicroTask(); // to make sure that it is running\n }\n }\n }\n // Resolving an already resolved promise is a noop.\n return promise;\n }\n const REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler');\n function clearRejectedNoCatch(promise) {\n if (promise[symbolState] === REJECTED_NO_CATCH) {\n // if the promise is rejected no catch status\n // and queue.length > 0, means there is a error handler\n // here to handle the rejected promise, we should trigger\n // windows.rejectionhandled eventHandler or nodejs rejectionHandled\n // eventHandler\n try {\n const handler = Zone[REJECTION_HANDLED_HANDLER];\n if (handler && typeof handler === 'function') {\n handler.call(this, { rejection: promise[symbolValue], promise: promise });\n }\n }\n catch (err) {\n }\n promise[symbolState] = REJECTED;\n for (let i = 0; i < _uncaughtPromiseErrors.length; i++) {\n if (promise === _uncaughtPromiseErrors[i].promise) {\n _uncaughtPromiseErrors.splice(i, 1);\n }\n }\n }\n }\n function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) {\n clearRejectedNoCatch(promise);\n const promiseState = promise[symbolState];\n const delegate = promiseState ?\n (typeof onFulfilled === 'function') ? onFulfilled : forwardResolution :\n (typeof onRejected === 'function') ? onRejected : forwardRejection;\n zone.scheduleMicroTask(source, () => {\n try {\n const parentPromiseValue = promise[symbolValue];\n const isFinallyPromise = !!chainPromise && symbolFinally === chainPromise[symbolFinally];\n if (isFinallyPromise) {\n // if the promise is generated from finally call, keep parent promise's state and value\n chainPromise[symbolParentPromiseValue] = parentPromiseValue;\n chainPromise[symbolParentPromiseState] = promiseState;\n }\n // should not pass value to finally callback\n const value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution ?\n [] :\n [parentPromiseValue]);\n resolvePromise(chainPromise, true, value);\n }\n catch (error) {\n // if error occurs, should always return this error\n resolvePromise(chainPromise, false, error);\n }\n }, chainPromise);\n }\n const ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }';\n const noop = function () { };\n class ZoneAwarePromise {\n static toString() { return ZONE_AWARE_PROMISE_TO_STRING; }\n static resolve(value) {\n return resolvePromise(new this(null), RESOLVED, value);\n }\n static reject(error) {\n return resolvePromise(new this(null), REJECTED, error);\n }\n static race(values) {\n let resolve;\n let reject;\n let promise = new this((res, rej) => {\n resolve = res;\n reject = rej;\n });\n function onResolve(value) { resolve(value); }\n function onReject(error) { reject(error); }\n for (let value of values) {\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then(onResolve, onReject);\n }\n return promise;\n }\n static all(values) { return ZoneAwarePromise.allWithCallback(values); }\n static allSettled(values) {\n const P = this && this.prototype instanceof ZoneAwarePromise ? this : ZoneAwarePromise;\n return P.allWithCallback(values, {\n thenCallback: (value) => ({ status: 'fulfilled', value }),\n errorCallback: (err) => ({ status: 'rejected', reason: err })\n });\n }\n static allWithCallback(values, callback) {\n let resolve;\n let reject;\n let promise = new this((res, rej) => {\n resolve = res;\n reject = rej;\n });\n // Start at 2 to prevent prematurely resolving if .then is called immediately.\n let unresolvedCount = 2;\n let valueIndex = 0;\n const resolvedValues = [];\n for (let value of values) {\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n const curValueIndex = valueIndex;\n try {\n value.then((value) => {\n resolvedValues[curValueIndex] = callback ? callback.thenCallback(value) : value;\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }, (err) => {\n if (!callback) {\n reject(err);\n }\n else {\n resolvedValues[curValueIndex] = callback.errorCallback(err);\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }\n });\n }\n catch (thenErr) {\n reject(thenErr);\n }\n unresolvedCount++;\n valueIndex++;\n }\n // Make the unresolvedCount zero-based again.\n unresolvedCount -= 2;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n return promise;\n }\n constructor(executor) {\n const promise = this;\n if (!(promise instanceof ZoneAwarePromise)) {\n throw new Error('Must be an instanceof Promise.');\n }\n promise[symbolState] = UNRESOLVED;\n promise[symbolValue] = []; // queue;\n try {\n executor && executor(makeResolver(promise, RESOLVED), makeResolver(promise, REJECTED));\n }\n catch (error) {\n resolvePromise(promise, false, error);\n }\n }\n get [Symbol.toStringTag]() { return 'Promise'; }\n get [Symbol.species]() { return ZoneAwarePromise; }\n then(onFulfilled, onRejected) {\n let C = this.constructor[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = this.constructor || ZoneAwarePromise;\n }\n const chainPromise = new C(noop);\n const zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected);\n }\n return chainPromise;\n }\n catch(onRejected) {\n return this.then(null, onRejected);\n }\n finally(onFinally) {\n let C = this.constructor[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = ZoneAwarePromise;\n }\n const chainPromise = new C(noop);\n chainPromise[symbolFinally] = symbolFinally;\n const zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFinally, onFinally);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally);\n }\n return chainPromise;\n }\n }\n // Protect against aggressive optimizers dropping seemingly unused properties.\n // E.g. Closure Compiler in advanced mode.\n ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve;\n ZoneAwarePromise['reject'] = ZoneAwarePromise.reject;\n ZoneAwarePromise['race'] = ZoneAwarePromise.race;\n ZoneAwarePromise['all'] = ZoneAwarePromise.all;\n const NativePromise = global[symbolPromise] = global['Promise'];\n const ZONE_AWARE_PROMISE = Zone.__symbol__('ZoneAwarePromise');\n let desc = ObjectGetOwnPropertyDescriptor(global, 'Promise');\n if (!desc || desc.configurable) {\n desc && delete desc.writable;\n desc && delete desc.value;\n if (!desc) {\n desc = { configurable: true, enumerable: true };\n }\n desc.get = function () {\n // if we already set ZoneAwarePromise, use patched one\n // otherwise return native one.\n return global[ZONE_AWARE_PROMISE] ? global[ZONE_AWARE_PROMISE] : global[symbolPromise];\n };\n desc.set = function (NewNativePromise) {\n if (NewNativePromise === ZoneAwarePromise) {\n // if the NewNativePromise is ZoneAwarePromise\n // save to global\n global[ZONE_AWARE_PROMISE] = NewNativePromise;\n }\n else {\n // if the NewNativePromise is not ZoneAwarePromise\n // for example: after load zone.js, some library just\n // set es6-promise to global, if we set it to global\n // directly, assertZonePatched will fail and angular\n // will not loaded, so we just set the NewNativePromise\n // to global[symbolPromise], so the result is just like\n // we load ES6 Promise before zone.js\n global[symbolPromise] = NewNativePromise;\n if (!NewNativePromise.prototype[symbolThen]) {\n patchThen(NewNativePromise);\n }\n api.setNativePromise(NewNativePromise);\n }\n };\n ObjectDefineProperty(global, 'Promise', desc);\n }\n global['Promise'] = ZoneAwarePromise;\n const symbolThenPatched = __symbol__('thenPatched');\n function patchThen(Ctor) {\n const proto = Ctor.prototype;\n const prop = ObjectGetOwnPropertyDescriptor(proto, 'then');\n if (prop && (prop.writable === false || !prop.configurable)) {\n // check Ctor.prototype.then propertyDescriptor is writable or not\n // in meteor env, writable is false, we should ignore such case\n return;\n }\n const originalThen = proto.then;\n // Keep a reference to the original method.\n proto[symbolThen] = originalThen;\n Ctor.prototype.then = function (onResolve, onReject) {\n const wrapped = new ZoneAwarePromise((resolve, reject) => { originalThen.call(this, resolve, reject); });\n return wrapped.then(onResolve, onReject);\n };\n Ctor[symbolThenPatched] = true;\n }\n api.patchThen = patchThen;\n function zoneify(fn) {\n return function () {\n let resultPromise = fn.apply(this, arguments);\n if (resultPromise instanceof ZoneAwarePromise) {\n return resultPromise;\n }\n let ctor = resultPromise.constructor;\n if (!ctor[symbolThenPatched]) {\n patchThen(ctor);\n }\n return resultPromise;\n };\n }\n if (NativePromise) {\n patchThen(NativePromise);\n const fetch = global['fetch'];\n if (typeof fetch == 'function') {\n global[api.symbol('fetch')] = fetch;\n global['fetch'] = zoneify(fetch);\n }\n }\n // This is not part of public API, but it is useful for tests, so we expose it.\n Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors;\n return ZoneAwarePromise;\n });\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n /**\n * Suppress closure compiler errors about unknown 'Zone' variable\n * @fileoverview\n * @suppress {undefinedVars,globalThis,missingRequire}\n */\n /// \n // issue #989, to reduce bundle size, use short name\n /** Object.getOwnPropertyDescriptor */\n const ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n /** Object.defineProperty */\n const ObjectDefineProperty = Object.defineProperty;\n /** Object.getPrototypeOf */\n const ObjectGetPrototypeOf = Object.getPrototypeOf;\n /** Object.create */\n const ObjectCreate = Object.create;\n /** Array.prototype.slice */\n const ArraySlice = Array.prototype.slice;\n /** addEventListener string const */\n const ADD_EVENT_LISTENER_STR = 'addEventListener';\n /** removeEventListener string const */\n const REMOVE_EVENT_LISTENER_STR = 'removeEventListener';\n /** zoneSymbol addEventListener */\n const ZONE_SYMBOL_ADD_EVENT_LISTENER = Zone.__symbol__(ADD_EVENT_LISTENER_STR);\n /** zoneSymbol removeEventListener */\n const ZONE_SYMBOL_REMOVE_EVENT_LISTENER = Zone.__symbol__(REMOVE_EVENT_LISTENER_STR);\n /** true string const */\n const TRUE_STR = 'true';\n /** false string const */\n const FALSE_STR = 'false';\n /** Zone symbol prefix string const. */\n const ZONE_SYMBOL_PREFIX = Zone.__symbol__('');\n function wrapWithCurrentZone(callback, source) {\n return Zone.current.wrap(callback, source);\n }\n function scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) {\n return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel);\n }\n const zoneSymbol = Zone.__symbol__;\n const isWindowExists = typeof window !== 'undefined';\n const internalWindow = isWindowExists ? window : undefined;\n const _global = isWindowExists && internalWindow || typeof self === 'object' && self || global;\n const REMOVE_ATTRIBUTE = 'removeAttribute';\n const NULL_ON_PROP_VALUE = [null];\n function bindArguments(args, source) {\n for (let i = args.length - 1; i >= 0; i--) {\n if (typeof args[i] === 'function') {\n args[i] = wrapWithCurrentZone(args[i], source + '_' + i);\n }\n }\n return args;\n }\n function patchPrototype(prototype, fnNames) {\n const source = prototype.constructor['name'];\n for (let i = 0; i < fnNames.length; i++) {\n const name = fnNames[i];\n const delegate = prototype[name];\n if (delegate) {\n const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name);\n if (!isPropertyWritable(prototypeDesc)) {\n continue;\n }\n prototype[name] = ((delegate) => {\n const patched = function () {\n return delegate.apply(this, bindArguments(arguments, source + '.' + name));\n };\n attachOriginToPatched(patched, delegate);\n return patched;\n })(delegate);\n }\n }\n }\n function isPropertyWritable(propertyDesc) {\n if (!propertyDesc) {\n return true;\n }\n if (propertyDesc.writable === false) {\n return false;\n }\n return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined');\n }\n const isWebWorker = (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope);\n // Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n // this code.\n const isNode = (!('nw' in _global) && typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]');\n const isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']);\n // we are in electron of nw, so we are both browser and nodejs\n // Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n // this code.\n const isMix = typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]' && !isWebWorker &&\n !!(isWindowExists && internalWindow['HTMLElement']);\n const zoneSymbolEventNames = {};\n const wrapFn = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n let eventNameSymbol = zoneSymbolEventNames[event.type];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames[event.type] = zoneSymbol('ON_PROPERTY' + event.type);\n }\n const target = this || event.target || _global;\n const listener = target[eventNameSymbol];\n let result;\n if (isBrowser && target === internalWindow && event.type === 'error') {\n // window.onerror have different signiture\n // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#window.onerror\n // and onerror callback will prevent default when callback return true\n const errorEvent = event;\n result = listener &&\n listener.call(this, errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error);\n if (result === true) {\n event.preventDefault();\n }\n }\n else {\n result = listener && listener.apply(this, arguments);\n if (result != undefined && !result) {\n event.preventDefault();\n }\n }\n return result;\n };\n function patchProperty(obj, prop, prototype) {\n let desc = ObjectGetOwnPropertyDescriptor(obj, prop);\n if (!desc && prototype) {\n // when patch window object, use prototype to check prop exist or not\n const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop);\n if (prototypeDesc) {\n desc = { enumerable: true, configurable: true };\n }\n }\n // if the descriptor not exists or is not configurable\n // just return\n if (!desc || !desc.configurable) {\n return;\n }\n const onPropPatchedSymbol = zoneSymbol('on' + prop + 'patched');\n if (obj.hasOwnProperty(onPropPatchedSymbol) && obj[onPropPatchedSymbol]) {\n return;\n }\n // A property descriptor cannot have getter/setter and be writable\n // deleting the writable and value properties avoids this error:\n //\n // TypeError: property descriptors must not specify a value or be writable when a\n // getter or setter has been specified\n delete desc.writable;\n delete desc.value;\n const originalDescGet = desc.get;\n const originalDescSet = desc.set;\n // substr(2) cuz 'onclick' -> 'click', etc\n const eventName = prop.substr(2);\n let eventNameSymbol = zoneSymbolEventNames[eventName];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames[eventName] = zoneSymbol('ON_PROPERTY' + eventName);\n }\n desc.set = function (newValue) {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n let target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return;\n }\n let previousValue = target[eventNameSymbol];\n if (previousValue) {\n target.removeEventListener(eventName, wrapFn);\n }\n // issue #978, when onload handler was added before loading zone.js\n // we should remove it with originalDescSet\n if (originalDescSet) {\n originalDescSet.apply(target, NULL_ON_PROP_VALUE);\n }\n if (typeof newValue === 'function') {\n target[eventNameSymbol] = newValue;\n target.addEventListener(eventName, wrapFn, false);\n }\n else {\n target[eventNameSymbol] = null;\n }\n };\n // The getter would return undefined for unassigned properties but the default value of an\n // unassigned property is null\n desc.get = function () {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n let target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return null;\n }\n const listener = target[eventNameSymbol];\n if (listener) {\n return listener;\n }\n else if (originalDescGet) {\n // result will be null when use inline event attribute,\n // such as \n // because the onclick function is internal raw uncompiled handler\n // the onclick will be evaluated when first time event was triggered or\n // the property is accessed, https://github.com/angular/zone.js/issues/525\n // so we should use original native get to retrieve the handler\n let value = originalDescGet && originalDescGet.call(this);\n if (value) {\n desc.set.call(this, value);\n if (typeof target[REMOVE_ATTRIBUTE] === 'function') {\n target.removeAttribute(prop);\n }\n return value;\n }\n }\n return null;\n };\n ObjectDefineProperty(obj, prop, desc);\n obj[onPropPatchedSymbol] = true;\n }\n function patchOnProperties(obj, properties, prototype) {\n if (properties) {\n for (let i = 0; i < properties.length; i++) {\n patchProperty(obj, 'on' + properties[i], prototype);\n }\n }\n else {\n const onProperties = [];\n for (const prop in obj) {\n if (prop.substr(0, 2) == 'on') {\n onProperties.push(prop);\n }\n }\n for (let j = 0; j < onProperties.length; j++) {\n patchProperty(obj, onProperties[j], prototype);\n }\n }\n }\n const originalInstanceKey = zoneSymbol('originalInstance');\n // wrap some native API on `window`\n function patchClass(className) {\n const OriginalClass = _global[className];\n if (!OriginalClass)\n return;\n // keep original class in global\n _global[zoneSymbol(className)] = OriginalClass;\n _global[className] = function () {\n const a = bindArguments(arguments, className);\n switch (a.length) {\n case 0:\n this[originalInstanceKey] = new OriginalClass();\n break;\n case 1:\n this[originalInstanceKey] = new OriginalClass(a[0]);\n break;\n case 2:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1]);\n break;\n case 3:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]);\n break;\n case 4:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]);\n break;\n default:\n throw new Error('Arg list too long.');\n }\n };\n // attach original delegate to patched function\n attachOriginToPatched(_global[className], OriginalClass);\n const instance = new OriginalClass(function () { });\n let prop;\n for (prop in instance) {\n // https://bugs.webkit.org/show_bug.cgi?id=44721\n if (className === 'XMLHttpRequest' && prop === 'responseBlob')\n continue;\n (function (prop) {\n if (typeof instance[prop] === 'function') {\n _global[className].prototype[prop] = function () {\n return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments);\n };\n }\n else {\n ObjectDefineProperty(_global[className].prototype, prop, {\n set: function (fn) {\n if (typeof fn === 'function') {\n this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop);\n // keep callback in wrapped function so we can\n // use it in Function.prototype.toString to return\n // the native one.\n attachOriginToPatched(this[originalInstanceKey][prop], fn);\n }\n else {\n this[originalInstanceKey][prop] = fn;\n }\n },\n get: function () { return this[originalInstanceKey][prop]; }\n });\n }\n }(prop));\n }\n for (prop in OriginalClass) {\n if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) {\n _global[className][prop] = OriginalClass[prop];\n }\n }\n }\n function copySymbolProperties(src, dest) {\n if (typeof Object.getOwnPropertySymbols !== 'function') {\n return;\n }\n const symbols = Object.getOwnPropertySymbols(src);\n symbols.forEach((symbol) => {\n const desc = Object.getOwnPropertyDescriptor(src, symbol);\n Object.defineProperty(dest, symbol, {\n get: function () { return src[symbol]; },\n set: function (value) {\n if (desc && (!desc.writable || typeof desc.set !== 'function')) {\n // if src[symbol] is not writable or not have a setter, just return\n return;\n }\n src[symbol] = value;\n },\n enumerable: desc ? desc.enumerable : true,\n configurable: desc ? desc.configurable : true\n });\n });\n }\n let shouldCopySymbolProperties = false;\n function patchMethod(target, name, patchFn) {\n let proto = target;\n while (proto && !proto.hasOwnProperty(name)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && target[name]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = target;\n }\n const delegateName = zoneSymbol(name);\n let delegate = null;\n if (proto && !(delegate = proto[delegateName])) {\n delegate = proto[delegateName] = proto[name];\n // check whether proto[name] is writable\n // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob\n const desc = proto && ObjectGetOwnPropertyDescriptor(proto, name);\n if (isPropertyWritable(desc)) {\n const patchDelegate = patchFn(delegate, delegateName, name);\n proto[name] = function () { return patchDelegate(this, arguments); };\n attachOriginToPatched(proto[name], delegate);\n if (shouldCopySymbolProperties) {\n copySymbolProperties(delegate, proto[name]);\n }\n }\n }\n return delegate;\n }\n // TODO: @JiaLiPassion, support cancel task later if necessary\n function patchMacroTask(obj, funcName, metaCreator) {\n let setNative = null;\n function scheduleTask(task) {\n const data = task.data;\n data.args[data.cbIdx] = function () { task.invoke.apply(this, arguments); };\n setNative.apply(data.target, data.args);\n return task;\n }\n setNative = patchMethod(obj, funcName, (delegate) => function (self, args) {\n const meta = metaCreator(self, args);\n if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') {\n return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask);\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(self, args);\n }\n });\n }\n function attachOriginToPatched(patched, original) {\n patched[zoneSymbol('OriginalDelegate')] = original;\n }\n let isDetectedIEOrEdge = false;\n let ieOrEdge = false;\n function isIE() {\n try {\n const ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1) {\n return true;\n }\n }\n catch (error) {\n }\n return false;\n }\n function isIEOrEdge() {\n if (isDetectedIEOrEdge) {\n return ieOrEdge;\n }\n isDetectedIEOrEdge = true;\n try {\n const ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) {\n ieOrEdge = true;\n }\n }\n catch (error) {\n }\n return ieOrEdge;\n }\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n // override Function.prototype.toString to make zone.js patched function\n // look like native function\n Zone.__load_patch('toString', (global) => {\n // patch Func.prototype.toString to let them look like native\n const originalFunctionToString = Function.prototype.toString;\n const ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate');\n const PROMISE_SYMBOL = zoneSymbol('Promise');\n const ERROR_SYMBOL = zoneSymbol('Error');\n const newFunctionToString = function toString() {\n if (typeof this === 'function') {\n const originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL];\n if (originalDelegate) {\n if (typeof originalDelegate === 'function') {\n return originalFunctionToString.call(originalDelegate);\n }\n else {\n return Object.prototype.toString.call(originalDelegate);\n }\n }\n if (this === Promise) {\n const nativePromise = global[PROMISE_SYMBOL];\n if (nativePromise) {\n return originalFunctionToString.call(nativePromise);\n }\n }\n if (this === Error) {\n const nativeError = global[ERROR_SYMBOL];\n if (nativeError) {\n return originalFunctionToString.call(nativeError);\n }\n }\n }\n return originalFunctionToString.call(this);\n };\n newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString;\n Function.prototype.toString = newFunctionToString;\n // patch Object.prototype.toString to let them look like native\n const originalObjectToString = Object.prototype.toString;\n const PROMISE_OBJECT_TO_STRING = '[object Promise]';\n Object.prototype.toString = function () {\n if (this instanceof Promise) {\n return PROMISE_OBJECT_TO_STRING;\n }\n return originalObjectToString.call(this);\n };\n });\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n let passiveSupported = false;\n if (typeof window !== 'undefined') {\n try {\n const options = Object.defineProperty({}, 'passive', { get: function () { passiveSupported = true; } });\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n }\n // an identifier to tell ZoneTask do not create a new invoke closure\n const OPTIMIZED_ZONE_EVENT_TASK_DATA = {\n useG: true\n };\n const zoneSymbolEventNames$1 = {};\n const globalSources = {};\n const EVENT_NAME_SYMBOL_REGX = new RegExp('^' + ZONE_SYMBOL_PREFIX + '(\\\\w+)(true|false)$');\n const IMMEDIATE_PROPAGATION_SYMBOL = zoneSymbol('propagationStopped');\n function prepareEventNames(eventName, eventNameToString) {\n const falseEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + FALSE_STR;\n const trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR;\n const symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames$1[eventName] = {};\n zoneSymbolEventNames$1[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames$1[eventName][TRUE_STR] = symbolCapture;\n }\n function patchEventTarget(_global, apis, patchOptions) {\n const ADD_EVENT_LISTENER = (patchOptions && patchOptions.add) || ADD_EVENT_LISTENER_STR;\n const REMOVE_EVENT_LISTENER = (patchOptions && patchOptions.rm) || REMOVE_EVENT_LISTENER_STR;\n const LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.listeners) || 'eventListeners';\n const REMOVE_ALL_LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.rmAll) || 'removeAllListeners';\n const zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER);\n const ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':';\n const PREPEND_EVENT_LISTENER = 'prependListener';\n const PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':';\n const invokeTask = function (task, target, event) {\n // for better performance, check isRemoved which is set\n // by removeEventListener\n if (task.isRemoved) {\n return;\n }\n const delegate = task.callback;\n if (typeof delegate === 'object' && delegate.handleEvent) {\n // create the bind version of handleEvent when invoke\n task.callback = (event) => delegate.handleEvent(event);\n task.originalDelegate = delegate;\n }\n // invoke static task.invoke\n task.invoke(task, target, [event]);\n const options = task.options;\n if (options && typeof options === 'object' && options.once) {\n // if options.once is true, after invoke once remove listener here\n // only browser need to do this, nodejs eventEmitter will cal removeListener\n // inside EventEmitter.once\n const delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate, options);\n }\n };\n // global shared zoneAwareCallback to handle all event callback with capture = false\n const globalZoneAwareCallback = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n const target = this || event.target || _global;\n const tasks = target[zoneSymbolEventNames$1[event.type][FALSE_STR]];\n if (tasks) {\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n invokeTask(tasks[0], target, event);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n const copyTasks = tasks.slice();\n for (let i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n invokeTask(copyTasks[i], target, event);\n }\n }\n }\n };\n // global shared zoneAwareCallback to handle all event callback with capture = true\n const globalZoneAwareCaptureCallback = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n const target = this || event.target || _global;\n const tasks = target[zoneSymbolEventNames$1[event.type][TRUE_STR]];\n if (tasks) {\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n invokeTask(tasks[0], target, event);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n const copyTasks = tasks.slice();\n for (let i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n invokeTask(copyTasks[i], target, event);\n }\n }\n }\n };\n function patchEventTargetMethods(obj, patchOptions) {\n if (!obj) {\n return false;\n }\n let useGlobalCallback = true;\n if (patchOptions && patchOptions.useG !== undefined) {\n useGlobalCallback = patchOptions.useG;\n }\n const validateHandler = patchOptions && patchOptions.vh;\n let checkDuplicate = true;\n if (patchOptions && patchOptions.chkDup !== undefined) {\n checkDuplicate = patchOptions.chkDup;\n }\n let returnTarget = false;\n if (patchOptions && patchOptions.rt !== undefined) {\n returnTarget = patchOptions.rt;\n }\n let proto = obj;\n while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && obj[ADD_EVENT_LISTENER]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = obj;\n }\n if (!proto) {\n return false;\n }\n if (proto[zoneSymbolAddEventListener]) {\n return false;\n }\n const eventNameToString = patchOptions && patchOptions.eventNameToString;\n // a shared global taskData to pass data for scheduleEventTask\n // so we do not need to create a new object just for pass some data\n const taskData = {};\n const nativeAddEventListener = proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER];\n const nativeRemoveEventListener = proto[zoneSymbol(REMOVE_EVENT_LISTENER)] =\n proto[REMOVE_EVENT_LISTENER];\n const nativeListeners = proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] =\n proto[LISTENERS_EVENT_LISTENER];\n const nativeRemoveAllListeners = proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] =\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER];\n let nativePrependEventListener;\n if (patchOptions && patchOptions.prepend) {\n nativePrependEventListener = proto[zoneSymbol(patchOptions.prepend)] =\n proto[patchOptions.prepend];\n }\n /**\n * This util function will build an option object with passive option\n * to handle all possible input from the user.\n */\n function buildEventListenerOptions(options, passive) {\n if (!passiveSupported && typeof options === 'object' && options) {\n // doesn't support passive but user want to pass an object as options.\n // this will not work on some old browser, so we just pass a boolean\n // as useCapture parameter\n return !!options.capture;\n }\n if (!passiveSupported || !passive) {\n return options;\n }\n if (typeof options === 'boolean') {\n return { capture: options, passive: true };\n }\n if (!options) {\n return { passive: true };\n }\n if (typeof options === 'object' && options.passive !== false) {\n return Object.assign(Object.assign({}, options), { passive: true });\n }\n return options;\n }\n const customScheduleGlobal = function (task) {\n // if there is already a task for the eventName + capture,\n // just return, because we use the shared globalZoneAwareCallback here.\n if (taskData.isExisting) {\n return;\n }\n return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options);\n };\n const customCancelGlobal = function (task) {\n // if task is not marked as isRemoved, this call is directly\n // from Zone.prototype.cancelTask, we should remove the task\n // from tasksList of target first\n if (!task.isRemoved) {\n const symbolEventNames = zoneSymbolEventNames$1[task.eventName];\n let symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR];\n }\n const existingTasks = symbolEventName && task.target[symbolEventName];\n if (existingTasks) {\n for (let i = 0; i < existingTasks.length; i++) {\n const existingTask = existingTasks[i];\n if (existingTask === task) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n task.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n task.allRemoved = true;\n task.target[symbolEventName] = null;\n }\n break;\n }\n }\n }\n }\n // if all tasks for the eventName + capture have gone,\n // we will really remove the global event callback,\n // if not, return\n if (!task.allRemoved) {\n return;\n }\n return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options);\n };\n const customScheduleNonGlobal = function (task) {\n return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n const customSchedulePrepend = function (task) {\n return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n const customCancelNonGlobal = function (task) {\n return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options);\n };\n const customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal;\n const customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal;\n const compareTaskCallbackVsDelegate = function (task, delegate) {\n const typeOfDelegate = typeof delegate;\n return (typeOfDelegate === 'function' && task.callback === delegate) ||\n (typeOfDelegate === 'object' && task.originalDelegate === delegate);\n };\n const compare = (patchOptions && patchOptions.diff) ? patchOptions.diff : compareTaskCallbackVsDelegate;\n const blackListedEvents = Zone[zoneSymbol('BLACK_LISTED_EVENTS')];\n const passiveEvents = _global[zoneSymbol('PASSIVE_EVENTS')];\n const makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget = false, prepend = false) {\n return function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n let delegate = arguments[1];\n if (!delegate) {\n return nativeListener.apply(this, arguments);\n }\n if (isNode && eventName === 'uncaughtException') {\n // don't patch uncaughtException of nodejs to prevent endless loop\n return nativeListener.apply(this, arguments);\n }\n // don't create the bind delegate function for handleEvent\n // case here to improve addEventListener performance\n // we will create the bind delegate when invoke\n let isHandleEvent = false;\n if (typeof delegate !== 'function') {\n if (!delegate.handleEvent) {\n return nativeListener.apply(this, arguments);\n }\n isHandleEvent = true;\n }\n if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) {\n return;\n }\n const passive = passiveSupported && !!passiveEvents && passiveEvents.indexOf(eventName) !== -1;\n const options = buildEventListenerOptions(arguments[2], passive);\n if (blackListedEvents) {\n // check black list\n for (let i = 0; i < blackListedEvents.length; i++) {\n if (eventName === blackListedEvents[i]) {\n if (passive) {\n return nativeListener.call(target, eventName, delegate, options);\n }\n else {\n return nativeListener.apply(this, arguments);\n }\n }\n }\n }\n const capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n const once = options && typeof options === 'object' ? options.once : false;\n const zone = Zone.current;\n let symbolEventNames = zoneSymbolEventNames$1[eventName];\n if (!symbolEventNames) {\n prepareEventNames(eventName, eventNameToString);\n symbolEventNames = zoneSymbolEventNames$1[eventName];\n }\n const symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n let existingTasks = target[symbolEventName];\n let isExisting = false;\n if (existingTasks) {\n // already have task registered\n isExisting = true;\n if (checkDuplicate) {\n for (let i = 0; i < existingTasks.length; i++) {\n if (compare(existingTasks[i], delegate)) {\n // same callback, same capture, same event name, just return\n return;\n }\n }\n }\n }\n else {\n existingTasks = target[symbolEventName] = [];\n }\n let source;\n const constructorName = target.constructor['name'];\n const targetSource = globalSources[constructorName];\n if (targetSource) {\n source = targetSource[eventName];\n }\n if (!source) {\n source = constructorName + addSource +\n (eventNameToString ? eventNameToString(eventName) : eventName);\n }\n // do not create a new object as task.data to pass those things\n // just use the global shared one\n taskData.options = options;\n if (once) {\n // if addEventListener with once options, we don't pass it to\n // native addEventListener, instead we keep the once setting\n // and handle ourselves.\n taskData.options.once = false;\n }\n taskData.target = target;\n taskData.capture = capture;\n taskData.eventName = eventName;\n taskData.isExisting = isExisting;\n const data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : undefined;\n // keep taskData into data to allow onScheduleEventTask to access the task information\n if (data) {\n data.taskData = taskData;\n }\n const task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn);\n // should clear taskData.target to avoid memory leak\n // issue, https://github.com/angular/angular/issues/20442\n taskData.target = null;\n // need to clear up taskData because it is a global object\n if (data) {\n data.taskData = null;\n }\n // have to save those information to task in case\n // application may call task.zone.cancelTask() directly\n if (once) {\n options.once = true;\n }\n if (!(!passiveSupported && typeof task.options === 'boolean')) {\n // if not support passive, and we pass an option object\n // to addEventListener, we should save the options to task\n task.options = options;\n }\n task.target = target;\n task.capture = capture;\n task.eventName = eventName;\n if (isHandleEvent) {\n // save original delegate for compare to check duplicate\n task.originalDelegate = delegate;\n }\n if (!prepend) {\n existingTasks.push(task);\n }\n else {\n existingTasks.unshift(task);\n }\n if (returnTarget) {\n return target;\n }\n };\n };\n proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget);\n if (nativePrependEventListener) {\n proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true);\n }\n proto[REMOVE_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const options = arguments[2];\n const capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n const delegate = arguments[1];\n if (!delegate) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (validateHandler &&\n !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) {\n return;\n }\n const symbolEventNames = zoneSymbolEventNames$1[eventName];\n let symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n }\n const existingTasks = symbolEventName && target[symbolEventName];\n if (existingTasks) {\n for (let i = 0; i < existingTasks.length; i++) {\n const existingTask = existingTasks[i];\n if (compare(existingTask, delegate)) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n existingTask.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n existingTask.allRemoved = true;\n target[symbolEventName] = null;\n // in the target, we have an event listener which is added by on_property\n // such as target.onclick = function() {}, so we need to clear this internal\n // property too if all delegates all removed\n if (typeof eventName === 'string') {\n const onPropertySymbol = ZONE_SYMBOL_PREFIX + 'ON_PROPERTY' + eventName;\n target[onPropertySymbol] = null;\n }\n }\n existingTask.zone.cancelTask(existingTask);\n if (returnTarget) {\n return target;\n }\n return;\n }\n }\n }\n // issue 930, didn't find the event name or callback\n // from zone kept existingTasks, the callback maybe\n // added outside of zone, we need to call native removeEventListener\n // to try to remove it.\n return nativeRemoveEventListener.apply(this, arguments);\n };\n proto[LISTENERS_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const listeners = [];\n const tasks = findEventTasks(target, eventNameToString ? eventNameToString(eventName) : eventName);\n for (let i = 0; i < tasks.length; i++) {\n const task = tasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n listeners.push(delegate);\n }\n return listeners;\n };\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (!eventName) {\n const keys = Object.keys(target);\n for (let i = 0; i < keys.length; i++) {\n const prop = keys[i];\n const match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n let evtName = match && match[1];\n // in nodejs EventEmitter, removeListener event is\n // used for monitoring the removeListener call,\n // so just keep removeListener eventListener until\n // all other eventListeners are removed\n if (evtName && evtName !== 'removeListener') {\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName);\n }\n }\n // remove removeListener listener finally\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener');\n }\n else {\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const symbolEventNames = zoneSymbolEventNames$1[eventName];\n if (symbolEventNames) {\n const symbolEventName = symbolEventNames[FALSE_STR];\n const symbolCaptureEventName = symbolEventNames[TRUE_STR];\n const tasks = target[symbolEventName];\n const captureTasks = target[symbolCaptureEventName];\n if (tasks) {\n const removeTasks = tasks.slice();\n for (let i = 0; i < removeTasks.length; i++) {\n const task = removeTasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n if (captureTasks) {\n const removeTasks = captureTasks.slice();\n for (let i = 0; i < removeTasks.length; i++) {\n const task = removeTasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n }\n }\n if (returnTarget) {\n return this;\n }\n };\n // for native toString patch\n attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener);\n attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener);\n if (nativeRemoveAllListeners) {\n attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners);\n }\n if (nativeListeners) {\n attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners);\n }\n return true;\n }\n let results = [];\n for (let i = 0; i < apis.length; i++) {\n results[i] = patchEventTargetMethods(apis[i], patchOptions);\n }\n return results;\n }\n function findEventTasks(target, eventName) {\n if (!eventName) {\n const foundTasks = [];\n for (let prop in target) {\n const match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n let evtName = match && match[1];\n if (evtName && (!eventName || evtName === eventName)) {\n const tasks = target[prop];\n if (tasks) {\n for (let i = 0; i < tasks.length; i++) {\n foundTasks.push(tasks[i]);\n }\n }\n }\n }\n return foundTasks;\n }\n let symbolEventName = zoneSymbolEventNames$1[eventName];\n if (!symbolEventName) {\n prepareEventNames(eventName);\n symbolEventName = zoneSymbolEventNames$1[eventName];\n }\n const captureFalseTasks = target[symbolEventName[FALSE_STR]];\n const captureTrueTasks = target[symbolEventName[TRUE_STR]];\n if (!captureFalseTasks) {\n return captureTrueTasks ? captureTrueTasks.slice() : [];\n }\n else {\n return captureTrueTasks ? captureFalseTasks.concat(captureTrueTasks) :\n captureFalseTasks.slice();\n }\n }\n function patchEventPrototype(global, api) {\n const Event = global['Event'];\n if (Event && Event.prototype) {\n api.patchMethod(Event.prototype, 'stopImmediatePropagation', (delegate) => function (self, args) {\n self[IMMEDIATE_PROPAGATION_SYMBOL] = true;\n // we need to call the native stopImmediatePropagation\n // in case in some hybrid application, some part of\n // application will be controlled by zone, some are not\n delegate && delegate.apply(self, args);\n });\n }\n }\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function patchCallbacks(api, target, targetName, method, callbacks) {\n const symbol = Zone.__symbol__(method);\n if (target[symbol]) {\n return;\n }\n const nativeDelegate = target[symbol] = target[method];\n target[method] = function (name, opts, options) {\n if (opts && opts.prototype) {\n callbacks.forEach(function (callback) {\n const source = `${targetName}.${method}::` + callback;\n const prototype = opts.prototype;\n if (prototype.hasOwnProperty(callback)) {\n const descriptor = api.ObjectGetOwnPropertyDescriptor(prototype, callback);\n if (descriptor && descriptor.value) {\n descriptor.value = api.wrapWithCurrentZone(descriptor.value, source);\n api._redefineProperty(opts.prototype, callback, descriptor);\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n });\n }\n return nativeDelegate.call(target, name, opts, options);\n };\n api.attachOriginToPatched(target[method], nativeDelegate);\n }\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n const globalEventHandlersEventNames = [\n 'abort',\n 'animationcancel',\n 'animationend',\n 'animationiteration',\n 'auxclick',\n 'beforeinput',\n 'blur',\n 'cancel',\n 'canplay',\n 'canplaythrough',\n 'change',\n 'compositionstart',\n 'compositionupdate',\n 'compositionend',\n 'cuechange',\n 'click',\n 'close',\n 'contextmenu',\n 'curechange',\n 'dblclick',\n 'drag',\n 'dragend',\n 'dragenter',\n 'dragexit',\n 'dragleave',\n 'dragover',\n 'drop',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'focus',\n 'focusin',\n 'focusout',\n 'gotpointercapture',\n 'input',\n 'invalid',\n 'keydown',\n 'keypress',\n 'keyup',\n 'load',\n 'loadstart',\n 'loadeddata',\n 'loadedmetadata',\n 'lostpointercapture',\n 'mousedown',\n 'mouseenter',\n 'mouseleave',\n 'mousemove',\n 'mouseout',\n 'mouseover',\n 'mouseup',\n 'mousewheel',\n 'orientationchange',\n 'pause',\n 'play',\n 'playing',\n 'pointercancel',\n 'pointerdown',\n 'pointerenter',\n 'pointerleave',\n 'pointerlockchange',\n 'mozpointerlockchange',\n 'webkitpointerlockerchange',\n 'pointerlockerror',\n 'mozpointerlockerror',\n 'webkitpointerlockerror',\n 'pointermove',\n 'pointout',\n 'pointerover',\n 'pointerup',\n 'progress',\n 'ratechange',\n 'reset',\n 'resize',\n 'scroll',\n 'seeked',\n 'seeking',\n 'select',\n 'selectionchange',\n 'selectstart',\n 'show',\n 'sort',\n 'stalled',\n 'submit',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'touchcancel',\n 'touchmove',\n 'touchstart',\n 'touchend',\n 'transitioncancel',\n 'transitionend',\n 'waiting',\n 'wheel'\n ];\n const documentEventNames = [\n 'afterscriptexecute', 'beforescriptexecute', 'DOMContentLoaded', 'freeze', 'fullscreenchange',\n 'mozfullscreenchange', 'webkitfullscreenchange', 'msfullscreenchange', 'fullscreenerror',\n 'mozfullscreenerror', 'webkitfullscreenerror', 'msfullscreenerror', 'readystatechange',\n 'visibilitychange', 'resume'\n ];\n const windowEventNames = [\n 'absolutedeviceorientation',\n 'afterinput',\n 'afterprint',\n 'appinstalled',\n 'beforeinstallprompt',\n 'beforeprint',\n 'beforeunload',\n 'devicelight',\n 'devicemotion',\n 'deviceorientation',\n 'deviceorientationabsolute',\n 'deviceproximity',\n 'hashchange',\n 'languagechange',\n 'message',\n 'mozbeforepaint',\n 'offline',\n 'online',\n 'paint',\n 'pageshow',\n 'pagehide',\n 'popstate',\n 'rejectionhandled',\n 'storage',\n 'unhandledrejection',\n 'unload',\n 'userproximity',\n 'vrdisplayconnected',\n 'vrdisplaydisconnected',\n 'vrdisplaypresentchange'\n ];\n const htmlElementEventNames = [\n 'beforecopy', 'beforecut', 'beforepaste', 'copy', 'cut', 'paste', 'dragstart', 'loadend',\n 'animationstart', 'search', 'transitionrun', 'transitionstart', 'webkitanimationend',\n 'webkitanimationiteration', 'webkitanimationstart', 'webkittransitionend'\n ];\n const mediaElementEventNames = ['encrypted', 'waitingforkey', 'msneedkey', 'mozinterruptbegin', 'mozinterruptend'];\n const ieElementEventNames = [\n 'activate',\n 'afterupdate',\n 'ariarequest',\n 'beforeactivate',\n 'beforedeactivate',\n 'beforeeditfocus',\n 'beforeupdate',\n 'cellchange',\n 'controlselect',\n 'dataavailable',\n 'datasetchanged',\n 'datasetcomplete',\n 'errorupdate',\n 'filterchange',\n 'layoutcomplete',\n 'losecapture',\n 'move',\n 'moveend',\n 'movestart',\n 'propertychange',\n 'resizeend',\n 'resizestart',\n 'rowenter',\n 'rowexit',\n 'rowsdelete',\n 'rowsinserted',\n 'command',\n 'compassneedscalibration',\n 'deactivate',\n 'help',\n 'mscontentzoom',\n 'msmanipulationstatechanged',\n 'msgesturechange',\n 'msgesturedoubletap',\n 'msgestureend',\n 'msgesturehold',\n 'msgesturestart',\n 'msgesturetap',\n 'msgotpointercapture',\n 'msinertiastart',\n 'mslostpointercapture',\n 'mspointercancel',\n 'mspointerdown',\n 'mspointerenter',\n 'mspointerhover',\n 'mspointerleave',\n 'mspointermove',\n 'mspointerout',\n 'mspointerover',\n 'mspointerup',\n 'pointerout',\n 'mssitemodejumplistitemremoved',\n 'msthumbnailclick',\n 'stop',\n 'storagecommit'\n ];\n const webglEventNames = ['webglcontextrestored', 'webglcontextlost', 'webglcontextcreationerror'];\n const formEventNames = ['autocomplete', 'autocompleteerror'];\n const detailEventNames = ['toggle'];\n const frameEventNames = ['load'];\n const frameSetEventNames = ['blur', 'error', 'focus', 'load', 'resize', 'scroll', 'messageerror'];\n const marqueeEventNames = ['bounce', 'finish', 'start'];\n const XMLHttpRequestEventNames = [\n 'loadstart', 'progress', 'abort', 'error', 'load', 'progress', 'timeout', 'loadend',\n 'readystatechange'\n ];\n const IDBIndexEventNames = ['upgradeneeded', 'complete', 'abort', 'success', 'error', 'blocked', 'versionchange', 'close'];\n const websocketEventNames = ['close', 'error', 'open', 'message'];\n const workerEventNames = ['error', 'message'];\n const eventNames = globalEventHandlersEventNames.concat(webglEventNames, formEventNames, detailEventNames, documentEventNames, windowEventNames, htmlElementEventNames, ieElementEventNames);\n function filterProperties(target, onProperties, ignoreProperties) {\n if (!ignoreProperties || ignoreProperties.length === 0) {\n return onProperties;\n }\n const tip = ignoreProperties.filter(ip => ip.target === target);\n if (!tip || tip.length === 0) {\n return onProperties;\n }\n const targetIgnoreProperties = tip[0].ignoreProperties;\n return onProperties.filter(op => targetIgnoreProperties.indexOf(op) === -1);\n }\n function patchFilteredProperties(target, onProperties, ignoreProperties, prototype) {\n // check whether target is available, sometimes target will be undefined\n // because different browser or some 3rd party plugin.\n if (!target) {\n return;\n }\n const filteredProperties = filterProperties(target, onProperties, ignoreProperties);\n patchOnProperties(target, filteredProperties, prototype);\n }\n function propertyDescriptorPatch(api, _global) {\n if (isNode && !isMix) {\n return;\n }\n if (Zone[api.symbol('patchEvents')]) {\n // events are already been patched by legacy patch.\n return;\n }\n const supportsWebSocket = typeof WebSocket !== 'undefined';\n const ignoreProperties = _global['__Zone_ignore_on_properties'];\n // for browsers that we can patch the descriptor: Chrome & Firefox\n if (isBrowser) {\n const internalWindow = window;\n const ignoreErrorProperties = isIE ? [{ target: internalWindow, ignoreProperties: ['error'] }] : [];\n // in IE/Edge, onProp not exist in window object, but in WindowPrototype\n // so we need to pass WindowPrototype to check onProp exist or not\n patchFilteredProperties(internalWindow, eventNames.concat(['messageerror']), ignoreProperties ? ignoreProperties.concat(ignoreErrorProperties) : ignoreProperties, ObjectGetPrototypeOf(internalWindow));\n patchFilteredProperties(Document.prototype, eventNames, ignoreProperties);\n if (typeof internalWindow['SVGElement'] !== 'undefined') {\n patchFilteredProperties(internalWindow['SVGElement'].prototype, eventNames, ignoreProperties);\n }\n patchFilteredProperties(Element.prototype, eventNames, ignoreProperties);\n patchFilteredProperties(HTMLElement.prototype, eventNames, ignoreProperties);\n patchFilteredProperties(HTMLMediaElement.prototype, mediaElementEventNames, ignoreProperties);\n patchFilteredProperties(HTMLFrameSetElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties);\n patchFilteredProperties(HTMLBodyElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties);\n patchFilteredProperties(HTMLFrameElement.prototype, frameEventNames, ignoreProperties);\n patchFilteredProperties(HTMLIFrameElement.prototype, frameEventNames, ignoreProperties);\n const HTMLMarqueeElement = internalWindow['HTMLMarqueeElement'];\n if (HTMLMarqueeElement) {\n patchFilteredProperties(HTMLMarqueeElement.prototype, marqueeEventNames, ignoreProperties);\n }\n const Worker = internalWindow['Worker'];\n if (Worker) {\n patchFilteredProperties(Worker.prototype, workerEventNames, ignoreProperties);\n }\n }\n const XMLHttpRequest = _global['XMLHttpRequest'];\n if (XMLHttpRequest) {\n // XMLHttpRequest is not available in ServiceWorker, so we need to check here\n patchFilteredProperties(XMLHttpRequest.prototype, XMLHttpRequestEventNames, ignoreProperties);\n }\n const XMLHttpRequestEventTarget = _global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget) {\n patchFilteredProperties(XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype, XMLHttpRequestEventNames, ignoreProperties);\n }\n if (typeof IDBIndex !== 'undefined') {\n patchFilteredProperties(IDBIndex.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBRequest.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBOpenDBRequest.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBDatabase.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBTransaction.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBCursor.prototype, IDBIndexEventNames, ignoreProperties);\n }\n if (supportsWebSocket) {\n patchFilteredProperties(WebSocket.prototype, websocketEventNames, ignoreProperties);\n }\n }\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n Zone.__load_patch('util', (global, Zone, api) => {\n api.patchOnProperties = patchOnProperties;\n api.patchMethod = patchMethod;\n api.bindArguments = bindArguments;\n api.patchMacroTask = patchMacroTask;\n // In earlier version of zone.js (<0.9.0), we use env name `__zone_symbol__BLACK_LISTED_EVENTS` to\n // define which events will not be patched by `Zone.js`.\n // In newer version (>=0.9.0), we change the env name to `__zone_symbol__UNPATCHED_EVENTS` to keep\n // the name consistent with angular repo.\n // The `__zone_symbol__BLACK_LISTED_EVENTS` is deprecated, but it is still be supported for\n // backwards compatibility.\n const SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS');\n const SYMBOL_UNPATCHED_EVENTS = Zone.__symbol__('UNPATCHED_EVENTS');\n if (global[SYMBOL_UNPATCHED_EVENTS]) {\n global[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_UNPATCHED_EVENTS];\n }\n if (global[SYMBOL_BLACK_LISTED_EVENTS]) {\n Zone[SYMBOL_BLACK_LISTED_EVENTS] = Zone[SYMBOL_UNPATCHED_EVENTS] =\n global[SYMBOL_BLACK_LISTED_EVENTS];\n }\n api.patchEventPrototype = patchEventPrototype;\n api.patchEventTarget = patchEventTarget;\n api.isIEOrEdge = isIEOrEdge;\n api.ObjectDefineProperty = ObjectDefineProperty;\n api.ObjectGetOwnPropertyDescriptor = ObjectGetOwnPropertyDescriptor;\n api.ObjectCreate = ObjectCreate;\n api.ArraySlice = ArraySlice;\n api.patchClass = patchClass;\n api.wrapWithCurrentZone = wrapWithCurrentZone;\n api.filterProperties = filterProperties;\n api.attachOriginToPatched = attachOriginToPatched;\n api._redefineProperty = Object.defineProperty;\n api.patchCallbacks = patchCallbacks;\n api.getGlobalObjects = () => ({ globalSources, zoneSymbolEventNames: zoneSymbolEventNames$1, eventNames, isBrowser, isMix, isNode, TRUE_STR,\n FALSE_STR, ZONE_SYMBOL_PREFIX, ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR });\n });\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n const taskSymbol = zoneSymbol('zoneTask');\n function patchTimer(window, setName, cancelName, nameSuffix) {\n let setNative = null;\n let clearNative = null;\n setName += nameSuffix;\n cancelName += nameSuffix;\n const tasksByHandleId = {};\n function scheduleTask(task) {\n const data = task.data;\n function timer() {\n try {\n task.invoke.apply(this, arguments);\n }\n finally {\n // issue-934, task will be cancelled\n // even it is a periodic task such as\n // setInterval\n if (!(task.data && task.data.isPeriodic)) {\n if (typeof data.handleId === 'number') {\n // in non-nodejs env, we remove timerId\n // from local cache\n delete tasksByHandleId[data.handleId];\n }\n else if (data.handleId) {\n // Node returns complex objects as handleIds\n // we remove task reference from timer object\n data.handleId[taskSymbol] = null;\n }\n }\n }\n }\n data.args[0] = timer;\n data.handleId = setNative.apply(window, data.args);\n return task;\n }\n function clearTask(task) { return clearNative(task.data.handleId); }\n setNative =\n patchMethod(window, setName, (delegate) => function (self, args) {\n if (typeof args[0] === 'function') {\n const options = {\n isPeriodic: nameSuffix === 'Interval',\n delay: (nameSuffix === 'Timeout' || nameSuffix === 'Interval') ? args[1] || 0 :\n undefined,\n args: args\n };\n const task = scheduleMacroTaskWithCurrentZone(setName, args[0], options, scheduleTask, clearTask);\n if (!task) {\n return task;\n }\n // Node.js must additionally support the ref and unref functions.\n const handle = task.data.handleId;\n if (typeof handle === 'number') {\n // for non nodejs env, we save handleId: task\n // mapping in local cache for clearTimeout\n tasksByHandleId[handle] = task;\n }\n else if (handle) {\n // for nodejs env, we save task\n // reference in timerId Object for clearTimeout\n handle[taskSymbol] = task;\n }\n // check whether handle is null, because some polyfill or browser\n // may return undefined from setTimeout/setInterval/setImmediate/requestAnimationFrame\n if (handle && handle.ref && handle.unref && typeof handle.ref === 'function' &&\n typeof handle.unref === 'function') {\n task.ref = handle.ref.bind(handle);\n task.unref = handle.unref.bind(handle);\n }\n if (typeof handle === 'number' || handle) {\n return handle;\n }\n return task;\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(window, args);\n }\n });\n clearNative =\n patchMethod(window, cancelName, (delegate) => function (self, args) {\n const id = args[0];\n let task;\n if (typeof id === 'number') {\n // non nodejs env.\n task = tasksByHandleId[id];\n }\n else {\n // nodejs env.\n task = id && id[taskSymbol];\n // other environments.\n if (!task) {\n task = id;\n }\n }\n if (task && typeof task.type === 'string') {\n if (task.state !== 'notScheduled' &&\n (task.cancelFn && task.data.isPeriodic || task.runCount === 0)) {\n if (typeof id === 'number') {\n delete tasksByHandleId[id];\n }\n else if (id) {\n id[taskSymbol] = null;\n }\n // Do not cancel already canceled functions\n task.zone.cancelTask(task);\n }\n }\n else {\n // cause an error by calling it directly.\n delegate.apply(window, args);\n }\n });\n }\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function patchCustomElements(_global, api) {\n const { isBrowser, isMix } = api.getGlobalObjects();\n if ((!isBrowser && !isMix) || !_global['customElements'] || !('customElements' in _global)) {\n return;\n }\n const callbacks = ['connectedCallback', 'disconnectedCallback', 'adoptedCallback', 'attributeChangedCallback'];\n api.patchCallbacks(api, _global.customElements, 'customElements', 'define', callbacks);\n }\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function eventTargetPatch(_global, api) {\n if (Zone[api.symbol('patchEventTarget')]) {\n // EventTarget is already patched.\n return;\n }\n const { eventNames, zoneSymbolEventNames, TRUE_STR, FALSE_STR, ZONE_SYMBOL_PREFIX } = api.getGlobalObjects();\n // predefine all __zone_symbol__ + eventName + true/false string\n for (let i = 0; i < eventNames.length; i++) {\n const eventName = eventNames[i];\n const falseEventName = eventName + FALSE_STR;\n const trueEventName = eventName + TRUE_STR;\n const symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n }\n const EVENT_TARGET = _global['EventTarget'];\n if (!EVENT_TARGET || !EVENT_TARGET.prototype) {\n return;\n }\n api.patchEventTarget(_global, [EVENT_TARGET && EVENT_TARGET.prototype]);\n return true;\n }\n function patchEvent(global, api) {\n api.patchEventPrototype(global, api);\n }\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n Zone.__load_patch('legacy', (global) => {\n const legacyPatch = global[Zone.__symbol__('legacyPatch')];\n if (legacyPatch) {\n legacyPatch();\n }\n });\n Zone.__load_patch('timers', (global) => {\n const set = 'set';\n const clear = 'clear';\n patchTimer(global, set, clear, 'Timeout');\n patchTimer(global, set, clear, 'Interval');\n patchTimer(global, set, clear, 'Immediate');\n });\n Zone.__load_patch('requestAnimationFrame', (global) => {\n patchTimer(global, 'request', 'cancel', 'AnimationFrame');\n patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame');\n patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame');\n });\n Zone.__load_patch('blocking', (global, Zone) => {\n const blockingMethods = ['alert', 'prompt', 'confirm'];\n for (let i = 0; i < blockingMethods.length; i++) {\n const name = blockingMethods[i];\n patchMethod(global, name, (delegate, symbol, name) => {\n return function (s, args) {\n return Zone.current.run(delegate, global, args, name);\n };\n });\n }\n });\n Zone.__load_patch('EventTarget', (global, Zone, api) => {\n patchEvent(global, api);\n eventTargetPatch(global, api);\n // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener\n const XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) {\n api.patchEventTarget(global, [XMLHttpRequestEventTarget.prototype]);\n }\n patchClass('MutationObserver');\n patchClass('WebKitMutationObserver');\n patchClass('IntersectionObserver');\n patchClass('FileReader');\n });\n Zone.__load_patch('on_property', (global, Zone, api) => {\n propertyDescriptorPatch(api, global);\n });\n Zone.__load_patch('customElements', (global, Zone, api) => {\n patchCustomElements(global, api);\n });\n Zone.__load_patch('XHR', (global, Zone) => {\n // Treat XMLHttpRequest as a macrotask.\n patchXHR(global);\n const XHR_TASK = zoneSymbol('xhrTask');\n const XHR_SYNC = zoneSymbol('xhrSync');\n const XHR_LISTENER = zoneSymbol('xhrListener');\n const XHR_SCHEDULED = zoneSymbol('xhrScheduled');\n const XHR_URL = zoneSymbol('xhrURL');\n const XHR_ERROR_BEFORE_SCHEDULED = zoneSymbol('xhrErrorBeforeScheduled');\n function patchXHR(window) {\n const XMLHttpRequest = window['XMLHttpRequest'];\n if (!XMLHttpRequest) {\n // XMLHttpRequest is not available in service worker\n return;\n }\n const XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n function findPendingTask(target) { return target[XHR_TASK]; }\n let oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n let oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n if (!oriAddListener) {\n const XMLHttpRequestEventTarget = window['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget) {\n const XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget.prototype;\n oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n }\n const READY_STATE_CHANGE = 'readystatechange';\n const SCHEDULED = 'scheduled';\n function scheduleTask(task) {\n const data = task.data;\n const target = data.target;\n target[XHR_SCHEDULED] = false;\n target[XHR_ERROR_BEFORE_SCHEDULED] = false;\n // remove existing event listener\n const listener = target[XHR_LISTENER];\n if (!oriAddListener) {\n oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n if (listener) {\n oriRemoveListener.call(target, READY_STATE_CHANGE, listener);\n }\n const newListener = target[XHR_LISTENER] = () => {\n if (target.readyState === target.DONE) {\n // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with\n // readyState=4 multiple times, so we need to check task state here\n if (!data.aborted && target[XHR_SCHEDULED] && task.state === SCHEDULED) {\n // check whether the xhr has registered onload listener\n // if that is the case, the task should invoke after all\n // onload listeners finish.\n const loadTasks = target[Zone.__symbol__('loadfalse')];\n if (loadTasks && loadTasks.length > 0) {\n const oriInvoke = task.invoke;\n task.invoke = function () {\n // need to load the tasks again, because in other\n // load listener, they may remove themselves\n const loadTasks = target[Zone.__symbol__('loadfalse')];\n for (let i = 0; i < loadTasks.length; i++) {\n if (loadTasks[i] === task) {\n loadTasks.splice(i, 1);\n }\n }\n if (!data.aborted && task.state === SCHEDULED) {\n oriInvoke.call(task);\n }\n };\n loadTasks.push(task);\n }\n else {\n task.invoke();\n }\n }\n else if (!data.aborted && target[XHR_SCHEDULED] === false) {\n // error occurs when xhr.send()\n target[XHR_ERROR_BEFORE_SCHEDULED] = true;\n }\n }\n };\n oriAddListener.call(target, READY_STATE_CHANGE, newListener);\n const storedTask = target[XHR_TASK];\n if (!storedTask) {\n target[XHR_TASK] = task;\n }\n sendNative.apply(target, data.args);\n target[XHR_SCHEDULED] = true;\n return task;\n }\n function placeholderCallback() { }\n function clearTask(task) {\n const data = task.data;\n // Note - ideally, we would call data.target.removeEventListener here, but it's too late\n // to prevent it from firing. So instead, we store info for the event listener.\n data.aborted = true;\n return abortNative.apply(data.target, data.args);\n }\n const openNative = patchMethod(XMLHttpRequestPrototype, 'open', () => function (self, args) {\n self[XHR_SYNC] = args[2] == false;\n self[XHR_URL] = args[1];\n return openNative.apply(self, args);\n });\n const XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send';\n const fetchTaskAborting = zoneSymbol('fetchTaskAborting');\n const fetchTaskScheduling = zoneSymbol('fetchTaskScheduling');\n const sendNative = patchMethod(XMLHttpRequestPrototype, 'send', () => function (self, args) {\n if (Zone.current[fetchTaskScheduling] === true) {\n // a fetch is scheduling, so we are using xhr to polyfill fetch\n // and because we already schedule macroTask for fetch, we should\n // not schedule a macroTask for xhr again\n return sendNative.apply(self, args);\n }\n if (self[XHR_SYNC]) {\n // if the XHR is sync there is no task to schedule, just execute the code.\n return sendNative.apply(self, args);\n }\n else {\n const options = { target: self, url: self[XHR_URL], isPeriodic: false, args: args, aborted: false };\n const task = scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, options, scheduleTask, clearTask);\n if (self && self[XHR_ERROR_BEFORE_SCHEDULED] === true && !options.aborted &&\n task.state === SCHEDULED) {\n // xhr request throw error when send\n // we should invoke task instead of leaving a scheduled\n // pending macroTask\n task.invoke();\n }\n }\n });\n const abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', () => function (self, args) {\n const task = findPendingTask(self);\n if (task && typeof task.type == 'string') {\n // If the XHR has already completed, do nothing.\n // If the XHR has already been aborted, do nothing.\n // Fix #569, call abort multiple times before done will cause\n // macroTask task count be negative number\n if (task.cancelFn == null || (task.data && task.data.aborted)) {\n return;\n }\n task.zone.cancelTask(task);\n }\n else if (Zone.current[fetchTaskAborting] === true) {\n // the abort is called from fetch polyfill, we need to call native abort of XHR.\n return abortNative.apply(self, args);\n }\n // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no\n // task\n // to cancel. Do nothing.\n });\n }\n });\n Zone.__load_patch('geolocation', (global) => {\n /// GEO_LOCATION\n if (global['navigator'] && global['navigator'].geolocation) {\n patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']);\n }\n });\n Zone.__load_patch('PromiseRejectionEvent', (global, Zone) => {\n // handle unhandled promise rejection\n function findPromiseRejectionHandler(evtName) {\n return function (e) {\n const eventTasks = findEventTasks(global, evtName);\n eventTasks.forEach(eventTask => {\n // windows has added unhandledrejection event listener\n // trigger the event listener\n const PromiseRejectionEvent = global['PromiseRejectionEvent'];\n if (PromiseRejectionEvent) {\n const evt = new PromiseRejectionEvent(evtName, { promise: e.promise, reason: e.rejection });\n eventTask.invoke(evt);\n }\n });\n };\n }\n if (global['PromiseRejectionEvent']) {\n Zone[zoneSymbol('unhandledPromiseRejectionHandler')] =\n findPromiseRejectionHandler('unhandledrejection');\n Zone[zoneSymbol('rejectionHandledHandler')] =\n findPromiseRejectionHandler('rejectionhandled');\n }\n });\n\n})));\n","import { SelectionModel } from '@angular/cdk/collections';\r\nimport { Component, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { Router } from '@angular/router';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { AES } from 'crypto-ts';\r\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner';\r\n\r\nimport { AdminPage } from './admin';\r\n\r\nexport interface ItemData {\r\n Id: number;\r\n Name: string;\r\n Role: number;\r\n Block: boolean;\r\n BlockName: string;\r\n}\r\n\r\nexport interface TableFilter {\r\n column: string;\r\n value: any;\r\n}\r\n\r\nvar options = {};\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Action Log ++\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n@Component({\r\n selector: 'action-log',\r\n templateUrl: 'action-log.html',\r\n styleUrls: ['admin.css'],\r\n providers: [AdminPage],\r\n})\r\nexport class ActionLogPage {\r\n IsLoading: boolean = false;\r\n\r\n barValue: number = 50;\r\n pageSizer: number = 5;\r\n pageIndexer: number = 0;\r\n filterAll: number = 0;\r\n\r\n filter: any = [];\r\n getFilter: any = [];\r\n saveFilter: any = [];\r\n logData: any[] = [];\r\n dateList: string[] = [];\r\n displayedColumns: string[] = ['Info', 'CreateAt', 'Status'];\r\n\r\n barColor: ThemePalette = 'primary';\r\n barMode: ProgressSpinnerMode = 'indeterminate';\r\n dataSource: MatTableDataSource;\r\n selection = new SelectionModel(true, []);\r\n filterSelect = {\r\n Info: '',\r\n CreateAt: '',\r\n };\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(\r\n private router: Router,\r\n private cookieService: CookieService,\r\n private admin: AdminPage,\r\n private http: HttpClient,\r\n public dialog: MatDialog\r\n ) {\r\n this.IsLoading = true;\r\n\r\n if (this.cookieService.get('access_token') == '') {\r\n this.router.navigate(['/admin/login']);\r\n }\r\n\r\n if (this.cookieService.get('page_size').split('_')[0] == 'a') {\r\n this.pageSizer = parseInt(this.cookieService.get('page_size').split('_')[1]);\r\n this.pageIndexer = parseInt(this.cookieService.get('page_size').split('_')[2]);\r\n } else {\r\n this.cookieService.delete('page_size', '/');\r\n }\r\n\r\n if (this.cookieService.get('page_filter') != '') {\r\n this.cookieService.delete('page_filter', '/');\r\n }\r\n\r\n options = {\r\n headers: new HttpHeaders({ Authorization: 'Bearer ' + cookieService.get('access_token') }),\r\n };\r\n\r\n this.dbRequest();\r\n\r\n this.dataSource = new MatTableDataSource(this.logData);\r\n this.dataSource.filterPredicate = this.createFilter;\r\n }\r\n\r\n dbRequest() {\r\n this.http.get(this.admin.getUrl() + 'Log', options).subscribe((data) => {\r\n this.logData = [];\r\n this.dateList = [];\r\n [].forEach.call(data, (e) => {\r\n let dateAll = e.createdAt.split('T');\r\n let date = dateAll[0].split('-').reverse();\r\n date = date.join('.');\r\n let time = dateAll[1].split('.')[0];\r\n let dateFull = date + ' ' + time;\r\n let status = 'Запис';\r\n if (e.logStatus == 1) {\r\n status = 'Помилка';\r\n }\r\n this.logData.push({ Id: e.id, Info: e.info, Status: status, CreateAt: dateFull });\r\n\r\n if (!this.dateList.some((e) => e === date)) {\r\n this.dateList.push(date);\r\n }\r\n });\r\n this.logData = this.logData.reverse();\r\n\r\n this.dataSource = new MatTableDataSource(this.logData);\r\n this.dataSource.filterPredicate = this.createFilter;\r\n this.paginator.pageSize = this.pageSizer;\r\n this.paginator.pageIndex = this.pageIndexer;\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n\r\n this.IsLoading = false;\r\n });\r\n }\r\n\r\n pageSize() {\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(':')[0];\r\n let secure = false;\r\n if (location.protocol == 'https:') {\r\n secure = true;\r\n }\r\n this.pageSizer = this.dataSource.paginator.pageSize;\r\n this.pageIndexer = this.dataSource.paginator.pageIndex;\r\n this.cookieService.set(\r\n 'page_size',\r\n 'a_' +\r\n this.dataSource.paginator.pageSize.toString() +\r\n '_' +\r\n this.dataSource.paginator.pageIndex.toString(),\r\n expires,\r\n '/',\r\n local,\r\n secure\r\n );\r\n }\r\n\r\n createFilter(data: any, filter: any) {\r\n let filters: TableFilter[] = filter;\r\n let check = 0;\r\n [].forEach.call(filters, (e) => {\r\n let dataVal = data[e.column].toLowerCase();\r\n if (dataVal.includes(e.value)) {\r\n check++;\r\n }\r\n });\r\n if (check == filters.length) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n applyFilter(filterValue: string, filterColumn: string) {\r\n // console.log(filterValue);\r\n if (filterValue == undefined) {\r\n filterValue = '';\r\n } else {\r\n filterValue = filterValue.toString().trim().toLowerCase();\r\n }\r\n // console.log(filterValue);\r\n let isFilter = false;\r\n [].forEach.call(this.filter, (e, index) => {\r\n if (e) {\r\n if (e.column == filterColumn) {\r\n if (filterValue != '') {\r\n e.value = filterValue;\r\n isFilter = true;\r\n } else {\r\n this.filter.splice(index, 1);\r\n }\r\n }\r\n }\r\n });\r\n if (!isFilter) {\r\n if (filterValue != '') {\r\n let values = filterValue;\r\n this.filter.push({\r\n column: filterColumn,\r\n value: values,\r\n });\r\n }\r\n }\r\n switch (filterColumn) {\r\n case 'Info':\r\n this.filterSelect.Info = filterValue;\r\n break;\r\n case 'CreateAt':\r\n this.filterSelect.CreateAt = filterValue;\r\n break;\r\n }\r\n\r\n this.dataSource.filter = this.filter;\r\n if (this.dataSource.filter.length == 0) {\r\n this.filterAll = this.dataSource.data.length;\r\n } else {\r\n if (this.selection.selected.length == 0) {\r\n this.filterAll = this.dataSource.data.length;\r\n } else {\r\n this.filterAll = this.selection.selected.length;\r\n }\r\n }\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n\r\n let pack = JSON.stringify(this.dataSource.filter);\r\n pack = AES.encrypt(pack, 'kusaid').toString();\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(':')[0];\r\n let secure = false;\r\n if (location.protocol == 'https:') {\r\n secure = true;\r\n }\r\n this.cookieService.set('page_filter', 'f_' + pack, expires, '/', local, secure);\r\n }\r\n}\r\n","
\r\n

Системні логи

\r\n
\r\n
\r\n\r\n
\r\n \r\n Лог\r\n \r\n \r\n \r\n Дати\r\n \r\n Очистити фільтр\r\n {{ date }}\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
Опис логу {{row.Info}} Дата логу {{row.CreateAt}} Статус логу {{row.Status}}
\r\n\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n

Будь-ласка зачекайте!
Триває завантаження

\r\n
\r\n
","import { Component } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { FormControl } from '@angular/forms';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\nimport { ConfirmMenu } from '../confirm-menu';\r\n\r\nexport interface LangData {\r\n id: number;\r\n name: string;\r\n}\r\n\r\n@Component({\r\n selector: 'item-info',\r\n templateUrl: 'admin.html',\r\n styleUrls: ['admin.css'],\r\n})\r\nexport class AdminPage {\r\n isDBLoad: boolean = false;\r\n isLogin: boolean = false;\r\n userData: boolean = false;\r\n managerDisable: boolean = false;\r\n\r\n currentUser: number = 0;\r\n\r\n defaultLocale: string = 'uk';\r\n currentLocale: string = '';\r\n currentRouter: string = '';\r\n activeMenu: string = '/admin/request-type';\r\n url: string =\r\n window.location.origin + (document.getElementById('siteLink')).value + 'api/';\r\n\r\n localeList: any[] = [];\r\n\r\n mode = new FormControl('over');\r\n options: any = null;\r\n\r\n constructor(\r\n private router: Router,\r\n private http: HttpClient,\r\n private translateService: TranslateService,\r\n private cookieService: CookieService,\r\n public dialog: MatDialog\r\n ) {\r\n if (window.location.hostname == 'localhost') {\r\n //--\r\n // this.url = \"https://poshuk-rishen.it-artel.ua:90/wab/api/\";\r\n // this.url = \"https://doc.it-artel.ua:89/wai/api/\";\r\n this.url = 'https://usaid.it-artel.ua:10443/api/';\r\n } //--\r\n\r\n this.translateService.setDefaultLang(this.defaultLocale);\r\n\r\n this.options = {\r\n headers: new HttpHeaders({\r\n Authorization: 'Bearer ' + this.cookieService.get('access_token'),\r\n }),\r\n };\r\n\r\n if (this.router.url != this.activeMenu) {\r\n this.activeMenu = this.router.url;\r\n }\r\n\r\n if (!this.cookieService.get('lang')) {\r\n this.currentLocale = this.defaultLocale;\r\n this.translateService.use(this.currentLocale);\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n this.cookieService.set('lang', this.currentLocale, expires, '/');\r\n } else {\r\n this.currentLocale = this.cookieService.get('lang');\r\n this.translateService.use(this.currentLocale);\r\n }\r\n\r\n if (this.cookieService.get('cookieAllowId')) {\r\n this.setUserData(this.cookieService.get('cookieAllowId'));\r\n if (parseInt(this.cookieService.get('cookieAllowId').split('T')[1]) == 1) {\r\n this.userData = true;\r\n } else {\r\n this.userData = false;\r\n }\r\n } else {\r\n this.isLogin = false;\r\n this.router.navigate(['/admin/login']);\r\n }\r\n\r\n if (this.cookieService.get('access_token') == '') {\r\n this.router.navigate(['/admin/login']);\r\n } else {\r\n this.isLogin = true;\r\n if (this.router.url == '/admin' || this.router.url == '/wab/admin') {\r\n this.router.navigate(['/admin/request-type']);\r\n }\r\n }\r\n\r\n this.dbRequest('Page');\r\n }\r\n\r\n dbRequest(type) {\r\n switch (type) {\r\n case 'Page':\r\n this.isDBLoad = false;\r\n this.http.get(this.url + 'PageElement').subscribe((data) => {\r\n this.localeList = [];\r\n [].forEach.call(data, (e) => {\r\n if (e.type == 'lang') {\r\n let titleArray = e.title.split('|&|');\r\n let textArray = e.text.split('|&|');\r\n [].forEach.call(titleArray, (e, indexE) => {\r\n this.localeList.push({\r\n Title: titleArray[indexE],\r\n Text: textArray[indexE],\r\n });\r\n });\r\n } else if (e.type == 'managerDisable') {\r\n if (e.title != '' && e.title != null && e.title != undefined) {\r\n this.managerDisable = JSON.parse(e.title);\r\n }\r\n }\r\n });\r\n this.isDBLoad = true;\r\n });\r\n break;\r\n }\r\n }\r\n\r\n changeCheck(link) {\r\n let isChange = false;\r\n if (this.cookieService.get('is_change')) {\r\n isChange = JSON.parse(this.cookieService.get('is_change'));\r\n }\r\n\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(':')[0];\r\n let secure = false;\r\n if (location.protocol == 'https:') {\r\n secure = true;\r\n }\r\n\r\n this.activeMenu = link;\r\n\r\n if (link == '/') {\r\n isChange = false;\r\n }\r\n\r\n if (isChange) {\r\n event.stopPropagation();\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: '600px',\r\n disableClose: true,\r\n data: { text: 'Увага! Документ буде закритий без збереження змін. Продовжити?' },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n this.cookieService.delete('is_change', '/', local, secure);\r\n this.router.navigate([link]);\r\n }\r\n });\r\n } else {\r\n this.cookieService.delete('is_change', '/', local, secure);\r\n this.router.navigate([link]);\r\n }\r\n }\r\n\r\n isLoginChange() {\r\n if (parseInt(this.cookieService.get('cookieAllowId').split('T')[1]) == 1) {\r\n this.userData = true;\r\n } else {\r\n this.userData = false;\r\n }\r\n this.isLogin = true;\r\n }\r\n\r\n getUrl() {\r\n return this.url;\r\n }\r\n\r\n getLocale() {\r\n if (this.cookieService.get('lang') != this.currentLocale) {\r\n this.currentLocale = this.cookieService.get('lang');\r\n this.translateService.use(this.currentLocale);\r\n }\r\n return this.currentLocale;\r\n }\r\n\r\n getList(type) {\r\n switch (type) {\r\n case 'Lang':\r\n return this.localeList;\r\n }\r\n return [];\r\n }\r\n\r\n getDBStatus() {\r\n return this.isDBLoad;\r\n }\r\n\r\n getDefLocale() {\r\n return this.defaultLocale;\r\n }\r\n\r\n setUserData(roleAccess) {\r\n this.currentUser = roleAccess;\r\n }\r\n\r\n getUserData() {\r\n return this.currentUser;\r\n }\r\n\r\n getOptions() {\r\n return this.options;\r\n }\r\n\r\n setLocale(code) {\r\n this.currentLocale = code;\r\n this.translateService.use(this.currentLocale);\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n this.cookieService.set('lang', code, expires, '/');\r\n }\r\n\r\n refreshLocale() {\r\n this.dbRequest('Lang');\r\n }\r\n\r\n exitAdmin() {\r\n let text = 'Ви дійсно хочете вийти?';\r\n let minWidth = '200px';\r\n let maxWidth = '400px';\r\n if (text.length > 150 && text.length < 300) {\r\n maxWidth = '600px';\r\n } else if (text.length > 300 && text.length < 600) {\r\n maxWidth = '800px';\r\n } else if (text.length > 600) {\r\n minWidth = '80%';\r\n maxWidth = '1000px';\r\n }\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n minWidth: minWidth,\r\n maxWidth: maxWidth,\r\n data: { text: text, ish: true },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(':')[0];\r\n let secure = false;\r\n if (location.protocol == 'https:') {\r\n secure = true;\r\n }\r\n\r\n this.cookieService.deleteAll('/', local, secure);\r\n this.isLogin = false;\r\n this.router.navigate(['/admin/login']);\r\n }\r\n });\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
{{currentLocale.toUpperCase()}}
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
{{currentLocale.toUpperCase()}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import {Component, Inject} from '@angular/core';\r\nimport {MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'code-editor',\r\n templateUrl: 'code-editor.html',\r\n styleUrls: ['../menu.css']\r\n})\r\n\r\nexport class CodeEditorMenu {\r\n\r\n inputValue: string = \"\";\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: string,\r\n ){\r\n this.inputValue = this.data;\r\n }\r\n\r\n inputChangeVal(value){\r\n this.inputValue = value;\r\n }\r\n\r\n close() {\r\n this.dialogRef.close(this.inputValue);\r\n }\r\n \r\n}","
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
","import { Component, Inject } from \"@angular/core\";\r\nimport { FormControl, Validators } from \"@angular/forms\";\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { ConfirmMenu } from \"../confirm-menu\";\r\nimport { AdminPage } from \"./admin\";\r\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from \"@angular/material/core\";\r\nimport { MAT_MOMENT_DATE_FORMATS, MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS } from \"@angular/material-moment-adapter\";\r\nimport { ThemePalette } from \"@angular/material/core\";\r\nimport { ProgressSpinnerMode } from \"@angular/material/progress-spinner\";\r\n\r\nexport interface DialogData {\r\n data: any;\r\n name: string;\r\n list: any;\r\n type: any;\r\n}\r\n\r\nexport interface MaskList {\r\n id: string;\r\n name: string;\r\n value: string;\r\n}\r\n\r\nexport interface ConditionList {\r\n target: string;\r\n condition: string;\r\n field: string;\r\n date: string;\r\n on: string;\r\n value: string;\r\n else: string;\r\n}\r\n\r\nexport interface SelectorList {\r\n type: string;\r\n list: SelectorData[];\r\n}\r\n\r\nexport interface SelectorData {\r\n name: string;\r\n value: string;\r\n dialog: any;\r\n}\r\n\r\nvar maskList: MaskList[] = [\r\n { id: \"off\", name: \"Вимкнуто\", value: \"\" },\r\n { id: \"word\", name: \"Тільки букви\", value: \"\" },\r\n // {id: \"custom\", name: \"Довільна\", value: \"\"},\r\n { id: \"phone\", name: \"Телефон\", value: \"+00 (000) 00-00-000\" },\r\n { id: \"number\", name: \"Числа\", value: \"Введення тільки чисел\" },\r\n { id: \"email\", name: \"Email\", value: \"Перевірка коректності Email\" },\r\n { id: \"limit\", name: \"Число символів\", value: \"\" },\r\n { id: \"numlim\", name: \"Числа із кількістю символів\", value: \"\" },\r\n];\r\n\r\nvar isChange = false;\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Input Component\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n@Component({\r\n selector: \"input-component\",\r\n templateUrl: \"./component/input.html\",\r\n styleUrls: [\"./admin.css\"],\r\n providers: [\r\n AdminPage,\r\n { provide: MAT_DATE_LOCALE, useValue: \"uk-UA\" },\r\n { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS] },\r\n { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },\r\n ],\r\n})\r\nexport class InputComponent {\r\n mask: string = \"\";\r\n titleAligment: string = \"\";\r\n\r\n conditionFinish: boolean = true;\r\n fieldDisabled: boolean = false;\r\n\r\n conditionList: ConditionList[] = [];\r\n conditionValues: any[] = [];\r\n conditionMore: any[] = [];\r\n conditionOn: any[] = [];\r\n dateDate: any[] = [];\r\n dateTime: any[] = [];\r\n conditionFinArray: any[] = [];\r\n backupCondition: any[] = [];\r\n userDataTypeValue: any[] = [];\r\n\r\n titleFormControl = new FormControl();\r\n maskList = maskList;\r\n currentMask: MaskList;\r\n cloneData: any = null;\r\n cloneList: any = null;\r\n dubData: any = null;\r\n dubList: any = null;\r\n\r\n isLoad: boolean = false;\r\n loadColor: ThemePalette = \"primary\";\r\n loadMode: ProgressSpinnerMode = \"indeterminate\";\r\n loadValue: number = 50;\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: DialogData, private admin: AdminPage, public dialog: MatDialog, private http: HttpClient) {\r\n isChange = false;\r\n this.isLoad = true;\r\n\r\n if (this.data.data.condition != undefined && this.data.data.condition != null && this.data.data.condition != \"\") {\r\n this.backupCondition = JSON.parse(JSON.stringify(this.data.data.condition));\r\n }\r\n if (this.data.data.mask == undefined) {\r\n this.data.data.mask = \"\";\r\n }\r\n if (this.data.data.aligment == null || this.data.data.aligment == undefined) {\r\n this.data.data.aligment = \"\";\r\n }\r\n if (this.data.data.disabled != undefined) {\r\n this.fieldDisabled = JSON.parse(this.data.data.disabled);\r\n }\r\n this.titleFormControl = new FormControl(this.data.data.tableLabel, [Validators.required]);\r\n this.getMask();\r\n let value: ConditionList = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.conditionList.push(value);\r\n let interval = setInterval(() => {\r\n if (!this.isLoad) {\r\n clearInterval(interval);\r\n if (this.data.data.condition != null) {\r\n this.conditionList = this.data.data.condition;\r\n [].forEach.call(this.conditionList, (e, index) => {\r\n this.loadTarget({ value: e.target }, index);\r\n this.onOwnDateLoad(index);\r\n });\r\n }\r\n }\r\n }, 50);\r\n\r\n this.cloneList = {\r\n form: null,\r\n field: null,\r\n };\r\n\r\n this.cloneData = {\r\n form: \"\",\r\n field: \"\",\r\n };\r\n\r\n this.dubList = {\r\n form: null,\r\n field: null,\r\n };\r\n\r\n this.dubData = {\r\n form: \"\",\r\n field: \"\",\r\n };\r\n\r\n this.dbRequest(\"Form\");\r\n if (this.data.data.clone != null && this.data.data.clone != \"\" && this.data.data.clone != undefined) {\r\n let clone = this.data.data.clone.split(\"|\");\r\n if (clone.length > 1) {\r\n this.cloneData = { form: parseInt(clone[0]), target: parseInt(clone[1]) };\r\n }\r\n this.dbRequest(\"Attr\");\r\n }\r\n if (this.data.data.dub != null && this.data.data.dub != \"\" && this.data.data.dub != undefined) {\r\n let dub = this.data.data.dub.split(\"|\");\r\n if (dub.length > 1) {\r\n this.dubData = { form: parseInt(dub[0]), target: parseInt(dub[1]) };\r\n }\r\n this.dbRequest(\"AttrD\");\r\n }\r\n this.dbRequest(\"Lib\");\r\n }\r\n\r\n dbRequest(type) {\r\n switch (type) {\r\n case \"Form\":\r\n this.http.get(this.admin.getUrl() + \"RequestForm\").subscribe((data) => {\r\n this.cloneList.form = [];\r\n this.dubList.form = [];\r\n [].forEach.call(data, (e) => {\r\n if (e.requestTypeRequestForms.length > 0) {\r\n if (e.requestTypeRequestForms[0].requestTypeId == this.data.type) {\r\n let tableTitle = e.title.split(\"*L*\");\r\n let elements = tableTitle.filter((x) => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n e.tableTitle = tableTitle;\r\n\r\n this.cloneList.form.push(e);\r\n this.dubList.form.push(e);\r\n }\r\n }\r\n });\r\n });\r\n break;\r\n case \"Attr\":\r\n this.http.get(this.admin.getUrl() + \"RequestAttribute\").subscribe((data) => {\r\n this.cloneList.field = [];\r\n [].forEach.call(data, (e) => {\r\n if (e.requestFormId == this.cloneData.form) {\r\n if (e.type == \"input\") {\r\n let tableTitle = e.label.split(\"*L*\");\r\n let elements = tableTitle.filter((x) => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n e.tableTitle = tableTitle;\r\n\r\n this.cloneList.field.push(e);\r\n }\r\n }\r\n });\r\n });\r\n break;\r\n case \"AttrD\":\r\n this.http.get(this.admin.getUrl() + \"RequestAttribute\").subscribe((data) => {\r\n this.dubList.field = [];\r\n [].forEach.call(data, (e) => {\r\n if (e.requestFormId == this.dubData.form) {\r\n if (e.type === this.data.data.type) {\r\n let tableTitle = e.label.split(\"*L*\");\r\n let elements = tableTitle.filter((x) => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n e.tableTitle = tableTitle;\r\n\r\n this.dubList.field.push(e);\r\n }\r\n }\r\n });\r\n });\r\n break;\r\n case \"Lib\":\r\n this.http.get(this.admin.getUrl() + \"userDataTypeValue\").subscribe((data) => {\r\n this.userDataTypeValue = [];\r\n [].forEach.call(data, (e) => {\r\n let tableTitle = e.value.split(\"*L*\");\r\n let elements = tableTitle.filter((x) => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n\r\n this.userDataTypeValue.push({ Id: e.id, Title: tableTitle, Email: e.email, Parent: e.uerDataTypeId });\r\n });\r\n this.isLoad = false;\r\n });\r\n break;\r\n }\r\n }\r\n\r\n changeClone(value, type) {\r\n switch (type) {\r\n case \"form\":\r\n this.cloneData.form = value;\r\n this.cloneData.target = \"\";\r\n this.dbRequest(\"Attr\");\r\n break;\r\n case \"target\":\r\n this.cloneData.target = value;\r\n break;\r\n }\r\n }\r\n\r\n changeDub(value, type) {\r\n switch (type) {\r\n case \"form\":\r\n this.dubData.form = value;\r\n this.dubData.target = \"\";\r\n this.dbRequest(\"AttrD\");\r\n break;\r\n case \"target\":\r\n this.dubData.target = value;\r\n break;\r\n }\r\n }\r\n\r\n changeRegister() {\r\n isChange = true;\r\n }\r\n\r\n editCondition(index) {\r\n if (index == -1) {\r\n let value: ConditionList = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.conditionList.push(value);\r\n this.conditionValues.push([]);\r\n this.conditionMore.push([]);\r\n this.conditionOn.push([]);\r\n this.dateDate.push([]);\r\n this.dateTime.push([]);\r\n this.conditionFinArray.push(false);\r\n } else {\r\n this.conditionList.splice(index, 1);\r\n this.conditionValues.splice(index, 1);\r\n this.conditionMore.splice(index, 1);\r\n this.conditionOn.splice(index, 1);\r\n this.dateDate.splice(index, 1);\r\n this.dateTime.splice(index, 1);\r\n this.conditionFinArray.splice(index, 1);\r\n }\r\n }\r\n\r\n changeConditionMore(event, index) {\r\n if (\r\n this.conditionList[index].condition == \"morenumber\" ||\r\n this.conditionList[index].condition == \"lessnumber\" ||\r\n this.conditionList[index].condition == \"isnumber\" ||\r\n this.conditionList[index].condition == \"notnumber\"\r\n ) {\r\n this.conditionOn[index] = [];\r\n if (event == \"0\") {\r\n this.conditionOn[index].push({ name: \"2\", value: \"ніж\" });\r\n } else {\r\n this.conditionOn[index].push({ name: \"0\", value: \"ніж\" }, { name: \"1\", value: \"на\" });\r\n }\r\n }\r\n this.conditionList[index] = {\r\n target: this.conditionList[index].target,\r\n condition: this.conditionList[index].condition,\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n this.dateDate[index] = \"\";\r\n this.dateTime[index] = \"\";\r\n this.conditionCheck(event, \"field\", index);\r\n this.conditionList[index].field = event;\r\n }\r\n\r\n changeConditionOn(event, index) {\r\n this.conditionCheck(event, \"on\", index);\r\n this.conditionList[index].on = event;\r\n }\r\n\r\n onOwnDate(event, index, type) {\r\n if (type == \"date\") {\r\n this.dateDate[index] = event.value;\r\n } else {\r\n this.dateTime[index] = event;\r\n }\r\n if (this.dateTime[index] != \"\" && this.dateTime[index] != undefined) {\r\n let nd = new Date(this.dateDate[index]);\r\n nd.setHours(parseInt(this.dateTime[index].split(\":\")[0]));\r\n nd.setMinutes(parseInt(this.dateTime[index].split(\":\")[1]));\r\n this.dateDate[index] = nd;\r\n } else {\r\n setTimeout(() => {\r\n this.dateTime[index] = \"00:00\";\r\n }, 0);\r\n }\r\n this.conditionList[index] = {\r\n target: this.conditionList[index].target,\r\n condition: this.conditionList[index].condition,\r\n field: this.conditionList[index].field,\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n this.conditionCheck(event, \"date\", index);\r\n this.conditionList[index].date = this.dateDate[index];\r\n }\r\n\r\n onOwnDateLoad(index) {\r\n let nd = this.conditionList[index].date.split(\"-\");\r\n let date = new Date(nd[1] + \"-\" + nd[0] + \"-\" + nd[2]);\r\n this.dateDate[index] = date;\r\n this.dateTime[index] = (\"0\" + date.getHours()).slice(-2) + \":\" + (\"0\" + date.getMinutes()).slice(-2);\r\n }\r\n\r\n changeValue(event, index) {\r\n this.conditionCheck(event, \"value\", index);\r\n this.conditionList[index].value = event.target.value;\r\n }\r\n\r\n getMask() {\r\n if (this.data.data.mask == \"\") {\r\n this.currentMask = this.maskList[0];\r\n this.applyMask(null);\r\n } else {\r\n if (this.data.data.mask.split(\"_\").length == 2) {\r\n let maskUpk = this.data.data.mask.split(\"_\")[0];\r\n let value = this.maskList[1];\r\n [].forEach.call(this.maskList, (e) => {\r\n if (e.id == maskUpk) {\r\n this.currentMask = e;\r\n value = e.value;\r\n }\r\n });\r\n this.applyMask(null);\r\n } else if (this.data.data.mask.search(\"AAAAA\") == 0 || this.data.data.mask == \"limit\") {\r\n let value = this.maskList[1];\r\n [].forEach.call(this.maskList, (e) => {\r\n if (e.id == \"limit\") {\r\n this.currentMask = e;\r\n value = this.data.data.mask.length;\r\n }\r\n });\r\n this.currentMask.value = value.toString();\r\n this.applyMask(this.currentMask.value);\r\n } else if (this.data.data.mask.search(\"00000\") == 0 || this.data.data.mask == \"numlim\") {\r\n let value = this.maskList[1];\r\n [].forEach.call(this.maskList, (e) => {\r\n if (e.id == \"numlim\") {\r\n this.currentMask = e;\r\n value = this.data.data.mask.length;\r\n }\r\n });\r\n this.currentMask.value = value.toString();\r\n this.applyMask(this.currentMask.value);\r\n } else if (this.data.data.mask == \"word\") {\r\n let check = false;\r\n [].forEach.call(this.maskList, (e) => {\r\n if (e.id == this.data.data.mask) {\r\n this.currentMask = e;\r\n check = true;\r\n }\r\n });\r\n if (!check) {\r\n this.currentMask = this.maskList[1];\r\n }\r\n this.applyMask(null);\r\n } else {\r\n let check = false;\r\n [].forEach.call(this.maskList, (e) => {\r\n if (e.value == this.data.data.mask) {\r\n this.currentMask = e;\r\n check = true;\r\n }\r\n });\r\n if (!check) {\r\n this.currentMask = this.maskList[1];\r\n }\r\n this.applyMask(null);\r\n }\r\n }\r\n }\r\n\r\n changeMask(event) {\r\n [].forEach.call(this.maskList, (e) => {\r\n if (e.id == event) {\r\n this.currentMask = e;\r\n this.applyMask(null);\r\n }\r\n });\r\n }\r\n\r\n applyMask(event) {\r\n if (event != null) {\r\n this.currentMask.value = event;\r\n }\r\n if (this.currentMask.id == \"number\") {\r\n this.mask = \"number_1\";\r\n } else if (this.currentMask.id == \"limit\") {\r\n let number = 5;\r\n if (event != null) {\r\n number = parseInt(this.currentMask.value);\r\n }\r\n if (number < 5) {\r\n number = 5;\r\n }\r\n this.mask = \"A\".repeat(number);\r\n setTimeout(() => {\r\n this.currentMask.value = number.toString();\r\n }, 0);\r\n } else if (this.currentMask.id == \"numlim\") {\r\n let number = 5;\r\n if (event != null) {\r\n number = parseInt(this.currentMask.value);\r\n }\r\n if (number < 5) {\r\n number = 5;\r\n }\r\n this.mask = \"0\".repeat(number);\r\n setTimeout(() => {\r\n this.currentMask.value = number.toString();\r\n }, 0);\r\n } else if (this.currentMask.id == \"email\") {\r\n this.mask = \"email_1\";\r\n } else if (this.currentMask.id == \"word\") {\r\n this.mask = \"word_1\";\r\n } else {\r\n this.mask = this.currentMask.value;\r\n }\r\n }\r\n\r\n changeCondition(event, type, index) {\r\n if (type == \"target\") {\r\n this.conditionList[index] = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n } else if (type == \"condition\") {\r\n this.conditionList[index] = {\r\n target: this.conditionList[index].target,\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n }\r\n this.dateDate[index] = \"\";\r\n this.dateTime[index] = \"\";\r\n this.conditionCheck(event, type, index);\r\n this.conditionList[index][type] = event;\r\n }\r\n\r\n conditionCheck(event, type, index) {\r\n switch (type) {\r\n case \"target\":\r\n if (event == \"\") {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case \"condition\":\r\n if (\r\n event == \"moredate\" ||\r\n event == \"lessdate\" ||\r\n event == \"isdate\" ||\r\n event == \"notdate\" ||\r\n event == \"morenumber\" ||\r\n event == \"lessnumber\" ||\r\n event == \"isnumber\" ||\r\n event == \"notnumber\" ||\r\n event == \"\"\r\n ) {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n case \"field\":\r\n if (\r\n (this.conditionList[index].condition == \"isdate\" ||\r\n this.conditionList[index].condition == \"notdate\" ||\r\n this.conditionList[index].condition == \"isnumber\" ||\r\n this.conditionList[index].condition == \"notnumber\") &&\r\n event != \"\" &&\r\n event != \"1\"\r\n ) {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case \"date\":\r\n if (event == \"\") {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n case \"on\":\r\n if (event == \"0\") {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case \"value\":\r\n if (event.target.value == \"\") {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n }\r\n let check = true;\r\n [].forEach.call(this.conditionFinArray, (e) => {\r\n if (e == false) {\r\n check = false;\r\n }\r\n });\r\n this.conditionFinish = check;\r\n }\r\n\r\n loadTarget(event, index) {\r\n this.conditionValues[index] = [];\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push({ name: \"0\", value: \"\", pl: \"\" });\r\n this.conditionOn[index] = [];\r\n let datas: any[] = [];\r\n datas = this.data.list;\r\n let target = datas.filter((x) => x.key.split(\"|\")[0] === event.value.split(\"|\")[0]).map((x) => x);\r\n if (target.length == 0) {\r\n this.conditionList.length = 1;\r\n this.conditionList[0] = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.conditionValues[0] = [];\r\n this.conditionMore[0] = [];\r\n this.conditionOn[0] = [];\r\n return false;\r\n }\r\n this.conditionFinArray[index] = true;\r\n let array: any;\r\n switch (target[0].type) {\r\n case \"select\":\r\n array = this.dataPacker(target[0].selectors);\r\n [].forEach.call(array.list, (e) => {\r\n this.conditionValues[index].push(e);\r\n });\r\n break;\r\n case \"input\":\r\n let check = 0;\r\n if (target[0].mask != \"\" && target[0].mask != null && target[0].mask != undefined) {\r\n let mask = target[0].mask.split(\"_\");\r\n if (mask[0] == \"number\") {\r\n check = 1;\r\n }\r\n }\r\n if (check == 1) {\r\n this.conditionValues[index].push(\r\n { name: \"fill\", value: \"Числове поле заповнене\" },\r\n { name: \"empty\", value: \"Числове поле порожнє\" },\r\n { name: \"morenumber\", value: \"Число більше\" },\r\n { name: \"lessnumber\", value: \"Число меньше\" },\r\n { name: \"isnumber\", value: \"Число дорівнює\" },\r\n { name: \"notnumber\", value: \"Число не дорівнює\" }\r\n );\r\n let list = [];\r\n [].forEach.call(this.data.list, (e) => {\r\n if (e.type == \"input\") {\r\n if (e.mask != \"\" && e.mask != null && e.mask != undefined) {\r\n let mask = e.mask.split(\"_\");\r\n if (mask[0] == \"number\") {\r\n list.push(e);\r\n }\r\n }\r\n }\r\n });\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push({ name: \"0\", value: \"*Ввести власні дані*\" });\r\n [].forEach.call(list, (e) => {\r\n this.conditionMore[index].push({ name: e.key, value: e.tableLabel });\r\n });\r\n let indexF = this.conditionMore[index]\r\n .map(function (e) {\r\n return e.name.split(\"|\")[0];\r\n })\r\n .indexOf(target[0].key.split(\"|\")[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[index].splice(indexF, 1);\r\n }\r\n if (this.conditionList[index].field == \"0\") {\r\n this.conditionOn[index].push({ name: \"2\", value: \"ніж (строго більше чи меньше)\" });\r\n } else {\r\n this.conditionOn[index].push({ name: \"0\", value: \"ніж (строго більше чи меньше)\" }, { name: \"1\", value: \"на (число)\" });\r\n }\r\n } else {\r\n this.conditionValues[index].push({ name: \"fill\", value: \"Текстове поле заповнене\" }, { name: \"empty\", value: \"Текстове поле порожнє\" });\r\n }\r\n break;\r\n case \"radio\":\r\n array = this.dataPacker(target[0].selectors);\r\n [].forEach.call(array.list, (e) => {\r\n this.conditionValues[index].push(e);\r\n });\r\n break;\r\n case \"checkbox\":\r\n this.conditionValues[index].push({ name: \"check\", value: \"Поле відмічене\" }, { name: \"uncheck\", value: \"Поле не відмічене\" });\r\n break;\r\n case \"date\":\r\n this.conditionValues[index].push(\r\n { name: \"date\", value: \"Дата вказана\" },\r\n { name: \"nodate\", value: \"Дата не вказана\" },\r\n { name: \"moredate\", value: \"Дата більше\" },\r\n { name: \"lessdate\", value: \"Дата меньше\" },\r\n { name: \"isdate\", value: \"Дата дорівнює\" },\r\n { name: \"notdate\", value: \"Дата не дорівнює\" }\r\n );\r\n let list = [];\r\n [].forEach.call(this.data.list, (e) => {\r\n if (e.type == \"date\") {\r\n list.push(e);\r\n }\r\n });\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push({ name: \"0\", value: \"*Поточна дата*\", pl: \"кількість годин (днів, місяців, років)\" }, { name: \"1\", value: \"*Власна дата*\" });\r\n [].forEach.call(list, (e) => {\r\n this.conditionMore[index].push({ name: e.key, value: e.tableLabel });\r\n });\r\n let indexF = this.conditionMore[index]\r\n .map(function (e) {\r\n return e.name.split(\"|\")[0];\r\n })\r\n .indexOf(this.data.data.key.split(\"|\")[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[index].splice(indexF, 1);\r\n }\r\n indexF = this.conditionMore[index]\r\n .map(function (e) {\r\n return e.name.split(\"|\")[0];\r\n })\r\n .indexOf(target[0].key.split(\"|\")[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[index].splice(indexF, 1);\r\n }\r\n this.conditionOn[index].push(\r\n { name: \"0\", value: \"ніж (строго більше чи меньше)\" },\r\n { name: \"1\", value: \"на (днів)\" },\r\n { name: \"2\", value: \"на (місяців)\" },\r\n { name: \"3\", value: \"на (років)\" }\r\n );\r\n if (target[0].mask == \"time\") {\r\n this.conditionOn[index].push({ name: \"4\", value: \"на (годин)\" });\r\n }\r\n break;\r\n case \"file\":\r\n this.conditionValues[index].push({ name: \"file\", value: \"Файл вибрано\" }, { name: \"nofile\", value: \"Файл відсутній\" });\r\n break;\r\n case \"editor\":\r\n this.conditionValues[index].push({ name: \"fillE\", value: \"Редактор заповненний\" }, { name: \"emptyE\", value: \"Редактор порожній\" });\r\n break;\r\n }\r\n }\r\n\r\n dataPacker(value) {\r\n let selectors = {\r\n type: \"\",\r\n list: [],\r\n };\r\n if (value != null && value.list == undefined) {\r\n selectors.type = value.split(\"*T*\")[1].split(\"*L*\")[0];\r\n if (selectors.type == \"lib\") {\r\n let list = [];\r\n let valList = value.split(\"*L*\")[1];\r\n [].forEach.call(this.userDataTypeValue, (e) => {\r\n if (e.Parent == parseInt(valList)) {\r\n list.push(e);\r\n }\r\n });\r\n selectors.list = [];\r\n [].forEach.call(list, (e, index) => {\r\n selectors.list.push({ name: \"option_\" + index, value: e.Title, email: e.Email });\r\n });\r\n } else {\r\n let list = value.split(\"*L*\")[1].split(\"*I*\");\r\n [].forEach.call(list, (e, index) => {\r\n let text = e.split(\"|\");\r\n let array = {\r\n name: text[0],\r\n value: text[1],\r\n dialog: text[2],\r\n };\r\n list[index] = array;\r\n });\r\n selectors.list = list;\r\n }\r\n return selectors;\r\n } else {\r\n if (value.type == \"lib\" && value.id == undefined) {\r\n selectors.type = value.type;\r\n let list = [];\r\n [].forEach.call(this.userDataTypeValue, (e) => {\r\n if (e.Parent == parseInt(value.list[0].name)) {\r\n list.push(e);\r\n }\r\n });\r\n selectors.list = [];\r\n [].forEach.call(list, (e, index) => {\r\n selectors.list.push({ name: \"option_\" + index, value: e.Title, email: e.Email });\r\n });\r\n return selectors;\r\n } else {\r\n return value;\r\n }\r\n }\r\n }\r\n\r\n saveMenu(data) {\r\n let condition;\r\n if (this.conditionList[0].target != \"\" && this.conditionList[0].target != undefined && this.conditionList[0].target != null) {\r\n condition = this.conditionList;\r\n [].forEach.call(condition, (e, index) => {\r\n if (e.date != null && e.date != \"\") {\r\n e.date = new Date(e.date);\r\n condition[index].date =\r\n (\"0\" + e.date.getDate()).slice(-2) +\r\n \"-\" +\r\n (\"0\" + (e.date.getMonth() + 1)).slice(-2) +\r\n \"-\" +\r\n e.date.getFullYear() +\r\n \" \" +\r\n (\"0\" + e.date.getHours()).slice(-2) +\r\n \":\" +\r\n (\"0\" + e.date.getMinutes()).slice(-2);\r\n }\r\n });\r\n } else {\r\n condition = null;\r\n }\r\n let clone = \"\";\r\n if (this.cloneData.form != \"\") {\r\n clone = this.cloneData.form + \"|\" + this.cloneData.target;\r\n }\r\n let dub = \"\";\r\n if (this.dubData.form != \"\") {\r\n dub = this.dubData.form + \"|\" + this.dubData.target;\r\n }\r\n let label = this.data.data.label;\r\n if (this.data.data.id == 0 || this.data.data.id == undefined) {\r\n label = data.name;\r\n }\r\n let labelSplit = label.split(\"*L*\");\r\n if (labelSplit.length > 1) {\r\n if (labelSplit[0].split(\"*I*\").length == 1) {\r\n labelSplit.splice(0, 1);\r\n }\r\n }\r\n label = labelSplit.join(\"*L*\");\r\n let json = {\r\n label: label,\r\n requestAttributeId: this.data.data.requestAttributeId,\r\n key: this.data.data.key,\r\n type: this.data.data.type,\r\n placeholder: this.data.data.placeholder,\r\n description: this.data.data.description,\r\n mask: this.mask,\r\n tooltip: this.data.data.tooltip,\r\n disabled: data.disabled,\r\n display: true,\r\n required: data.required,\r\n condition: condition,\r\n columns: this.data.data.columns,\r\n clone: clone,\r\n dub: dub,\r\n aligment: data.aligment,\r\n\r\n tableDescription: data.description,\r\n tableDialog: null,\r\n tableLabel: data.name,\r\n tablePlaceholder: data.placeholder,\r\n tableTooltip: data.tooltip,\r\n };\r\n\r\n let index = this.data.list.indexOf(this.data.data);\r\n this.dialogRef.close([\"save\", index, json, this.data.list]);\r\n }\r\n\r\n onClose(): void {\r\n if (isChange) {\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: { text: \"Увага! Налаштування поля форми не буде збережено. Продовжити?\" },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n if (this.backupCondition.length == 0) {\r\n this.data.data.condition = null;\r\n } else {\r\n this.data.data.condition = JSON.parse(JSON.stringify(this.backupCondition));\r\n }\r\n this.dialogRef.close();\r\n }\r\n });\r\n } else {\r\n if (this.backupCondition.length == 0) {\r\n this.data.data.condition = null;\r\n } else {\r\n this.data.data.condition = JSON.parse(JSON.stringify(this.backupCondition));\r\n }\r\n this.dialogRef.close();\r\n }\r\n isChange = false;\r\n }\r\n\r\n onRemove() {\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: { text: \"Увага! Ви дійсно бажаєте видалити це поле?\" },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n let index = this.data.list.indexOf(this.data.data);\r\n this.dialogRef.close([\"remove\", index, this.data.list]);\r\n }\r\n });\r\n }\r\n}\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Checkbox Component\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n@Component({\r\n selector: \"checkbox-component\",\r\n templateUrl: \"./component/checkbox.html\",\r\n styleUrls: [\"./admin.css\"],\r\n providers: [\r\n AdminPage,\r\n { provide: MAT_DATE_LOCALE, useValue: \"uk-UA\" },\r\n { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS] },\r\n { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },\r\n ],\r\n})\r\nexport class CheckboxComponent {\r\n titleFormControl = new FormControl();\r\n conditionList: ConditionList[] = new Array();\r\n conditionValues: any[] = [];\r\n conditionMore: any[] = [];\r\n conditionOn: any[] = [];\r\n mask: string = \"\";\r\n dateDate: any[] = [];\r\n dateTime: any[] = [];\r\n userDataTypeValue: any[] = [];\r\n fieldDisabled: boolean = false;\r\n\r\n conditionFinArray: any[] = [];\r\n conditionFinish: boolean = true;\r\n\r\n titleAligment: any = \"\";\r\n\r\n backupCondition: any[] = [];\r\n\r\n isLoad: boolean = false;\r\n loadColor: ThemePalette = \"primary\";\r\n loadMode: ProgressSpinnerMode = \"indeterminate\";\r\n loadValue: number = 50;\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: DialogData, private admin: AdminPage, public dialog: MatDialog, private http: HttpClient) {\r\n isChange = false;\r\n this.isLoad = true;\r\n\r\n if (this.data.data.condition != undefined && this.data.data.condition != null && this.data.data.condition != \"\") {\r\n this.backupCondition = JSON.parse(JSON.stringify(this.data.data.condition));\r\n }\r\n if (this.data.data.aligment == null || this.data.data.aligment == undefined) {\r\n this.data.data.aligment = \"\";\r\n }\r\n if (this.data.data.disabled != undefined) {\r\n this.fieldDisabled = JSON.parse(this.data.data.disabled);\r\n }\r\n this.titleFormControl = new FormControl(data.data.tableLabel, [Validators.required]);\r\n let value: ConditionList = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.conditionList.push(value);\r\n let interval = setInterval(() => {\r\n if (!this.isLoad) {\r\n clearInterval(interval);\r\n if (this.data.data.condition != null) {\r\n this.conditionList = this.data.data.condition;\r\n [].forEach.call(this.conditionList, (e, index) => {\r\n this.loadTarget({ value: e.target }, index);\r\n this.onOwnDateLoad(index);\r\n });\r\n }\r\n }\r\n }, 50);\r\n\r\n this.dbRequest(\"Lib\");\r\n }\r\n\r\n dbRequest(type) {\r\n switch (type) {\r\n case \"Lib\":\r\n this.http.get(this.admin.getUrl() + \"userDataTypeValue\").subscribe((data) => {\r\n this.userDataTypeValue = [];\r\n [].forEach.call(data, (e) => {\r\n let tableTitle = e.value.split(\"*L*\");\r\n let elements = tableTitle.filter((x) => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n\r\n this.userDataTypeValue.push({ Id: e.id, Title: tableTitle, Email: e.email, Parent: e.uerDataTypeId });\r\n });\r\n this.isLoad = false;\r\n });\r\n break;\r\n }\r\n }\r\n\r\n changeAlign(value) {\r\n this.titleAligment = value;\r\n }\r\n\r\n changeRegister() {\r\n isChange = true;\r\n }\r\n\r\n editCondition(index) {\r\n if (index == -1) {\r\n let value: ConditionList = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.conditionList.push(value);\r\n this.conditionValues.push([]);\r\n this.conditionMore.push([]);\r\n this.conditionOn.push([]);\r\n this.dateDate.push([]);\r\n this.dateTime.push([]);\r\n this.conditionFinArray.push([]);\r\n } else {\r\n this.conditionList.splice(index, 1);\r\n this.conditionValues.splice(index, 1);\r\n this.conditionMore.splice(index, 1);\r\n this.conditionOn.splice(index, 1);\r\n this.dateDate.splice(index, 1);\r\n this.dateTime.splice(index, 1);\r\n this.conditionFinArray.splice(index, 1);\r\n }\r\n }\r\n\r\n changeConditionMore(event, index) {\r\n if (\r\n this.conditionList[index].condition == \"morenumber\" ||\r\n this.conditionList[index].condition == \"lessnumber\" ||\r\n this.conditionList[index].condition == \"isnumber\" ||\r\n this.conditionList[index].condition == \"notnumber\"\r\n ) {\r\n this.conditionOn[index] = [];\r\n if (event == \"0\") {\r\n this.conditionOn[index].push({ name: \"2\", value: \"ніж\" });\r\n } else {\r\n this.conditionOn[index].push({ name: \"0\", value: \"ніж\" }, { name: \"1\", value: \"на\" });\r\n }\r\n }\r\n this.conditionList[index] = {\r\n target: this.conditionList[index].target,\r\n condition: this.conditionList[index].condition,\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n this.dateDate[index] = \"\";\r\n this.dateTime[index] = \"\";\r\n this.conditionCheck(event, \"field\", index);\r\n this.conditionList[index].field = event;\r\n }\r\n\r\n changeConditionOn(event, index) {\r\n this.conditionCheck(event, \"on\", index);\r\n this.conditionList[index].on = event;\r\n }\r\n\r\n onOwnDate(event, index, type) {\r\n if (type == \"date\") {\r\n this.dateDate[index] = event.value;\r\n } else {\r\n this.dateTime[index] = \"\";\r\n setTimeout(() => {\r\n this.dateTime[index] = event;\r\n }, 0);\r\n }\r\n if (this.dateTime[index] != \"\" && this.dateTime[index] != undefined) {\r\n let nd = new Date(this.dateDate[index]);\r\n nd.setHours(parseInt(this.dateTime[index].split(\":\")[0]));\r\n nd.setMinutes(parseInt(this.dateTime[index].split(\":\")[1]));\r\n this.dateDate[index] = nd;\r\n } else {\r\n setTimeout(() => {\r\n this.dateTime[index] = \"00:00\";\r\n }, 0);\r\n }\r\n this.conditionList[index] = {\r\n target: this.conditionList[index].target,\r\n condition: this.conditionList[index].condition,\r\n field: this.conditionList[index].field,\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n this.conditionCheck(event, \"date\", index);\r\n this.conditionList[index].date = this.dateDate[index];\r\n }\r\n\r\n onOwnDateLoad(index) {\r\n let nd = this.conditionList[index].date.split(\"-\");\r\n let date = new Date(nd[1] + \"-\" + nd[0] + \"-\" + nd[2]);\r\n this.dateDate[index] = date;\r\n this.dateTime[index] = (\"0\" + date.getHours()).slice(-2) + \":\" + (\"0\" + date.getMinutes()).slice(-2);\r\n }\r\n\r\n changeValue(event, index) {\r\n this.conditionCheck(event, \"value\", index);\r\n this.conditionList[index].value = event.target.value;\r\n }\r\n\r\n changeCondition(event, type, index) {\r\n if (type == \"target\") {\r\n this.conditionList[index] = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n } else if (type == \"condition\") {\r\n this.conditionList[index] = {\r\n target: this.conditionList[index].target,\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n }\r\n this.dateDate[index] = \"\";\r\n this.dateTime[index] = \"\";\r\n this.conditionCheck(event, type, index);\r\n this.conditionList[index][type] = event;\r\n }\r\n\r\n conditionCheck(event, type, index) {\r\n switch (type) {\r\n case \"target\":\r\n if (event == \"\") {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case \"condition\":\r\n if (\r\n event == \"moredate\" ||\r\n event == \"lessdate\" ||\r\n event == \"isdate\" ||\r\n event == \"notdate\" ||\r\n event == \"morenumber\" ||\r\n event == \"lessnumber\" ||\r\n event == \"isnumber\" ||\r\n event == \"notnumber\" ||\r\n event == \"\"\r\n ) {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n case \"field\":\r\n if (\r\n (this.conditionList[index].condition == \"isdate\" ||\r\n this.conditionList[index].condition == \"notdate\" ||\r\n this.conditionList[index].condition == \"isnumber\" ||\r\n this.conditionList[index].condition == \"notnumber\") &&\r\n event != \"\" &&\r\n event != \"1\"\r\n ) {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case \"date\":\r\n if (event == \"\") {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n case \"on\":\r\n if (event == \"0\") {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case \"value\":\r\n if (event.target.value == \"\") {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n }\r\n let check = true;\r\n [].forEach.call(this.conditionFinArray, (e) => {\r\n if (e == false) {\r\n check = false;\r\n }\r\n });\r\n this.conditionFinish = check;\r\n }\r\n\r\n loadTarget(event, index) {\r\n this.conditionValues[index] = [];\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push({ name: \"0\", value: \"\", pl: \"\" });\r\n this.conditionOn[index] = [];\r\n let datas: any[] = [];\r\n datas = this.data.list;\r\n let target = datas.filter((x) => x.key.split(\"|\")[0] === event.value.split(\"|\")[0]).map((x) => x);\r\n if (target.length == 0) {\r\n this.conditionList.length = 1;\r\n this.conditionList[0] = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.conditionValues[0] = [];\r\n this.conditionMore[0] = [];\r\n this.conditionOn[0] = [];\r\n return false;\r\n }\r\n this.conditionFinArray[index] = true;\r\n let array: any;\r\n switch (target[0].type) {\r\n case \"select\":\r\n array = this.dataPacker(target[0].selectors);\r\n [].forEach.call(array.list, (e) => {\r\n this.conditionValues[index].push(e);\r\n });\r\n break;\r\n case \"input\":\r\n let check = 0;\r\n if (target[0].mask != \"\" && target[0].mask != null && target[0].mask != undefined) {\r\n let mask = target[0].mask.split(\"_\");\r\n if (mask[0] == \"number\") {\r\n check = 1;\r\n }\r\n }\r\n if (check == 1) {\r\n this.conditionValues[index].push(\r\n { name: \"fill\", value: \"Числове поле заповнене\" },\r\n { name: \"empty\", value: \"Числове поле порожнє\" },\r\n { name: \"morenumber\", value: \"Число більше\" },\r\n { name: \"lessnumber\", value: \"Число меньше\" },\r\n { name: \"isnumber\", value: \"Число дорівнює\" },\r\n { name: \"notnumber\", value: \"Число не дорівнює\" }\r\n );\r\n let list = [];\r\n [].forEach.call(this.data.list, (e) => {\r\n if (e.type == \"input\") {\r\n if (e.mask != \"\" && e.mask != null && e.mask != undefined) {\r\n let mask = e.mask.split(\"_\");\r\n if (mask[0] == \"number\") {\r\n list.push(e);\r\n }\r\n }\r\n }\r\n });\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push({ name: \"0\", value: \"*Ввести власні дані*\" });\r\n [].forEach.call(list, (e) => {\r\n this.conditionMore[index].push({ name: e.key, value: e.tableLabel });\r\n });\r\n let indexF = this.conditionMore[index]\r\n .map(function (e) {\r\n return e.name.split(\"|\")[0];\r\n })\r\n .indexOf(target[0].key.split(\"|\")[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[index].splice(indexF, 1);\r\n }\r\n if (this.conditionList[index].field == \"0\") {\r\n this.conditionOn[index].push({ name: \"2\", value: \"ніж (строго більше чи меньше)\" });\r\n } else {\r\n this.conditionOn[index].push({ name: \"0\", value: \"ніж (строго більше чи меньше)\" }, { name: \"1\", value: \"на (число)\" });\r\n }\r\n } else {\r\n this.conditionValues[index].push({ name: \"fill\", value: \"Текстове поле заповнене\" }, { name: \"empty\", value: \"Текстове поле порожнє\" });\r\n }\r\n break;\r\n case \"radio\":\r\n array = this.dataPacker(target[0].selectors);\r\n [].forEach.call(array.list, (e) => {\r\n this.conditionValues[index].push(e);\r\n });\r\n break;\r\n case \"checkbox\":\r\n this.conditionValues[index].push({ name: \"check\", value: \"Поле відмічене\" }, { name: \"uncheck\", value: \"Поле не відмічене\" });\r\n break;\r\n case \"date\":\r\n this.conditionValues[index].push(\r\n { name: \"date\", value: \"Дата вказана\" },\r\n { name: \"nodate\", value: \"Дата не вказана\" },\r\n { name: \"moredate\", value: \"Дата більше\" },\r\n { name: \"lessdate\", value: \"Дата меньше\" },\r\n { name: \"isdate\", value: \"Дата дорівнює\" },\r\n { name: \"notdate\", value: \"Дата не дорівнює\" }\r\n );\r\n let list = [];\r\n [].forEach.call(this.data.list, (e) => {\r\n if (e.type == \"date\") {\r\n list.push(e);\r\n }\r\n });\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push({ name: \"0\", value: \"*Поточна дата*\", pl: \"кількість годин (днів, місяців, років)\" }, { name: \"1\", value: \"*Власна дата*\" });\r\n [].forEach.call(list, (e) => {\r\n this.conditionMore[index].push({ name: e.key, value: e.tableLabel });\r\n });\r\n let indexF = this.conditionMore[index]\r\n .map(function (e) {\r\n return e.name.split(\"|\")[0];\r\n })\r\n .indexOf(this.data.data.key.split(\"|\")[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[index].splice(indexF, 1);\r\n }\r\n indexF = this.conditionMore[index]\r\n .map(function (e) {\r\n return e.name.split(\"|\")[0];\r\n })\r\n .indexOf(target[0].key.split(\"|\")[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[index].splice(indexF, 1);\r\n }\r\n this.conditionOn[index].push(\r\n { name: \"0\", value: \"ніж (строго більше чи меньше)\" },\r\n { name: \"1\", value: \"на (днів)\" },\r\n { name: \"2\", value: \"на (місяців)\" },\r\n { name: \"3\", value: \"на (років)\" }\r\n );\r\n if (target[0].mask == \"time\") {\r\n this.conditionOn[index].push({ name: \"4\", value: \"на (годин)\" });\r\n }\r\n break;\r\n case \"file\":\r\n this.conditionValues[index].push({ name: \"file\", value: \"Файл вибрано\" }, { name: \"nofile\", value: \"Файл відсутній\" });\r\n break;\r\n case \"editor\":\r\n this.conditionValues[index].push({ name: \"fillE\", value: \"Редактор заповненний\" }, { name: \"emptyE\", value: \"Редактор порожній\" });\r\n break;\r\n }\r\n }\r\n\r\n dataPacker(value) {\r\n let selectors = {\r\n type: \"\",\r\n list: [],\r\n };\r\n if (value != null && value.list == undefined) {\r\n selectors.type = value.split(\"*T*\")[1].split(\"*L*\")[0];\r\n if (selectors.type == \"lib\") {\r\n let list = [];\r\n let valList = value.split(\"*L*\")[1];\r\n [].forEach.call(this.userDataTypeValue, (e) => {\r\n if (e.Parent == parseInt(valList)) {\r\n list.push(e);\r\n }\r\n });\r\n selectors.list = [];\r\n [].forEach.call(list, (e, index) => {\r\n selectors.list.push({ name: \"option_\" + index, value: e.Title, email: e.Email });\r\n });\r\n } else {\r\n let list = value.split(\"*L*\")[1].split(\"*I*\");\r\n [].forEach.call(list, (e, index) => {\r\n let text = e.split(\"|\");\r\n let array = {\r\n name: text[0],\r\n value: text[1],\r\n dialog: text[2],\r\n };\r\n list[index] = array;\r\n });\r\n selectors.list = list;\r\n }\r\n return selectors;\r\n } else {\r\n if (value.type == \"lib\" && value.id == undefined) {\r\n selectors.type = value.type;\r\n let list = [];\r\n [].forEach.call(this.userDataTypeValue, (e) => {\r\n if (e.Parent == parseInt(value.list[0].name)) {\r\n list.push(e);\r\n }\r\n });\r\n selectors.list = [];\r\n [].forEach.call(list, (e, index) => {\r\n selectors.list.push({ name: \"option_\" + index, value: e.Title, email: e.Email });\r\n });\r\n return selectors;\r\n } else {\r\n return value;\r\n }\r\n }\r\n }\r\n\r\n saveMenu(data) {\r\n let condition;\r\n if (this.conditionList[0].target != \"\" && this.conditionList[0].target != null && this.conditionList[0].target != undefined) {\r\n condition = this.conditionList;\r\n [].forEach.call(condition, (e, index) => {\r\n if (e.date != null && e.date != \"\") {\r\n e.date = new Date(e.date);\r\n condition[index].date =\r\n (\"0\" + e.date.getDate()).slice(-2) +\r\n \"-\" +\r\n (\"0\" + (e.date.getMonth() + 1)).slice(-2) +\r\n \"-\" +\r\n e.date.getFullYear() +\r\n \" \" +\r\n (\"0\" + e.date.getHours()).slice(-2) +\r\n \":\" +\r\n (\"0\" + e.date.getMinutes()).slice(-2);\r\n }\r\n });\r\n } else {\r\n condition = null;\r\n }\r\n let label = this.data.data.label;\r\n if (this.data.data.id == 0 || this.data.data.id == undefined) {\r\n label = data.name;\r\n }\r\n let labelSplit = label.split(\"*L*\");\r\n if (labelSplit.length > 1) {\r\n if (labelSplit[0].split(\"*I*\").length == 1) {\r\n labelSplit.splice(0, 1);\r\n }\r\n }\r\n label = labelSplit.join(\"*L*\");\r\n let json = {\r\n label: label,\r\n requestAttributeId: this.data.data.requestAttributeId,\r\n key: this.data.data.key,\r\n type: this.data.data.type,\r\n tooltip: this.data.data.tooltip,\r\n disabled: data.disabled,\r\n display: true,\r\n dialog: this.data.data.dialog,\r\n required: data.required,\r\n condition: condition,\r\n columns: this.data.data.columns,\r\n aligment: data.aligment,\r\n\r\n tableDescription: null,\r\n tableDialog: data.dialog,\r\n tableLabel: data.name,\r\n tablePlaceholder: null,\r\n tableTooltip: data.tooltip,\r\n };\r\n let index = this.data.list.indexOf(this.data.data);\r\n this.dialogRef.close([\"save\", index, json, this.data.list]);\r\n }\r\n\r\n onClose(): void {\r\n if (isChange) {\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: { text: \"Увага! Налаштування поля форми не буде збережено. Продовжити?\" },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n if (this.backupCondition.length == 0) {\r\n this.data.data.condition = null;\r\n } else {\r\n this.data.data.condition = JSON.parse(JSON.stringify(this.backupCondition));\r\n }\r\n this.dialogRef.close();\r\n }\r\n });\r\n } else {\r\n if (this.backupCondition.length == 0) {\r\n this.data.data.condition = null;\r\n } else {\r\n this.data.data.condition = JSON.parse(JSON.stringify(this.backupCondition));\r\n }\r\n this.dialogRef.close();\r\n }\r\n isChange = false;\r\n }\r\n\r\n onRemove() {\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: { text: \"Увага! Ви дійсно бажаєте видалити це поле?\" },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n let index = this.data.list.indexOf(this.data.data);\r\n this.dialogRef.close([\"remove\", index, this.data.list]);\r\n }\r\n });\r\n }\r\n}\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Select Component\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n@Component({\r\n selector: \"select-component\",\r\n templateUrl: \"./component/select.html\",\r\n styleUrls: [\"./admin.css\"],\r\n providers: [\r\n AdminPage,\r\n { provide: MAT_DATE_LOCALE, useValue: \"uk-UA\" },\r\n { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS] },\r\n { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },\r\n ],\r\n})\r\nexport class SelectComponent {\r\n titleFormControl = new FormControl();\r\n conditionList: ConditionList[] = new Array();\r\n optionList: SelectorData[] = [];\r\n selectorList: SelectorList;\r\n conditionValues: any[] = [];\r\n libraryList: any[] = [];\r\n\r\n conditionMore: any[] = [];\r\n conditionOn: any[] = [];\r\n mask: string = \"\";\r\n\r\n dateDate: any[] = [];\r\n dateTime: any[] = [];\r\n userDataTypeValue: any[] = [];\r\n\r\n conditionFinArray: any[] = [];\r\n conditionFinish: boolean = true;\r\n\r\n titleAligment: any = \"\";\r\n\r\n backupCondition: any[] = [];\r\n fieldDisabled: boolean = false;\r\n\r\n isLoad: boolean = false;\r\n loadColor: ThemePalette = \"primary\";\r\n loadMode: ProgressSpinnerMode = \"indeterminate\";\r\n loadValue = 50;\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: DialogData, private admin: AdminPage, public dialog: MatDialog, private http: HttpClient) {\r\n isChange = false;\r\n this.isLoad = true;\r\n\r\n if (this.data.data.condition != undefined && this.data.data.condition != null && this.data.data.condition != \"\") {\r\n this.backupCondition = JSON.parse(JSON.stringify(this.data.data.condition));\r\n }\r\n if (this.data.data.aligment == null || this.data.data.aligment == undefined) {\r\n this.data.data.aligment = \"\";\r\n }\r\n if (this.data.data.disabled != undefined) {\r\n this.fieldDisabled = JSON.parse(this.data.data.disabled);\r\n }\r\n\r\n this.titleFormControl = new FormControl(data.data.tableLabel, [Validators.required]);\r\n let value: ConditionList = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.conditionList.push(value);\r\n\r\n this.selectorList = { type: \"custom\", list: [] };\r\n if (this.data.data.selectors != null) {\r\n this.selectorList = this.data.data.selectors;\r\n }\r\n let interval = setInterval(() => {\r\n if (!this.isLoad) {\r\n clearInterval(interval);\r\n if (this.data.data.condition != null) {\r\n this.conditionList = this.data.data.condition;\r\n [].forEach.call(this.conditionList, (e, index) => {\r\n this.loadTarget({ value: e.target }, index);\r\n this.onOwnDateLoad(index);\r\n });\r\n }\r\n }\r\n }, 50);\r\n if (this.data.data.mask != undefined) {\r\n this.dbRequest(\"User\", true);\r\n this.dbRequest(\"Lib\", false);\r\n } else {\r\n this.dbRequest(\"Lib\", false);\r\n }\r\n }\r\n\r\n dbRequest(type, load) {\r\n switch (type) {\r\n case \"User\":\r\n this.http.get(this.admin.getUrl() + \"userdataType\").subscribe((data) => {\r\n this.libraryList = [];\r\n [].forEach.call(data, (e) => {\r\n let tableTitle = e.title.split(\"*L*\");\r\n let elements = tableTitle.filter((x) => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n e.tableTitle = tableTitle;\r\n\r\n let json = {\r\n name: e.id,\r\n value: tableTitle,\r\n dialog: \"\",\r\n };\r\n this.libraryList.push(json);\r\n });\r\n if (load) {\r\n this.editSelector(\"lib\", parseInt(this.data.data.mask), null);\r\n } else {\r\n this.data.data.mask = this.libraryList[0].name;\r\n this.editSelector(\"lib\", this.libraryList[0].name, null);\r\n }\r\n });\r\n break;\r\n case \"Lib\":\r\n this.http.get(this.admin.getUrl() + \"userDataTypeValue\").subscribe((data) => {\r\n this.userDataTypeValue = [];\r\n [].forEach.call(data, (e) => {\r\n let tableTitle = e.value.split(\"*L*\");\r\n let elements = tableTitle.filter((x) => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n\r\n this.userDataTypeValue.push({ Id: e.id, Title: tableTitle, Email: e.email, Parent: e.uerDataTypeId });\r\n });\r\n this.isLoad = false;\r\n });\r\n break;\r\n }\r\n }\r\n\r\n changeAlign(value) {\r\n this.titleAligment = value;\r\n }\r\n\r\n changeSelector(value) {\r\n this.selectorList.type = value;\r\n if (value == \"custom\") {\r\n this.selectorList.list = [];\r\n this.optionList = [];\r\n } else {\r\n this.dbRequest(\"User\", false);\r\n }\r\n }\r\n\r\n editSelector(type, event, index) {\r\n if (type == \"add\") {\r\n let newVal = 0;\r\n [].forEach.call(this.selectorList.list, (e) => {\r\n let number = parseInt(e.name.split(\"_\")[1]);\r\n if (newVal <= number) {\r\n newVal = number + 1;\r\n }\r\n });\r\n this.selectorList.list.push({ name: \"option_\" + newVal, value: \"\", dialog: \"\" });\r\n } else if (type == \"remove\") {\r\n this.selectorList.list.splice(index, 1);\r\n } else if (type == \"dialog\") {\r\n this.selectorList.list[index].dialog = event;\r\n } else {\r\n if (this.selectorList.type == \"custom\") {\r\n this.selectorList.list[index].value = event;\r\n } else {\r\n this.data.data.mask = event;\r\n this.http.get(this.admin.getUrl() + \"userDataTypeValue\").subscribe((data) => {\r\n this.selectorList.list = [event];\r\n });\r\n }\r\n }\r\n }\r\n\r\n changeRegister() {\r\n isChange = true;\r\n }\r\n\r\n editCondition(index) {\r\n if (index == -1) {\r\n let value: ConditionList = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.conditionList.push(value);\r\n this.conditionValues.push([]);\r\n this.conditionMore.push([]);\r\n this.conditionOn.push([]);\r\n this.dateDate.push([]);\r\n this.dateTime.push([]);\r\n this.conditionFinArray.push([]);\r\n } else {\r\n this.conditionList.splice(index, 1);\r\n this.conditionValues.splice(index, 1);\r\n this.conditionMore.splice(index, 1);\r\n this.conditionOn.splice(index, 1);\r\n this.dateDate.splice(index, 1);\r\n this.dateTime.splice(index, 1);\r\n this.conditionFinArray.splice(index, 1);\r\n }\r\n }\r\n\r\n changeConditionMore(event, index) {\r\n if (\r\n this.conditionList[index].condition == \"morenumber\" ||\r\n this.conditionList[index].condition == \"lessnumber\" ||\r\n this.conditionList[index].condition == \"isnumber\" ||\r\n this.conditionList[index].condition == \"notnumber\"\r\n ) {\r\n this.conditionOn[index] = [];\r\n if (event == \"0\") {\r\n this.conditionOn[index].push({ name: \"2\", value: \"ніж\" });\r\n } else {\r\n this.conditionOn[index].push({ name: \"0\", value: \"ніж\" }, { name: \"1\", value: \"на\" });\r\n }\r\n }\r\n this.conditionList[index] = {\r\n target: this.conditionList[index].target,\r\n condition: this.conditionList[index].condition,\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n this.dateDate[index] = \"\";\r\n this.dateTime[index] = \"\";\r\n this.conditionCheck(event, \"field\", index);\r\n this.conditionList[index].field = event;\r\n }\r\n\r\n changeConditionOn(event, index) {\r\n this.conditionCheck(event, \"on\", index);\r\n this.conditionList[index].on = event;\r\n }\r\n\r\n onOwnDate(event, index, type) {\r\n if (type == \"date\") {\r\n this.dateDate[index] = event.value;\r\n } else {\r\n this.dateTime[index] = \"\";\r\n setTimeout(() => {\r\n this.dateTime[index] = event;\r\n }, 0);\r\n }\r\n if (this.dateTime[index] != \"\" && this.dateTime[index] != undefined) {\r\n let nd = new Date(this.dateDate[index]);\r\n nd.setHours(parseInt(this.dateTime[index].split(\":\")[0]));\r\n nd.setMinutes(parseInt(this.dateTime[index].split(\":\")[1]));\r\n this.dateDate[index] = nd;\r\n } else {\r\n setTimeout(() => {\r\n this.dateTime[index] = \"00:00\";\r\n }, 0);\r\n }\r\n this.conditionList[index] = {\r\n target: this.conditionList[index].target,\r\n condition: this.conditionList[index].condition,\r\n field: this.conditionList[index].field,\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n this.conditionCheck(event, \"date\", index);\r\n this.conditionList[index].date = this.dateDate[index];\r\n }\r\n\r\n onOwnDateLoad(index) {\r\n let nd = this.conditionList[index].date.split(\"-\");\r\n let date = new Date(nd[1] + \"-\" + nd[0] + \"-\" + nd[2]);\r\n this.dateDate[index] = date;\r\n this.dateTime[index] = (\"0\" + date.getHours()).slice(-2) + \":\" + (\"0\" + date.getMinutes()).slice(-2);\r\n }\r\n\r\n changeValue(event, index) {\r\n this.conditionCheck(event, \"value\", index);\r\n this.conditionList[index].value = event.target.value;\r\n }\r\n\r\n changeCondition(event, type, index) {\r\n if (type == \"target\") {\r\n this.conditionList[index] = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n } else if (type == \"condition\") {\r\n this.conditionList[index] = {\r\n target: this.conditionList[index].target,\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n }\r\n this.dateDate[index] = \"\";\r\n this.dateTime[index] = \"\";\r\n this.conditionCheck(event, type, index);\r\n this.conditionList[index][type] = event;\r\n }\r\n\r\n conditionCheck(event, type, index) {\r\n switch (type) {\r\n case \"target\":\r\n if (event == \"\") {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case \"condition\":\r\n if (\r\n event == \"moredate\" ||\r\n event == \"lessdate\" ||\r\n event == \"isdate\" ||\r\n event == \"notdate\" ||\r\n event == \"morenumber\" ||\r\n event == \"lessnumber\" ||\r\n event == \"isnumber\" ||\r\n event == \"notnumber\" ||\r\n event == \"\"\r\n ) {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n case \"field\":\r\n if (\r\n (this.conditionList[index].condition == \"isdate\" ||\r\n this.conditionList[index].condition == \"notdate\" ||\r\n this.conditionList[index].condition == \"isnumber\" ||\r\n this.conditionList[index].condition == \"notnumber\") &&\r\n event != \"\" &&\r\n event != \"1\"\r\n ) {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case \"date\":\r\n if (event == \"\") {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n case \"on\":\r\n if (event == \"0\") {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case \"value\":\r\n if (event.target.value == \"\") {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n }\r\n let check = true;\r\n [].forEach.call(this.conditionFinArray, (e) => {\r\n if (e == false) {\r\n check = false;\r\n }\r\n });\r\n this.conditionFinish = check;\r\n }\r\n\r\n loadTarget(event, index) {\r\n this.conditionValues[index] = [];\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push({ name: \"0\", value: \"\", pl: \"\" });\r\n this.conditionOn[index] = [];\r\n let datas: any[] = [];\r\n datas = this.data.list;\r\n let target = datas.filter((x) => x.key.split(\"|\")[0] === event.value.split(\"|\")[0]).map((x) => x);\r\n if (target.length == 0) {\r\n this.conditionList.length = 1;\r\n this.conditionList[0] = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.conditionValues[0] = [];\r\n this.conditionMore[0] = [];\r\n this.conditionOn[0] = [];\r\n return false;\r\n }\r\n this.conditionFinArray[index] = true;\r\n let array: any;\r\n switch (target[0].type) {\r\n case \"select\":\r\n array = this.dataPacker(target[0].selectors);\r\n [].forEach.call(array.list, (e) => {\r\n this.conditionValues[index].push(e);\r\n });\r\n break;\r\n case \"input\":\r\n let check = 0;\r\n if (target[0].mask != \"\" && target[0].mask != null && target[0].mask != undefined) {\r\n let mask = target[0].mask.split(\"_\");\r\n if (mask[0] == \"number\") {\r\n check = 1;\r\n }\r\n }\r\n if (check == 1) {\r\n this.conditionValues[index].push(\r\n { name: \"fill\", value: \"Числове поле заповнене\" },\r\n { name: \"empty\", value: \"Числове поле порожнє\" },\r\n { name: \"morenumber\", value: \"Число більше\" },\r\n { name: \"lessnumber\", value: \"Число меньше\" },\r\n { name: \"isnumber\", value: \"Число дорівнює\" },\r\n { name: \"notnumber\", value: \"Число не дорівнює\" }\r\n );\r\n let list = [];\r\n [].forEach.call(this.data.list, (e) => {\r\n if (e.type == \"input\") {\r\n if (e.mask != \"\" && e.mask != null && e.mask != undefined) {\r\n let mask = e.mask.split(\"_\");\r\n if (mask[0] == \"number\") {\r\n list.push(e);\r\n }\r\n }\r\n }\r\n });\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push({ name: \"0\", value: \"*Ввести власні дані*\" });\r\n [].forEach.call(list, (e) => {\r\n this.conditionMore[index].push({ name: e.key, value: e.tableLabel });\r\n });\r\n let indexF = this.conditionMore[index]\r\n .map(function (e) {\r\n return e.name.split(\"|\")[0];\r\n })\r\n .indexOf(target[0].key.split(\"|\")[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[index].splice(indexF, 1);\r\n }\r\n if (this.conditionList[index].field == \"0\") {\r\n this.conditionOn[index].push({ name: \"2\", value: \"ніж (строго більше чи меньше)\" });\r\n } else {\r\n this.conditionOn[index].push({ name: \"0\", value: \"ніж (строго більше чи меньше)\" }, { name: \"1\", value: \"на (число)\" });\r\n }\r\n } else {\r\n this.conditionValues[index].push({ name: \"fill\", value: \"Текстове поле заповнене\" }, { name: \"empty\", value: \"Текстове поле порожнє\" });\r\n }\r\n break;\r\n case \"radio\":\r\n array = this.dataPacker(target[0].selectors);\r\n [].forEach.call(array.list, (e) => {\r\n this.conditionValues[index].push(e);\r\n });\r\n break;\r\n case \"checkbox\":\r\n this.conditionValues[index].push({ name: \"check\", value: \"Поле відмічене\" }, { name: \"uncheck\", value: \"Поле не відмічене\" });\r\n break;\r\n case \"date\":\r\n this.conditionValues[index].push(\r\n { name: \"date\", value: \"Дата вказана\" },\r\n { name: \"nodate\", value: \"Дата не вказана\" },\r\n { name: \"moredate\", value: \"Дата більше\" },\r\n { name: \"lessdate\", value: \"Дата меньше\" },\r\n { name: \"isdate\", value: \"Дата дорівнює\" },\r\n { name: \"notdate\", value: \"Дата не дорівнює\" }\r\n );\r\n let list = [];\r\n [].forEach.call(this.data.list, (e) => {\r\n if (e.type == \"date\") {\r\n list.push(e);\r\n }\r\n });\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push({ name: \"0\", value: \"*Поточна дата*\", pl: \"кількість годин (днів, місяців, років)\" }, { name: \"1\", value: \"*Власна дата*\" });\r\n [].forEach.call(list, (e) => {\r\n this.conditionMore[index].push({ name: e.key, value: e.tableLabel });\r\n });\r\n let indexF = this.conditionMore[index]\r\n .map(function (e) {\r\n return e.name.split(\"|\")[0];\r\n })\r\n .indexOf(this.data.data.key.split(\"|\")[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[index].splice(indexF, 1);\r\n }\r\n indexF = this.conditionMore[index]\r\n .map(function (e) {\r\n return e.name.split(\"|\")[0];\r\n })\r\n .indexOf(target[0].key.split(\"|\")[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[index].splice(indexF, 1);\r\n }\r\n this.conditionOn[index].push(\r\n { name: \"0\", value: \"ніж (строго більше чи меньше)\" },\r\n { name: \"1\", value: \"на (днів)\" },\r\n { name: \"2\", value: \"на (місяців)\" },\r\n { name: \"3\", value: \"на (років)\" }\r\n );\r\n if (target[0].mask == \"time\") {\r\n this.conditionOn[index].push({ name: \"4\", value: \"на (годин)\" });\r\n }\r\n break;\r\n case \"file\":\r\n this.conditionValues[index].push({ name: \"file\", value: \"Файл вибрано\" }, { name: \"nofile\", value: \"Файл відсутній\" });\r\n break;\r\n case \"editor\":\r\n this.conditionValues[index].push({ name: \"fillE\", value: \"Редактор заповненний\" }, { name: \"emptyE\", value: \"Редактор порожній\" });\r\n break;\r\n }\r\n }\r\n\r\n dataPacker(value) {\r\n let selectors = {\r\n type: \"\",\r\n list: [],\r\n };\r\n if (value != null && value.list == undefined) {\r\n selectors.type = value.split(\"*T*\")[1].split(\"*L*\")[0];\r\n if (selectors.type == \"lib\") {\r\n let list = [];\r\n let valList = value.split(\"*L*\")[1];\r\n [].forEach.call(this.userDataTypeValue, (e) => {\r\n if (e.Parent == parseInt(valList)) {\r\n list.push(e);\r\n }\r\n });\r\n selectors.list = [];\r\n [].forEach.call(list, (e, index) => {\r\n selectors.list.push({ name: \"option_\" + index, value: e.Title, email: e.Email });\r\n });\r\n } else {\r\n let list = value.split(\"*L*\")[1].split(\"*I*\");\r\n [].forEach.call(list, (e, index) => {\r\n let text = e.split(\"|\");\r\n let array = {\r\n name: text[0],\r\n value: text[1],\r\n dialog: text[2],\r\n };\r\n list[index] = array;\r\n });\r\n selectors.list = list;\r\n }\r\n return selectors;\r\n } else {\r\n if (value.type == \"lib\" && value.id == undefined) {\r\n selectors.type = value.type;\r\n let list = [];\r\n [].forEach.call(this.userDataTypeValue, (e) => {\r\n if (e.Parent == parseInt(value.list[0].name)) {\r\n list.push(e);\r\n }\r\n });\r\n selectors.list = [];\r\n [].forEach.call(list, (e, index) => {\r\n selectors.list.push({ name: \"option_\" + index, value: e.Title, email: e.Email });\r\n });\r\n return selectors;\r\n } else {\r\n return value;\r\n }\r\n }\r\n }\r\n\r\n saveMenu(data) {\r\n let condition;\r\n if (this.conditionList[0].target != \"\" && this.conditionList[0].target != null && this.conditionList[0].target != undefined) {\r\n condition = this.conditionList;\r\n [].forEach.call(condition, (e, index) => {\r\n if (e.date != null && e.date != \"\") {\r\n e.date = new Date(e.date);\r\n condition[index].date =\r\n (\"0\" + e.date.getDate()).slice(-2) +\r\n \"-\" +\r\n (\"0\" + (e.date.getMonth() + 1)).slice(-2) +\r\n \"-\" +\r\n e.date.getFullYear() +\r\n \" \" +\r\n (\"0\" + e.date.getHours()).slice(-2) +\r\n \":\" +\r\n (\"0\" + e.date.getMinutes()).slice(-2);\r\n }\r\n });\r\n } else {\r\n condition = null;\r\n }\r\n let label = this.data.data.label;\r\n if (this.data.data.id == 0 || this.data.data.id == undefined) {\r\n label = data.name;\r\n }\r\n let labelSplit = label.split(\"*L*\");\r\n if (labelSplit.length > 1) {\r\n if (labelSplit[0].split(\"*I*\").length == 1) {\r\n labelSplit.splice(0, 1);\r\n }\r\n }\r\n label = labelSplit.join(\"*L*\");\r\n let json = {\r\n label: label,\r\n requestAttributeId: this.data.data.requestAttributeId,\r\n key: this.data.data.key,\r\n type: this.data.data.type,\r\n description: this.data.data.description,\r\n mask: this.data.data.mask,\r\n tooltip: this.data.data.tooltip,\r\n disabled: data.disabled,\r\n display: true,\r\n required: data.required,\r\n condition: condition,\r\n columns: this.data.data.columns,\r\n selectors: this.selectorList,\r\n aligment: data.aligment,\r\n\r\n tableDescription: data.description,\r\n tableDialog: null,\r\n tableLabel: data.name,\r\n tablePlaceholder: null,\r\n tableTooltip: data.tooltip,\r\n };\r\n let index = this.data.list.indexOf(this.data.data);\r\n this.dialogRef.close([\"save\", index, json, this.data.list]);\r\n }\r\n\r\n onClose(): void {\r\n if (isChange) {\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: { text: \"Увага! Налаштування поля форми не буде збережено. Продовжити?\" },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n if (this.backupCondition.length == 0) {\r\n this.data.data.condition = null;\r\n } else {\r\n this.data.data.condition = JSON.parse(JSON.stringify(this.backupCondition));\r\n }\r\n this.dialogRef.close();\r\n }\r\n });\r\n } else {\r\n if (this.backupCondition.length == 0) {\r\n this.data.data.condition = null;\r\n } else {\r\n this.data.data.condition = JSON.parse(JSON.stringify(this.backupCondition));\r\n }\r\n this.dialogRef.close();\r\n }\r\n isChange = false;\r\n }\r\n\r\n onRemove() {\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: { text: \"Увага! Ви дійсно бажаєте видалити це поле?\" },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n let index = this.data.list.indexOf(this.data.data);\r\n this.dialogRef.close([\"remove\", index, this.data.list]);\r\n }\r\n });\r\n }\r\n}\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Radio Component\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n@Component({\r\n selector: \"radio-component\",\r\n templateUrl: \"./component/radio.html\",\r\n styleUrls: [\"./admin.css\"],\r\n providers: [\r\n AdminPage,\r\n { provide: MAT_DATE_LOCALE, useValue: \"uk-UA\" },\r\n { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS] },\r\n { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },\r\n ],\r\n})\r\nexport class RadioComponent {\r\n titleFormControl = new FormControl();\r\n conditionList: ConditionList[] = new Array();\r\n optionList: SelectorData[] = [];\r\n selectorList: SelectorList;\r\n conditionValues: any[] = [];\r\n\r\n conditionMore: any[] = [];\r\n conditionOn: any[] = [];\r\n mask: string = \"\";\r\n\r\n dateDate: any[] = [];\r\n dateTime: any[] = [];\r\n userDataTypeValue: any[] = [];\r\n\r\n conditionFinArray: any[] = [];\r\n conditionFinish: boolean = true;\r\n\r\n titleAligment: any = \"\";\r\n\r\n backupCondition: any[] = [];\r\n fieldDisabled: boolean = false;\r\n\r\n isLoad: boolean = false;\r\n loadColor: ThemePalette = \"primary\";\r\n loadMode: ProgressSpinnerMode = \"indeterminate\";\r\n loadValue: number = 50;\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: DialogData, private admin: AdminPage, public dialog: MatDialog, private http: HttpClient) {\r\n isChange = false;\r\n this.isLoad = true;\r\n\r\n if (this.data.data.condition != undefined && this.data.data.condition != null && this.data.data.condition != \"\") {\r\n this.backupCondition = JSON.parse(JSON.stringify(this.data.data.condition));\r\n }\r\n if (this.data.data.aligment == null || this.data.data.aligment == undefined) {\r\n this.data.data.aligment = \"\";\r\n }\r\n if (this.data.data.disabled != undefined) {\r\n this.fieldDisabled = JSON.parse(this.data.data.disabled);\r\n }\r\n this.titleFormControl = new FormControl(data.data.tableLabel, [Validators.required]);\r\n let value: ConditionList = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.conditionList.push(value);\r\n\r\n this.selectorList = { type: \"custom\", list: [] };\r\n if (this.data.data.selectors != null) {\r\n this.selectorList.type = this.data.data.selectors.type;\r\n if (this.data.data.selectors != null) {\r\n this.selectorList = this.data.data.selectors;\r\n }\r\n }\r\n let interval = setInterval(() => {\r\n if (!this.isLoad) {\r\n clearInterval(interval);\r\n if (this.data.data.condition != null) {\r\n this.conditionList = this.data.data.condition;\r\n [].forEach.call(this.conditionList, (e, index) => {\r\n this.loadTarget({ value: e.target }, index);\r\n this.onOwnDateLoad(index);\r\n });\r\n }\r\n }\r\n }, 50);\r\n this.dbRequest(\"Lib\");\r\n }\r\n\r\n dbRequest(type) {\r\n switch (type) {\r\n case \"Lib\":\r\n this.http.get(this.admin.getUrl() + \"userDataTypeValue\").subscribe((data) => {\r\n this.userDataTypeValue = [];\r\n [].forEach.call(data, (e) => {\r\n let tableTitle = e.value.split(\"*L*\");\r\n let elements = tableTitle.filter((x) => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n\r\n this.userDataTypeValue.push({ Id: e.id, Title: tableTitle, Email: e.email, Parent: e.uerDataTypeId });\r\n });\r\n this.isLoad = false;\r\n });\r\n break;\r\n }\r\n }\r\n\r\n changeAlign(value) {\r\n this.titleAligment = value;\r\n }\r\n\r\n changeSelector(value) {\r\n this.selectorList.type = value;\r\n }\r\n\r\n editSelector(type, event, index) {\r\n if (type == \"add\") {\r\n let newVal = 0;\r\n [].forEach.call(this.selectorList.list, (e) => {\r\n let number = parseInt(e.name.split(\"_\")[1]);\r\n if (newVal <= number) {\r\n newVal = number + 1;\r\n }\r\n });\r\n this.selectorList.list.push({ name: \"option_\" + newVal, value: \"\", dialog: \"\" });\r\n } else if (type == \"remove\") {\r\n this.selectorList.list.splice(index, 1);\r\n } else if (type == \"dialog\") {\r\n this.selectorList.list[index].dialog = event;\r\n } else {\r\n if (this.selectorList.type == \"custom\") {\r\n this.selectorList.list[index].value = event;\r\n } else {\r\n let newVal = 0;\r\n [].forEach.call(this.selectorList.list, (e) => {\r\n let number = parseInt(e.name.split(\"_\")[1]);\r\n if (newVal <= number) {\r\n newVal = number + 1;\r\n }\r\n });\r\n this.selectorList.list.push({ name: \"option_\" + newVal, value: event, dialog: \"\" });\r\n }\r\n }\r\n }\r\n\r\n changeRegister() {\r\n isChange = true;\r\n }\r\n\r\n editCondition(index) {\r\n if (index == -1) {\r\n let value: ConditionList = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.conditionList.push(value);\r\n this.conditionValues.push([]);\r\n this.conditionMore.push([]);\r\n this.conditionOn.push([]);\r\n this.dateDate.push([]);\r\n this.dateTime.push([]);\r\n this.conditionFinArray.push([]);\r\n } else {\r\n this.conditionList.splice(index, 1);\r\n this.conditionValues.splice(index, 1);\r\n this.conditionMore.splice(index, 1);\r\n this.conditionOn.splice(index, 1);\r\n this.dateDate.splice(index, 1);\r\n this.dateTime.splice(index, 1);\r\n this.conditionFinArray.splice(index, 1);\r\n }\r\n }\r\n\r\n changeConditionMore(event, index) {\r\n if (\r\n this.conditionList[index].condition == \"morenumber\" ||\r\n this.conditionList[index].condition == \"lessnumber\" ||\r\n this.conditionList[index].condition == \"isnumber\" ||\r\n this.conditionList[index].condition == \"notnumber\"\r\n ) {\r\n this.conditionOn[index] = [];\r\n if (event == \"0\") {\r\n this.conditionOn[index].push({ name: \"2\", value: \"ніж\" });\r\n } else {\r\n this.conditionOn[index].push({ name: \"0\", value: \"ніж\" }, { name: \"1\", value: \"на\" });\r\n }\r\n }\r\n this.conditionList[index] = {\r\n target: this.conditionList[index].target,\r\n condition: this.conditionList[index].condition,\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n this.dateDate[index] = \"\";\r\n this.dateTime[index] = \"\";\r\n this.conditionCheck(event, \"field\", index);\r\n this.conditionList[index].field = event;\r\n }\r\n\r\n changeConditionOn(event, index) {\r\n this.conditionCheck(event, \"on\", index);\r\n this.conditionList[index].on = event;\r\n }\r\n\r\n onOwnDate(event, index, type) {\r\n if (type == \"date\") {\r\n this.dateDate[index] = event.value;\r\n } else {\r\n this.dateTime[index] = \"\";\r\n setTimeout(() => {\r\n this.dateTime[index] = event;\r\n }, 0);\r\n }\r\n if (this.dateTime[index] != \"\" && this.dateTime[index] != undefined) {\r\n let nd = new Date(this.dateDate[index]);\r\n nd.setHours(parseInt(this.dateTime[index].split(\":\")[0]));\r\n nd.setMinutes(parseInt(this.dateTime[index].split(\":\")[1]));\r\n this.dateDate[index] = nd;\r\n } else {\r\n setTimeout(() => {\r\n this.dateTime[index] = \"00:00\";\r\n }, 0);\r\n }\r\n this.conditionList[index] = {\r\n target: this.conditionList[index].target,\r\n condition: this.conditionList[index].condition,\r\n field: this.conditionList[index].field,\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n this.conditionCheck(event, \"date\", index);\r\n this.conditionList[index].date = this.dateDate[index];\r\n }\r\n\r\n onOwnDateLoad(index) {\r\n let nd = this.conditionList[index].date.split(\"-\");\r\n let date = new Date(nd[1] + \"-\" + nd[0] + \"-\" + nd[2]);\r\n this.dateDate[index] = date;\r\n this.dateTime[index] = (\"0\" + date.getHours()).slice(-2) + \":\" + (\"0\" + date.getMinutes()).slice(-2);\r\n }\r\n\r\n changeValue(event, index) {\r\n this.conditionCheck(event, \"value\", index);\r\n this.conditionList[index].value = event.target.value;\r\n }\r\n\r\n changeCondition(event, type, index) {\r\n if (type == \"target\") {\r\n this.conditionList[index] = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n } else if (type == \"condition\") {\r\n this.conditionList[index] = {\r\n target: this.conditionList[index].target,\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n }\r\n this.dateDate[index] = \"\";\r\n this.dateTime[index] = \"\";\r\n this.conditionCheck(event, type, index);\r\n this.conditionList[index][type] = event;\r\n }\r\n\r\n conditionCheck(event, type, index) {\r\n switch (type) {\r\n case \"target\":\r\n if (event == \"\") {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case \"condition\":\r\n if (\r\n event == \"moredate\" ||\r\n event == \"lessdate\" ||\r\n event == \"isdate\" ||\r\n event == \"notdate\" ||\r\n event == \"morenumber\" ||\r\n event == \"lessnumber\" ||\r\n event == \"isnumber\" ||\r\n event == \"notnumber\" ||\r\n event == \"\"\r\n ) {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n case \"field\":\r\n if (\r\n (this.conditionList[index].condition == \"isdate\" ||\r\n this.conditionList[index].condition == \"notdate\" ||\r\n this.conditionList[index].condition == \"isnumber\" ||\r\n this.conditionList[index].condition == \"notnumber\") &&\r\n event != \"\" &&\r\n event != \"1\"\r\n ) {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case \"date\":\r\n if (event == \"\") {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n case \"on\":\r\n if (event == \"0\") {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case \"value\":\r\n if (event.target.value == \"\") {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n }\r\n let check = true;\r\n [].forEach.call(this.conditionFinArray, (e) => {\r\n if (e == false) {\r\n check = false;\r\n }\r\n });\r\n this.conditionFinish = check;\r\n }\r\n\r\n loadTarget(event, index) {\r\n this.conditionValues[index] = [];\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push({ name: \"0\", value: \"\", pl: \"\" });\r\n this.conditionOn[index] = [];\r\n let datas: any[] = [];\r\n datas = this.data.list;\r\n let target = datas.filter((x) => x.key.split(\"|\")[0] === event.value.split(\"|\")[0]).map((x) => x);\r\n if (target.length == 0) {\r\n this.conditionList.length = 1;\r\n this.conditionList[0] = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.conditionValues[0] = [];\r\n this.conditionMore[0] = [];\r\n this.conditionOn[0] = [];\r\n return false;\r\n }\r\n this.conditionFinArray[index] = true;\r\n let array: any;\r\n switch (target[0].type) {\r\n case \"select\":\r\n array = this.dataPacker(target[0].selectors);\r\n [].forEach.call(array.list, (e) => {\r\n this.conditionValues[index].push(e);\r\n });\r\n break;\r\n case \"input\":\r\n let check = 0;\r\n if (target[0].mask != \"\" && target[0].mask != null && target[0].mask != undefined) {\r\n let mask = target[0].mask.split(\"_\");\r\n if (mask[0] == \"number\") {\r\n check = 1;\r\n }\r\n }\r\n if (check == 1) {\r\n this.conditionValues[index].push(\r\n { name: \"fill\", value: \"Числове поле заповнене\" },\r\n { name: \"empty\", value: \"Числове поле порожнє\" },\r\n { name: \"morenumber\", value: \"Число більше\" },\r\n { name: \"lessnumber\", value: \"Число меньше\" },\r\n { name: \"isnumber\", value: \"Число дорівнює\" },\r\n { name: \"notnumber\", value: \"Число не дорівнює\" }\r\n );\r\n let list = [];\r\n [].forEach.call(this.data.list, (e) => {\r\n if (e.type == \"input\") {\r\n if (e.mask != \"\" && e.mask != null && e.mask != undefined) {\r\n let mask = e.mask.split(\"_\");\r\n if (mask[0] == \"number\") {\r\n list.push(e);\r\n }\r\n }\r\n }\r\n });\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push({ name: \"0\", value: \"*Ввести власні дані*\" });\r\n [].forEach.call(list, (e) => {\r\n this.conditionMore[index].push({ name: e.key, value: e.tableLabel });\r\n });\r\n let indexF = this.conditionMore[index]\r\n .map(function (e) {\r\n return e.name.split(\"|\")[0];\r\n })\r\n .indexOf(target[0].key.split(\"|\")[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[index].splice(indexF, 1);\r\n }\r\n if (this.conditionList[index].field == \"0\") {\r\n this.conditionOn[index].push({ name: \"2\", value: \"ніж (строго більше чи меньше)\" });\r\n } else {\r\n this.conditionOn[index].push({ name: \"0\", value: \"ніж (строго більше чи меньше)\" }, { name: \"1\", value: \"на (число)\" });\r\n }\r\n } else {\r\n this.conditionValues[index].push({ name: \"fill\", value: \"Текстове поле заповнене\" }, { name: \"empty\", value: \"Текстове поле порожнє\" });\r\n }\r\n break;\r\n case \"radio\":\r\n array = this.dataPacker(target[0].selectors);\r\n [].forEach.call(array.list, (e) => {\r\n this.conditionValues[index].push(e);\r\n });\r\n break;\r\n case \"checkbox\":\r\n this.conditionValues[index].push({ name: \"check\", value: \"Поле відмічене\" }, { name: \"uncheck\", value: \"Поле не відмічене\" });\r\n break;\r\n case \"date\":\r\n this.conditionValues[index].push(\r\n { name: \"date\", value: \"Дата вказана\" },\r\n { name: \"nodate\", value: \"Дата не вказана\" },\r\n { name: \"moredate\", value: \"Дата більше\" },\r\n { name: \"lessdate\", value: \"Дата меньше\" },\r\n { name: \"isdate\", value: \"Дата дорівнює\" },\r\n { name: \"notdate\", value: \"Дата не дорівнює\" }\r\n );\r\n let list = [];\r\n [].forEach.call(this.data.list, (e) => {\r\n if (e.type == \"date\") {\r\n list.push(e);\r\n }\r\n });\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push({ name: \"0\", value: \"*Поточна дата*\", pl: \"кількість годин (днів, місяців, років)\" }, { name: \"1\", value: \"*Власна дата*\" });\r\n [].forEach.call(list, (e) => {\r\n this.conditionMore[index].push({ name: e.key, value: e.tableLabel });\r\n });\r\n let indexF = this.conditionMore[index]\r\n .map(function (e) {\r\n return e.name.split(\"|\")[0];\r\n })\r\n .indexOf(this.data.data.key.split(\"|\")[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[index].splice(indexF, 1);\r\n }\r\n indexF = this.conditionMore[index]\r\n .map(function (e) {\r\n return e.name.split(\"|\")[0];\r\n })\r\n .indexOf(target[0].key.split(\"|\")[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[index].splice(indexF, 1);\r\n }\r\n this.conditionOn[index].push(\r\n { name: \"0\", value: \"ніж (строго більше чи меньше)\" },\r\n { name: \"1\", value: \"на (днів)\" },\r\n { name: \"2\", value: \"на (місяців)\" },\r\n { name: \"3\", value: \"на (років)\" }\r\n );\r\n if (target[0].mask == \"time\") {\r\n this.conditionOn[index].push({ name: \"4\", value: \"на (годин)\" });\r\n }\r\n break;\r\n case \"file\":\r\n this.conditionValues[index].push({ name: \"file\", value: \"Файл вибрано\" }, { name: \"nofile\", value: \"Файл відсутній\" });\r\n break;\r\n case \"editor\":\r\n this.conditionValues[index].push({ name: \"fillE\", value: \"Редактор заповненний\" }, { name: \"emptyE\", value: \"Редактор порожній\" });\r\n break;\r\n }\r\n }\r\n\r\n dataPacker(value) {\r\n let selectors = {\r\n type: \"\",\r\n list: [],\r\n };\r\n if (value != null && value.list == undefined) {\r\n selectors.type = value.split(\"*T*\")[1].split(\"*L*\")[0];\r\n if (selectors.type == \"lib\") {\r\n let list = [];\r\n let valList = value.split(\"*L*\")[1];\r\n [].forEach.call(this.userDataTypeValue, (e) => {\r\n if (e.Parent == parseInt(valList)) {\r\n list.push(e);\r\n }\r\n });\r\n selectors.list = [];\r\n [].forEach.call(list, (e, index) => {\r\n selectors.list.push({ name: \"option_\" + index, value: e.Title, email: e.Email });\r\n });\r\n } else {\r\n let list = value.split(\"*L*\")[1].split(\"*I*\");\r\n [].forEach.call(list, (e, index) => {\r\n let text = e.split(\"|\");\r\n let array = {\r\n name: text[0],\r\n value: text[1],\r\n dialog: text[2],\r\n };\r\n list[index] = array;\r\n });\r\n selectors.list = list;\r\n }\r\n return selectors;\r\n } else {\r\n if (value.type == \"lib\" && value.id == undefined) {\r\n selectors.type = value.type;\r\n let list = [];\r\n [].forEach.call(this.userDataTypeValue, (e) => {\r\n if (e.Parent == parseInt(value.list[0].name)) {\r\n list.push(e);\r\n }\r\n });\r\n selectors.list = [];\r\n [].forEach.call(list, (e, index) => {\r\n selectors.list.push({ name: \"option_\" + index, value: e.Title, email: e.Email });\r\n });\r\n return selectors;\r\n } else {\r\n return value;\r\n }\r\n }\r\n }\r\n\r\n saveMenu(data) {\r\n let condition;\r\n if (this.conditionList[0].target != \"\" && this.conditionList[0].target != null && this.conditionList[0].target != undefined) {\r\n condition = this.conditionList;\r\n [].forEach.call(condition, (e, index) => {\r\n if (e.date != null && e.date != \"\") {\r\n e.date = new Date(e.date);\r\n condition[index].date =\r\n (\"0\" + e.date.getDate()).slice(-2) +\r\n \"-\" +\r\n (\"0\" + (e.date.getMonth() + 1)).slice(-2) +\r\n \"-\" +\r\n e.date.getFullYear() +\r\n \" \" +\r\n (\"0\" + e.date.getHours()).slice(-2) +\r\n \":\" +\r\n (\"0\" + e.date.getMinutes()).slice(-2);\r\n }\r\n });\r\n } else {\r\n condition = null;\r\n }\r\n let label = this.data.data.label;\r\n if (this.data.data.id == 0 || this.data.data.id == undefined) {\r\n label = data.name;\r\n }\r\n let labelSplit = label.split(\"*L*\");\r\n if (labelSplit.length > 1) {\r\n if (labelSplit[0].split(\"*I*\").length == 1) {\r\n labelSplit.splice(0, 1);\r\n }\r\n }\r\n label = labelSplit.join(\"*L*\");\r\n let json = {\r\n label: label,\r\n requestAttributeId: this.data.data.requestAttributeId,\r\n key: this.data.data.key,\r\n type: this.data.data.type,\r\n description: this.data.data.description,\r\n tooltip: this.data.data.tooltip,\r\n disabled: data.disabled,\r\n display: true,\r\n required: data.required,\r\n condition: condition,\r\n columns: this.data.data.columns,\r\n selectors: this.selectorList,\r\n aligment: data.aligment,\r\n\r\n tableDescription: data.description,\r\n tableDialog: null,\r\n tableLabel: data.name,\r\n tablePlaceholder: null,\r\n tableTooltip: data.tooltip,\r\n };\r\n let index = this.data.list.indexOf(this.data.data);\r\n this.dialogRef.close([\"save\", index, json, this.data.list]);\r\n }\r\n\r\n onClose(): void {\r\n if (isChange) {\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: { text: \"Увага! Налаштування поля форми не буде збережено. Продовжити?\" },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n if (this.backupCondition.length == 0) {\r\n this.data.data.condition = null;\r\n } else {\r\n this.data.data.condition = JSON.parse(JSON.stringify(this.backupCondition));\r\n }\r\n this.dialogRef.close();\r\n }\r\n });\r\n } else {\r\n if (this.backupCondition.length == 0) {\r\n this.data.data.condition = null;\r\n } else {\r\n this.data.data.condition = JSON.parse(JSON.stringify(this.backupCondition));\r\n }\r\n this.dialogRef.close();\r\n }\r\n isChange = false;\r\n }\r\n\r\n onRemove() {\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: { text: \"Увага! Ви дійсно бажаєте видалити це поле?\" },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n let index = this.data.list.indexOf(this.data.data);\r\n this.dialogRef.close([\"remove\", index, this.data.list]);\r\n }\r\n });\r\n }\r\n}\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// File Component\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n@Component({\r\n selector: \"file-component\",\r\n templateUrl: \"./component/file.html\",\r\n styleUrls: [\"./admin.css\"],\r\n providers: [\r\n AdminPage,\r\n { provide: MAT_DATE_LOCALE, useValue: \"uk-UA\" },\r\n { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS] },\r\n { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },\r\n ],\r\n})\r\nexport class FileComponent {\r\n titleFormControl = new FormControl();\r\n conditionList: ConditionList[] = new Array();\r\n conditionValues: any[] = [];\r\n\r\n conditionMore: any[] = [];\r\n conditionOn: any[] = [];\r\n mask: string = \"\";\r\n\r\n dateDate: any[] = [];\r\n dateTime: any[] = [];\r\n userDataTypeValue: any[] = [];\r\n\r\n conditionFinArray: any[] = [];\r\n conditionFinish: boolean = true;\r\n\r\n cloneData: any;\r\n cloneList: any;\r\n dubData: any = null;\r\n dubList: any = null;\r\n\r\n titleAligment: any = \"\";\r\n\r\n backupCondition: any[] = [];\r\n fieldDisabled: boolean = false;\r\n\r\n isLoad: boolean = false;\r\n loadColor: ThemePalette = \"primary\";\r\n loadMode: ProgressSpinnerMode = \"indeterminate\";\r\n loadValue = 50;\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: DialogData, private admin: AdminPage, public dialog: MatDialog, private http: HttpClient) {\r\n isChange = false;\r\n this.isLoad = true;\r\n\r\n if (this.data.data.condition != undefined && this.data.data.condition != null && this.data.data.condition != \"\") {\r\n this.backupCondition = JSON.parse(JSON.stringify(this.data.data.condition));\r\n }\r\n if (this.data.data.aligment == null || this.data.data.aligment == undefined) {\r\n this.data.data.aligment = \"\";\r\n }\r\n if (this.data.data.disabled != undefined) {\r\n this.fieldDisabled = JSON.parse(this.data.data.disabled);\r\n }\r\n\r\n this.titleFormControl = new FormControl(data.data.tableLabel, [Validators.required]);\r\n let value: ConditionList = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.conditionList.push(value);\r\n let interval = setInterval(() => {\r\n if (!this.isLoad) {\r\n clearInterval(interval);\r\n if (this.data.data.condition != null) {\r\n this.conditionList = this.data.data.condition;\r\n [].forEach.call(this.conditionList, (e, index) => {\r\n this.loadTarget({ value: e.target }, index);\r\n this.onOwnDateLoad(index);\r\n });\r\n }\r\n }\r\n }, 50);\r\n\r\n this.cloneList = {\r\n form: null,\r\n field: null,\r\n };\r\n\r\n this.cloneData = {\r\n form: \"\",\r\n field: \"\",\r\n };\r\n\r\n this.dubList = {\r\n form: null,\r\n field: null,\r\n };\r\n\r\n this.dubData = {\r\n form: \"\",\r\n field: \"\",\r\n };\r\n\r\n this.dbRequest(\"Form\");\r\n if (this.data.data.clone != null && this.data.data.clone != \"\" && this.data.data.clone != undefined) {\r\n let clone = this.data.data.clone.split(\"|\");\r\n if (clone.length > 1) {\r\n this.cloneData = { form: parseInt(clone[0]), target: parseInt(clone[1]) };\r\n }\r\n this.dbRequest(\"Attr\");\r\n }\r\n if (this.data.data.dub != null && this.data.data.dub != \"\" && this.data.data.dub != undefined) {\r\n let dub = this.data.data.dub.split(\"|\");\r\n if (dub.length > 1) {\r\n this.dubData = { form: parseInt(dub[0]), target: parseInt(dub[1]) };\r\n }\r\n this.dbRequest(\"AttrD\");\r\n }\r\n this.dbRequest(\"Lib\");\r\n }\r\n\r\n dbRequest(type) {\r\n switch (type) {\r\n case \"Form\":\r\n this.http.get(this.admin.getUrl() + \"RequestForm\").subscribe((data) => {\r\n this.cloneList.form = [];\r\n this.dubList.form = [];\r\n [].forEach.call(data, (e) => {\r\n if (e.requestTypeRequestForms.length > 0) {\r\n if (e.requestTypeRequestForms[0].requestTypeId == this.data.type) {\r\n let tableTitle = e.title.split(\"*L*\");\r\n let elements = tableTitle.filter((x) => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n e.tableTitle = tableTitle;\r\n\r\n this.cloneList.form.push(e);\r\n this.dubList.form.push(e);\r\n }\r\n }\r\n });\r\n });\r\n break;\r\n case \"Attr\":\r\n this.http.get(this.admin.getUrl() + \"RequestAttribute\").subscribe((data) => {\r\n this.cloneList.field = [];\r\n [].forEach.call(data, (e) => {\r\n if (e.requestFormId == this.cloneData.form) {\r\n if (e.type == \"input\") {\r\n let tableTitle = e.title.split(\"*L*\");\r\n let elements = tableTitle.filter((x) => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n e.tableTitle = tableTitle;\r\n\r\n this.cloneList.field.push(e);\r\n }\r\n }\r\n });\r\n });\r\n break;\r\n case \"AttrD\":\r\n this.http.get(this.admin.getUrl() + \"RequestAttribute\").subscribe((data) => {\r\n this.dubList.field = [];\r\n [].forEach.call(data, (e) => {\r\n if (e.requestFormId == this.dubData.form) {\r\n if (e.type === this.data.data.type) {\r\n let tableTitle = e.label.split(\"*L*\");\r\n let elements = tableTitle.filter((x) => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n e.tableTitle = tableTitle;\r\n\r\n this.dubList.field.push(e);\r\n }\r\n }\r\n });\r\n });\r\n break;\r\n case \"Lib\":\r\n this.http.get(this.admin.getUrl() + \"userDataTypeValue\").subscribe((data) => {\r\n this.userDataTypeValue = [];\r\n [].forEach.call(data, (e) => {\r\n let tableTitle = e.value.split(\"*L*\");\r\n let elements = tableTitle.filter((x) => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n\r\n this.userDataTypeValue.push({ Id: e.id, Title: tableTitle, Email: e.email, Parent: e.uerDataTypeId });\r\n });\r\n this.isLoad = false;\r\n });\r\n break;\r\n }\r\n }\r\n\r\n changeAlign(value) {\r\n this.titleAligment = value;\r\n }\r\n\r\n changeClone(value, type) {\r\n switch (type) {\r\n case \"form\":\r\n this.cloneData.form = value;\r\n this.cloneData.target = \"\";\r\n this.dbRequest(\"Attr\");\r\n break;\r\n case \"target\":\r\n this.cloneData.target = value;\r\n break;\r\n }\r\n }\r\n\r\n changeDub(value, type) {\r\n switch (type) {\r\n case \"form\":\r\n this.dubData.form = value;\r\n this.dubData.target = \"\";\r\n this.dbRequest(\"AttrD\");\r\n break;\r\n case \"target\":\r\n this.dubData.target = value;\r\n break;\r\n }\r\n }\r\n\r\n changeRegister() {\r\n isChange = true;\r\n }\r\n\r\n editCondition(index) {\r\n if (index == -1) {\r\n let value: ConditionList = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.conditionList.push(value);\r\n this.conditionValues.push([]);\r\n this.conditionMore.push([]);\r\n this.conditionOn.push([]);\r\n this.dateDate.push([]);\r\n this.dateTime.push([]);\r\n this.conditionFinArray.push([]);\r\n } else {\r\n this.conditionList.splice(index, 1);\r\n this.conditionValues.splice(index, 1);\r\n this.conditionMore.splice(index, 1);\r\n this.conditionOn.splice(index, 1);\r\n this.dateDate.splice(index, 1);\r\n this.dateTime.splice(index, 1);\r\n this.conditionFinArray.splice(index, 1);\r\n }\r\n }\r\n\r\n changeConditionMore(event, index) {\r\n if (\r\n this.conditionList[index].condition == \"morenumber\" ||\r\n this.conditionList[index].condition == \"lessnumber\" ||\r\n this.conditionList[index].condition == \"isnumber\" ||\r\n this.conditionList[index].condition == \"notnumber\"\r\n ) {\r\n this.conditionOn[index] = [];\r\n if (event == \"0\") {\r\n this.conditionOn[index].push({ name: \"2\", value: \"ніж\" });\r\n } else {\r\n this.conditionOn[index].push({ name: \"0\", value: \"ніж\" }, { name: \"1\", value: \"на\" });\r\n }\r\n }\r\n this.conditionList[index] = {\r\n target: this.conditionList[index].target,\r\n condition: this.conditionList[index].condition,\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n this.dateDate[index] = \"\";\r\n this.dateTime[index] = \"\";\r\n this.conditionCheck(event, \"field\", index);\r\n this.conditionList[index].field = event;\r\n }\r\n\r\n changeConditionOn(event, index) {\r\n this.conditionCheck(event, \"on\", index);\r\n this.conditionList[index].on = event;\r\n }\r\n\r\n onOwnDate(event, index, type) {\r\n if (type == \"date\") {\r\n this.dateDate[index] = event.value;\r\n } else {\r\n this.dateTime[index] = \"\";\r\n setTimeout(() => {\r\n this.dateTime[index] = event;\r\n }, 0);\r\n }\r\n if (this.dateTime[index] != \"\" && this.dateTime[index] != undefined) {\r\n let nd = new Date(this.dateDate[index]);\r\n nd.setHours(parseInt(this.dateTime[index].split(\":\")[0]));\r\n nd.setMinutes(parseInt(this.dateTime[index].split(\":\")[1]));\r\n this.dateDate[index] = nd;\r\n } else {\r\n setTimeout(() => {\r\n this.dateTime[index] = \"00:00\";\r\n }, 0);\r\n }\r\n this.conditionList[index] = {\r\n target: this.conditionList[index].target,\r\n condition: this.conditionList[index].condition,\r\n field: this.conditionList[index].field,\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n this.conditionCheck(event, \"date\", index);\r\n this.conditionList[index].date = this.dateDate[index];\r\n }\r\n\r\n onOwnDateLoad(index) {\r\n let nd = this.conditionList[index].date.split(\"-\");\r\n let date = new Date(nd[1] + \"-\" + nd[0] + \"-\" + nd[2]);\r\n this.dateDate[index] = date;\r\n this.dateTime[index] = (\"0\" + date.getHours()).slice(-2) + \":\" + (\"0\" + date.getMinutes()).slice(-2);\r\n }\r\n\r\n changeValue(event, index) {\r\n this.conditionCheck(event, \"value\", index);\r\n this.conditionList[index].value = event.target.value;\r\n }\r\n\r\n changeCondition(event, type, index) {\r\n if (type == \"target\") {\r\n this.conditionList[index] = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n } else if (type == \"condition\") {\r\n this.conditionList[index] = {\r\n target: this.conditionList[index].target,\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n }\r\n this.dateDate[index] = \"\";\r\n this.dateTime[index] = \"\";\r\n this.conditionCheck(event, type, index);\r\n this.conditionList[index][type] = event;\r\n }\r\n\r\n conditionCheck(event, type, index) {\r\n switch (type) {\r\n case \"target\":\r\n if (event == \"\") {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case \"condition\":\r\n if (\r\n event == \"moredate\" ||\r\n event == \"lessdate\" ||\r\n event == \"isdate\" ||\r\n event == \"notdate\" ||\r\n event == \"morenumber\" ||\r\n event == \"lessnumber\" ||\r\n event == \"isnumber\" ||\r\n event == \"notnumber\" ||\r\n event == \"\"\r\n ) {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n case \"field\":\r\n if (\r\n (this.conditionList[index].condition == \"isdate\" ||\r\n this.conditionList[index].condition == \"notdate\" ||\r\n this.conditionList[index].condition == \"isnumber\" ||\r\n this.conditionList[index].condition == \"notnumber\") &&\r\n event != \"\" &&\r\n event != \"1\"\r\n ) {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case \"date\":\r\n if (event == \"\") {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n case \"on\":\r\n if (event == \"0\") {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case \"value\":\r\n if (event.target.value == \"\") {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n }\r\n let check = true;\r\n [].forEach.call(this.conditionFinArray, (e) => {\r\n if (e == false) {\r\n check = false;\r\n }\r\n });\r\n this.conditionFinish = check;\r\n }\r\n\r\n loadTarget(event, index) {\r\n this.conditionValues[index] = [];\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push({ name: \"0\", value: \"\", pl: \"\" });\r\n this.conditionOn[index] = [];\r\n let datas: any[] = [];\r\n datas = this.data.list;\r\n let target = datas.filter((x) => x.key.split(\"|\")[0] === event.value.split(\"|\")[0]).map((x) => x);\r\n if (target.length == 0) {\r\n this.conditionList.length = 1;\r\n this.conditionList[0] = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.conditionValues[0] = [];\r\n this.conditionMore[0] = [];\r\n this.conditionOn[0] = [];\r\n return false;\r\n }\r\n this.conditionFinArray[index] = true;\r\n let array: any;\r\n switch (target[0].type) {\r\n case \"select\":\r\n array = this.dataPacker(target[0].selectors);\r\n [].forEach.call(array.list, (e) => {\r\n this.conditionValues[index].push(e);\r\n });\r\n break;\r\n case \"input\":\r\n let check = 0;\r\n if (target[0].mask != \"\" && target[0].mask != null && target[0].mask != undefined) {\r\n let mask = target[0].mask.split(\"_\");\r\n if (mask[0] == \"number\") {\r\n check = 1;\r\n }\r\n }\r\n if (check == 1) {\r\n this.conditionValues[index].push(\r\n { name: \"fill\", value: \"Числове поле заповнене\" },\r\n { name: \"empty\", value: \"Числове поле порожнє\" },\r\n { name: \"morenumber\", value: \"Число більше\" },\r\n { name: \"lessnumber\", value: \"Число меньше\" },\r\n { name: \"isnumber\", value: \"Число дорівнює\" },\r\n { name: \"notnumber\", value: \"Число не дорівнює\" }\r\n );\r\n let list = [];\r\n [].forEach.call(this.data.list, (e) => {\r\n if (e.type == \"input\") {\r\n if (e.mask != \"\" && e.mask != null && e.mask != undefined) {\r\n let mask = e.mask.split(\"_\");\r\n if (mask[0] == \"number\") {\r\n list.push(e);\r\n }\r\n }\r\n }\r\n });\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push({ name: \"0\", value: \"*Ввести власні дані*\" });\r\n [].forEach.call(list, (e) => {\r\n this.conditionMore[index].push({ name: e.key, value: e.tableLabel });\r\n });\r\n let indexF = this.conditionMore[index]\r\n .map(function (e) {\r\n return e.name.split(\"|\")[0];\r\n })\r\n .indexOf(target[0].key.split(\"|\")[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[index].splice(indexF, 1);\r\n }\r\n if (this.conditionList[index].field == \"0\") {\r\n this.conditionOn[index].push({ name: \"2\", value: \"ніж (строго більше чи меньше)\" });\r\n } else {\r\n this.conditionOn[index].push({ name: \"0\", value: \"ніж (строго більше чи меньше)\" }, { name: \"1\", value: \"на (число)\" });\r\n }\r\n } else {\r\n this.conditionValues[index].push({ name: \"fill\", value: \"Текстове поле заповнене\" }, { name: \"empty\", value: \"Текстове поле порожнє\" });\r\n }\r\n break;\r\n case \"radio\":\r\n array = this.dataPacker(target[0].selectors);\r\n [].forEach.call(array.list, (e) => {\r\n this.conditionValues[index].push(e);\r\n });\r\n break;\r\n case \"checkbox\":\r\n this.conditionValues[index].push({ name: \"check\", value: \"Поле відмічене\" }, { name: \"uncheck\", value: \"Поле не відмічене\" });\r\n break;\r\n case \"date\":\r\n this.conditionValues[index].push(\r\n { name: \"date\", value: \"Дата вказана\" },\r\n { name: \"nodate\", value: \"Дата не вказана\" },\r\n { name: \"moredate\", value: \"Дата більше\" },\r\n { name: \"lessdate\", value: \"Дата меньше\" },\r\n { name: \"isdate\", value: \"Дата дорівнює\" },\r\n { name: \"notdate\", value: \"Дата не дорівнює\" }\r\n );\r\n let list = [];\r\n [].forEach.call(this.data.list, (e) => {\r\n if (e.type == \"date\") {\r\n list.push(e);\r\n }\r\n });\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push({ name: \"0\", value: \"*Поточна дата*\", pl: \"кількість годин (днів, місяців, років)\" }, { name: \"1\", value: \"*Власна дата*\" });\r\n [].forEach.call(list, (e) => {\r\n this.conditionMore[index].push({ name: e.key, value: e.tableLabel });\r\n });\r\n let indexF = this.conditionMore[index]\r\n .map(function (e) {\r\n return e.name.split(\"|\")[0];\r\n })\r\n .indexOf(this.data.data.key.split(\"|\")[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[index].splice(indexF, 1);\r\n }\r\n indexF = this.conditionMore[index]\r\n .map(function (e) {\r\n return e.name.split(\"|\")[0];\r\n })\r\n .indexOf(target[0].key.split(\"|\")[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[index].splice(indexF, 1);\r\n }\r\n this.conditionOn[index].push(\r\n { name: \"0\", value: \"ніж (строго більше чи меньше)\" },\r\n { name: \"1\", value: \"на (днів)\" },\r\n { name: \"2\", value: \"на (місяців)\" },\r\n { name: \"3\", value: \"на (років)\" }\r\n );\r\n if (target[0].mask == \"time\") {\r\n this.conditionOn[index].push({ name: \"4\", value: \"на (годин)\" });\r\n }\r\n break;\r\n case \"file\":\r\n this.conditionValues[index].push({ name: \"file\", value: \"Файл вибрано\" }, { name: \"nofile\", value: \"Файл відсутній\" });\r\n break;\r\n case \"editor\":\r\n this.conditionValues[index].push({ name: \"fillE\", value: \"Редактор заповненний\" }, { name: \"emptyE\", value: \"Редактор порожній\" });\r\n break;\r\n }\r\n }\r\n\r\n dataPacker(value) {\r\n let selectors = {\r\n type: \"\",\r\n list: [],\r\n };\r\n if (value != null && value.list == undefined) {\r\n selectors.type = value.split(\"*T*\")[1].split(\"*L*\")[0];\r\n if (selectors.type == \"lib\") {\r\n let list = [];\r\n let valList = value.split(\"*L*\")[1];\r\n [].forEach.call(this.userDataTypeValue, (e) => {\r\n if (e.Parent == parseInt(valList)) {\r\n list.push(e);\r\n }\r\n });\r\n selectors.list = [];\r\n [].forEach.call(list, (e, index) => {\r\n selectors.list.push({ name: \"option_\" + index, value: e.Title, email: e.Email });\r\n });\r\n } else {\r\n let list = value.split(\"*L*\")[1].split(\"*I*\");\r\n [].forEach.call(list, (e, index) => {\r\n let text = e.split(\"|\");\r\n let array = {\r\n name: text[0],\r\n value: text[1],\r\n dialog: text[2],\r\n };\r\n list[index] = array;\r\n });\r\n selectors.list = list;\r\n }\r\n return selectors;\r\n } else {\r\n if (value.type == \"lib\" && value.id == undefined) {\r\n selectors.type = value.type;\r\n let list = [];\r\n [].forEach.call(this.userDataTypeValue, (e) => {\r\n if (e.Parent == parseInt(value.list[0].name)) {\r\n list.push(e);\r\n }\r\n });\r\n selectors.list = [];\r\n [].forEach.call(list, (e, index) => {\r\n selectors.list.push({ name: \"option_\" + index, value: e.Title, email: e.Email });\r\n });\r\n return selectors;\r\n } else {\r\n return value;\r\n }\r\n }\r\n }\r\n\r\n saveMenu(data) {\r\n let condition;\r\n if (this.conditionList[0].target != \"\" && this.conditionList[0].target != null && this.conditionList[0].target != undefined) {\r\n condition = this.conditionList;\r\n [].forEach.call(condition, (e, index) => {\r\n if (e.date != null && e.date != \"\") {\r\n e.date = new Date(e.date);\r\n condition[index].date =\r\n (\"0\" + e.date.getDate()).slice(-2) +\r\n \"-\" +\r\n (\"0\" + (e.date.getMonth() + 1)).slice(-2) +\r\n \"-\" +\r\n e.date.getFullYear() +\r\n \" \" +\r\n (\"0\" + e.date.getHours()).slice(-2) +\r\n \":\" +\r\n (\"0\" + e.date.getMinutes()).slice(-2);\r\n }\r\n });\r\n } else {\r\n condition = null;\r\n }\r\n let clone = \"\";\r\n if (this.cloneData.form != \"\") {\r\n clone = this.cloneData.form + \"|\" + this.cloneData.target;\r\n }\r\n let dub = \"\";\r\n if (this.dubData.form != \"\") {\r\n dub = this.dubData.form + \"|\" + this.dubData.target;\r\n }\r\n let label = this.data.data.label;\r\n if (this.data.data.id == 0 || this.data.data.id == undefined) {\r\n label = data.name;\r\n }\r\n let labelSplit = label.split(\"*L*\");\r\n if (labelSplit.length > 1) {\r\n if (labelSplit[0].split(\"*I*\").length == 1) {\r\n labelSplit.splice(0, 1);\r\n }\r\n }\r\n label = labelSplit.join(\"*L*\");\r\n let json = {\r\n label: label,\r\n requestAttributeId: this.data.data.requestAttributeId,\r\n key: this.data.data.key,\r\n type: this.data.data.type,\r\n description: this.data.data.description,\r\n tooltip: this.data.data.tooltip,\r\n disabled: data.disabled,\r\n display: true,\r\n required: data.required,\r\n condition: condition,\r\n columns: this.data.data.columns,\r\n aligment: data.aligment,\r\n clone: clone,\r\n dub: dub,\r\n\r\n tableDescription: data.description,\r\n tableDialog: null,\r\n tableLabel: data.name,\r\n tablePlaceholder: null,\r\n tableTooltip: data.tooltip,\r\n };\r\n let index = this.data.list.indexOf(this.data.data);\r\n this.dialogRef.close([\"save\", index, json, this.data.list]);\r\n }\r\n\r\n onClose(): void {\r\n if (isChange) {\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: { text: \"Увага! Налаштування поля форми не буде збережено. Продовжити?\" },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n if (this.backupCondition.length == 0) {\r\n this.data.data.condition = null;\r\n } else {\r\n this.data.data.condition = JSON.parse(JSON.stringify(this.backupCondition));\r\n }\r\n this.dialogRef.close();\r\n }\r\n });\r\n } else {\r\n if (this.backupCondition.length == 0) {\r\n this.data.data.condition = null;\r\n } else {\r\n this.data.data.condition = JSON.parse(JSON.stringify(this.backupCondition));\r\n }\r\n this.dialogRef.close();\r\n }\r\n isChange = false;\r\n }\r\n\r\n onRemove() {\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: { text: \"Увага! Ви дійсно бажаєте видалити це поле?\" },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n let index = this.data.list.indexOf(this.data.data);\r\n this.dialogRef.close([\"remove\", index, this.data.list]);\r\n }\r\n });\r\n }\r\n}\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Editor Component\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n@Component({\r\n selector: \"editor-component\",\r\n templateUrl: \"./component/editor.html\",\r\n styleUrls: [\"./admin.css\"],\r\n providers: [\r\n AdminPage,\r\n { provide: MAT_DATE_LOCALE, useValue: \"uk-UA\" },\r\n { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS] },\r\n { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },\r\n ],\r\n})\r\nexport class EditorComponent {\r\n titleFormControl = new FormControl();\r\n conditionList: ConditionList[] = new Array();\r\n conditionValues: any[] = [];\r\n\r\n conditionMore: any[] = [];\r\n conditionOn: any[] = [];\r\n mask: string = \"\";\r\n\r\n dateDate: any[] = [];\r\n dateTime: any[] = [];\r\n userDataTypeValue: any[] = [];\r\n\r\n conditionFinArray: any[] = [];\r\n conditionFinish: boolean = true;\r\n\r\n cloneData: any;\r\n cloneList: any;\r\n dubData: any = null;\r\n dubList: any = null;\r\n\r\n titleAligment: any = \"\";\r\n\r\n backupCondition: any[] = [];\r\n fieldDisabled: boolean = false;\r\n\r\n isLoad: boolean = false;\r\n loadColor: ThemePalette = \"primary\";\r\n loadMode: ProgressSpinnerMode = \"indeterminate\";\r\n loadValue = 50;\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: DialogData, private admin: AdminPage, public dialog: MatDialog, private http: HttpClient) {\r\n isChange = false;\r\n this.isLoad = true;\r\n\r\n if (this.data.data.condition != undefined && this.data.data.condition != null && this.data.data.condition != \"\") {\r\n this.backupCondition = JSON.parse(JSON.stringify(this.data.data.condition));\r\n }\r\n if (this.data.data.aligment == null || this.data.data.aligment == undefined) {\r\n this.data.data.aligment = \"\";\r\n }\r\n if (this.data.data.disabled != undefined) {\r\n this.fieldDisabled = JSON.parse(this.data.data.disabled);\r\n }\r\n\r\n this.titleFormControl = new FormControl(data.data.tableLabel, [Validators.required]);\r\n let value: ConditionList = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.conditionList.push(value);\r\n let interval = setInterval(() => {\r\n if (!this.isLoad) {\r\n clearInterval(interval);\r\n if (this.data.data.condition != null) {\r\n this.conditionList = this.data.data.condition;\r\n [].forEach.call(this.conditionList, (e, index) => {\r\n this.loadTarget({ value: e.target }, index);\r\n this.onOwnDateLoad(index);\r\n });\r\n }\r\n }\r\n }, 50);\r\n\r\n this.cloneList = {\r\n form: null,\r\n field: null,\r\n };\r\n\r\n this.cloneData = {\r\n form: \"\",\r\n field: \"\",\r\n };\r\n\r\n this.dubList = {\r\n form: null,\r\n field: null,\r\n };\r\n\r\n this.dubData = {\r\n form: \"\",\r\n field: \"\",\r\n };\r\n\r\n this.dbRequest(\"Form\");\r\n if (this.data.data.clone != null && this.data.data.clone != \"\" && this.data.data.clone != undefined) {\r\n let clone = this.data.data.clone.split(\"|\");\r\n if (clone.length > 1) {\r\n this.cloneData = { form: parseInt(clone[0]), target: parseInt(clone[1]) };\r\n }\r\n this.dbRequest(\"Attr\");\r\n }\r\n if (this.data.data.dub != null && this.data.data.dub != \"\" && this.data.data.dub != undefined) {\r\n let dub = this.data.data.dub.split(\"|\");\r\n if (dub.length > 1) {\r\n this.dubData = { form: parseInt(dub[0]), target: parseInt(dub[1]) };\r\n }\r\n this.dbRequest(\"AttrD\");\r\n }\r\n this.dbRequest(\"Lib\");\r\n }\r\n\r\n dbRequest(type) {\r\n switch (type) {\r\n case \"Form\":\r\n this.http.get(this.admin.getUrl() + \"RequestForm\").subscribe((data) => {\r\n this.cloneList.form = [];\r\n [].forEach.call(data, (e) => {\r\n if (e.requestTypeRequestForms.length > 0) {\r\n if (e.requestTypeRequestForms[0].requestTypeId == this.data.type) {\r\n let tableTitle = e.title.split(\"*L*\");\r\n let elements = tableTitle.filter((x) => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n e.tableTitle = tableTitle;\r\n\r\n this.cloneList.form.push(e);\r\n }\r\n }\r\n });\r\n });\r\n break;\r\n case \"Attr\":\r\n this.http.get(this.admin.getUrl() + \"RequestAttribute\").subscribe((data) => {\r\n this.cloneList.field = [];\r\n [].forEach.call(data, (e) => {\r\n if (e.requestFormId == this.cloneData.form) {\r\n if (e.type == \"input\") {\r\n let tableTitle = e.title.split(\"*L*\");\r\n let elements = tableTitle.filter((x) => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n e.tableTitle = tableTitle;\r\n\r\n this.cloneList.field.push(e);\r\n }\r\n }\r\n });\r\n });\r\n break;\r\n case \"AttrD\":\r\n this.http.get(this.admin.getUrl() + \"RequestAttribute\").subscribe((data) => {\r\n this.dubList.field = [];\r\n [].forEach.call(data, (e) => {\r\n if (e.requestFormId == this.dubData.form) {\r\n if (e.type === this.data.data.type) {\r\n let tableTitle = e.label.split(\"*L*\");\r\n let elements = tableTitle.filter((x) => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n e.tableTitle = tableTitle;\r\n\r\n this.dubList.field.push(e);\r\n }\r\n }\r\n });\r\n });\r\n break;\r\n case \"Lib\":\r\n this.http.get(this.admin.getUrl() + \"userDataTypeValue\").subscribe((data) => {\r\n this.userDataTypeValue = [];\r\n [].forEach.call(data, (e) => {\r\n let tableTitle = e.value.split(\"*L*\");\r\n let elements = tableTitle.filter((x) => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n\r\n this.userDataTypeValue.push({ Id: e.id, Title: tableTitle, Email: e.email, Parent: e.uerDataTypeId });\r\n });\r\n this.isLoad = false;\r\n });\r\n break;\r\n }\r\n }\r\n\r\n changeAlign(value) {\r\n this.titleAligment = value;\r\n }\r\n\r\n changeClone(value, type) {\r\n switch (type) {\r\n case \"form\":\r\n this.cloneData.form = value;\r\n this.cloneData.target = \"\";\r\n this.dbRequest(\"Attr\");\r\n break;\r\n case \"target\":\r\n this.cloneData.target = value;\r\n break;\r\n }\r\n }\r\n\r\n changeDub(value, type) {\r\n switch (type) {\r\n case \"form\":\r\n this.dubData.form = value;\r\n this.dubData.target = \"\";\r\n this.dbRequest(\"AttrD\");\r\n break;\r\n case \"target\":\r\n this.dubData.target = value;\r\n break;\r\n }\r\n }\r\n\r\n changeRegister() {\r\n isChange = true;\r\n }\r\n\r\n editCondition(index) {\r\n if (index == -1) {\r\n let value: ConditionList = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.conditionList.push(value);\r\n this.conditionValues.push([]);\r\n this.conditionMore.push([]);\r\n this.conditionOn.push([]);\r\n this.dateDate.push([]);\r\n this.dateTime.push([]);\r\n this.conditionFinArray.push([]);\r\n } else {\r\n this.conditionList.splice(index, 1);\r\n this.conditionValues.splice(index, 1);\r\n this.conditionMore.splice(index, 1);\r\n this.conditionOn.splice(index, 1);\r\n this.dateDate.splice(index, 1);\r\n this.dateTime.splice(index, 1);\r\n this.conditionFinArray.splice(index, 1);\r\n }\r\n }\r\n\r\n changeConditionMore(event, index) {\r\n if (\r\n this.conditionList[index].condition == \"morenumber\" ||\r\n this.conditionList[index].condition == \"lessnumber\" ||\r\n this.conditionList[index].condition == \"isnumber\" ||\r\n this.conditionList[index].condition == \"notnumber\"\r\n ) {\r\n this.conditionOn[index] = [];\r\n if (event == \"0\") {\r\n this.conditionOn[index].push({ name: \"2\", value: \"ніж\" });\r\n } else {\r\n this.conditionOn[index].push({ name: \"0\", value: \"ніж\" }, { name: \"1\", value: \"на\" });\r\n }\r\n }\r\n this.conditionList[index] = {\r\n target: this.conditionList[index].target,\r\n condition: this.conditionList[index].condition,\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n this.dateDate[index] = \"\";\r\n this.dateTime[index] = \"\";\r\n this.conditionCheck(event, \"field\", index);\r\n this.conditionList[index].field = event;\r\n }\r\n\r\n changeConditionOn(event, index) {\r\n this.conditionCheck(event, \"on\", index);\r\n this.conditionList[index].on = event;\r\n }\r\n\r\n onOwnDate(event, index, type) {\r\n if (type == \"date\") {\r\n this.dateDate[index] = event.value;\r\n } else {\r\n this.dateTime[index] = \"\";\r\n setTimeout(() => {\r\n this.dateTime[index] = event;\r\n }, 0);\r\n }\r\n if (this.dateTime[index] != \"\" && this.dateTime[index] != undefined) {\r\n let nd = new Date(this.dateDate[index]);\r\n nd.setHours(parseInt(this.dateTime[index].split(\":\")[0]));\r\n nd.setMinutes(parseInt(this.dateTime[index].split(\":\")[1]));\r\n this.dateDate[index] = nd;\r\n } else {\r\n setTimeout(() => {\r\n this.dateTime[index] = \"00:00\";\r\n }, 0);\r\n }\r\n this.conditionList[index] = {\r\n target: this.conditionList[index].target,\r\n condition: this.conditionList[index].condition,\r\n field: this.conditionList[index].field,\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n this.conditionCheck(event, \"date\", index);\r\n this.conditionList[index].date = this.dateDate[index];\r\n }\r\n\r\n onOwnDateLoad(index) {\r\n let nd = this.conditionList[index].date.split(\"-\");\r\n let date = new Date(nd[1] + \"-\" + nd[0] + \"-\" + nd[2]);\r\n this.dateDate[index] = date;\r\n this.dateTime[index] = (\"0\" + date.getHours()).slice(-2) + \":\" + (\"0\" + date.getMinutes()).slice(-2);\r\n }\r\n\r\n changeValue(event, index) {\r\n this.conditionCheck(event, \"value\", index);\r\n this.conditionList[index].value = event.target.value;\r\n }\r\n\r\n changeCondition(event, type, index) {\r\n if (type == \"target\") {\r\n this.conditionList[index] = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n } else if (type == \"condition\") {\r\n this.conditionList[index] = {\r\n target: this.conditionList[index].target,\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n }\r\n this.dateDate[index] = \"\";\r\n this.dateTime[index] = \"\";\r\n this.conditionCheck(event, type, index);\r\n this.conditionList[index][type] = event;\r\n }\r\n\r\n conditionCheck(event, type, index) {\r\n switch (type) {\r\n case \"target\":\r\n if (event == \"\") {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case \"condition\":\r\n if (\r\n event == \"moredate\" ||\r\n event == \"lessdate\" ||\r\n event == \"isdate\" ||\r\n event == \"notdate\" ||\r\n event == \"morenumber\" ||\r\n event == \"lessnumber\" ||\r\n event == \"isnumber\" ||\r\n event == \"notnumber\" ||\r\n event == \"\"\r\n ) {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n case \"field\":\r\n if (\r\n (this.conditionList[index].condition == \"isdate\" ||\r\n this.conditionList[index].condition == \"notdate\" ||\r\n this.conditionList[index].condition == \"isnumber\" ||\r\n this.conditionList[index].condition == \"notnumber\") &&\r\n event != \"\" &&\r\n event != \"1\"\r\n ) {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case \"date\":\r\n if (event == \"\") {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n case \"on\":\r\n if (event == \"0\") {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case \"value\":\r\n if (event.target.value == \"\") {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n }\r\n let check = true;\r\n [].forEach.call(this.conditionFinArray, (e) => {\r\n if (e == false) {\r\n check = false;\r\n }\r\n });\r\n this.conditionFinish = check;\r\n }\r\n\r\n loadTarget(event, index) {\r\n this.conditionValues[index] = [];\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push({ name: \"0\", value: \"\", pl: \"\" });\r\n this.conditionOn[index] = [];\r\n let datas: any[] = [];\r\n datas = this.data.list;\r\n let target = datas.filter((x) => x.key.split(\"|\")[0] === event.value.split(\"|\")[0]).map((x) => x);\r\n if (target.length == 0) {\r\n this.conditionList.length = 1;\r\n this.conditionList[0] = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.conditionValues[0] = [];\r\n this.conditionMore[0] = [];\r\n this.conditionOn[0] = [];\r\n return false;\r\n }\r\n this.conditionFinArray[index] = true;\r\n let array: any;\r\n switch (target[0].type) {\r\n case \"select\":\r\n array = this.dataPacker(target[0].selectors);\r\n [].forEach.call(array.list, (e) => {\r\n this.conditionValues[index].push(e);\r\n });\r\n break;\r\n case \"input\":\r\n let check = 0;\r\n if (target[0].mask != \"\" && target[0].mask != null && target[0].mask != undefined) {\r\n let mask = target[0].mask.split(\"_\");\r\n if (mask[0] == \"number\") {\r\n check = 1;\r\n }\r\n }\r\n if (check == 1) {\r\n this.conditionValues[index].push(\r\n { name: \"fill\", value: \"Числове поле заповнене\" },\r\n { name: \"empty\", value: \"Числове поле порожнє\" },\r\n { name: \"morenumber\", value: \"Число більше\" },\r\n { name: \"lessnumber\", value: \"Число меньше\" },\r\n { name: \"isnumber\", value: \"Число дорівнює\" },\r\n { name: \"notnumber\", value: \"Число не дорівнює\" }\r\n );\r\n let list = [];\r\n [].forEach.call(this.data.list, (e) => {\r\n if (e.type == \"input\") {\r\n if (e.mask != \"\" && e.mask != null && e.mask != undefined) {\r\n let mask = e.mask.split(\"_\");\r\n if (mask[0] == \"number\") {\r\n list.push(e);\r\n }\r\n }\r\n }\r\n });\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push({ name: \"0\", value: \"*Ввести власні дані*\" });\r\n [].forEach.call(list, (e) => {\r\n this.conditionMore[index].push({ name: e.key, value: e.tableLabel });\r\n });\r\n let indexF = this.conditionMore[index]\r\n .map(function (e) {\r\n return e.name.split(\"|\")[0];\r\n })\r\n .indexOf(target[0].key.split(\"|\")[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[index].splice(indexF, 1);\r\n }\r\n if (this.conditionList[index].field == \"0\") {\r\n this.conditionOn[index].push({ name: \"2\", value: \"ніж (строго більше чи меньше)\" });\r\n } else {\r\n this.conditionOn[index].push({ name: \"0\", value: \"ніж (строго більше чи меньше)\" }, { name: \"1\", value: \"на (число)\" });\r\n }\r\n } else {\r\n this.conditionValues[index].push({ name: \"fill\", value: \"Текстове поле заповнене\" }, { name: \"empty\", value: \"Текстове поле порожнє\" });\r\n }\r\n break;\r\n case \"radio\":\r\n array = this.dataPacker(target[0].selectors);\r\n [].forEach.call(array.list, (e) => {\r\n this.conditionValues[index].push(e);\r\n });\r\n break;\r\n case \"checkbox\":\r\n this.conditionValues[index].push({ name: \"check\", value: \"Поле відмічене\" }, { name: \"uncheck\", value: \"Поле не відмічене\" });\r\n break;\r\n case \"date\":\r\n this.conditionValues[index].push(\r\n { name: \"date\", value: \"Дата вказана\" },\r\n { name: \"nodate\", value: \"Дата не вказана\" },\r\n { name: \"moredate\", value: \"Дата більше\" },\r\n { name: \"lessdate\", value: \"Дата меньше\" },\r\n { name: \"isdate\", value: \"Дата дорівнює\" },\r\n { name: \"notdate\", value: \"Дата не дорівнює\" }\r\n );\r\n let list = [];\r\n [].forEach.call(this.data.list, (e) => {\r\n if (e.type == \"date\") {\r\n list.push(e);\r\n }\r\n });\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push({ name: \"0\", value: \"*Поточна дата*\", pl: \"кількість годин (днів, місяців, років)\" }, { name: \"1\", value: \"*Власна дата*\" });\r\n [].forEach.call(list, (e) => {\r\n this.conditionMore[index].push({ name: e.key, value: e.tableLabel });\r\n });\r\n let indexF = this.conditionMore[index]\r\n .map(function (e) {\r\n return e.name.split(\"|\")[0];\r\n })\r\n .indexOf(this.data.data.key.split(\"|\")[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[index].splice(indexF, 1);\r\n }\r\n indexF = this.conditionMore[index]\r\n .map(function (e) {\r\n return e.name.split(\"|\")[0];\r\n })\r\n .indexOf(target[0].key.split(\"|\")[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[index].splice(indexF, 1);\r\n }\r\n this.conditionOn[index].push(\r\n { name: \"0\", value: \"ніж (строго більше чи меньше)\" },\r\n { name: \"1\", value: \"на (днів)\" },\r\n { name: \"2\", value: \"на (місяців)\" },\r\n { name: \"3\", value: \"на (років)\" }\r\n );\r\n if (target[0].mask == \"time\") {\r\n this.conditionOn[index].push({ name: \"4\", value: \"на (годин)\" });\r\n }\r\n break;\r\n case \"file\":\r\n this.conditionValues[index].push({ name: \"file\", value: \"Файл вибрано\" }, { name: \"nofile\", value: \"Файл відсутній\" });\r\n break;\r\n case \"editor\":\r\n this.conditionValues[index].push({ name: \"fillE\", value: \"Редактор заповненний\" }, { name: \"emptyE\", value: \"Редактор порожній\" });\r\n break;\r\n }\r\n }\r\n\r\n dataPacker(value) {\r\n let selectors = {\r\n type: \"\",\r\n list: [],\r\n };\r\n if (value != null && value.list == undefined) {\r\n selectors.type = value.split(\"*T*\")[1].split(\"*L*\")[0];\r\n if (selectors.type == \"lib\") {\r\n let list = [];\r\n let valList = value.split(\"*L*\")[1];\r\n [].forEach.call(this.userDataTypeValue, (e) => {\r\n if (e.Parent == parseInt(valList)) {\r\n list.push(e);\r\n }\r\n });\r\n selectors.list = [];\r\n [].forEach.call(list, (e, index) => {\r\n selectors.list.push({ name: \"option_\" + index, value: e.Title, email: e.Email });\r\n });\r\n } else {\r\n let list = value.split(\"*L*\")[1].split(\"*I*\");\r\n [].forEach.call(list, (e, index) => {\r\n let text = e.split(\"|\");\r\n let array = {\r\n name: text[0],\r\n value: text[1],\r\n dialog: text[2],\r\n };\r\n list[index] = array;\r\n });\r\n selectors.list = list;\r\n }\r\n return selectors;\r\n } else {\r\n if (value.type == \"lib\" && value.id == undefined) {\r\n selectors.type = value.type;\r\n let list = [];\r\n [].forEach.call(this.userDataTypeValue, (e) => {\r\n if (e.Parent == parseInt(value.list[0].name)) {\r\n list.push(e);\r\n }\r\n });\r\n selectors.list = [];\r\n [].forEach.call(list, (e, index) => {\r\n selectors.list.push({ name: \"option_\" + index, value: e.Title, email: e.Email });\r\n });\r\n return selectors;\r\n } else {\r\n return value;\r\n }\r\n }\r\n }\r\n\r\n saveMenu(data) {\r\n let condition;\r\n if (this.conditionList[0].target != \"\" && this.conditionList[0].target != null && this.conditionList[0].target != undefined) {\r\n condition = this.conditionList;\r\n [].forEach.call(condition, (e, index) => {\r\n if (e.date != null && e.date != \"\") {\r\n e.date = new Date(e.date);\r\n condition[index].date =\r\n (\"0\" + e.date.getDate()).slice(-2) +\r\n \"-\" +\r\n (\"0\" + (e.date.getMonth() + 1)).slice(-2) +\r\n \"-\" +\r\n e.date.getFullYear() +\r\n \" \" +\r\n (\"0\" + e.date.getHours()).slice(-2) +\r\n \":\" +\r\n (\"0\" + e.date.getMinutes()).slice(-2);\r\n }\r\n });\r\n } else {\r\n condition = null;\r\n }\r\n let clone = \"\";\r\n if (this.cloneData.form != \"\") {\r\n clone = this.cloneData.form + \"|\" + this.cloneData.target;\r\n }\r\n let dub = \"\";\r\n if (this.dubData.form != \"\") {\r\n dub = this.dubData.form + \"|\" + this.dubData.target;\r\n }\r\n let label = this.data.data.label;\r\n if (this.data.data.id == 0 || this.data.data.id == undefined) {\r\n label = data.name;\r\n }\r\n let labelSplit = label.split(\"*L*\");\r\n if (labelSplit.length > 1) {\r\n if (labelSplit[0].split(\"*I*\").length == 1) {\r\n labelSplit.splice(0, 1);\r\n }\r\n }\r\n label = labelSplit.join(\"*L*\");\r\n let json = {\r\n label: label,\r\n requestAttributeId: this.data.data.requestAttributeId,\r\n key: this.data.data.key,\r\n type: this.data.data.type,\r\n description: this.data.data.description,\r\n tooltip: this.data.data.tooltip,\r\n disabled: data.disabled,\r\n display: true,\r\n required: data.required,\r\n condition: condition,\r\n columns: this.data.data.columns,\r\n aligment: data.aligment,\r\n clone: clone,\r\n dub: dub,\r\n\r\n tableDescription: data.description,\r\n tableDialog: null,\r\n tableLabel: data.name,\r\n tablePlaceholder: null,\r\n tableTooltip: data.tooltip,\r\n };\r\n let index = this.data.list.indexOf(this.data.data);\r\n this.dialogRef.close([\"save\", index, json, this.data.list]);\r\n }\r\n\r\n onClose(): void {\r\n if (isChange) {\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: { text: \"Увага! Налаштування поля форми не буде збережено. Продовжити?\" },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n if (this.backupCondition.length == 0) {\r\n this.data.data.condition = null;\r\n } else {\r\n this.data.data.condition = JSON.parse(JSON.stringify(this.backupCondition));\r\n }\r\n this.dialogRef.close();\r\n }\r\n });\r\n } else {\r\n if (this.backupCondition.length == 0) {\r\n this.data.data.condition = null;\r\n } else {\r\n this.data.data.condition = JSON.parse(JSON.stringify(this.backupCondition));\r\n }\r\n this.dialogRef.close();\r\n }\r\n isChange = false;\r\n }\r\n\r\n onRemove() {\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: { text: \"Увага! Ви дійсно бажаєте видалити це поле?\" },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n let index = this.data.list.indexOf(this.data.data);\r\n this.dialogRef.close([\"remove\", index, this.data.list]);\r\n }\r\n });\r\n }\r\n}\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Date Component\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n@Component({\r\n selector: \"date-component\",\r\n templateUrl: \"./component/date.html\",\r\n styleUrls: [\"./admin.css\"],\r\n providers: [\r\n AdminPage,\r\n { provide: MAT_DATE_LOCALE, useValue: \"uk-UA\" },\r\n { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS] },\r\n { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },\r\n ],\r\n})\r\nexport class DateComponent {\r\n titleFormControl = new FormControl();\r\n conditionList: ConditionList[] = new Array();\r\n conditionValues: any[] = [];\r\n\r\n conditionMore: any[] = [];\r\n conditionOn: any[] = [];\r\n mask: boolean = false;\r\n\r\n dateDate: any[] = [];\r\n dateTime: any[] = [];\r\n dateTimeMask: any = \"\";\r\n\r\n conditionFinArray: any[] = [];\r\n conditionFinish: boolean = true;\r\n\r\n cloneData: any;\r\n cloneList: any;\r\n dubData: any = null;\r\n dubList: any = null;\r\n\r\n titleAligment: any = \"\";\r\n\r\n backupCondition: any[] = [];\r\n userDataTypeValue: any[] = [];\r\n fieldDisabled: boolean = false;\r\n\r\n isLoad: boolean = false;\r\n loadColor: ThemePalette = \"primary\";\r\n loadMode: ProgressSpinnerMode = \"indeterminate\";\r\n loadValue = 50;\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: DialogData, private admin: AdminPage, public dialog: MatDialog, private http: HttpClient) {\r\n isChange = false;\r\n this.isLoad = true;\r\n\r\n if (this.data.data.condition != undefined && this.data.data.condition != null && this.data.data.condition != \"\") {\r\n this.backupCondition = JSON.parse(JSON.stringify(this.data.data.condition));\r\n }\r\n if (this.data.data.aligment == null || this.data.data.aligment == undefined) {\r\n this.data.data.aligment = \"\";\r\n }\r\n if (this.data.data.disabled != undefined) {\r\n this.fieldDisabled = JSON.parse(this.data.data.disabled);\r\n }\r\n this.titleFormControl = new FormControl(data.data.tableLabel, [Validators.required]);\r\n let value: ConditionList = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.conditionList.push(value);\r\n let interval = setInterval(() => {\r\n if (!this.isLoad) {\r\n clearInterval(interval);\r\n if (this.data.data.condition != null) {\r\n this.conditionList = this.data.data.condition;\r\n [].forEach.call(this.conditionList, (e, index) => {\r\n this.loadTarget({ value: e.target }, index);\r\n this.onOwnDateLoad(index);\r\n });\r\n }\r\n }\r\n }, 50);\r\n this.applyDateTime(this.data.data.mask);\r\n\r\n this.cloneList = {\r\n form: null,\r\n field: null,\r\n };\r\n\r\n this.cloneData = {\r\n form: \"\",\r\n field: \"\",\r\n };\r\n\r\n this.dubList = {\r\n form: null,\r\n field: null,\r\n };\r\n\r\n this.dubData = {\r\n form: \"\",\r\n field: \"\",\r\n };\r\n\r\n this.dbRequest(\"Form\");\r\n if (this.data.data.clone != null && this.data.data.clone != \"\" && this.data.data.clone != undefined) {\r\n let clone = this.data.data.clone.split(\"|\");\r\n if (clone.length > 1) {\r\n this.cloneData = { form: parseInt(clone[0]), target: parseInt(clone[1]) };\r\n }\r\n this.dbRequest(\"Attr\");\r\n }\r\n if (this.data.data.dub != null && this.data.data.dub != \"\" && this.data.data.dub != undefined) {\r\n let dub = this.data.data.dub.split(\"|\");\r\n if (dub.length > 1) {\r\n this.dubData = { form: parseInt(dub[0]), target: parseInt(dub[1]) };\r\n }\r\n this.dbRequest(\"AttrD\");\r\n }\r\n this.dbRequest(\"Lib\");\r\n }\r\n\r\n dbRequest(type) {\r\n switch (type) {\r\n case \"Form\":\r\n this.http.get(this.admin.getUrl() + \"RequestForm\").subscribe((data) => {\r\n this.cloneList.form = [];\r\n [].forEach.call(data, (e) => {\r\n if (e.requestTypeRequestForms.length > 0) {\r\n if (e.requestTypeRequestForms[0].requestTypeId == this.data.type) {\r\n let tableTitle = e.title.split(\"*L*\");\r\n let elements = tableTitle.filter((x) => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n e.tableTitle = tableTitle;\r\n\r\n this.cloneList.form.push(e);\r\n }\r\n }\r\n });\r\n });\r\n break;\r\n case \"Attr\":\r\n this.http.get(this.admin.getUrl() + \"RequestAttribute\").subscribe((data) => {\r\n this.cloneList.field = [];\r\n [].forEach.call(data, (e) => {\r\n if (e.requestFormId == this.cloneData.form) {\r\n if (e.type == \"input\") {\r\n let tableTitle = e.title.split(\"*L*\");\r\n let elements = tableTitle.filter((x) => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n e.tableTitle = tableTitle;\r\n\r\n this.cloneList.field.push(e);\r\n }\r\n }\r\n });\r\n });\r\n break;\r\n case \"AttrD\":\r\n this.http.get(this.admin.getUrl() + \"RequestAttribute\").subscribe((data) => {\r\n this.dubList.field = [];\r\n [].forEach.call(data, (e) => {\r\n if (e.requestFormId == this.dubData.form) {\r\n if (e.type === this.data.data.type) {\r\n let tableTitle = e.label.split(\"*L*\");\r\n let elements = tableTitle.filter((x) => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n e.tableTitle = tableTitle;\r\n\r\n this.dubList.field.push(e);\r\n }\r\n }\r\n });\r\n });\r\n break;\r\n case \"Lib\":\r\n this.http.get(this.admin.getUrl() + \"userDataTypeValue\").subscribe((data) => {\r\n this.userDataTypeValue = [];\r\n [].forEach.call(data, (e) => {\r\n let tableTitle = e.value.split(\"*L*\");\r\n let elements = tableTitle.filter((x) => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n\r\n this.userDataTypeValue.push({ Id: e.id, Title: tableTitle, Email: e.email, Parent: e.uerDataTypeId });\r\n });\r\n this.isLoad = false;\r\n });\r\n break;\r\n }\r\n }\r\n\r\n changeAlign(value) {\r\n this.titleAligment = value;\r\n }\r\n\r\n changeClone(value, type) {\r\n switch (type) {\r\n case \"form\":\r\n this.cloneData.form = value;\r\n this.cloneData.target = \"\";\r\n this.dbRequest(\"Attr\");\r\n break;\r\n case \"target\":\r\n this.cloneData.target = value;\r\n break;\r\n }\r\n }\r\n\r\n changeDub(value, type) {\r\n switch (type) {\r\n case \"form\":\r\n this.dubData.form = value;\r\n this.dubData.target = \"\";\r\n this.dbRequest(\"AttrD\");\r\n break;\r\n case \"target\":\r\n this.dubData.target = value;\r\n break;\r\n }\r\n }\r\n\r\n changeRegister() {\r\n isChange = true;\r\n }\r\n\r\n applyDateTime(mask) {\r\n if (mask == \"time\") {\r\n this.mask = true;\r\n this.dateTimeMask = \"time\";\r\n } else {\r\n this.mask = false;\r\n this.dateTimeMask = \"\";\r\n }\r\n }\r\n\r\n changeDateTime(event) {\r\n this.mask = event;\r\n if (event) {\r\n this.dateTimeMask = \"time\";\r\n } else {\r\n this.dateTimeMask = \"\";\r\n }\r\n }\r\n\r\n editCondition(index) {\r\n if (index == -1) {\r\n let value: ConditionList = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.conditionList.push(value);\r\n this.conditionValues.push([]);\r\n this.conditionMore.push([]);\r\n this.conditionOn.push([]);\r\n this.dateDate.push([]);\r\n this.dateTime.push([]);\r\n this.conditionFinArray.push([]);\r\n } else {\r\n this.conditionList.splice(index, 1);\r\n this.conditionValues.splice(index, 1);\r\n this.conditionMore.splice(index, 1);\r\n this.conditionOn.splice(index, 1);\r\n this.dateDate.splice(index, 1);\r\n this.dateTime.splice(index, 1);\r\n this.conditionFinArray.splice(index, 1);\r\n }\r\n }\r\n\r\n changeConditionMore(event, index) {\r\n if (\r\n this.conditionList[index].condition == \"morenumber\" ||\r\n this.conditionList[index].condition == \"lessnumber\" ||\r\n this.conditionList[index].condition == \"isnumber\" ||\r\n this.conditionList[index].condition == \"notnumber\"\r\n ) {\r\n this.conditionOn[index] = [];\r\n if (event == \"0\") {\r\n this.conditionOn[index].push({ name: \"2\", value: \"ніж\" });\r\n } else {\r\n this.conditionOn[index].push({ name: \"0\", value: \"ніж\" }, { name: \"1\", value: \"на\" });\r\n }\r\n }\r\n this.conditionList[index] = {\r\n target: this.conditionList[index].target,\r\n condition: this.conditionList[index].condition,\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n this.dateDate[index] = \"\";\r\n this.dateTime[index] = \"\";\r\n this.conditionCheck(event, \"field\", index);\r\n this.conditionList[index].field = event;\r\n }\r\n\r\n changeConditionOn(event, index) {\r\n this.conditionCheck(event, \"on\", index);\r\n this.conditionList[index].on = event;\r\n }\r\n\r\n onOwnDate(event, index, type) {\r\n if (type == \"date\") {\r\n this.dateDate[index] = event.value;\r\n } else {\r\n this.dateTime[index] = \"\";\r\n setTimeout(() => {\r\n this.dateTime[index] = event;\r\n }, 0);\r\n }\r\n if (this.dateTime[index] != \"\" && this.dateTime[index] != undefined) {\r\n let nd = new Date(this.dateDate[index]);\r\n nd.setHours(parseInt(this.dateTime[index].split(\":\")[0]));\r\n nd.setMinutes(parseInt(this.dateTime[index].split(\":\")[1]));\r\n this.dateDate[index] = nd;\r\n } else {\r\n setTimeout(() => {\r\n this.dateTime[index] = \"00:00\";\r\n }, 0);\r\n }\r\n this.conditionList[index] = {\r\n target: this.conditionList[index].target,\r\n condition: this.conditionList[index].condition,\r\n field: this.conditionList[index].field,\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n this.conditionCheck(event, \"date\", index);\r\n this.conditionList[index].date = this.dateDate[index];\r\n }\r\n\r\n onOwnDateLoad(index) {\r\n let nd = this.conditionList[index].date.split(\"-\");\r\n let date = new Date(nd[1] + \"-\" + nd[0] + \"-\" + nd[2]);\r\n this.dateDate[index] = date;\r\n this.dateTime[index] = (\"0\" + date.getHours()).slice(-2) + \":\" + (\"0\" + date.getMinutes()).slice(-2);\r\n }\r\n\r\n changeValue(event, index) {\r\n this.conditionCheck(event, \"value\", index);\r\n this.conditionList[index].value = event.target.value;\r\n }\r\n\r\n changeCondition(event, type, index) {\r\n if (type == \"target\") {\r\n this.conditionList[index] = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n } else if (type == \"condition\") {\r\n this.conditionList[index] = {\r\n target: this.conditionList[index].target,\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n }\r\n this.dateDate[index] = \"\";\r\n this.dateTime[index] = \"\";\r\n this.conditionCheck(event, type, index);\r\n this.conditionList[index][type] = event;\r\n }\r\n\r\n conditionCheck(event, type, index) {\r\n switch (type) {\r\n case \"target\":\r\n if (event == \"\") {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case \"condition\":\r\n if (\r\n event == \"moredate\" ||\r\n event == \"lessdate\" ||\r\n event == \"isdate\" ||\r\n event == \"notdate\" ||\r\n event == \"morenumber\" ||\r\n event == \"lessnumber\" ||\r\n event == \"isnumber\" ||\r\n event == \"notnumber\" ||\r\n event == \"\"\r\n ) {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n case \"field\":\r\n if (\r\n (this.conditionList[index].condition == \"isdate\" ||\r\n this.conditionList[index].condition == \"notdate\" ||\r\n this.conditionList[index].condition == \"isnumber\" ||\r\n this.conditionList[index].condition == \"notnumber\") &&\r\n event != \"\" &&\r\n event != \"1\"\r\n ) {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case \"date\":\r\n if (event == \"\") {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n case \"on\":\r\n if (event == \"0\") {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case \"value\":\r\n if (event.target.value == \"\") {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n }\r\n let check = true;\r\n [].forEach.call(this.conditionFinArray, (e) => {\r\n if (e == false) {\r\n check = false;\r\n }\r\n });\r\n this.conditionFinish = check;\r\n }\r\n\r\n loadTarget(event, index) {\r\n this.conditionValues[index] = [];\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push({ name: \"0\", value: \"\", pl: \"\" });\r\n this.conditionOn[index] = [];\r\n let datas: any[] = [];\r\n datas = this.data.list;\r\n let target = datas.filter((x) => x.key.split(\"|\")[0] === event.value.split(\"|\")[0]).map((x) => x);\r\n if (target.length == 0) {\r\n this.conditionList.length = 1;\r\n this.conditionList[0] = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.conditionValues[0] = [];\r\n this.conditionMore[0] = [];\r\n this.conditionOn[0] = [];\r\n return false;\r\n }\r\n this.conditionFinArray[index] = true;\r\n let array: any;\r\n switch (target[0].type) {\r\n case \"select\":\r\n array = this.dataPacker(target[0].selectors);\r\n [].forEach.call(array.list, (e) => {\r\n this.conditionValues[index].push(e);\r\n });\r\n break;\r\n case \"input\":\r\n let check = 0;\r\n if (target[0].mask != \"\" && target[0].mask != null && target[0].mask != undefined) {\r\n let mask = target[0].mask.split(\"_\");\r\n if (mask[0] == \"number\") {\r\n check = 1;\r\n }\r\n }\r\n if (check == 1) {\r\n this.conditionValues[index].push(\r\n { name: \"fill\", value: \"Числове поле заповнене\" },\r\n { name: \"empty\", value: \"Числове поле порожнє\" },\r\n { name: \"morenumber\", value: \"Число більше\" },\r\n { name: \"lessnumber\", value: \"Число меньше\" },\r\n { name: \"isnumber\", value: \"Число дорівнює\" },\r\n { name: \"notnumber\", value: \"Число не дорівнює\" }\r\n );\r\n let list = [];\r\n [].forEach.call(this.data.list, (e) => {\r\n if (e.type == \"input\") {\r\n if (e.mask != \"\" && e.mask != null && e.mask != undefined) {\r\n let mask = e.mask.split(\"_\");\r\n if (mask[0] == \"number\") {\r\n list.push(e);\r\n }\r\n }\r\n }\r\n });\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push({ name: \"0\", value: \"*Ввести власні дані*\" });\r\n [].forEach.call(list, (e) => {\r\n this.conditionMore[index].push({ name: e.key, value: e.tableLabel });\r\n });\r\n let indexF = this.conditionMore[index]\r\n .map(function (e) {\r\n return e.name.split(\"|\")[0];\r\n })\r\n .indexOf(target[0].key.split(\"|\")[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[index].splice(indexF, 1);\r\n }\r\n if (this.conditionList[index].field == \"0\") {\r\n this.conditionOn[index].push({ name: \"2\", value: \"ніж (строго більше чи меньше)\" });\r\n } else {\r\n this.conditionOn[index].push({ name: \"0\", value: \"ніж (строго більше чи меньше)\" }, { name: \"1\", value: \"на (число)\" });\r\n }\r\n } else {\r\n this.conditionValues[index].push({ name: \"fill\", value: \"Текстове поле заповнене\" }, { name: \"empty\", value: \"Текстове поле порожнє\" });\r\n }\r\n break;\r\n case \"radio\":\r\n array = this.dataPacker(target[0].selectors);\r\n [].forEach.call(array.list, (e) => {\r\n this.conditionValues[index].push(e);\r\n });\r\n break;\r\n case \"checkbox\":\r\n this.conditionValues[index].push({ name: \"check\", value: \"Поле відмічене\" }, { name: \"uncheck\", value: \"Поле не відмічене\" });\r\n break;\r\n case \"date\":\r\n this.conditionValues[index].push(\r\n { name: \"date\", value: \"Дата вказана\" },\r\n { name: \"nodate\", value: \"Дата не вказана\" },\r\n { name: \"moredate\", value: \"Дата більше\" },\r\n { name: \"lessdate\", value: \"Дата меньше\" },\r\n { name: \"isdate\", value: \"Дата дорівнює\" },\r\n { name: \"notdate\", value: \"Дата не дорівнює\" }\r\n );\r\n let list = [];\r\n [].forEach.call(this.data.list, (e) => {\r\n if (e.type == \"date\") {\r\n list.push(e);\r\n }\r\n });\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push({ name: \"0\", value: \"*Поточна дата*\", pl: \"кількість годин (днів, місяців, років)\" }, { name: \"1\", value: \"*Власна дата*\" });\r\n [].forEach.call(list, (e) => {\r\n this.conditionMore[index].push({ name: e.key, value: e.tableLabel });\r\n });\r\n let indexF = this.conditionMore[index]\r\n .map(function (e) {\r\n return e.name.split(\"|\")[0];\r\n })\r\n .indexOf(this.data.data.key.split(\"|\")[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[index].splice(indexF, 1);\r\n }\r\n indexF = this.conditionMore[index]\r\n .map(function (e) {\r\n return e.name.split(\"|\")[0];\r\n })\r\n .indexOf(target[0].key.split(\"|\")[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[index].splice(indexF, 1);\r\n }\r\n this.conditionOn[index].push(\r\n { name: \"0\", value: \"ніж (строго більше чи меньше)\" },\r\n { name: \"1\", value: \"на (днів)\" },\r\n { name: \"2\", value: \"на (місяців)\" },\r\n { name: \"3\", value: \"на (років)\" }\r\n );\r\n if (target[0].mask == \"time\") {\r\n this.conditionOn[index].push({ name: \"4\", value: \"на (годин)\" });\r\n }\r\n break;\r\n case \"file\":\r\n this.conditionValues[index].push({ name: \"file\", value: \"Файл вибрано\" }, { name: \"nofile\", value: \"Файл відсутній\" });\r\n break;\r\n case \"editor\":\r\n this.conditionValues[index].push({ name: \"fillE\", value: \"Редактор заповненний\" }, { name: \"emptyE\", value: \"Редактор порожній\" });\r\n break;\r\n }\r\n }\r\n\r\n dataPacker(value) {\r\n let selectors = {\r\n type: \"\",\r\n list: [],\r\n };\r\n if (value != null && value.list == undefined) {\r\n selectors.type = value.split(\"*T*\")[1].split(\"*L*\")[0];\r\n if (selectors.type == \"lib\") {\r\n let list = [];\r\n let valList = value.split(\"*L*\")[1];\r\n [].forEach.call(this.userDataTypeValue, (e) => {\r\n if (e.Parent == parseInt(valList)) {\r\n list.push(e);\r\n }\r\n });\r\n selectors.list = [];\r\n [].forEach.call(list, (e, index) => {\r\n selectors.list.push({ name: \"option_\" + index, value: e.Title, email: e.Email });\r\n });\r\n } else {\r\n let list = value.split(\"*L*\")[1].split(\"*I*\");\r\n [].forEach.call(list, (e, index) => {\r\n let text = e.split(\"|\");\r\n let array = {\r\n name: text[0],\r\n value: text[1],\r\n dialog: text[2],\r\n };\r\n list[index] = array;\r\n });\r\n selectors.list = list;\r\n }\r\n return selectors;\r\n } else {\r\n if (value.type == \"lib\" && value.id == undefined) {\r\n selectors.type = value.type;\r\n let list = [];\r\n [].forEach.call(this.userDataTypeValue, (e) => {\r\n if (e.Parent == parseInt(value.list[0].name)) {\r\n list.push(e);\r\n }\r\n });\r\n selectors.list = [];\r\n [].forEach.call(list, (e, index) => {\r\n selectors.list.push({ name: \"option_\" + index, value: e.Title, email: e.Email });\r\n });\r\n return selectors;\r\n } else {\r\n return value;\r\n }\r\n }\r\n }\r\n\r\n saveMenu(data) {\r\n let condition;\r\n if (this.conditionList[0].target != \"\" && this.conditionList[0].target != null && this.conditionList[0].target != undefined) {\r\n condition = this.conditionList;\r\n [].forEach.call(condition, (e, index) => {\r\n if (e.date != null && e.date != \"\") {\r\n e.date = new Date(e.date);\r\n condition[index].date =\r\n (\"0\" + e.date.getDate()).slice(-2) +\r\n \"-\" +\r\n (\"0\" + (e.date.getMonth() + 1)).slice(-2) +\r\n \"-\" +\r\n e.date.getFullYear() +\r\n \" \" +\r\n (\"0\" + e.date.getHours()).slice(-2) +\r\n \":\" +\r\n (\"0\" + e.date.getMinutes()).slice(-2);\r\n }\r\n });\r\n } else {\r\n condition = null;\r\n }\r\n let time = null;\r\n if (this.dateTimeMask == \"time\") {\r\n time = \"\";\r\n }\r\n let clone = \"\";\r\n if (this.cloneData.form != \"\") {\r\n clone = this.cloneData.form + \"|\" + this.cloneData.target;\r\n }\r\n let dub = \"\";\r\n if (this.dubData.form != \"\") {\r\n dub = this.dubData.form + \"|\" + this.dubData.target;\r\n }\r\n let label = this.data.data.label;\r\n if (this.data.data.id == 0 || this.data.data.id == undefined) {\r\n label = data.name;\r\n }\r\n let labelSplit = label.split(\"*L*\");\r\n if (labelSplit.length > 1) {\r\n if (labelSplit[0].split(\"*I*\").length == 1) {\r\n labelSplit.splice(0, 1);\r\n }\r\n }\r\n label = labelSplit.join(\"*L*\");\r\n let json = {\r\n label: label,\r\n requestAttributeId: this.data.data.requestAttributeId,\r\n key: this.data.data.key,\r\n type: this.data.data.type,\r\n description: this.data.data.description,\r\n mask: this.dateTimeMask,\r\n tooltip: this.data.data.tooltip,\r\n disabled: data.disabled,\r\n display: true,\r\n required: data.required,\r\n condition: condition,\r\n columns: this.data.data.columns,\r\n aligment: data.aligment,\r\n clone: clone,\r\n dub: dub,\r\n dialog: this.data.data.dialog,\r\n placeholder: time,\r\n selectors: data.blocker,\r\n\r\n tableDescription: data.description,\r\n tableDialog: data.dialog,\r\n tableLabel: data.name,\r\n tablePlaceholder: null,\r\n tableTooltip: data.tooltip,\r\n };\r\n let index = this.data.list.indexOf(this.data.data);\r\n this.dialogRef.close([\"save\", index, json, this.data.list]);\r\n }\r\n\r\n onClose(): void {\r\n if (isChange) {\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: { text: \"Увага! Налаштування поля форми не буде збережено. Продовжити?\" },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n if (this.backupCondition.length == 0) {\r\n this.data.data.condition = null;\r\n } else {\r\n this.data.data.condition = JSON.parse(JSON.stringify(this.backupCondition));\r\n }\r\n this.dialogRef.close();\r\n }\r\n });\r\n } else {\r\n if (this.backupCondition.length == 0) {\r\n this.data.data.condition = null;\r\n } else {\r\n this.data.data.condition = JSON.parse(JSON.stringify(this.backupCondition));\r\n }\r\n this.dialogRef.close();\r\n }\r\n isChange = false;\r\n }\r\n\r\n onRemove() {\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: { text: \"Увага! Ви дійсно бажаєте видалити це поле?\" },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n let index = this.data.list.indexOf(this.data.data);\r\n this.dialogRef.close([\"remove\", index, this.data.list]);\r\n }\r\n });\r\n }\r\n}\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Copy Component\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n@Component({\r\n selector: \"copy-component\",\r\n templateUrl: \"./component/copy.html\",\r\n styleUrls: [\"./admin.css\"],\r\n providers: [\r\n AdminPage,\r\n { provide: MAT_DATE_LOCALE, useValue: \"uk-UA\" },\r\n { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS] },\r\n { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },\r\n ],\r\n})\r\nexport class CopyComponent {\r\n titleFormControl = new FormControl();\r\n conditionList: ConditionList[] = new Array();\r\n conditionValues: any[] = [];\r\n\r\n conditionMore: any[] = [];\r\n conditionOn: any[] = [];\r\n mask: string = \"\";\r\n\r\n dateDate: any[] = [];\r\n dateTime: any[] = [];\r\n\r\n conditionFinArray: any[] = [];\r\n conditionFinish: boolean = true;\r\n\r\n titleAligment: any = \"\";\r\n\r\n backupCondition: any[] = [];\r\n userDataTypeValue: any[] = [];\r\n\r\n isLoad: boolean = false;\r\n loadColor: ThemePalette = \"primary\";\r\n loadMode: ProgressSpinnerMode = \"indeterminate\";\r\n loadValue: number = 50;\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: DialogData, private admin: AdminPage, public dialog: MatDialog, private http: HttpClient) {\r\n isChange = false;\r\n this.isLoad = true;\r\n\r\n if (this.data.data.condition != undefined && this.data.data.condition != null && this.data.data.condition != \"\") {\r\n this.backupCondition = JSON.parse(JSON.stringify(this.data.data.condition));\r\n }\r\n if (this.data.data.aligment == null || this.data.data.aligment == undefined) {\r\n this.data.data.aligment = \"\";\r\n }\r\n\r\n this.titleFormControl = new FormControl(data.data.tableLabel, [Validators.required]);\r\n let value: ConditionList = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.conditionList.push(value);\r\n let interval = setInterval(() => {\r\n if (!this.isLoad) {\r\n clearInterval(interval);\r\n if (this.data.data.condition != null) {\r\n this.conditionList = this.data.data.condition;\r\n [].forEach.call(this.conditionList, (e, index) => {\r\n this.loadTarget({ value: e.target }, index);\r\n this.onOwnDateLoad(index);\r\n });\r\n }\r\n }\r\n }, 50);\r\n this.dbRequest(\"Lib\");\r\n }\r\n\r\n dbRequest(type) {\r\n switch (type) {\r\n case \"Lib\":\r\n this.http.get(this.admin.getUrl() + \"userDataTypeValue\").subscribe((data) => {\r\n this.userDataTypeValue = [];\r\n [].forEach.call(data, (e) => {\r\n let tableTitle = e.value.split(\"*L*\");\r\n let elements = tableTitle.filter((x) => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n\r\n this.userDataTypeValue.push({ Id: e.id, Title: tableTitle, Email: e.email, Parent: e.uerDataTypeId });\r\n });\r\n this.isLoad = false;\r\n });\r\n break;\r\n }\r\n }\r\n\r\n changeAlign(value) {\r\n this.titleAligment = value;\r\n }\r\n\r\n changeRegister() {\r\n isChange = true;\r\n }\r\n\r\n editCondition(index) {\r\n if (index == -1) {\r\n let value: ConditionList = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.conditionList.push(value);\r\n this.conditionValues.push([]);\r\n this.conditionMore.push([]);\r\n this.conditionOn.push([]);\r\n this.dateDate.push([]);\r\n this.dateTime.push([]);\r\n this.conditionFinArray.push([]);\r\n } else {\r\n this.conditionList.splice(index, 1);\r\n this.conditionValues.splice(index, 1);\r\n this.conditionMore.splice(index, 1);\r\n this.conditionOn.splice(index, 1);\r\n this.dateDate.splice(index, 1);\r\n this.dateTime.splice(index, 1);\r\n this.conditionFinArray.splice(index, 1);\r\n }\r\n }\r\n\r\n changeConditionMore(event, index) {\r\n if (\r\n this.conditionList[index].condition == \"morenumber\" ||\r\n this.conditionList[index].condition == \"lessnumber\" ||\r\n this.conditionList[index].condition == \"isnumber\" ||\r\n this.conditionList[index].condition == \"notnumber\"\r\n ) {\r\n this.conditionOn[index] = [];\r\n if (event == \"0\") {\r\n this.conditionOn[index].push({ name: \"2\", value: \"ніж\" });\r\n } else {\r\n this.conditionOn[index].push({ name: \"0\", value: \"ніж\" }, { name: \"1\", value: \"на\" });\r\n }\r\n }\r\n this.conditionList[index] = {\r\n target: this.conditionList[index].target,\r\n condition: this.conditionList[index].condition,\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n this.dateDate[index] = \"\";\r\n this.dateTime[index] = \"\";\r\n this.conditionCheck(event, \"field\", index);\r\n this.conditionList[index].field = event;\r\n }\r\n\r\n changeConditionOn(event, index) {\r\n this.conditionCheck(event, \"on\", index);\r\n this.conditionList[index].on = event;\r\n }\r\n\r\n onOwnDate(event, index, type) {\r\n if (type == \"date\") {\r\n this.dateDate[index] = event.value;\r\n } else {\r\n this.dateTime[index] = \"\";\r\n setTimeout(() => {\r\n this.dateTime[index] = event;\r\n }, 0);\r\n }\r\n if (this.dateTime[index] != \"\" && this.dateTime[index] != undefined) {\r\n let nd = new Date(this.dateDate[index]);\r\n nd.setHours(parseInt(this.dateTime[index].split(\":\")[0]));\r\n nd.setMinutes(parseInt(this.dateTime[index].split(\":\")[1]));\r\n this.dateDate[index] = nd;\r\n } else {\r\n setTimeout(() => {\r\n this.dateTime[index] = \"00:00\";\r\n }, 0);\r\n }\r\n this.conditionList[index] = {\r\n target: this.conditionList[index].target,\r\n condition: this.conditionList[index].condition,\r\n field: this.conditionList[index].field,\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n this.conditionCheck(event, \"date\", index);\r\n this.conditionList[index].date = this.dateDate[index];\r\n }\r\n\r\n onOwnDateLoad(index) {\r\n let nd = this.conditionList[index].date.split(\"-\");\r\n let date = new Date(nd[1] + \"-\" + nd[0] + \"-\" + nd[2]);\r\n this.dateDate[index] = date;\r\n this.dateTime[index] = (\"0\" + date.getHours()).slice(-2) + \":\" + (\"0\" + date.getMinutes()).slice(-2);\r\n }\r\n\r\n changeValue(event, index) {\r\n this.conditionCheck(event, \"value\", index);\r\n this.conditionList[index].value = event.target.value;\r\n }\r\n\r\n changeCondition(event, type, index) {\r\n if (type == \"target\") {\r\n this.conditionList[index] = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n } else if (type == \"condition\") {\r\n this.conditionList[index] = {\r\n target: this.conditionList[index].target,\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n }\r\n this.dateDate[index] = \"\";\r\n this.dateTime[index] = \"\";\r\n this.conditionCheck(event, type, index);\r\n this.conditionList[index][type] = event;\r\n }\r\n\r\n conditionCheck(event, type, index) {\r\n switch (type) {\r\n case \"target\":\r\n if (event == \"\") {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case \"condition\":\r\n if (\r\n event == \"moredate\" ||\r\n event == \"lessdate\" ||\r\n event == \"isdate\" ||\r\n event == \"notdate\" ||\r\n event == \"morenumber\" ||\r\n event == \"lessnumber\" ||\r\n event == \"isnumber\" ||\r\n event == \"notnumber\" ||\r\n event == \"\"\r\n ) {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n case \"field\":\r\n if (\r\n (this.conditionList[index].condition == \"isdate\" ||\r\n this.conditionList[index].condition == \"notdate\" ||\r\n this.conditionList[index].condition == \"isnumber\" ||\r\n this.conditionList[index].condition == \"notnumber\") &&\r\n event != \"\" &&\r\n event != \"1\"\r\n ) {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case \"date\":\r\n if (event == \"\") {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n case \"on\":\r\n if (event == \"0\") {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case \"value\":\r\n if (event.target.value == \"\") {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n }\r\n let check = true;\r\n [].forEach.call(this.conditionFinArray, (e) => {\r\n if (e == false) {\r\n check = false;\r\n }\r\n });\r\n this.conditionFinish = check;\r\n }\r\n\r\n loadTarget(event, index) {\r\n this.conditionValues[index] = [];\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push({ name: \"0\", value: \"\", pl: \"\" });\r\n this.conditionOn[index] = [];\r\n let datas: any[] = [];\r\n datas = this.data.list;\r\n let target = datas.filter((x) => x.key.split(\"|\")[0] === event.value.split(\"|\")[0]).map((x) => x);\r\n if (target.length == 0) {\r\n this.conditionList.length = 1;\r\n this.conditionList[0] = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.conditionValues[0] = [];\r\n this.conditionMore[0] = [];\r\n this.conditionOn[0] = [];\r\n return false;\r\n }\r\n this.conditionFinArray[index] = true;\r\n let array: any;\r\n switch (target[0].type) {\r\n case \"select\":\r\n array = this.dataPacker(target[0].selectors);\r\n [].forEach.call(array.list, (e) => {\r\n this.conditionValues[index].push(e);\r\n });\r\n break;\r\n case \"input\":\r\n let check = 0;\r\n if (target[0].mask != \"\" && target[0].mask != null && target[0].mask != undefined) {\r\n let mask = target[0].mask.split(\"_\");\r\n if (mask[0] == \"number\") {\r\n check = 1;\r\n }\r\n }\r\n if (check == 1) {\r\n this.conditionValues[index].push(\r\n { name: \"fill\", value: \"Числове поле заповнене\" },\r\n { name: \"empty\", value: \"Числове поле порожнє\" },\r\n { name: \"morenumber\", value: \"Число більше\" },\r\n { name: \"lessnumber\", value: \"Число меньше\" },\r\n { name: \"isnumber\", value: \"Число дорівнює\" },\r\n { name: \"notnumber\", value: \"Число не дорівнює\" }\r\n );\r\n let list = [];\r\n [].forEach.call(this.data.list, (e) => {\r\n if (e.type == \"input\") {\r\n if (e.mask != \"\" && e.mask != null && e.mask != undefined) {\r\n let mask = e.mask.split(\"_\");\r\n if (mask[0] == \"number\") {\r\n list.push(e);\r\n }\r\n }\r\n }\r\n });\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push({ name: \"0\", value: \"*Ввести власні дані*\" });\r\n [].forEach.call(list, (e) => {\r\n this.conditionMore[index].push({ name: e.key, value: e.tableLabel });\r\n });\r\n let indexF = this.conditionMore[index]\r\n .map(function (e) {\r\n return e.name.split(\"|\")[0];\r\n })\r\n .indexOf(target[0].key.split(\"|\")[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[index].splice(indexF, 1);\r\n }\r\n if (this.conditionList[index].field == \"0\") {\r\n this.conditionOn[index].push({ name: \"2\", value: \"ніж (строго більше чи меньше)\" });\r\n } else {\r\n this.conditionOn[index].push({ name: \"0\", value: \"ніж (строго більше чи меньше)\" }, { name: \"1\", value: \"на (число)\" });\r\n }\r\n } else {\r\n this.conditionValues[index].push({ name: \"fill\", value: \"Текстове поле заповнене\" }, { name: \"empty\", value: \"Текстове поле порожнє\" });\r\n }\r\n break;\r\n case \"radio\":\r\n array = this.dataPacker(target[0].selectors);\r\n [].forEach.call(array.list, (e) => {\r\n this.conditionValues[index].push(e);\r\n });\r\n break;\r\n case \"checkbox\":\r\n this.conditionValues[index].push({ name: \"check\", value: \"Поле відмічене\" }, { name: \"uncheck\", value: \"Поле не відмічене\" });\r\n break;\r\n case \"date\":\r\n this.conditionValues[index].push(\r\n { name: \"date\", value: \"Дата вказана\" },\r\n { name: \"nodate\", value: \"Дата не вказана\" },\r\n { name: \"moredate\", value: \"Дата більше\" },\r\n { name: \"lessdate\", value: \"Дата меньше\" },\r\n { name: \"isdate\", value: \"Дата дорівнює\" },\r\n { name: \"notdate\", value: \"Дата не дорівнює\" }\r\n );\r\n let list = [];\r\n [].forEach.call(this.data.list, (e) => {\r\n if (e.type == \"date\") {\r\n list.push(e);\r\n }\r\n });\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push({ name: \"0\", value: \"*Поточна дата*\", pl: \"кількість годин (днів, місяців, років)\" }, { name: \"1\", value: \"*Власна дата*\" });\r\n [].forEach.call(list, (e) => {\r\n this.conditionMore[index].push({ name: e.key, value: e.tableLabel });\r\n });\r\n let indexF = this.conditionMore[index]\r\n .map(function (e) {\r\n return e.name.split(\"|\")[0];\r\n })\r\n .indexOf(this.data.data.key.split(\"|\")[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[index].splice(indexF, 1);\r\n }\r\n indexF = this.conditionMore[index]\r\n .map(function (e) {\r\n return e.name.split(\"|\")[0];\r\n })\r\n .indexOf(target[0].key.split(\"|\")[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[index].splice(indexF, 1);\r\n }\r\n this.conditionOn[index].push(\r\n { name: \"0\", value: \"ніж (строго більше чи меньше)\" },\r\n { name: \"1\", value: \"на (днів)\" },\r\n { name: \"2\", value: \"на (місяців)\" },\r\n { name: \"3\", value: \"на (років)\" }\r\n );\r\n if (target[0].mask == \"time\") {\r\n this.conditionOn[index].push({ name: \"4\", value: \"на (годин)\" });\r\n }\r\n break;\r\n case \"file\":\r\n this.conditionValues[index].push({ name: \"file\", value: \"Файл вибрано\" }, { name: \"nofile\", value: \"Файл відсутній\" });\r\n break;\r\n case \"editor\":\r\n this.conditionValues[index].push({ name: \"fillE\", value: \"Редактор заповненний\" }, { name: \"emptyE\", value: \"Редактор порожній\" });\r\n break;\r\n }\r\n }\r\n\r\n dataPacker(value) {\r\n let selectors = {\r\n type: \"\",\r\n list: [],\r\n };\r\n if (value != null && value.list == undefined) {\r\n selectors.type = value.split(\"*T*\")[1].split(\"*L*\")[0];\r\n if (selectors.type == \"lib\") {\r\n let list = [];\r\n let valList = value.split(\"*L*\")[1];\r\n [].forEach.call(this.userDataTypeValue, (e) => {\r\n if (e.Parent == parseInt(valList)) {\r\n list.push(e);\r\n }\r\n });\r\n selectors.list = [];\r\n [].forEach.call(list, (e, index) => {\r\n selectors.list.push({ name: \"option_\" + index, value: e.Title, email: e.Email });\r\n });\r\n } else {\r\n let list = value.split(\"*L*\")[1].split(\"*I*\");\r\n [].forEach.call(list, (e, index) => {\r\n let text = e.split(\"|\");\r\n let array = {\r\n name: text[0],\r\n value: text[1],\r\n dialog: text[2],\r\n };\r\n list[index] = array;\r\n });\r\n selectors.list = list;\r\n }\r\n return selectors;\r\n } else {\r\n if (value.type == \"lib\" && value.id == undefined) {\r\n selectors.type = value.type;\r\n let list = [];\r\n [].forEach.call(this.userDataTypeValue, (e) => {\r\n if (e.Parent == parseInt(value.list[0].name)) {\r\n list.push(e);\r\n }\r\n });\r\n selectors.list = [];\r\n [].forEach.call(list, (e, index) => {\r\n selectors.list.push({ name: \"option_\" + index, value: e.Title, email: e.Email });\r\n });\r\n return selectors;\r\n } else {\r\n return value;\r\n }\r\n }\r\n }\r\n\r\n saveMenu(data) {\r\n let condition;\r\n if (this.conditionList[0].target != \"\" && this.conditionList[0].target != null && this.conditionList[0].target != undefined) {\r\n condition = this.conditionList;\r\n [].forEach.call(condition, (e, index) => {\r\n if (e.date != null && e.date != \"\") {\r\n e.date = new Date(e.date);\r\n condition[index].date =\r\n (\"0\" + e.date.getDate()).slice(-2) +\r\n \"-\" +\r\n (\"0\" + (e.date.getMonth() + 1)).slice(-2) +\r\n \"-\" +\r\n e.date.getFullYear() +\r\n \" \" +\r\n (\"0\" + e.date.getHours()).slice(-2) +\r\n \":\" +\r\n (\"0\" + e.date.getMinutes()).slice(-2);\r\n }\r\n });\r\n } else {\r\n condition = null;\r\n }\r\n let label = this.data.data.label;\r\n if (this.data.data.id == 0 || this.data.data.id == undefined) {\r\n label = data.name;\r\n }\r\n let labelSplit = label.split(\"*L*\");\r\n if (labelSplit.length > 1) {\r\n if (labelSplit[0].split(\"*I*\").length == 1) {\r\n labelSplit.splice(0, 1);\r\n }\r\n }\r\n label = labelSplit.join(\"*L*\");\r\n let json = {\r\n label: label,\r\n requestAttributeId: this.data.data.requestAttributeId,\r\n key: this.data.data.key,\r\n type: this.data.data.type,\r\n mask: null,\r\n tooltip: this.data.data.tooltip,\r\n disabled: false,\r\n display: true,\r\n required: false,\r\n condition: condition,\r\n dialog: this.data.data.dialog,\r\n placeholder: this.data.data.placeholder,\r\n aligment: data.aligment,\r\n\r\n tableDescription: null,\r\n tableDialog: data.buttonDelete,\r\n tableLabel: data.name,\r\n tablePlaceholder: data.buttonAdd,\r\n tableTooltip: data.tooltip,\r\n };\r\n let index = this.data.list.indexOf(this.data.data);\r\n this.dialogRef.close([\"save\", index, json, this.data.list]);\r\n }\r\n\r\n onClose(): void {\r\n if (isChange) {\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: { text: \"Увага! Налаштування поля форми не буде збережено. Продовжити?\" },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n if (this.backupCondition.length == 0) {\r\n this.data.data.condition = null;\r\n } else {\r\n this.data.data.condition = JSON.parse(JSON.stringify(this.backupCondition));\r\n }\r\n this.dialogRef.close();\r\n }\r\n });\r\n } else {\r\n if (this.backupCondition.length == 0) {\r\n this.data.data.condition = null;\r\n } else {\r\n this.data.data.condition = JSON.parse(JSON.stringify(this.backupCondition));\r\n }\r\n this.dialogRef.close();\r\n }\r\n isChange = false;\r\n }\r\n\r\n onRemove() {\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: { text: \"Увага! Ви дійсно бажаєте видалити це поле?\" },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n let index = this.data.list.indexOf(this.data.data);\r\n this.dialogRef.close([\"remove\", index, this.data.list]);\r\n }\r\n });\r\n }\r\n}\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Column Component\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n@Component({\r\n selector: \"column-component\",\r\n templateUrl: \"./component/column.html\",\r\n styleUrls: [\"./admin.css\"],\r\n providers: [\r\n AdminPage,\r\n { provide: MAT_DATE_LOCALE, useValue: \"uk-UA\" },\r\n { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS] },\r\n { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },\r\n ],\r\n})\r\nexport class ColumnComponent {\r\n titleFormControl = new FormControl();\r\n conditionList: ConditionList[] = new Array();\r\n columnNumber: any[] = new Array();\r\n conditionValues: any[] = [];\r\n displayTitle: boolean = false;\r\n\r\n conditionMore: any[] = [];\r\n conditionOn: any[] = [];\r\n mask: string = \"\";\r\n\r\n dateDate: any[] = [];\r\n dateTime: any[] = [];\r\n\r\n conditionFinArray: any[] = [];\r\n conditionFinish: boolean = true;\r\n\r\n titleAligment: any = \"\";\r\n\r\n backupCondition: any[] = [];\r\n userDataTypeValue: any[] = [];\r\n\r\n isLoad: boolean = false;\r\n loadColor: ThemePalette = \"primary\";\r\n loadMode: ProgressSpinnerMode = \"indeterminate\";\r\n loadValue: number = 50;\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: DialogData, private admin: AdminPage, public dialog: MatDialog, private http: HttpClient) {\r\n isChange = false;\r\n this.isLoad = true;\r\n\r\n if (this.data.data.condition != undefined && this.data.data.condition != null && this.data.data.condition != \"\") {\r\n this.backupCondition = JSON.parse(JSON.stringify(this.data.data.condition));\r\n }\r\n if (this.data.data.aligment == null || this.data.data.aligment == undefined) {\r\n this.data.data.aligment = \"\";\r\n }\r\n this.titleFormControl = new FormControl(data.data.tableLabel, [Validators.required]);\r\n let value: ConditionList = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n\r\n [].forEach.call(this.data.data.columns, (e) => {\r\n this.columnNumber.push(e);\r\n });\r\n this.conditionList.push(value);\r\n this.displayTitle = this.data.data.required;\r\n if (this.displayTitle == undefined) {\r\n this.displayTitle = false;\r\n }\r\n let interval = setInterval(() => {\r\n if (!this.isLoad) {\r\n clearInterval(interval);\r\n if (this.data.data.condition != null) {\r\n this.conditionList = this.data.data.condition;\r\n [].forEach.call(this.conditionList, (e, index) => {\r\n this.loadTarget({ value: e.target }, index);\r\n this.onOwnDateLoad(index);\r\n });\r\n }\r\n }\r\n }, 50);\r\n if (this.data.data.mask != undefined && this.data.data.mask != \"\" && this.data.data.mask != null) {\r\n this.mask = this.data.data.mask;\r\n }\r\n this.dbRequest(\"Lib\");\r\n }\r\n\r\n dbRequest(type) {\r\n switch (type) {\r\n case \"Lib\":\r\n this.http.get(this.admin.getUrl() + \"userDataTypeValue\").subscribe((data) => {\r\n this.userDataTypeValue = [];\r\n [].forEach.call(data, (e) => {\r\n let tableTitle = e.value.split(\"*L*\");\r\n let elements = tableTitle.filter((x) => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n\r\n this.userDataTypeValue.push({ Id: e.id, Title: tableTitle, Email: e.email, Parent: e.uerDataTypeId });\r\n });\r\n this.isLoad = false;\r\n });\r\n break;\r\n }\r\n }\r\n\r\n changeAlign(value) {\r\n this.titleAligment = value;\r\n }\r\n\r\n changeRegister() {\r\n isChange = true;\r\n }\r\n\r\n changeColumn(value, save) {\r\n let array = this.columnNumber;\r\n let counter = this.data.data.columns.length - 1;\r\n if (save) {\r\n array = this.data.data.columns;\r\n }\r\n if (array.length > value) {\r\n let number = array.length - value;\r\n if (counter >= number) {\r\n for (let i = counter; i >= number; i--) {\r\n array[counter - number] = array[counter - number].concat(array[i]);\r\n }\r\n }\r\n array.splice(-number, number);\r\n } else {\r\n let number = value - array.length;\r\n for (let i = 0; i < number; i++) {\r\n array.push([]);\r\n }\r\n }\r\n if (save) {\r\n this.columnNumber = array;\r\n return array;\r\n }\r\n }\r\n\r\n changeTitle(event) {\r\n this.displayTitle = event.checked;\r\n }\r\n\r\n changeMask(event) {\r\n this.mask = event;\r\n }\r\n\r\n editCondition(index) {\r\n if (index == -1) {\r\n let value: ConditionList = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.conditionList.push(value);\r\n this.conditionValues.push([]);\r\n this.conditionMore.push([]);\r\n this.conditionOn.push([]);\r\n this.dateDate.push([]);\r\n this.dateTime.push([]);\r\n this.conditionFinArray.push([]);\r\n } else {\r\n this.conditionList.splice(index, 1);\r\n this.conditionValues.splice(index, 1);\r\n this.conditionMore.splice(index, 1);\r\n this.conditionOn.splice(index, 1);\r\n this.dateDate.splice(index, 1);\r\n this.dateTime.splice(index, 1);\r\n this.conditionFinArray.splice(index, 1);\r\n }\r\n }\r\n\r\n changeConditionMore(event, index) {\r\n if (\r\n this.conditionList[index].condition == \"morenumber\" ||\r\n this.conditionList[index].condition == \"lessnumber\" ||\r\n this.conditionList[index].condition == \"isnumber\" ||\r\n this.conditionList[index].condition == \"notnumber\"\r\n ) {\r\n this.conditionOn[index] = [];\r\n if (event == \"0\") {\r\n this.conditionOn[index].push({ name: \"2\", value: \"ніж\" });\r\n } else {\r\n this.conditionOn[index].push({ name: \"0\", value: \"ніж\" }, { name: \"1\", value: \"на\" });\r\n }\r\n }\r\n this.conditionList[index] = {\r\n target: this.conditionList[index].target,\r\n condition: this.conditionList[index].condition,\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n this.dateDate[index] = \"\";\r\n this.dateTime[index] = \"\";\r\n this.conditionCheck(event, \"field\", index);\r\n this.conditionList[index].field = event;\r\n }\r\n\r\n changeConditionOn(event, index) {\r\n this.conditionCheck(event, \"on\", index);\r\n this.conditionList[index].on = event;\r\n }\r\n\r\n onOwnDate(event, index, type) {\r\n if (type == \"date\") {\r\n this.dateDate[index] = event.value;\r\n } else {\r\n this.dateTime[index] = \"\";\r\n setTimeout(() => {\r\n this.dateTime[index] = event;\r\n }, 0);\r\n }\r\n if (this.dateTime[index] != \"\" && this.dateTime[index] != undefined) {\r\n let nd = new Date(this.dateDate[index]);\r\n nd.setHours(parseInt(this.dateTime[index].split(\":\")[0]));\r\n nd.setMinutes(parseInt(this.dateTime[index].split(\":\")[1]));\r\n this.dateDate[index] = nd;\r\n } else {\r\n setTimeout(() => {\r\n this.dateTime[index] = \"00:00\";\r\n }, 0);\r\n }\r\n this.conditionList[index] = {\r\n target: this.conditionList[index].target,\r\n condition: this.conditionList[index].condition,\r\n field: this.conditionList[index].field,\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n this.conditionCheck(event, \"date\", index);\r\n this.conditionList[index].date = this.dateDate[index];\r\n }\r\n\r\n onOwnDateLoad(index) {\r\n let nd = this.conditionList[index].date.split(\"-\");\r\n let date = new Date(nd[1] + \"-\" + nd[0] + \"-\" + nd[2]);\r\n this.dateDate[index] = date;\r\n this.dateTime[index] = (\"0\" + date.getHours()).slice(-2) + \":\" + (\"0\" + date.getMinutes()).slice(-2);\r\n }\r\n\r\n changeValue(event, index) {\r\n this.conditionCheck(event, \"value\", index);\r\n this.conditionList[index].value = event.target.value;\r\n }\r\n\r\n changeCondition(event, type, index) {\r\n if (type == \"target\") {\r\n this.conditionList[index] = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n } else if (type == \"condition\") {\r\n this.conditionList[index] = {\r\n target: this.conditionList[index].target,\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n }\r\n this.dateDate[index] = \"\";\r\n this.dateTime[index] = \"\";\r\n this.conditionCheck(event, type, index);\r\n this.conditionList[index][type] = event;\r\n }\r\n\r\n conditionCheck(event, type, index) {\r\n switch (type) {\r\n case \"target\":\r\n if (event == \"\") {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case \"condition\":\r\n if (\r\n event == \"moredate\" ||\r\n event == \"lessdate\" ||\r\n event == \"isdate\" ||\r\n event == \"notdate\" ||\r\n event == \"morenumber\" ||\r\n event == \"lessnumber\" ||\r\n event == \"isnumber\" ||\r\n event == \"notnumber\" ||\r\n event == \"\"\r\n ) {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n case \"field\":\r\n if (\r\n (this.conditionList[index].condition == \"isdate\" ||\r\n this.conditionList[index].condition == \"notdate\" ||\r\n this.conditionList[index].condition == \"isnumber\" ||\r\n this.conditionList[index].condition == \"notnumber\") &&\r\n event != \"\" &&\r\n event != \"1\"\r\n ) {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case \"date\":\r\n if (event == \"\") {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n case \"on\":\r\n if (event == \"0\") {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case \"value\":\r\n if (event.target.value == \"\") {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n }\r\n let check = true;\r\n [].forEach.call(this.conditionFinArray, (e) => {\r\n if (e == false) {\r\n check = false;\r\n }\r\n });\r\n this.conditionFinish = check;\r\n }\r\n\r\n setNumberDecimal(event) {\r\n event.target.value = parseFloat(event.target.value).toFixed(0);\r\n }\r\n\r\n loadTarget(event, index) {\r\n this.conditionValues[index] = [];\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push({ name: \"0\", value: \"\", pl: \"\" });\r\n this.conditionOn[index] = [];\r\n let datas: any[] = [];\r\n datas = this.data.list;\r\n let target = datas.filter((x) => x.key.split(\"|\")[0] === event.value.split(\"|\")[0]).map((x) => x);\r\n if (target.length == 0) {\r\n this.conditionList.length = 1;\r\n this.conditionList[0] = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.conditionValues[0] = [];\r\n this.conditionMore[0] = [];\r\n this.conditionOn[0] = [];\r\n return false;\r\n }\r\n this.conditionFinArray[index] = true;\r\n let array: any;\r\n switch (target[0].type) {\r\n case \"select\":\r\n array = this.dataPacker(target[0].selectors);\r\n [].forEach.call(array.list, (e) => {\r\n this.conditionValues[index].push(e);\r\n });\r\n break;\r\n case \"input\":\r\n let check = 0;\r\n if (target[0].mask != \"\" && target[0].mask != null && target[0].mask != undefined) {\r\n let mask = target[0].mask.split(\"_\");\r\n if (mask[0] == \"number\") {\r\n check = 1;\r\n }\r\n }\r\n if (check == 1) {\r\n this.conditionValues[index].push(\r\n { name: \"fill\", value: \"Числове поле заповнене\" },\r\n { name: \"empty\", value: \"Числове поле порожнє\" },\r\n { name: \"morenumber\", value: \"Число більше\" },\r\n { name: \"lessnumber\", value: \"Число меньше\" },\r\n { name: \"isnumber\", value: \"Число дорівнює\" },\r\n { name: \"notnumber\", value: \"Число не дорівнює\" }\r\n );\r\n let list = [];\r\n [].forEach.call(this.data.list, (e) => {\r\n if (e.type == \"input\") {\r\n if (e.mask != \"\" && e.mask != null && e.mask != undefined) {\r\n let mask = e.mask.split(\"_\");\r\n if (mask[0] == \"number\") {\r\n list.push(e);\r\n }\r\n }\r\n }\r\n });\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push({ name: \"0\", value: \"*Ввести власні дані*\" });\r\n [].forEach.call(list, (e) => {\r\n this.conditionMore[index].push({ name: e.key, value: e.tableLabel });\r\n });\r\n let indexF = this.conditionMore[index]\r\n .map(function (e) {\r\n return e.name.split(\"|\")[0];\r\n })\r\n .indexOf(target[0].key.split(\"|\")[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[index].splice(indexF, 1);\r\n }\r\n if (this.conditionList[index].field == \"0\") {\r\n this.conditionOn[index].push({ name: \"2\", value: \"ніж (строго більше чи меньше)\" });\r\n } else {\r\n this.conditionOn[index].push({ name: \"0\", value: \"ніж (строго більше чи меньше)\" }, { name: \"1\", value: \"на (число)\" });\r\n }\r\n } else {\r\n this.conditionValues[index].push({ name: \"fill\", value: \"Текстове поле заповнене\" }, { name: \"empty\", value: \"Текстове поле порожнє\" });\r\n }\r\n break;\r\n case \"radio\":\r\n array = this.dataPacker(target[0].selectors);\r\n [].forEach.call(array.list, (e) => {\r\n this.conditionValues[index].push(e);\r\n });\r\n break;\r\n case \"checkbox\":\r\n this.conditionValues[index].push({ name: \"check\", value: \"Поле відмічене\" }, { name: \"uncheck\", value: \"Поле не відмічене\" });\r\n break;\r\n case \"date\":\r\n this.conditionValues[index].push(\r\n { name: \"date\", value: \"Дата вказана\" },\r\n { name: \"nodate\", value: \"Дата не вказана\" },\r\n { name: \"moredate\", value: \"Дата більше\" },\r\n { name: \"lessdate\", value: \"Дата меньше\" },\r\n { name: \"isdate\", value: \"Дата дорівнює\" },\r\n { name: \"notdate\", value: \"Дата не дорівнює\" }\r\n );\r\n let list = [];\r\n [].forEach.call(this.data.list, (e) => {\r\n if (e.type == \"date\") {\r\n list.push(e);\r\n }\r\n });\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push({ name: \"0\", value: \"*Поточна дата*\", pl: \"кількість годин (днів, місяців, років)\" }, { name: \"1\", value: \"*Власна дата*\" });\r\n [].forEach.call(list, (e) => {\r\n this.conditionMore[index].push({ name: e.key, value: e.tableLabel });\r\n });\r\n let indexF = this.conditionMore[index]\r\n .map(function (e) {\r\n return e.name.split(\"|\")[0];\r\n })\r\n .indexOf(this.data.data.key.split(\"|\")[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[index].splice(indexF, 1);\r\n }\r\n indexF = this.conditionMore[index]\r\n .map(function (e) {\r\n return e.name.split(\"|\")[0];\r\n })\r\n .indexOf(target[0].key.split(\"|\")[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[index].splice(indexF, 1);\r\n }\r\n this.conditionOn[index].push(\r\n { name: \"0\", value: \"ніж (строго більше чи меньше)\" },\r\n { name: \"1\", value: \"на (днів)\" },\r\n { name: \"2\", value: \"на (місяців)\" },\r\n { name: \"3\", value: \"на (років)\" }\r\n );\r\n if (target[0].mask == \"time\") {\r\n this.conditionOn[index].push({ name: \"4\", value: \"на (годин)\" });\r\n }\r\n break;\r\n case \"file\":\r\n this.conditionValues[index].push({ name: \"file\", value: \"Файл вибрано\" }, { name: \"nofile\", value: \"Файл відсутній\" });\r\n break;\r\n case \"editor\":\r\n this.conditionValues[index].push({ name: \"fillE\", value: \"Редактор заповненний\" }, { name: \"emptyE\", value: \"Редактор порожній\" });\r\n break;\r\n }\r\n }\r\n\r\n dataPacker(value) {\r\n let selectors = {\r\n type: \"\",\r\n list: [],\r\n };\r\n if (value != null && value.list == undefined) {\r\n selectors.type = value.split(\"*T*\")[1].split(\"*L*\")[0];\r\n if (selectors.type == \"lib\") {\r\n let list = [];\r\n let valList = value.split(\"*L*\")[1];\r\n [].forEach.call(this.userDataTypeValue, (e) => {\r\n if (e.Parent == parseInt(valList)) {\r\n list.push(e);\r\n }\r\n });\r\n selectors.list = [];\r\n [].forEach.call(list, (e, index) => {\r\n selectors.list.push({ name: \"option_\" + index, value: e.Title, email: e.Email });\r\n });\r\n } else {\r\n let list = value.split(\"*L*\")[1].split(\"*I*\");\r\n [].forEach.call(list, (e, index) => {\r\n let text = e.split(\"|\");\r\n let array = {\r\n name: text[0],\r\n value: text[1],\r\n dialog: text[2],\r\n };\r\n list[index] = array;\r\n });\r\n selectors.list = list;\r\n }\r\n return selectors;\r\n } else {\r\n if (value.type == \"lib\" && value.id == undefined) {\r\n selectors.type = value.type;\r\n let list = [];\r\n [].forEach.call(this.userDataTypeValue, (e) => {\r\n if (e.Parent == parseInt(value.list[0].name)) {\r\n list.push(e);\r\n }\r\n });\r\n selectors.list = [];\r\n [].forEach.call(list, (e, index) => {\r\n selectors.list.push({ name: \"option_\" + index, value: e.Title, email: e.Email });\r\n });\r\n return selectors;\r\n } else {\r\n return value;\r\n }\r\n }\r\n }\r\n\r\n saveMenu(data) {\r\n let condition;\r\n let column = this.changeColumn(this.columnNumber.length, true);\r\n if (this.conditionList[0].target != \"\" && this.conditionList[0].target != null && this.conditionList[0].target != undefined) {\r\n condition = this.conditionList;\r\n [].forEach.call(condition, (e, index) => {\r\n if (e.date != null && e.date != \"\") {\r\n e.date = new Date(e.date);\r\n condition[index].date =\r\n (\"0\" + e.date.getDate()).slice(-2) +\r\n \"-\" +\r\n (\"0\" + (e.date.getMonth() + 1)).slice(-2) +\r\n \"-\" +\r\n e.date.getFullYear() +\r\n \" \" +\r\n (\"0\" + e.date.getHours()).slice(-2) +\r\n \":\" +\r\n (\"0\" + e.date.getMinutes()).slice(-2);\r\n }\r\n });\r\n } else {\r\n condition = null;\r\n }\r\n [].forEach.call(column, (e, indexE) => {\r\n [].forEach.call(e, (c, indexC) => {\r\n column[indexE][indexC].key = c.key.split(\"|\")[0] + \"|\" + indexE;\r\n });\r\n });\r\n let label = this.data.data.label;\r\n if (this.data.data.id == 0 || this.data.data.id == undefined) {\r\n label = data.name;\r\n }\r\n let labelSplit = label.split(\"*L*\");\r\n if (labelSplit.length > 1) {\r\n if (labelSplit[0].split(\"*I*\").length == 1) {\r\n labelSplit.splice(0, 1);\r\n }\r\n }\r\n label = labelSplit.join(\"*L*\");\r\n let json = {\r\n label: label,\r\n requestAttributeId: this.data.data.requestAttributeId,\r\n key: this.data.data.key,\r\n type: this.data.data.type,\r\n mask: this.mask,\r\n disabled: data.disabled,\r\n display: true,\r\n required: this.displayTitle,\r\n columns: column,\r\n condition: condition,\r\n aligment: data.aligment,\r\n\r\n tableDescription: null,\r\n tableDialog: null,\r\n tableLabel: data.name,\r\n tablePlaceholder: null,\r\n tableTooltip: null,\r\n };\r\n let index = this.data.list.indexOf(this.data.data);\r\n this.dialogRef.close([\"save\", index, json, this.data.list]);\r\n }\r\n\r\n onClose(): void {\r\n if (isChange) {\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: { text: \"Увага! Налаштування поля форми не буде збережено. Продовжити?\" },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n if (this.backupCondition.length == 0) {\r\n this.data.data.condition = null;\r\n } else {\r\n this.data.data.condition = JSON.parse(JSON.stringify(this.backupCondition));\r\n }\r\n this.dialogRef.close();\r\n }\r\n });\r\n } else {\r\n if (this.backupCondition.length == 0) {\r\n this.data.data.condition = null;\r\n } else {\r\n this.data.data.condition = JSON.parse(JSON.stringify(this.backupCondition));\r\n }\r\n this.dialogRef.close();\r\n }\r\n isChange = false;\r\n }\r\n\r\n onRemove() {\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: { text: \"Увага! Ви дійсно бажаєте видалити це поле?\" },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n let index = this.data.list.indexOf(this.data.data);\r\n this.dialogRef.close([\"remove\", index, this.data.list]);\r\n }\r\n });\r\n }\r\n}\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Court Component\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n@Component({\r\n selector: \"court-component\",\r\n templateUrl: \"./component/court.html\",\r\n styleUrls: [\"./admin.css\"],\r\n providers: [\r\n AdminPage,\r\n { provide: MAT_DATE_LOCALE, useValue: \"uk-UA\" },\r\n { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS] },\r\n { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },\r\n ],\r\n})\r\nexport class CourtComponent {\r\n titleFormControl = new FormControl();\r\n conditionList: ConditionList[] = new Array();\r\n optionList: SelectorData[] = [];\r\n selectorList: SelectorList;\r\n conditionValues: any[] = [];\r\n\r\n conditionMore: any[] = [];\r\n conditionOn: any[] = [];\r\n mask: string = \"\";\r\n\r\n dateDate: any[] = [];\r\n dateTime: any[] = [];\r\n\r\n conditionFinArray: any[] = [];\r\n conditionFinish: boolean = true;\r\n\r\n titleAligment: any = \"\";\r\n\r\n backupCondition: any[] = [];\r\n userDataTypeValue: any[] = [];\r\n fieldDisabled: boolean = false;\r\n\r\n isLoad: boolean = false;\r\n loadColor: ThemePalette = \"primary\";\r\n loadMode: ProgressSpinnerMode = \"indeterminate\";\r\n loadValue: number = 50;\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: DialogData, private admin: AdminPage, public dialog: MatDialog, private http: HttpClient) {\r\n isChange = false;\r\n this.isLoad = true;\r\n\r\n if (this.data.data.condition != undefined && this.data.data.condition != null && this.data.data.condition != \"\") {\r\n this.backupCondition = JSON.parse(JSON.stringify(this.data.data.condition));\r\n }\r\n if (this.data.data.aligment == null || this.data.data.aligment == undefined) {\r\n this.data.data.aligment = \"\";\r\n }\r\n if (this.data.data.disabled != undefined) {\r\n this.fieldDisabled = JSON.parse(this.data.data.disabled);\r\n }\r\n\r\n this.titleFormControl = new FormControl(data.data.tableLabel, [Validators.required]);\r\n let value: ConditionList = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.conditionList.push(value);\r\n\r\n this.selectorList = { type: \"custom\", list: [] };\r\n if (this.data.data.selectors != null) {\r\n this.selectorList = this.data.data.selectors;\r\n }\r\n let interval = setInterval(() => {\r\n if (!this.isLoad) {\r\n clearInterval(interval);\r\n if (this.data.data.condition != null) {\r\n this.conditionList = this.data.data.condition;\r\n [].forEach.call(this.conditionList, (e, index) => {\r\n this.loadTarget({ value: e.target }, index);\r\n this.onOwnDateLoad(index);\r\n });\r\n }\r\n }\r\n }, 50);\r\n this.dbRequest(\"Lib\");\r\n }\r\n\r\n dbRequest(type) {\r\n switch (type) {\r\n case \"Lib\":\r\n this.http.get(this.admin.getUrl() + \"userDataTypeValue\").subscribe((data) => {\r\n this.userDataTypeValue = [];\r\n [].forEach.call(data, (e) => {\r\n let tableTitle = e.value.split(\"*L*\");\r\n let elements = tableTitle.filter((x) => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n\r\n this.userDataTypeValue.push({ Id: e.id, Title: tableTitle, Email: e.email, Parent: e.uerDataTypeId });\r\n });\r\n this.isLoad = false;\r\n });\r\n break;\r\n }\r\n }\r\n\r\n changeAlign(value) {\r\n this.titleAligment = value;\r\n }\r\n\r\n changeRegister() {\r\n isChange = true;\r\n }\r\n\r\n editCondition(index) {\r\n if (index == -1) {\r\n let value: ConditionList = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.conditionList.push(value);\r\n this.conditionValues.push([]);\r\n this.conditionMore.push([]);\r\n this.conditionOn.push([]);\r\n this.dateDate.push([]);\r\n this.dateTime.push([]);\r\n this.conditionFinArray.push([]);\r\n } else {\r\n this.conditionList.splice(index, 1);\r\n this.conditionValues.splice(index, 1);\r\n this.conditionMore.splice(index, 1);\r\n this.conditionOn.splice(index, 1);\r\n this.dateDate.splice(index, 1);\r\n this.dateTime.splice(index, 1);\r\n this.conditionFinArray.splice(index, 1);\r\n }\r\n }\r\n\r\n changeConditionMore(event, index) {\r\n if (\r\n this.conditionList[index].condition == \"morenumber\" ||\r\n this.conditionList[index].condition == \"lessnumber\" ||\r\n this.conditionList[index].condition == \"isnumber\" ||\r\n this.conditionList[index].condition == \"notnumber\"\r\n ) {\r\n this.conditionOn[index] = [];\r\n if (event == \"0\") {\r\n this.conditionOn[index].push({ name: \"2\", value: \"ніж\" });\r\n } else {\r\n this.conditionOn[index].push({ name: \"0\", value: \"ніж\" }, { name: \"1\", value: \"на\" });\r\n }\r\n }\r\n this.conditionList[index] = {\r\n target: this.conditionList[index].target,\r\n condition: this.conditionList[index].condition,\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n this.dateDate[index] = \"\";\r\n this.dateTime[index] = \"\";\r\n this.conditionCheck(event, \"field\", index);\r\n this.conditionList[index].field = event;\r\n }\r\n\r\n changeConditionOn(event, index) {\r\n this.conditionCheck(event, \"on\", index);\r\n this.conditionList[index].on = event;\r\n }\r\n\r\n onOwnDate(event, index, type) {\r\n if (type == \"date\") {\r\n this.dateDate[index] = event.value;\r\n } else {\r\n this.dateTime[index] = \"\";\r\n setTimeout(() => {\r\n this.dateTime[index] = event;\r\n }, 0);\r\n }\r\n if (this.dateTime[index] != \"\" && this.dateTime[index] != undefined) {\r\n let nd = new Date(this.dateDate[index]);\r\n nd.setHours(parseInt(this.dateTime[index].split(\":\")[0]));\r\n nd.setMinutes(parseInt(this.dateTime[index].split(\":\")[1]));\r\n this.dateDate[index] = nd;\r\n } else {\r\n setTimeout(() => {\r\n this.dateTime[index] = \"00:00\";\r\n }, 0);\r\n }\r\n this.conditionList[index] = {\r\n target: this.conditionList[index].target,\r\n condition: this.conditionList[index].condition,\r\n field: this.conditionList[index].field,\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n this.conditionCheck(event, \"date\", index);\r\n this.conditionList[index].date = this.dateDate[index];\r\n }\r\n\r\n onOwnDateLoad(index) {\r\n let nd = this.conditionList[index].date.split(\"-\");\r\n let date = new Date(nd[1] + \"-\" + nd[0] + \"-\" + nd[2]);\r\n this.dateDate[index] = date;\r\n this.dateTime[index] = (\"0\" + date.getHours()).slice(-2) + \":\" + (\"0\" + date.getMinutes()).slice(-2);\r\n }\r\n\r\n changeValue(event, index) {\r\n this.conditionCheck(event, \"value\", index);\r\n this.conditionList[index].value = event.target.value;\r\n }\r\n\r\n changeCondition(event, type, index) {\r\n if (type == \"target\") {\r\n this.conditionList[index] = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n } else if (type == \"condition\") {\r\n this.conditionList[index] = {\r\n target: this.conditionList[index].target,\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[index].else,\r\n };\r\n }\r\n this.dateDate[index] = \"\";\r\n this.dateTime[index] = \"\";\r\n this.conditionCheck(event, type, index);\r\n this.conditionList[index][type] = event;\r\n }\r\n\r\n conditionCheck(event, type, index) {\r\n switch (type) {\r\n case \"target\":\r\n if (event == \"\") {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case \"condition\":\r\n if (\r\n event == \"moredate\" ||\r\n event == \"lessdate\" ||\r\n event == \"isdate\" ||\r\n event == \"notdate\" ||\r\n event == \"morenumber\" ||\r\n event == \"lessnumber\" ||\r\n event == \"isnumber\" ||\r\n event == \"notnumber\" ||\r\n event == \"\"\r\n ) {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n case \"field\":\r\n if (\r\n (this.conditionList[index].condition == \"isdate\" ||\r\n this.conditionList[index].condition == \"notdate\" ||\r\n this.conditionList[index].condition == \"isnumber\" ||\r\n this.conditionList[index].condition == \"notnumber\") &&\r\n event != \"\" &&\r\n event != \"1\"\r\n ) {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case \"date\":\r\n if (event == \"\") {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n case \"on\":\r\n if (event == \"0\") {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case \"value\":\r\n if (event.target.value == \"\") {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n }\r\n let check = true;\r\n [].forEach.call(this.conditionFinArray, (e) => {\r\n if (e == false) {\r\n check = false;\r\n }\r\n });\r\n this.conditionFinish = check;\r\n }\r\n\r\n loadTarget(event, index) {\r\n this.conditionValues[index] = [];\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push({ name: \"0\", value: \"\", pl: \"\" });\r\n this.conditionOn[index] = [];\r\n let datas: any[] = [];\r\n datas = this.data.list;\r\n let target = datas.filter((x) => x.key.split(\"|\")[0] === event.value.split(\"|\")[0]).map((x) => x);\r\n if (target.length == 0) {\r\n this.conditionList.length = 1;\r\n this.conditionList[0] = {\r\n target: \"\",\r\n condition: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.conditionValues[0] = [];\r\n this.conditionMore[0] = [];\r\n this.conditionOn[0] = [];\r\n return false;\r\n }\r\n this.conditionFinArray[index] = true;\r\n let array: any;\r\n switch (target[0].type) {\r\n case \"select\":\r\n array = this.dataPacker(target[0].selectors);\r\n [].forEach.call(array.list, (e) => {\r\n this.conditionValues[index].push(e);\r\n });\r\n break;\r\n case \"input\":\r\n let check = 0;\r\n if (target[0].mask != \"\" && target[0].mask != null && target[0].mask != undefined) {\r\n let mask = target[0].mask.split(\"_\");\r\n if (mask[0] == \"number\") {\r\n check = 1;\r\n }\r\n }\r\n if (check == 1) {\r\n this.conditionValues[index].push(\r\n { name: \"fill\", value: \"Числове поле заповнене\" },\r\n { name: \"empty\", value: \"Числове поле порожнє\" },\r\n { name: \"morenumber\", value: \"Число більше\" },\r\n { name: \"lessnumber\", value: \"Число меньше\" },\r\n { name: \"isnumber\", value: \"Число дорівнює\" },\r\n { name: \"notnumber\", value: \"Число не дорівнює\" }\r\n );\r\n let list = [];\r\n [].forEach.call(this.data.list, (e) => {\r\n if (e.type == \"input\") {\r\n if (e.mask != \"\" && e.mask != null && e.mask != undefined) {\r\n let mask = e.mask.split(\"_\");\r\n if (mask[0] == \"number\") {\r\n list.push(e);\r\n }\r\n }\r\n }\r\n });\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push({ name: \"0\", value: \"*Ввести власні дані*\" });\r\n [].forEach.call(list, (e) => {\r\n this.conditionMore[index].push({ name: e.key, value: e.tableLabel });\r\n });\r\n let indexF = this.conditionMore[index]\r\n .map(function (e) {\r\n return e.name.split(\"|\")[0];\r\n })\r\n .indexOf(target[0].key.split(\"|\")[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[index].splice(indexF, 1);\r\n }\r\n if (this.conditionList[index].field == \"0\") {\r\n this.conditionOn[index].push({ name: \"2\", value: \"ніж (строго більше чи меньше)\" });\r\n } else {\r\n this.conditionOn[index].push({ name: \"0\", value: \"ніж (строго більше чи меньше)\" }, { name: \"1\", value: \"на (число)\" });\r\n }\r\n } else {\r\n this.conditionValues[index].push({ name: \"fill\", value: \"Текстове поле заповнене\" }, { name: \"empty\", value: \"Текстове поле порожнє\" });\r\n }\r\n break;\r\n case \"radio\":\r\n array = this.dataPacker(target[0].selectors);\r\n [].forEach.call(array.list, (e) => {\r\n this.conditionValues[index].push(e);\r\n });\r\n break;\r\n case \"checkbox\":\r\n this.conditionValues[index].push({ name: \"check\", value: \"Поле відмічене\" }, { name: \"uncheck\", value: \"Поле не відмічене\" });\r\n break;\r\n case \"date\":\r\n this.conditionValues[index].push(\r\n { name: \"date\", value: \"Дата вказана\" },\r\n { name: \"nodate\", value: \"Дата не вказана\" },\r\n { name: \"moredate\", value: \"Дата більше\" },\r\n { name: \"lessdate\", value: \"Дата меньше\" },\r\n { name: \"isdate\", value: \"Дата дорівнює\" },\r\n { name: \"notdate\", value: \"Дата не дорівнює\" }\r\n );\r\n let list = [];\r\n [].forEach.call(this.data.list, (e) => {\r\n if (e.type == \"date\") {\r\n list.push(e);\r\n }\r\n });\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push({ name: \"0\", value: \"*Поточна дата*\", pl: \"кількість годин (днів, місяців, років)\" }, { name: \"1\", value: \"*Власна дата*\" });\r\n [].forEach.call(list, (e) => {\r\n this.conditionMore[index].push({ name: e.key, value: e.tableLabel });\r\n });\r\n let indexF = this.conditionMore[index]\r\n .map(function (e) {\r\n return e.name.split(\"|\")[0];\r\n })\r\n .indexOf(this.data.data.key.split(\"|\")[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[index].splice(indexF, 1);\r\n }\r\n indexF = this.conditionMore[index]\r\n .map(function (e) {\r\n return e.name.split(\"|\")[0];\r\n })\r\n .indexOf(target[0].key.split(\"|\")[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[index].splice(indexF, 1);\r\n }\r\n this.conditionOn[index].push(\r\n { name: \"0\", value: \"ніж (строго більше чи меньше)\" },\r\n { name: \"1\", value: \"на (днів)\" },\r\n { name: \"2\", value: \"на (місяців)\" },\r\n { name: \"3\", value: \"на (років)\" }\r\n );\r\n if (target[0].mask == \"time\") {\r\n this.conditionOn[index].push({ name: \"4\", value: \"на (годин)\" });\r\n }\r\n break;\r\n case \"file\":\r\n this.conditionValues[index].push({ name: \"file\", value: \"Файл вибрано\" }, { name: \"nofile\", value: \"Файл відсутній\" });\r\n break;\r\n case \"editor\":\r\n this.conditionValues[index].push({ name: \"fillE\", value: \"Редактор заповненний\" }, { name: \"emptyE\", value: \"Редактор порожній\" });\r\n break;\r\n }\r\n }\r\n\r\n dataPacker(value) {\r\n let selectors = {\r\n type: \"\",\r\n list: [],\r\n };\r\n if (value != null && value.list == undefined) {\r\n selectors.type = value.split(\"*T*\")[1].split(\"*L*\")[0];\r\n if (selectors.type == \"lib\") {\r\n let list = [];\r\n let valList = value.split(\"*L*\")[1];\r\n [].forEach.call(this.userDataTypeValue, (e) => {\r\n if (e.Parent == parseInt(valList)) {\r\n list.push(e);\r\n }\r\n });\r\n selectors.list = [];\r\n [].forEach.call(list, (e, index) => {\r\n selectors.list.push({ name: \"option_\" + index, value: e.Title, email: e.Email });\r\n });\r\n } else {\r\n let list = value.split(\"*L*\")[1].split(\"*I*\");\r\n [].forEach.call(list, (e, index) => {\r\n let text = e.split(\"|\");\r\n let array = {\r\n name: text[0],\r\n value: text[1],\r\n dialog: text[2],\r\n };\r\n list[index] = array;\r\n });\r\n selectors.list = list;\r\n }\r\n return selectors;\r\n } else {\r\n if (value.type == \"lib\" && value.id == undefined) {\r\n selectors.type = value.type;\r\n let list = [];\r\n [].forEach.call(this.userDataTypeValue, (e) => {\r\n if (e.Parent == parseInt(value.list[0].name)) {\r\n list.push(e);\r\n }\r\n });\r\n selectors.list = [];\r\n [].forEach.call(list, (e, index) => {\r\n selectors.list.push({ name: \"option_\" + index, value: e.Title, email: e.Email });\r\n });\r\n return selectors;\r\n } else {\r\n return value;\r\n }\r\n }\r\n }\r\n\r\n saveMenu(data) {\r\n let condition;\r\n if (this.conditionList[0].target != \"\" && this.conditionList[0].target != null && this.conditionList[0].target != undefined) {\r\n condition = this.conditionList;\r\n [].forEach.call(condition, (e, index) => {\r\n if (e.date != null && e.date != \"\") {\r\n e.date = new Date(e.date);\r\n condition[index].date =\r\n (\"0\" + e.date.getDate()).slice(-2) +\r\n \"-\" +\r\n (\"0\" + (e.date.getMonth() + 1)).slice(-2) +\r\n \"-\" +\r\n e.date.getFullYear() +\r\n \" \" +\r\n (\"0\" + e.date.getHours()).slice(-2) +\r\n \":\" +\r\n (\"0\" + e.date.getMinutes()).slice(-2);\r\n }\r\n });\r\n } else {\r\n condition = null;\r\n }\r\n let label = this.data.data.label;\r\n if (this.data.data.id == 0 || this.data.data.id == undefined) {\r\n label = data.name;\r\n }\r\n let labelSplit = label.split(\"*L*\");\r\n if (labelSplit.length > 1) {\r\n if (labelSplit[0].split(\"*I*\").length == 1) {\r\n labelSplit.splice(0, 1);\r\n }\r\n }\r\n label = labelSplit.join(\"*L*\");\r\n let json = {\r\n label: label,\r\n requestAttributeId: this.data.data.requestAttributeId,\r\n key: this.data.data.key,\r\n type: this.data.data.type,\r\n description: this.data.data.description,\r\n tooltip: this.data.data.tooltip,\r\n disabled: data.disabled,\r\n display: true,\r\n required: data.required,\r\n selectors: this.selectorList,\r\n condition: condition,\r\n aligment: data.aligment,\r\n\r\n tableDescription: data.description,\r\n tableDialog: null,\r\n tableLabel: data.name,\r\n tablePlaceholder: null,\r\n tableTooltip: data.tooltip,\r\n };\r\n let index = this.data.list.indexOf(this.data.data);\r\n this.dialogRef.close([\"save\", index, json, this.data.list]);\r\n }\r\n\r\n onClose(): void {\r\n if (isChange) {\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: { text: \"Увага! Налаштування поля форми не буде збережено. Продовжити?\" },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n if (this.backupCondition.length == 0) {\r\n this.data.data.condition = null;\r\n } else {\r\n this.data.data.condition = JSON.parse(JSON.stringify(this.backupCondition));\r\n }\r\n this.dialogRef.close();\r\n }\r\n });\r\n } else {\r\n if (this.backupCondition.length == 0) {\r\n this.data.data.condition = null;\r\n } else {\r\n this.data.data.condition = JSON.parse(JSON.stringify(this.backupCondition));\r\n }\r\n this.dialogRef.close();\r\n }\r\n isChange = false;\r\n }\r\n\r\n onRemove() {\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: { text: \"Увага! Ви дійсно бажаєте видалити це поле?\" },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n let index = this.data.list.indexOf(this.data.data);\r\n this.dialogRef.close([\"remove\", index, this.data.list]);\r\n }\r\n });\r\n }\r\n}\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Order Component\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n@Component({\r\n selector: \"order-component\",\r\n templateUrl: \"./component/order.html\",\r\n styleUrls: [\"./admin.css\"],\r\n providers: [\r\n AdminPage,\r\n { provide: MAT_DATE_LOCALE, useValue: \"uk-UA\" },\r\n { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS] },\r\n { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },\r\n ],\r\n})\r\nexport class OrderComponent {\r\n isDBLoad: boolean = false;\r\n addTemplate: boolean = true;\r\n conditionFinish: boolean = true;\r\n\r\n mask: any = [];\r\n attrList: any[] = [];\r\n formData: any[] = [];\r\n templateData: any[] = [];\r\n attrData: any[] = [];\r\n conditionData: any[] = [];\r\n conditionMore: any[] = [];\r\n conditionOn: any[] = [];\r\n conditionList: any[] = [];\r\n dateDate: any[] = [];\r\n dateTime: any[] = [];\r\n emailAttr: any[] = [];\r\n emailForm: any[] = [];\r\n emailField: any[] = [];\r\n userDataTypeValue: any[] = [];\r\n conditionFinArray: any[] = [];\r\n\r\n titleFormControl = new FormControl();\r\n formSelect: any = \"\";\r\n fieldSelect: any = \"\";\r\n templateSelect: any = \"\";\r\n\r\n isLoad: boolean = false;\r\n loadColor: ThemePalette = \"primary\";\r\n loadMode: ProgressSpinnerMode = \"indeterminate\";\r\n loadValue = 50;\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: DialogData, private admin: AdminPage, public dialog: MatDialog, private http: HttpClient) {\r\n isChange = false;\r\n this.isLoad = true;\r\n\r\n this.titleFormControl = new FormControl(data.data.tableLabel, [Validators.required]);\r\n\r\n this.dbRequest(\"Form\");\r\n\r\n let timer = setInterval(() => {\r\n if (this.isDBLoad) {\r\n clearInterval(timer);\r\n if (this.data.data.mask != null && this.data.data.mask != \"\") {\r\n let templateArray = this.data.data.mask.split(\"*|*\");\r\n [].forEach.call(templateArray, (e, indexE) => {\r\n this.conditionList.push([]);\r\n this.attrData.push([]);\r\n this.dateDate.push([]);\r\n this.dateTime.push([]);\r\n this.conditionData.push([]);\r\n this.conditionMore.push([]);\r\n this.conditionOn.push([]);\r\n\r\n this.conditionFinArray.push([]);\r\n\r\n let template = e.split(\"XX\")[0];\r\n let condArray = e.split(\"XX\")[1].split(\"&&\");\r\n [].forEach.call(condArray, (c, indexC) => {\r\n let condList = c.split(\"|\");\r\n if (condList[0] != \"\") {\r\n condList[0] = parseInt(condList[0]);\r\n }\r\n let target = this.attrList.filter((x) => x.requestFormId === condList[0]).map((x) => x);\r\n this.attrData[indexE].push(target);\r\n if (condList[1] != \"\") {\r\n condList[1] = parseInt(condList[1]);\r\n this.loadTarget({ value: condList[1] }, indexC, indexE);\r\n }\r\n if (condList[3] != \"\" && condList[3] != \"0\") {\r\n condList[3] = parseInt(condList[3]);\r\n }\r\n if (condList[5] != \"\") {\r\n condList[5] = parseInt(condList[5]);\r\n }\r\n if (condList[6] != \"\") {\r\n condList[6] = parseInt(condList[6]);\r\n }\r\n let value: any = {\r\n formT: condList[0],\r\n target: condList[1],\r\n condition: condList[2],\r\n field: condList[3],\r\n date: condList[4],\r\n on: condList[5],\r\n value: condList[6],\r\n else: condList[7],\r\n };\r\n this.conditionList[indexE].push(value);\r\n this.conditionFinArray[indexE].push(true);\r\n });\r\n\r\n this.mask.push({\r\n template: parseInt(template),\r\n data: this.conditionList[indexE],\r\n });\r\n this.templateSelect = \"\";\r\n });\r\n }\r\n let value: any = {\r\n formT: \"\",\r\n target: \"\",\r\n condition: \"\",\r\n formF: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.attrData.push([]);\r\n this.dateDate.push([]);\r\n this.dateTime.push([]);\r\n this.conditionData.push([]);\r\n this.conditionMore.push([]);\r\n this.conditionOn.push([]);\r\n this.conditionList.push([value]);\r\n\r\n if (this.data.data.dialog != null && this.data.data.dialog != \"\") {\r\n let dd = this.data.data.dialog.split(\"*E*\");\r\n let eforms = dd[0].split(\"*M*\");\r\n let efields = dd[1].split(\"*D*\");\r\n [].forEach.call(eforms, (e, indexE) => {\r\n if (e != \"\") {\r\n eforms[indexE] = parseInt(e);\r\n let target = this.attrList.filter((x) => x.requestFormId === parseInt(e) && (x.type == \"input\" || x.type == \"select\" || x.type == \"court\")).map((x) => x);\r\n this.emailAttr.push(target);\r\n }\r\n if (efields[indexE] != \"\") {\r\n efields[indexE] = parseInt(efields[indexE]);\r\n }\r\n });\r\n this.emailForm = eforms;\r\n this.emailField = efields;\r\n }\r\n this.emailForm.push(\"\");\r\n this.emailField.push(\"\");\r\n\r\n if (this.emailForm.length > 1) {\r\n if (this.emailForm[0] == \"\") {\r\n this.emailForm.splice(0, 1);\r\n this.emailField.splice(0, 1);\r\n }\r\n }\r\n\r\n this.emailAttr.push([]);\r\n this.conditionFinArray.push([false]);\r\n }\r\n }, 50);\r\n }\r\n\r\n dbRequest(type) {\r\n this.isDBLoad = false;\r\n switch (type) {\r\n case \"Form\":\r\n this.http.get(this.admin.getUrl() + \"RequestForm\").subscribe((data) => {\r\n this.formData = [];\r\n [].forEach.call(data, (e) => {\r\n if (e.requestTypeRequestForms.length > 0) {\r\n if (e.requestTypeRequestForms[0].requestTypeId == this.data.type) {\r\n let tableTitle = e.title.split(\"*L*\");\r\n let elements = tableTitle.filter((x) => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n e.tableTitle = tableTitle;\r\n\r\n this.formData.push(e);\r\n [].forEach.call(e.requestAttributes, (c) => {\r\n let tableTitle = c.label.split(\"*L*\");\r\n let elements = tableTitle.filter((x) => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n c.tableTitle = tableTitle;\r\n\r\n this.attrList.push(c);\r\n });\r\n this.dbRequest(\"Template\");\r\n }\r\n }\r\n });\r\n });\r\n break;\r\n case \"Template\":\r\n this.http.get(this.admin.getUrl() + \"Template\").subscribe((data) => {\r\n this.templateData = [];\r\n [].forEach.call(data, (e) => {\r\n if (e.requestTypeId == this.data.type) {\r\n let tableTitle = e.title.split(\"*L*\");\r\n let elements = tableTitle.filter((x) => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n e.tableTitle = tableTitle;\r\n\r\n this.templateData.push(e);\r\n }\r\n });\r\n this.dbRequest(\"Lib\");\r\n });\r\n break;\r\n case \"Lib\":\r\n this.http.get(this.admin.getUrl() + \"userDataTypeValue\").subscribe((data) => {\r\n this.userDataTypeValue = [];\r\n [].forEach.call(data, (e) => {\r\n let tableTitle = e.value.split(\"*L*\");\r\n let elements = tableTitle.filter((x) => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n\r\n this.userDataTypeValue.push({ Id: e.id, Title: tableTitle, Email: e.email, Parent: e.uerDataTypeId });\r\n });\r\n this.isDBLoad = true;\r\n this.isLoad = false;\r\n });\r\n break;\r\n }\r\n }\r\n\r\n conditionCheck(event, type, temp, index) {\r\n switch (type) {\r\n case \"formT\":\r\n if (event == \"\") {\r\n this.conditionFinArray[temp][index] = true;\r\n } else {\r\n this.conditionFinArray[temp][index] = false;\r\n }\r\n break;\r\n case \"target\":\r\n this.conditionFinArray[temp][index] = false;\r\n break;\r\n case \"condition\":\r\n if (\r\n event == \"moredate\" ||\r\n event == \"lessdate\" ||\r\n event == \"isdate\" ||\r\n event == \"notdate\" ||\r\n event == \"morenumber\" ||\r\n event == \"lessnumber\" ||\r\n event == \"isnumber\" ||\r\n event == \"notnumber\" ||\r\n event == \"\"\r\n ) {\r\n this.conditionFinArray[temp][index] = false;\r\n } else {\r\n this.conditionFinArray[temp][index] = true;\r\n }\r\n break;\r\n case \"field\":\r\n if (\r\n (this.conditionList[index].condition == \"isdate\" ||\r\n this.conditionList[index].condition == \"notdate\" ||\r\n this.conditionList[index].condition == \"isnumber\" ||\r\n this.conditionList[index].condition == \"notnumber\") &&\r\n event != \"\" &&\r\n event != \"1\"\r\n ) {\r\n this.conditionFinArray[temp][index] = true;\r\n } else {\r\n this.conditionFinArray[temp][index] = false;\r\n }\r\n break;\r\n case \"date\":\r\n if (event == \"\") {\r\n this.conditionFinArray[temp][index] = false;\r\n } else {\r\n this.conditionFinArray[temp][index] = true;\r\n }\r\n break;\r\n case \"on\":\r\n if (event == \"0\") {\r\n this.conditionFinArray[temp][index] = true;\r\n } else {\r\n this.conditionFinArray[temp][index] = false;\r\n }\r\n break;\r\n case \"value\":\r\n if (event.target.value == \"\") {\r\n this.conditionFinArray[temp][index] = false;\r\n } else {\r\n this.conditionFinArray[temp][index] = true;\r\n }\r\n break;\r\n case \"else\":\r\n this.conditionFinArray[temp][index] = false;\r\n break;\r\n }\r\n let check = true;\r\n // console.error(this.conditionFinArray);\r\n [].forEach.call(this.conditionFinArray[temp], (e) => {\r\n if (e == false) {\r\n check = false;\r\n }\r\n });\r\n this.conditionFinish = check;\r\n this.checkTemplateSave(temp);\r\n }\r\n\r\n changeEmail(event, type, index) {\r\n if (type == \"form\") {\r\n this.emailForm[index] = event;\r\n let target = this.attrList.filter((x) => x.requestFormId === event && (x.type == \"input\" || x.type == \"select\" || x.type == \"court\")).map((x) => x);\r\n this.emailAttr[index] = target;\r\n this.emailField[index] = \"\";\r\n } else {\r\n this.emailField[index] = event;\r\n }\r\n this.checkTemplateSave(index);\r\n }\r\n\r\n editSelector(event, index) {\r\n if (index == null) {\r\n this.templateSelect = event.value;\r\n this.checkTemplateSave(index);\r\n } else {\r\n this.mask[index].template = event.value;\r\n }\r\n }\r\n\r\n changeTemplate(type, index) {\r\n switch (type) {\r\n case \"add\":\r\n this.mask.push({\r\n template: this.templateSelect,\r\n data: this.conditionList[index],\r\n });\r\n this.templateSelect = \"\";\r\n let value: any = {\r\n formT: \"\",\r\n target: \"\",\r\n condition: \"\",\r\n formF: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.conditionList.push([value]);\r\n this.attrData.push([]);\r\n this.dateDate.push([]);\r\n this.dateTime.push([]);\r\n this.conditionData.push([]);\r\n this.conditionMore.push([]);\r\n this.conditionOn.push([]);\r\n this.emailForm.push(\"\");\r\n this.emailField.push(\"\");\r\n this.emailAttr.push([]);\r\n this.conditionFinArray.push([false]);\r\n break;\r\n case \"remove\":\r\n this.mask.splice(index, 1);\r\n this.conditionList.splice(index, 1);\r\n this.emailForm.splice(index, 1);\r\n this.emailField.splice(index, 1);\r\n this.emailAttr.splice(index, 1);\r\n this.conditionFinArray.splice(index, 1);\r\n break;\r\n }\r\n this.changeRegister();\r\n }\r\n\r\n checkTemplateSave(temp) {\r\n this.addTemplate = true;\r\n if (temp == null) {\r\n if (this.emailForm[this.emailForm.length - 1] == \"\" || this.emailField[this.emailField.length - 1] == \"\") {\r\n this.addTemplate = false;\r\n }\r\n }\r\n if (this.emailForm[temp] == \"\" || this.emailField[temp] == \"\") {\r\n this.addTemplate = false;\r\n }\r\n [].forEach.call(this.emailForm, (e, indexE) => {\r\n if (indexE != this.emailForm.length - 1) {\r\n if ((e != \"\" && this.emailField[indexE] == \"\") || e == \"\") {\r\n this.addTemplate = false;\r\n }\r\n }\r\n });\r\n if (!this.conditionFinish) {\r\n this.addTemplate = false;\r\n }\r\n }\r\n\r\n changeConditionMore(event, index, temp) {\r\n if (\r\n this.conditionList[temp][index].condition == \"morenumber\" ||\r\n this.conditionList[temp][index].condition == \"lessnumber\" ||\r\n this.conditionList[temp][index].condition == \"isnumber\" ||\r\n this.conditionList[temp][index].condition == \"notnumber\"\r\n ) {\r\n this.conditionOn[temp][index] = [];\r\n if (event == \"0\") {\r\n this.conditionOn[temp][index].push({ name: \"2\", value: \"ніж\" });\r\n } else {\r\n this.conditionOn[temp][index].push({ name: \"0\", value: \"ніж\" }, { name: \"1\", value: \"на\" });\r\n }\r\n }\r\n this.conditionList[temp][index] = {\r\n formT: this.conditionList[temp][index].formT,\r\n target: this.conditionList[temp][index].target,\r\n condition: this.conditionList[temp][index].condition,\r\n formF: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[temp][index].else,\r\n };\r\n this.dateDate[temp][index] = \"\";\r\n this.dateTime[temp][index] = \"\";\r\n this.conditionCheck(event, \"field\", temp, index);\r\n this.conditionList[temp][index].field = event;\r\n }\r\n\r\n changeConditionOn(event, index, temp) {\r\n this.conditionCheck(event, \"on\", temp, index);\r\n this.conditionList[temp][index].on = event;\r\n }\r\n\r\n onOwnDate(event, index, type, temp) {\r\n if (type == \"date\") {\r\n this.dateDate[temp][index] = event.value;\r\n } else {\r\n this.dateTime[index] = \"\";\r\n setTimeout(() => {\r\n this.dateTime[temp][index] = event;\r\n }, 0);\r\n }\r\n if (this.dateTime[temp][index] != \"\" && this.dateTime[temp][index] != undefined) {\r\n let nd = new Date(this.dateDate[temp][index]);\r\n nd.setHours(parseInt(this.dateTime[temp][index].split(\":\")[0]));\r\n nd.setMinutes(parseInt(this.dateTime[temp][index].split(\":\")[1]));\r\n this.dateDate[temp][index] = nd;\r\n } else {\r\n setTimeout(() => {\r\n this.dateTime[temp][index] = \"00:00\";\r\n }, 0);\r\n }\r\n this.conditionList[temp][index] = {\r\n formT: this.conditionList[temp][index].formT,\r\n target: this.conditionList[temp][index].target,\r\n condition: this.conditionList[temp][index].condition,\r\n formF: this.conditionList[temp][index].formF,\r\n field: this.conditionList[temp][index].field,\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[temp][index].else,\r\n };\r\n this.conditionCheck(event, \"date\", temp, index);\r\n this.conditionList[temp][index].date = this.dateDate[temp][index];\r\n }\r\n\r\n onOwnDateLoad(index, temp) {\r\n let nd = this.conditionList[temp][index].date.split(\"-\");\r\n let date = new Date(nd[1] + \"-\" + nd[0] + \"-\" + nd[2]);\r\n this.dateDate[temp][index] = date;\r\n this.dateTime[temp][index] = (\"0\" + date.getHours()).slice(-2) + \":\" + (\"0\" + date.getMinutes()).slice(-2);\r\n }\r\n\r\n changeValue(event, index, temp) {\r\n this.conditionCheck(event, \"value\", temp, index);\r\n this.conditionList[temp][index].value = event.target.value;\r\n }\r\n\r\n editCondition(event, temp) {\r\n if (event == -1) {\r\n let value: any = {\r\n formT: \"\",\r\n target: \"\",\r\n condition: \"\",\r\n formF: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.conditionList[temp].push(value);\r\n this.conditionFinArray[temp].push(false);\r\n } else {\r\n this.conditionList[temp].splice(event, 1);\r\n this.conditionFinArray[temp].splice(event, 1);\r\n }\r\n }\r\n\r\n changeCondition(event, type, index, temp) {\r\n switch (type) {\r\n case \"formT\":\r\n let target = this.attrList.filter((x) => x.requestFormId === event).map((x) => x);\r\n\r\n this.conditionData[temp][index] = [];\r\n this.conditionMore[temp][index] = [];\r\n this.conditionOn[temp][index] = [];\r\n this.conditionList[temp][index] = {\r\n formT: \"\",\r\n target: \"\",\r\n condition: \"\",\r\n formF: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[temp][index].else,\r\n };\r\n if (this.attrData[temp][index] == undefined) {\r\n this.attrData[temp].push(target);\r\n } else {\r\n this.attrData[temp][index] = target;\r\n }\r\n break;\r\n case \"target\":\r\n this.conditionList[temp][index] = {\r\n formT: this.conditionList[temp][index].formT,\r\n target: \"\",\r\n condition: \"\",\r\n formF: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[temp][index].else,\r\n };\r\n break;\r\n case \"condition\":\r\n this.conditionList[temp][index] = {\r\n formT: this.conditionList[temp][index].formT,\r\n target: this.conditionList[temp][index].target,\r\n condition: \"\",\r\n formF: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: this.conditionList[temp][index].else,\r\n };\r\n break;\r\n }\r\n this.dateDate[temp][index] = \"\";\r\n this.dateTime[temp][index] = \"\";\r\n this.conditionCheck(event, type, temp, index);\r\n this.conditionList[temp][index][type] = event;\r\n // console.log(this.conditionList);\r\n }\r\n\r\n loadTarget(event, index, temp) {\r\n this.conditionData[temp][index] = [];\r\n this.conditionMore[temp][index] = [];\r\n this.conditionMore[temp][index].push({ name: \"0\", value: \"\", pl: \"\" });\r\n this.conditionOn[temp][index] = [];\r\n let target = this.attrData[temp][index].filter((x) => x.id === parseInt(event.value)).map((x) => x);\r\n // console.log(target);\r\n // console.log(this.conditionList[temp]);\r\n if (target.length == 0 && this.conditionList[temp][0].formT == \"\") {\r\n this.conditionList[temp].length = 1;\r\n this.conditionList[temp][0] = {\r\n formT: \"\",\r\n target: \"\",\r\n condition: \"\",\r\n formF: \"\",\r\n field: \"\",\r\n date: \"\",\r\n on: \"\",\r\n value: \"\",\r\n else: \"\",\r\n };\r\n this.conditionData[temp][0] = [];\r\n this.conditionMore[temp][0] = [];\r\n this.conditionOn[temp][0] = [];\r\n return false;\r\n } else if (target.length == 0 && this.conditionList[temp][0].formT != \"\") {\r\n return false;\r\n }\r\n let indexF: any;\r\n let array: any;\r\n switch (target[0].type) {\r\n case \"select\":\r\n indexF = this.attrData[temp][index]\r\n .map(function (x) {\r\n return x.id;\r\n })\r\n .indexOf(event.value);\r\n array = this.dataPacker(target[0].selectors);\r\n [].forEach.call(array.list, (e) => {\r\n this.conditionData[temp][index].push(e);\r\n });\r\n break;\r\n case \"input\":\r\n let check = 0;\r\n if (target[0].mask != \"\" && target[0].mask != null && target[0].mask != undefined) {\r\n let mask = target[0].mask.split(\"_\");\r\n if (mask[0] == \"number\") {\r\n check = 1;\r\n }\r\n }\r\n if (check == 1) {\r\n this.conditionData[temp][index].push(\r\n { name: \"fill\", value: \"Числове поле заповнене\" },\r\n { name: \"empty\", value: \"Числове поле порожнє\" },\r\n { name: \"morenumber\", value: \"Число більше\" },\r\n { name: \"lessnumber\", value: \"Число меньше\" },\r\n { name: \"isnumber\", value: \"Число дорівнює\" },\r\n { name: \"notnumber\", value: \"Число не дорівнює\" }\r\n );\r\n let list = [];\r\n [].forEach.call(this.attrData[temp][index], (e) => {\r\n if (e.type == \"input\") {\r\n if (e.mask != \"\" && e.mask != null && e.mask != undefined) {\r\n let mask = e.mask.split(\"_\");\r\n if (mask[0] == \"number\") {\r\n list.push(e);\r\n }\r\n }\r\n }\r\n });\r\n this.conditionMore[temp][index] = [];\r\n this.conditionMore[temp][index].push({ name: \"0\", value: \"*Ввести власні дані*\" });\r\n [].forEach.call(list, (e) => {\r\n this.conditionMore[temp][index].push({ name: e.key, value: e.tableLabel });\r\n });\r\n indexF = this.conditionMore[temp][index]\r\n .map(function (e) {\r\n return e.name.split(\"|\")[0];\r\n })\r\n .indexOf(target[0].key.split(\"|\")[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[temp][index].splice(indexF, 1);\r\n }\r\n if (this.conditionList[index].field == \"0\") {\r\n this.conditionOn[temp][index].push({ name: \"2\", value: \"ніж (строго більше чи меньше)\" });\r\n } else {\r\n this.conditionOn[temp][index].push({ name: \"0\", value: \"ніж (строго більше чи меньше)\" }, { name: \"1\", value: \"на (число)\" });\r\n }\r\n } else {\r\n this.conditionData[temp][index].push({ name: \"fill\", value: \"Текстове поле заповнене\" }, { name: \"empty\", value: \"Текстове поле порожнє\" });\r\n }\r\n break;\r\n case \"radio\":\r\n indexF = this.attrData[temp][index]\r\n .map(function (x) {\r\n return x.id;\r\n })\r\n .indexOf(event.value);\r\n array = this.dataPacker(target[0].selectors);\r\n [].forEach.call(array.list, (e) => {\r\n this.conditionData[temp][index].push(e);\r\n });\r\n break;\r\n case \"checkbox\":\r\n this.conditionData[temp][index].push({ name: \"check\", value: \"Поле відмічене\" }, { name: \"uncheck\", value: \"Поле не відмічене\" });\r\n break;\r\n case \"date\":\r\n this.conditionData[temp][index].push(\r\n { name: \"date\", value: \"Дата вказана\" },\r\n { name: \"nodate\", value: \"Дата не вказана\" },\r\n { name: \"moredate\", value: \"Дата більше\" },\r\n { name: \"lessdate\", value: \"Дата меньше\" },\r\n { name: \"isdate\", value: \"Дата дорівнює\" },\r\n { name: \"notdate\", value: \"Дата не дорівнює\" }\r\n );\r\n let list = [];\r\n [].forEach.call(this.attrData[temp][index], (e) => {\r\n if (e.type == \"date\") {\r\n list.push(e);\r\n }\r\n });\r\n this.conditionMore[temp][index] = [];\r\n this.conditionMore[temp][index].push({ name: \"0\", value: \"*Поточна дата*\", pl: \"кількість годин (днів, місяців, років)\" }, { name: \"1\", value: \"*Власна дата*\" });\r\n [].forEach.call(list, (e) => {\r\n this.conditionMore[temp][index].push({ name: e.key, value: e.tableLabel });\r\n });\r\n indexF = this.conditionMore[temp][index]\r\n .map(function (e) {\r\n return e.name.split(\"|\")[0];\r\n })\r\n .indexOf(target[0].key.split(\"|\")[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[temp][index].splice(indexF, 1);\r\n }\r\n this.conditionOn[temp][index].push(\r\n { name: \"0\", value: \"ніж (строго більше чи меньше)\" },\r\n { name: \"1\", value: \"на (днів)\" },\r\n { name: \"2\", value: \"на (місяців)\" },\r\n { name: \"3\", value: \"на (років)\" }\r\n );\r\n if (target[0].mask == \"time\") {\r\n this.conditionOn[temp][index].push({ name: \"4\", value: \"на (годин)\" });\r\n }\r\n break;\r\n case \"file\":\r\n this.conditionData[temp][index].push({ name: \"file\", value: \"Файл вибрано\" }, { name: \"nofile\", value: \"Файл відсутній\" });\r\n break;\r\n case \"editor\":\r\n this.conditionData[temp][index].push({ name: \"fillE\", value: \"Редактор заповненний\" }, { name: \"emptyE\", value: \"Редактор порожній\" });\r\n break;\r\n case \"copy\":\r\n this.conditionData[temp][index].push(\r\n { name: \"morecopy\", value: \"К-сть дублікатів більше\" },\r\n { name: \"lesscopy\", value: \"К-сть дублікатів меньше\" },\r\n { name: \"iscopy\", value: \"К-сть дублікатів дорівнює\" },\r\n { name: \"notcopy\", value: \"К-сть дублікатів не дорівнює\" }\r\n );\r\n this.conditionMore[temp][index] = [];\r\n this.conditionMore[temp][index].push({ name: \"0\", value: \"*Ввести власні дані*\", pl: \"\" });\r\n break;\r\n }\r\n }\r\n\r\n changeRegister() {\r\n isChange = true;\r\n }\r\n\r\n dataPacker(value) {\r\n let selectors = {\r\n type: \"\",\r\n list: [],\r\n };\r\n if (value != null && value.list == undefined) {\r\n selectors.type = value.split(\"*T*\")[1].split(\"*L*\")[0];\r\n if (selectors.type == \"lib\") {\r\n let list = [];\r\n let valList = value.split(\"*L*\")[1];\r\n [].forEach.call(this.userDataTypeValue, (e) => {\r\n if (e.Parent == parseInt(valList)) {\r\n list.push(e);\r\n }\r\n });\r\n selectors.list = [];\r\n [].forEach.call(list, (e, index) => {\r\n selectors.list.push({ name: \"option_\" + index, value: e.Title, email: e.Email });\r\n });\r\n } else {\r\n let list = value.split(\"*L*\")[1].split(\"*I*\");\r\n [].forEach.call(list, (e, index) => {\r\n let text = e.split(\"|\");\r\n let array = {\r\n name: text[0],\r\n value: text[1],\r\n dialog: text[2],\r\n };\r\n list[index] = array;\r\n });\r\n selectors.list = list;\r\n }\r\n return selectors;\r\n } else {\r\n if (value.type == \"lib\" && value.id == undefined) {\r\n selectors.type = value.type;\r\n let list = [];\r\n [].forEach.call(this.userDataTypeValue, (e) => {\r\n if (e.Parent == parseInt(value.list[0].name)) {\r\n list.push(e);\r\n }\r\n });\r\n selectors.list = [];\r\n [].forEach.call(list, (e, index) => {\r\n selectors.list.push({ name: \"option_\" + index, value: e.Title, email: e.Email });\r\n });\r\n return selectors;\r\n } else {\r\n return value;\r\n }\r\n }\r\n }\r\n\r\n saveMenu(data) {\r\n let mask = \"\";\r\n [].forEach.call(this.mask, (e, indexE) => {\r\n let data = \"\";\r\n if (indexE > 0) {\r\n mask += \"*|*\";\r\n }\r\n [].forEach.call(e.data, (c, indexC) => {\r\n if (indexC > 0) {\r\n data += \"&&\";\r\n }\r\n data += c.formT + \"|\" + c.target + \"|\" + c.condition + \"|\" + c.field + \"|\" + c.date + \"|\" + c.on + \"|\" + c.value + \"|\" + c.else;\r\n });\r\n mask += e.template + \"XX\" + data;\r\n });\r\n\r\n this.emailForm = this.emailForm.splice(0, this.mask.length);\r\n this.emailField = this.emailField.splice(0, this.mask.length);\r\n\r\n let label = this.data.data.label;\r\n if (this.data.data.id == 0 || this.data.data.id == undefined) {\r\n label = data.name;\r\n }\r\n let labelSplit = label.split(\"*L*\");\r\n if (labelSplit.length > 1) {\r\n if (labelSplit[0].split(\"*I*\").length == 1) {\r\n labelSplit.splice(0, 1);\r\n }\r\n }\r\n label = labelSplit.join(\"*L*\");\r\n let json = {\r\n label: label,\r\n requestAttributeId: this.data.data.requestAttributeId,\r\n key: this.data.data.key,\r\n type: this.data.data.type,\r\n mask: mask,\r\n disabled: data.disabled,\r\n display: true,\r\n dialog: this.emailForm.join(\"*M*\") + \"*E*\" + this.emailField.join(\"*D*\"), //++\r\n\r\n tableDescription: null,\r\n tableDialog: null,\r\n tableLabel: data.name,\r\n tablePlaceholder: null,\r\n tableTooltip: null,\r\n };\r\n let index = this.data.list.indexOf(this.data.data);\r\n this.dialogRef.close([\"save\", index, json, this.data.list]);\r\n }\r\n\r\n onClose(): void {\r\n if (isChange) {\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: { text: \"Увага! Налаштування поля форми не буде збережено. Продовжити?\" },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n this.dialogRef.close();\r\n }\r\n });\r\n } else {\r\n this.dialogRef.close();\r\n }\r\n isChange = false;\r\n }\r\n\r\n onRemove() {\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: { text: \"Увага! Ви дійсно бажаєте видалити це поле?\" },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n let index = this.data.list.indexOf(this.data.data);\r\n this.dialogRef.close([\"remove\", index, this.data.list]);\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n

{{ data.data.content }}

\r\n \r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n
Найменування (Label): *
\r\n \r\n \r\n Обов'язково до заповнення! \r\n \r\n
\r\n
\r\n
Вирівнювання заголовку:
\r\n \r\n \r\n По лівому краю\r\n Центрувати\r\n По правову краю\r\n \r\n \r\n
\r\n
\r\n
Заповнювач (Placeholder):
\r\n \r\n \r\n \r\n
\r\n
\r\n
Опис (Description):
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
Маска (Mask):
\r\n \r\n \r\n {{ mask.name }}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
Підказка (Tooltip):
\r\n \r\n \r\n \r\n
\r\n
\r\n
Відключити (Disable):
\r\n \r\n
\r\n
\r\n
Обов'язковість (Required):
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
Відображати поле якщо:
\r\n
\r\n
0\">\r\n
Взаємодія умов:
\r\n \r\n \r\n Вимкнуто\r\n І (and)\r\n Або (or)\r\n \r\n \r\n
\r\n
= 0 && cond.else != '')\">\r\n
Поле для умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ item.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Умова відображення:
\r\n \r\n \r\n Вимкнуто\r\n {{ value.value }}\r\n \r\n \r\n
\r\n\r\n \r\n
Вимога умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ more.value }}\r\n \r\n \r\n
\r\n
\r\n
Власна дата:
\r\n
\r\n \r\n Виберіть необхідну дату\r\n \r\n \r\n \r\n \r\n \r\n Виберіть необхідний час\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
Тип умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ on.value }}\r\n \r\n \r\n
\r\n \r\n
Значення умови:
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
Дане поле буде заблоковане від вводу данних зі сторони користувача. Натомість в нього автоматично будуть копіюватися дані із вказаного нище поля:
\r\n
\r\n
Вибір форми:
\r\n \r\n \r\n Вимкнуто\r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Вибір поля:
\r\n \r\n \r\n Вимкнуто\r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
Дане поле буде перевірятися на ідентичність данних із полем, що вказано нижче:
\r\n
\r\n
Вибір форми:
\r\n \r\n \r\n Вимкнуто\r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Вибір поля:
\r\n \r\n \r\n Вимкнуто\r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
Не заповнено найменування поля!
\r\n
Не заповнені всі пункти \"Вимог відображення\"!
\r\n
\r\n\r\n
\r\n \r\n save Зберегти\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n

Будь-ласка зачекайте!
Триває Завантаження

\r\n
\r\n
\r\n","
\r\n

{{ data.data.content }}

\r\n \r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n
Найменування (Label): *
\r\n \r\n \r\n \r\n Обов'язково до заповнення!\r\n \r\n \r\n
\r\n
\r\n
Вирівнювання заголовку:
\r\n \r\n \r\n По лівому краю\r\n Центрувати\r\n По правову краю\r\n \r\n \r\n
\r\n
\r\n
Повідомлення (Dialog):
\r\n \r\n \r\n \r\n
\r\n
\r\n
Підказка (Tooltip):
\r\n \r\n \r\n \r\n
\r\n
\r\n
Відключити (Disable):
\r\n \r\n
\r\n
\r\n
Обов'язковість (Required):
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
Відображати поле якщо:
\r\n
\r\n
0\">\r\n
Взаємодія умов:
\r\n \r\n \r\n Вимкнуто\r\n І (and)\r\n Або (or)\r\n \r\n \r\n
\r\n
= 0 && cond.else != '')\">\r\n
Поле для умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ item.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Умова відображення:
\r\n \r\n \r\n Вимкнуто\r\n {{ value.value }}\r\n \r\n \r\n
\r\n\r\n
\r\n
Вимога умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ more.value }}\r\n \r\n \r\n
\r\n
\r\n
Власна дата:
\r\n
\r\n \r\n Виберіть необхідну дату\r\n \r\n \r\n \r\n \r\n \r\n Виберіть необхідний час\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
Тип умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ on.value }}\r\n \r\n \r\n
\r\n
\r\n
Значення умови:
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
Не заповнено найменування поля!
\r\n
Не заповнені всі пункти \"Вимог відображення\"!
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n

\r\n Будь-ласка зачекайте!
Триває Завантаження\r\n

\r\n
\r\n
\r\n","
\r\n

{{ data.data.content }}

\r\n \r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n
Найменування (Label): *
\r\n \r\n \r\n \r\n Обов'язково до заповнення!\r\n \r\n \r\n
\r\n
\r\n
Вирівнювання заголовку:
\r\n \r\n \r\n По лівому краю\r\n Центрувати\r\n По правову краю\r\n \r\n \r\n
\r\n
\r\n
Варіанти (Options):
\r\n
\r\n
\r\n \r\n Власний список\r\n Із бібліотеки\r\n \r\n\r\n \r\n {{ libs.value }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Текст кнопки:
\r\n \r\n \r\n \r\n
\r\n
\r\n
Повідомлення:
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Опис (Description):
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
Підказка (Tooltip):
\r\n \r\n \r\n \r\n
\r\n
\r\n
Відключити (Disable):
\r\n \r\n
\r\n
\r\n
Обов'язковість (Required):
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
Відображати поле якщо:
\r\n
\r\n
0\">\r\n
Взаємодія умов:
\r\n \r\n \r\n Вимкнуто\r\n І (and)\r\n Або (or)\r\n \r\n \r\n
\r\n
= 0 && cond.else != '')\">\r\n
Поле для умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ item.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Умова відображення:
\r\n \r\n \r\n Вимкнуто\r\n {{ value.value }}\r\n \r\n \r\n
\r\n\r\n
\r\n
Вимога умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ more.value }}\r\n \r\n \r\n
\r\n
\r\n
Власна дата:
\r\n
\r\n \r\n Виберіть необхідну дату\r\n \r\n \r\n \r\n \r\n \r\n Виберіть необхідний час\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
Тип умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ on.value }}\r\n \r\n \r\n
\r\n
\r\n
Значення умови:
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
Не заповнено найменування поля!
\r\n
Не заповнені всі пункти \"Вимог відображення\"!
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n

\r\n Будь-ласка зачекайте!
Триває Завантаження\r\n

\r\n
\r\n
\r\n","
\r\n

{{ data.data.content }}

\r\n \r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n
Найменування (Label): *
\r\n \r\n \r\n \r\n Обов'язково до заповнення!\r\n \r\n \r\n
\r\n
\r\n
Вирівнювання заголовку:
\r\n \r\n \r\n По лівому краю\r\n Центрувати\r\n По правову краю\r\n \r\n \r\n
\r\n
\r\n
Варіанти (Options):
\r\n
\r\n
\r\n
\r\n
Текст кнопки:
\r\n \r\n \r\n \r\n
\r\n
\r\n
Повідомлення:
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
Опис (Description):
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
Підказка (Tooltip):
\r\n \r\n \r\n \r\n
\r\n
\r\n
Відключити (Disable):
\r\n \r\n
\r\n
\r\n
Обов'язковість (Required):
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
Відображати поле якщо:
\r\n
\r\n
0\">\r\n
Взаємодія умов:
\r\n \r\n \r\n Вимкнуто\r\n І (and)\r\n Або (or)\r\n \r\n \r\n
\r\n
= 0 && cond.else != '')\">\r\n
Поле для умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ item.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Умова відображення:
\r\n \r\n \r\n Вимкнуто\r\n {{ value.value }}\r\n \r\n \r\n
\r\n\r\n
\r\n
Вимога умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ more.value }}\r\n \r\n \r\n
\r\n
\r\n
Власна дата:
\r\n
\r\n \r\n Виберіть необхідну дату\r\n \r\n \r\n \r\n \r\n \r\n Виберіть необхідний час\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
Тип умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ on.value }}\r\n \r\n \r\n
\r\n
\r\n
Значення умови:
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
Не заповнено найменування поля!
\r\n
Не заповнені всі пункти \"Вимог відображення\"!
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n

\r\n Будь-ласка зачекайте!
Триває Завантаження\r\n

\r\n
\r\n
\r\n","
\r\n

{{ data.data.content }}

\r\n \r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n
Найменування (Label): *
\r\n \r\n \r\n Обов'язково до заповнення! \r\n \r\n
\r\n
\r\n
Вирівнювання заголовку:
\r\n \r\n \r\n По лівому краю\r\n Центрувати\r\n По правову краю\r\n \r\n \r\n
\r\n
\r\n
Опис (Description):
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
Підказка (Tooltip):
\r\n \r\n \r\n \r\n
\r\n
\r\n
Відключити (Disable):
\r\n \r\n
\r\n
\r\n
Обов'язковість (Required):
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
Відображати поле якщо:
\r\n
\r\n
0\">\r\n
Взаємодія умов:
\r\n \r\n \r\n Вимкнуто\r\n І (and)\r\n Або (or)\r\n \r\n \r\n
\r\n
= 0 && cond.else != '')\">\r\n
Поле для умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ item.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Умова відображення:
\r\n \r\n \r\n Вимкнуто\r\n {{ value.value }}\r\n \r\n \r\n
\r\n\r\n \r\n
Вимога умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ more.value }}\r\n \r\n \r\n
\r\n
\r\n
Власна дата:
\r\n
\r\n \r\n Виберіть необхідну дату\r\n \r\n \r\n \r\n \r\n \r\n Виберіть необхідний час\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
Тип умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ on.value }}\r\n \r\n \r\n
\r\n \r\n
Значення умови:
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
Дане поле буде заблоковане від вводу данних зі сторони користувача. Натомість в нього автоматично будуть копіюватися дані із вказаного нище поля:
\r\n
\r\n
Вибір форми:
\r\n \r\n \r\n Вимкнуто\r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Вибір поля:
\r\n \r\n \r\n Вимкнуто\r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
Дане поле буде перевірятися на ідентичність данних із полем, що вказано нижче:
\r\n
\r\n
Вибір форми:
\r\n \r\n \r\n Вимкнуто\r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Вибір поля:
\r\n \r\n \r\n Вимкнуто\r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
Не заповнено найменування поля!
\r\n
Не заповнені всі пункти \"Вимог відображення\"!
\r\n
\r\n\r\n
\r\n \r\n save Зберегти\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n

Будь-ласка зачекайте!
Триває Завантаження

\r\n
\r\n
\r\n","
\r\n

{{ data.data.content }}

\r\n \r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n
Найменування (Label): *
\r\n \r\n \r\n Обов'язково до заповнення! \r\n \r\n
\r\n
\r\n
Вирівнювання заголовку:
\r\n \r\n \r\n По лівому краю\r\n Центрувати\r\n По правову краю\r\n \r\n \r\n
\r\n
\r\n
Опис (Description):
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
Підказка (Tooltip):
\r\n \r\n \r\n \r\n
\r\n
\r\n
Відключити (Disable):
\r\n \r\n
\r\n
\r\n
Обов'язковість (Required):
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
Відображати поле якщо:
\r\n
\r\n
0\">\r\n
Взаємодія умов:
\r\n \r\n \r\n Вимкнуто\r\n І (and)\r\n Або (or)\r\n \r\n \r\n
\r\n
= 0 && cond.else != '')\">\r\n
Поле для умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ item.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Умова відображення:
\r\n \r\n \r\n Вимкнуто\r\n {{ value.value }}\r\n \r\n \r\n
\r\n\r\n \r\n
Вимога умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ more.value }}\r\n \r\n \r\n
\r\n
\r\n
Власна дата:
\r\n
\r\n \r\n Виберіть необхідну дату\r\n \r\n \r\n \r\n \r\n \r\n Виберіть необхідний час\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
Тип умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ on.value }}\r\n \r\n \r\n
\r\n \r\n
Значення умови:
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
Дане поле буде заблоковане від вводу данних зі сторони користувача. Натомість в нього автоматично будуть копіюватися дані із вказаного нище поля:
\r\n
\r\n
Вибір форми:
\r\n \r\n \r\n Вимкнуто\r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Вибір поля:
\r\n \r\n \r\n Вимкнуто\r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
Дане поле буде перевірятися на ідентичність данних із полем, що вказано нижче:
\r\n
\r\n
Вибір форми:
\r\n \r\n \r\n Вимкнуто\r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Вибір поля:
\r\n \r\n \r\n Вимкнуто\r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
Не заповнено найменування поля!
\r\n
Не заповнені всі пункти \"Вимог відображення\"!
\r\n
\r\n\r\n
\r\n \r\n save Зберегти\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n

Будь-ласка зачекайте!
Триває Завантаження

\r\n
\r\n
\r\n","
\r\n

{{ data.data.content }}

\r\n \r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n
Найменування (Label): *
\r\n \r\n \r\n Обов'язково до заповнення! \r\n \r\n
\r\n
\r\n
Вирівнювання заголовку:
\r\n \r\n \r\n По лівому краю\r\n Центрувати\r\n По правову краю\r\n \r\n \r\n
\r\n
\r\n
Опис (Description):
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
Повідомлення (Dialog):
\r\n \r\n \r\n \r\n
\r\n
\r\n
Підказка (Tooltip):
\r\n \r\n \r\n \r\n
\r\n
\r\n
Відображати час:
\r\n \r\n
\r\n
\r\n
Блокувати майбутні дати:
\r\n \r\n
\r\n
\r\n
Відключити (Disable):
\r\n \r\n
\r\n
\r\n
Обов'язковість (Required):
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
Відображати поле якщо:
\r\n
\r\n
0\">\r\n
Взаємодія умов:
\r\n \r\n \r\n Вимкнуто\r\n І (and)\r\n Або (or)\r\n \r\n \r\n
\r\n
= 0 && cond.else != '')\">\r\n
Поле для умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ item.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Умова відображення:
\r\n \r\n \r\n Вимкнуто\r\n {{ value.value }}\r\n \r\n \r\n
\r\n\r\n \r\n
Вимога умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ more.value }}\r\n \r\n \r\n
\r\n
\r\n
Власна дата:
\r\n
\r\n \r\n Виберіть необхідну дату\r\n \r\n \r\n \r\n \r\n \r\n Виберіть необхідний час\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
Тип умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ on.value }}\r\n \r\n \r\n
\r\n \r\n
Значення умови:
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
Дане поле буде заблоковане від вводу данних зі сторони користувача. Натомість в нього автоматично будуть копіюватися дані із вказаного нище поля:
\r\n
\r\n
Вибір форми:
\r\n \r\n \r\n Вимкнуто\r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Вибір поля:
\r\n \r\n \r\n Вимкнуто\r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
Дане поле буде перевірятися на ідентичність данних із полем, що вказано нижче:
\r\n
\r\n
Вибір форми:
\r\n \r\n \r\n Вимкнуто\r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Вибір поля:
\r\n \r\n \r\n Вимкнуто\r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
Не заповнено найменування поля!
\r\n
Не заповнені всі пункти \"Вимог відображення\"!
\r\n
\r\n\r\n
\r\n \r\n save Зберегти\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n

Будь-ласка зачекайте!
Триває Завантаження

\r\n
\r\n
\r\n","
\r\n

{{ data.data.content }}

\r\n \r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n
Найменування (Label): *
\r\n \r\n \r\n \r\n Обов'язково до заповнення!\r\n \r\n \r\n
\r\n
\r\n
Вирівнювання заголовку:
\r\n \r\n \r\n По лівому краю\r\n Центрувати\r\n По правову краю\r\n \r\n \r\n
\r\n\r\n
\r\n
Кнопка додати:
\r\n \r\n \r\n \r\n
\r\n
\r\n
Кнопка видалити:
\r\n \r\n \r\n \r\n
\r\n
\r\n
Підказка (Tooltip):
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
Відображати поле якщо:
\r\n
\r\n
0\">\r\n
Взаємодія умов:
\r\n \r\n \r\n Вимкнуто\r\n І (and)\r\n Або (or)\r\n \r\n \r\n
\r\n
= 0 && cond.else != '')\">\r\n
Поле для умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ item.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Умова відображення:
\r\n \r\n \r\n Вимкнуто\r\n {{ value.value }}\r\n \r\n \r\n
\r\n\r\n
\r\n
Вимога умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ more.value }}\r\n \r\n \r\n
\r\n
\r\n
Власна дата:
\r\n
\r\n \r\n Виберіть необхідну дату\r\n \r\n \r\n \r\n \r\n \r\n Виберіть необхідний час\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
Тип умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ on.value }}\r\n \r\n \r\n
\r\n
\r\n
Значення умови:
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
Не заповнено найменування поля!
\r\n
Не заповнені всі пункти \"Вимог відображення\"!
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n

\r\n Будь-ласка зачекайте!
Триває Завантаження\r\n

\r\n
\r\n
\r\n","
\r\n

{{ data.data.content }}

\r\n \r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n
Найменування (Label): *
\r\n \r\n \r\n \r\n Обов'язково до заповнення!\r\n \r\n \r\n
\r\n
\r\n
Вирівнювання заголовку:
\r\n \r\n \r\n По лівому краю\r\n Центрувати\r\n По правову краю\r\n \r\n \r\n
\r\n
\r\n
Відображати назву:
\r\n \r\n
\r\n
\r\n
Кількість стовпчиків:
\r\n \r\n \r\n 1\r\n 2\r\n 3\r\n 4\r\n 5\r\n 6\r\n \r\n \r\n
\r\n\r\n
\r\n
Маска (Mask):
\r\n \r\n \r\n *Вимкнуто*\r\n Подвійна колонка\r\n Колонка із боковим перемиканням\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
Відображати поле якщо:
\r\n
\r\n
0\">\r\n
Взаємодія умов:
\r\n \r\n \r\n Вимкнуто\r\n І (and)\r\n Або (or)\r\n \r\n \r\n
\r\n
= 0 && cond.else != '')\">\r\n
Поле для умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ item.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Умова відображення:
\r\n \r\n \r\n Вимкнуто\r\n {{ value.value }}\r\n \r\n \r\n
\r\n\r\n
\r\n
Вимога умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ more.value }}\r\n \r\n \r\n
\r\n
\r\n
Власна дата:
\r\n
\r\n \r\n Виберіть необхідну дату\r\n \r\n \r\n \r\n \r\n \r\n Виберіть необхідний час\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
Тип умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ on.value }}\r\n \r\n \r\n
\r\n
\r\n
Значення умови:
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
Не заповнено найменування поля!
\r\n
Не заповнені всі пункти \"Вимог відображення\"!
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n

\r\n Будь-ласка зачекайте!
Триває Завантаження\r\n

\r\n
\r\n
\r\n","
\r\n

{{ data.data.content }}

\r\n \r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n
Найменування (Label): *
\r\n \r\n \r\n \r\n Обов'язково до заповнення!\r\n \r\n \r\n
\r\n
\r\n
Вирівнювання заголовку:
\r\n \r\n \r\n По лівому краю\r\n Центрувати\r\n По правову краю\r\n \r\n \r\n
\r\n
\r\n
Опис (Description):
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
Підказка (Tooltip):
\r\n \r\n \r\n \r\n
\r\n
\r\n
Відключити (Disable):
\r\n \r\n
\r\n
\r\n
Обов'язковість (Required):
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
Відображати поле якщо:
\r\n
\r\n
0\">\r\n
Взаємодія умов:
\r\n \r\n \r\n Вимкнуто\r\n І (and)\r\n Або (or)\r\n \r\n \r\n
\r\n
= 0 && cond.else != '')\">\r\n
Поле для умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ item.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Умова відображення:
\r\n \r\n \r\n Вимкнуто\r\n {{ value.value }}\r\n \r\n \r\n
\r\n\r\n
\r\n
Вимога умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ more.value }}\r\n \r\n \r\n
\r\n
\r\n
Власна дата:
\r\n
\r\n \r\n Виберіть необхідну дату\r\n \r\n \r\n \r\n \r\n \r\n Виберіть необхідний час\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
Тип умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ on.value }}\r\n \r\n \r\n
\r\n
\r\n
Значення умови:
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
Не заповнено найменування поля!
\r\n
Не заповнені всі пункти \"Вимог відображення\"!
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n

\r\n Будь-ласка зачекайте!
Триває Завантаження\r\n

\r\n
\r\n
\r\n","
\r\n

{{ data.data.content }}

\r\n \r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n
Найменування (Label): *
\r\n \r\n \r\n \r\n Обов'язково до заповнення!\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
Вибір шаблона:
\r\n \r\n {{ data.tableTitle }}\r\n \r\n
\r\n\r\n
Поле із данними email:
\r\n
\r\n
\r\n
Вибір форми:
\r\n \r\n \r\n Вимкнуто\r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Вибір поля:
\r\n \r\n \r\n Вимкнуто\r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
Умови використання:
\r\n
\r\n
0\">\r\n
Взаємодія умов:
\r\n \r\n \r\n Вимкнуто\r\n І (and)\r\n Або (or)\r\n \r\n \r\n
\r\n
= 0 && cond.else != '')\">\r\n
Вибір форми:
\r\n \r\n \r\n Вимкнуто\r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Поле для умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Умова відображення:
\r\n \r\n \r\n Вимкнуто\r\n {{ value.value }}\r\n \r\n \r\n
\r\n\r\n
\r\n
Вимога умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ more.value }}\r\n \r\n \r\n
\r\n
\r\n
Власна дата:
\r\n
\r\n \r\n Виберіть необхідну дату\r\n \r\n \r\n \r\n \r\n \r\n Виберіть необхідний час\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
Тип умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ on.value }}\r\n \r\n \r\n
\r\n
\r\n
Значення умови:
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n add Додати шаблон\r\n \r\n
\r\n
\r\n
Вибір шаблона:
\r\n \r\n Не вибрано шаблон (Вимкнуто)\r\n {{ data.tableTitle }}\r\n \r\n
\r\n\r\n
\r\n
Не вибрано шаблон!
\r\n
\r\n\r\n
Поле із даними email:
\r\n
\r\n
\r\n
Вибір форми:
\r\n \r\n \r\n Вимкнуто\r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Вибір поля:
\r\n \r\n \r\n Вимкнуто\r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
Умови використання:
\r\n
\r\n
0\">\r\n
Взаємодія умов:
\r\n \r\n \r\n Вимкнуто\r\n І (and)\r\n Або (or)\r\n \r\n \r\n
\r\n
= 0 && cond.else != '')\">\r\n
Вибір форми:
\r\n \r\n \r\n Вимкнуто\r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Поле для умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Умова відображення:
\r\n \r\n \r\n Вимкнуто\r\n {{ value.value }}\r\n \r\n \r\n
\r\n\r\n
\r\n
Вимога умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ more.value }}\r\n \r\n \r\n
\r\n
\r\n
Власна дата:
\r\n
\r\n \r\n Виберіть необхідну дату\r\n \r\n \r\n \r\n \r\n \r\n Виберіть необхідний час\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
Тип умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ on.value }}\r\n \r\n \r\n
\r\n
\r\n
Значення умови:
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
Не заповнено найменування поля!
\r\n
Знайдено не збережений шаблон!
\r\n
Некоректно вказаний емейл, або шаблон!
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n

\r\n Будь-ласка зачекайте!
Триває Завантаження\r\n

\r\n
\r\n
\r\n","import {SelectionModel} from '@angular/cdk/collections';\r\nimport {Component, Injectable, Inject, ViewChild} from '@angular/core';\r\nimport {FormControl, Validators} from '@angular/forms';\r\nimport {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\r\nimport {MatPaginator} from '@angular/material/paginator';\r\nimport {MatSort} from '@angular/material/sort';\r\nimport {MatTableDataSource} from '@angular/material/table';\r\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\r\nimport {CookieService} from 'ngx-cookie-service';\r\nimport {Router} from '@angular/router';\r\nimport {FlatTreeControl} from '@angular/cdk/tree';\r\nimport {MatTreeFlatDataSource, MatTreeFlattener} from '@angular/material/tree';\r\nimport {BehaviorSubject} from 'rxjs';\r\nimport {ThemePalette} from '@angular/material/core';\r\nimport {ProgressSpinnerMode} from '@angular/material/progress-spinner';\r\n\r\nimport {ConfirmMenu} from '../confirm-menu'\r\nimport {AdminPage} from \"./admin\";\r\n\r\nexport interface DialogData {\r\n name: string;\r\n status: string;\r\n data: LibraryData;\r\n parent: number;\r\n type: string;\r\n}\r\n\r\nexport interface LibraryData {\r\n Id: number;\r\n TableTitle: string;\r\n Title: string;\r\n Type: string;\r\n Author: string;\r\n Date: string;\r\n Disabled: boolean;\r\n Email: string;\r\n}\r\n\r\nexport interface LibraryItemData {\r\n Id: number;\r\n TableTitle: string;\r\n Title: string;\r\n Type: string;\r\n Date: string;\r\n Disabled: boolean;\r\n Email: string;\r\n}\r\n\r\nexport class TodoItemNode {\r\n children: TodoItemNode[];\r\n item: string;\r\n id: string;\r\n}\r\n\r\nexport class TodoItemFlatNode {\r\n id: string;\r\n item: string;\r\n level: number;\r\n expandable: boolean;\r\n}\r\n\r\nvar TREE_DATA = {};\r\n\r\nvar dataChange = new BehaviorSubject([]);\r\n\r\nvar isChange = false;\r\nvar options = {};\r\nvar currentRegion = null;\r\nvar CHANGE_LIST = [];\r\nvar DELETE_LIST = [];\r\nvar REGION_TITLE = \"\";\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// ChecklistDatabase ++\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n@Injectable()\r\nexport class ChecklistDatabase {\r\n\r\n get data(): TodoItemNode[] { return dataChange.value; }\r\n\r\n currentLocale: string = \"\";\r\n\r\n CourtData: any[] = [];\r\n CityData: any[] = [];\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private admin: AdminPage,\r\n private cookieService: CookieService\r\n ){\r\n this.currentLocale = this.admin.getLocale();\r\n \r\n this.initialize();\r\n }\r\n\r\n initialize() {\r\n let cookieService = CookieService;\r\n let headers = new HttpHeaders({\r\n \"Authorization\": \"Bearer \" + this.cookieService.get(\"access_token\")\r\n });\r\n options = { \"headers\": headers };\r\n this.dbRequest();\r\n }\r\n\r\n dbRequest(){\r\n this.http.get(this.admin.getUrl() + \"City\").subscribe((data)=>{\r\n this.CityData = [];\r\n [].forEach.call(data, (e) => {\r\n\r\n let tableTitle = e.title.split(\"*L*\");\r\n let elements = tableTitle.filter(x => x.split(\"*I*\")[0] == this.currentLocale).map(x => x);\r\n if(elements.length == 0){\r\n tableTitle = tableTitle[0];\r\n }else{\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n \r\n this.CityData.push({\r\n Id: e.id,\r\n TableTitle: tableTitle,\r\n Title: e.title,\r\n Region: e.regionId,\r\n });\r\n });\r\n this.http.get(this.admin.getUrl() + \"Court\").subscribe((data)=>{\r\n this.CourtData = [];\r\n [].forEach.call(data, (e) => {\r\n\r\n let tableTitle = e.title.split(\"*L*\");\r\n let elements = tableTitle.filter(x => x.split(\"*I*\")[0] == this.currentLocale).map(x => x);\r\n if(elements.length == 0){\r\n tableTitle = tableTitle[0];\r\n }else{\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n \r\n this.CourtData.push({\r\n Id: e.id,\r\n TableTitle: tableTitle,\r\n Title: e.title,\r\n City: e.cityId,\r\n Email: e.email,\r\n });\r\n });\r\n if(currentRegion == null){\r\n TREE_DATA = {\"0\": {}};\r\n }else{\r\n let obj = this.buildCourt(this.CityData, currentRegion.Id, 1);\r\n TREE_DATA = {\"0\": obj};\r\n }\r\n let treeData = this.buildFileTree(TREE_DATA, 0);\r\n dataChange.next(treeData);\r\n });\r\n });\r\n }\r\n\r\n buildCourt(data, id, level){\r\n let object = {};\r\n [].forEach.call(data, (e) => {\r\n if(level == 1){\r\n if(e.Region == id){\r\n let child = this.buildCourt(this.CourtData, e.Id, 2);\r\n object[e.Id] = child;\r\n }\r\n }else{\r\n if(e.City == id){\r\n object[e.Id] = {};\r\n }\r\n }\r\n });\r\n return object;\r\n }\r\n\r\n buildFileTree(obj: {[key: string]: any}, level: number): TodoItemNode[] {\r\n return Object.keys(obj).reduce((accumulator, key) => {\r\n const value = obj[key];\r\n const node = new TodoItemNode();\r\n node.id = key;\r\n if(key == \"0\"){\r\n if(currentRegion != null){\r\n node.item = REGION_TITLE;\r\n }else{\r\n node.item = \"Назва Регіону\";\r\n }\r\n }else{\r\n if(level == 1){\r\n node.item = this.getCityById(key);\r\n }else{\r\n node.item = this.getCourtById(key);\r\n }\r\n }\r\n\r\n if (value != null) {\r\n if (typeof value === 'object') {\r\n node.children = this.buildFileTree(value, level + 1);\r\n } else {\r\n node.item = value;\r\n }\r\n }\r\n\r\n return accumulator.concat(node);\r\n }, []);\r\n }\r\n\r\n insertItem(parent: TodoItemNode, name: string) {\r\n if(!parent.children){\r\n parent.children = [];\r\n }\r\n let object = new TodoItemNode();\r\n object.item = name;\r\n parent.children.push(object);\r\n dataChange.next(this.data);\r\n }\r\n\r\n updateItem(node: TodoItemNode, name: string, update: boolean) {\r\n node.item = name;\r\n CHANGE_LIST.push(node);\r\n dataChange.next(this.data);\r\n }\r\n\r\n removeItem(parentNode: TodoItemNode, node: TodoItemNode){\r\n const index = parentNode.children.indexOf(node);\r\n if(index !== -1){\r\n DELETE_LIST.push(parentNode.children[index]);\r\n parentNode.children.splice(index, 1);\r\n dataChange.next(this.data);\r\n }\r\n }\r\n\r\n getCityById(id){\r\n let index = this.CityData.map(function(e){ return e.Id }).indexOf(parseInt(id));\r\n return this.CityData[index].TableTitle;\r\n }\r\n\r\n getCourtById(id){\r\n let index = this.CourtData.map(function(e){ return e.Id }).indexOf(parseInt(id));\r\n let email = this.CourtData[index].Email;\r\n if(email == null){\r\n email = \"\";\r\n }\r\n return this.CourtData[index].TableTitle + \", Email: \" + email;\r\n }\r\n \r\n}\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Library Page ++\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n \r\n@Component({\r\n selector: 'library',\r\n templateUrl: 'library.html',\r\n styleUrls: ['admin.css'],\r\n providers: [AdminPage]\r\n})\r\n\r\nexport class LibraryPage {\r\n\r\n userAllow: boolean = true;\r\n IsLoading: boolean = false;\r\n IsSaving: boolean = false;\r\n isDeleting: boolean = false;\r\n isReload: boolean = false;\r\n \r\n barValue: number = 50;\r\n pageSizer: number = 5;\r\n pageIndexer: number = 0;\r\n\r\n currentLocale: string = \"\";\r\n\r\n libraryData: LibraryData[] = [];\r\n libraryNormalData: LibraryData[] = [];\r\n libraryCourtData: LibraryData[] = [];\r\n displayedColumns: string[] = [\"select\", \"Title\", \"Type\", \"CreateDate\", \"Author\"];\r\n\r\n barColor: ThemePalette = 'primary';\r\n barMode: ProgressSpinnerMode = 'indeterminate';\r\n selection = new SelectionModel(true, []);\r\n dataSource: MatTableDataSource;\r\n\r\n @ViewChild(MatPaginator, {static: true}) paginator: MatPaginator;\r\n @ViewChild(MatSort, {static: true}) sort: MatSort;\r\n\r\n constructor(\r\n private router: Router,\r\n private cookieService: CookieService,\r\n private admin: AdminPage,\r\n private http: HttpClient,\r\n public dialog: MatDialog,\r\n ){\r\n this.IsLoading = true;\r\n \r\n if(this.cookieService.get(\"access_token\") == \"\"){\r\n this.router.navigate(['/admin/login']);\r\n }\r\n\r\n if(this.cookieService.get(\"page_size\").split(\"_\")[0] == \"l\"){\r\n this.pageSizer = parseInt(this.cookieService.get(\"page_size\").split(\"_\")[1]);\r\n this.pageIndexer = parseInt(this.cookieService.get(\"page_size\").split(\"_\")[2]);\r\n }else{\r\n this.cookieService.delete(\"page_size\", \"/\");\r\n }\r\n\r\n if(this.cookieService.get(\"page_filter\") != \"\"){\r\n this.cookieService.delete(\"page_filter\", \"/\");\r\n }\r\n\r\n options = {\"headers\": new HttpHeaders({\"Authorization\": \"Bearer \" + cookieService.get(\"access_token\")})};\r\n\r\n this.currentLocale = this.admin.getLocale();\r\n\r\n this.dataSource = new MatTableDataSource(this.libraryData);\r\n\r\n if(this.router.getCurrentNavigation().extras.skipLocationChange != false){\r\n let filterData = this.router.getCurrentNavigation().extras.state;\r\n if(filterData.langType != undefined){\r\n if(filterData.langType == \"reload\"){\r\n this.currentLocale = this.admin.getLocale();\r\n if(filterData.itemData.Id == 0){\r\n filterData.itemData.Id = filterData.itemData.LangParent;\r\n filterData.itemData.Lang = this.admin.getDefLocale();\r\n }\r\n this.selection.selected.push(filterData.itemData);\r\n this.isReload = true;\r\n }else{\r\n this.selection = new SelectionModel(true, []);\r\n if(filterData.langType == \"lang\"){\r\n this.admin.refreshLocale();\r\n }\r\n this.dbRequest();\r\n }\r\n }\r\n }\r\n\r\n this.dbRequest();\r\n }\r\n\r\n dbRequest(){\r\n this.http.get(this.admin.getUrl() + \"Account/GetUsers\", options).subscribe((dataU)=>{\r\n this.http.get(this.admin.getUrl() + \"userdataType\").subscribe((data)=>{\r\n this.libraryData = [];\r\n [].forEach.call(data, (e) => {\r\n let date = e.createdAt.split(\"T\")[0].split(\"-\");\r\n date = date.reverse();\r\n date = date.join(\".\");\r\n let author: any = \"Система\";\r\n if(e.createdById != null){\r\n [].forEach.call(dataU, (c) =>{\r\n if(c.id == e.createdById){\r\n author = c.email;\r\n // author = c.email.split(\"@\")[0];\r\n }\r\n });\r\n }\r\n\r\n let tableTitle = e.title.split(\"*L*\");\r\n let elements = tableTitle.filter(x => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map(x => x);\r\n if(elements.length == 0){\r\n tableTitle = tableTitle[0];\r\n }else{\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n\r\n let json = {\r\n Id: e.id,\r\n TableTitle: tableTitle,\r\n Title: e.title,\r\n Type: e.type,\r\n Date: date,\r\n Author: author,\r\n Disabled: e.isActual,\r\n Email: null,\r\n };\r\n this.libraryData.push(json);\r\n this.libraryNormalData.push(json);\r\n });\r\n this.http.get(this.admin.getUrl() + \"region\").subscribe((data)=>{\r\n [].forEach.call(data, (e) => {\r\n let date = e.createdAt.split(\"T\")[0].split(\"-\");\r\n date = date.reverse();\r\n date = date.join(\".\");\r\n let author: any = \"Система\";\r\n if(e.createdById != null){\r\n [].forEach.call(dataU, (c) =>{\r\n if(c.id == e.createdById){\r\n author = c.email;\r\n // author = c.email.split(\"@\")[0];\r\n }\r\n });\r\n }\r\n\r\n let tableTitle = e.title.split(\"*L*\");\r\n let elements = tableTitle.filter(x => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map(x => x);\r\n if(elements.length == 0){\r\n tableTitle = tableTitle[0];\r\n }else{\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n \r\n let json = {\r\n Id: e.id,\r\n Title: e.title,\r\n TableTitle: tableTitle,\r\n Type: \"court\",\r\n Date: date,\r\n Author: author,\r\n Disabled: e.isActual,\r\n Email: null,\r\n };\r\n this.libraryData.push(json);\r\n this.libraryCourtData.push(json);\r\n });\r\n this.dataSource = new MatTableDataSource(this.libraryData);\r\n this.paginator.pageSize = this.pageSizer;\r\n this.paginator.pageIndex = this.pageIndexer;\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n\r\n this.IsLoading = false;\r\n\r\n if(this.isReload){\r\n this.isReload = false;\r\n if(this.userAllow){\r\n this.openMenu(\"edit\");\r\n }else{\r\n this.openMenu(\"review\");\r\n }\r\n }\r\n });\r\n });\r\n });\r\n }\r\n\r\n pageSize(){\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(\":\")[0];\r\n let secure = false;\r\n if(location.protocol == \"https:\"){\r\n secure = true;\r\n }\r\n this.cookieService.set(\"page_size\", \"l_\" + this.dataSource.paginator.pageSize.toString() + \"_\" + this.dataSource.paginator.pageIndex.toString(), expires, \"/\", local, secure);\r\n }\r\n\r\n applyFilter(filterValue: string) {\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n \r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n isAllSelected() {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.dataSource.data.length;\r\n return numSelected === numRows;\r\n }\r\n \r\n masterToggle() {\r\n this.isAllSelected() ? this.selection.clear() : this.dataSource.data.forEach(row => this.selection.select(row));\r\n }\r\n \r\n checkboxLabel(row?: LibraryData): string {\r\n let userId = this.cookieService.get(\"userName\").split(\"T\")[0];\r\n // let userId = this.cookieService.get(\"userName\").split(\"T\")[0].split(\"@\")[0];\r\n let userRole = parseInt(this.cookieService.get(\"cookieAllowId\").split(\"T\")[1]);\r\n // if(userRole == 1){\r\n this.userAllow = true;\r\n // }else{\r\n // this.userAllow = false;\r\n // }\r\n if(userRole != 1){\r\n [].forEach.call(this.selection.selected, (e) =>{\r\n if(e.Author != userId){\r\n this.userAllow = false;\r\n }\r\n });\r\n }\r\n if (!row) {\r\n return `${this.isAllSelected() ? 'select' : 'deselect'} all`;\r\n }\r\n return `${this.selection.isSelected(row) ? 'deselect' : 'select'} row ${row.Id + 1}`;\r\n }\r\n\r\n getIndexNormal(id){\r\n return this.libraryNormalData.findIndex(x => x.Id === id);\r\n }\r\n\r\n getIndexCourt(id){\r\n return this.libraryCourtData.findIndex(x => x.Id === id);\r\n }\r\n\r\n getLibraryChild(id, finish){\r\n let result = null;\r\n this.http.get(this.admin.getUrl() + \"userDataTypeValue\").subscribe((data)=>{\r\n result = [];\r\n [].forEach.call(data, (e) => {\r\n if(e.uerDataTypeId == parseInt(id)){\r\n result.push(e.id);\r\n }\r\n });\r\n this.removeLibrary(id, result, finish);\r\n });\r\n }\r\n\r\n openMenu(status: string){\r\n if(status == \"dbClick\"){\r\n if(this.cookieService.get(\"userName\") == this.selection.selected[0].Author || this.cookieService.get(\"cookieAllowId\").split(\"T\")[1] == \"1\"){\r\n status = \"edit\";\r\n this.userAllow = true;\r\n }else{\r\n status = \"review\";\r\n this.userAllow = false;\r\n }\r\n }\r\n event.stopPropagation();\r\n let emptyProduct;\r\n let data;\r\n let index = -1;\r\n switch(status){\r\n case \"add\":\r\n emptyProduct = {\r\n \"Id\": null,\r\n \"Title\": \"\",\r\n }\r\n data = {\r\n name: \"Новий довідник\",\r\n status: status,\r\n data: emptyProduct\r\n };\r\n this.admin.setLocale(this.admin.getDefLocale());\r\n this.router.navigateByUrl('/admin/library-item', {state: data});\r\n break;\r\n case \"edit\":\r\n if(this.selection.selected[0].Type == \"normal\"){\r\n index = this.getIndexNormal(this.selection.selected[0].Id);\r\n data = {\r\n name: \"\",\r\n status: status,\r\n data: this.libraryNormalData[index]\r\n };\r\n }else{\r\n index = this.getIndexCourt(this.selection.selected[0].Id);\r\n data = {\r\n name: \"\",\r\n status: status,\r\n data: this.libraryCourtData[index]\r\n };\r\n }\r\n this.router.navigateByUrl('/admin/library-item', {state: data});\r\n break;\r\n case \"review\":\r\n if(this.selection.selected[0].Type == \"normal\"){\r\n index = this.getIndexNormal(this.selection.selected[0].Id);\r\n data = {\r\n name: \"\",\r\n status: status,\r\n data: this.libraryNormalData[index]\r\n };\r\n }else{\r\n index = this.getIndexCourt(this.selection.selected[0].Id);\r\n data = {\r\n name: \"\",\r\n status: status,\r\n data: this.libraryCourtData[index]\r\n };\r\n }\r\n this.router.navigateByUrl('/admin/library-item', {state: data});\r\n break;\r\n case \"remove\":\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: {text: \"Ви дійсно хочете видалити довідник?\"}\r\n });\r\n confirm.afterClosed().subscribe(result => {\r\n if(result){\r\n this.isDeleting = true;\r\n [].forEach.call(this.selection.selected, (e, index) => {\r\n if(e.Type == \"normal\"){\r\n if(index == this.selection.selected.length -1){\r\n this.getLibraryChild(e.Id, true);\r\n }else{\r\n this.getLibraryChild(e.Id, false);\r\n }\r\n }else{\r\n if(index == this.selection.selected.length -1){\r\n this.removeCourt(e.Id, true);\r\n }else{\r\n this.removeCourt(e.Id, false);\r\n }\r\n }\r\n });\r\n }\r\n });\r\n break;\r\n }\r\n }\r\n\r\n removeLibrary(parent, childs, finish){\r\n if(childs.length > 0){\r\n [].forEach.call(childs, (c, indexC) => {\r\n this.http.delete(this.admin.getUrl() + \"userDataTypeValue/\" + c, options).subscribe((data)=>{\r\n if(indexC == childs.length -1){\r\n this.http.delete(this.admin.getUrl() + \"userdataType/\" + parent, options).subscribe((data)=>{\r\n if(finish){\r\n this.isDeleting = false;\r\n this.refreshTable();\r\n }\r\n });\r\n }\r\n });\r\n });\r\n }else{\r\n this.http.delete(this.admin.getUrl() + \"userdataType/\" + parent, options).subscribe((data)=>{\r\n if(finish){\r\n this.isDeleting = false;\r\n this.refreshTable();\r\n }\r\n });\r\n }\r\n }\r\n\r\n removeCourt(parent, finish){\r\n let cityData = [];\r\n let courtData = [];\r\n this.http.get(this.admin.getUrl() + \"City\").subscribe((data)=>{\r\n [].forEach.call(data, (e) => {\r\n if(e.regionId == parent){\r\n if(!cityData.some(c => c === e)){\r\n cityData.push(e);\r\n }\r\n }\r\n });\r\n this.http.get(this.admin.getUrl() + \"Court\").subscribe((data)=>{\r\n [].forEach.call(data, (e) => {\r\n let indexAttr = cityData.map(function(c){ return c.id }).indexOf(e.cityId);\r\n if(indexAttr != -1){\r\n if(!courtData.some(c => c === e)){\r\n courtData.push(e);\r\n }\r\n }\r\n });\r\n this.removeCourtList(courtData, \"court\", cityData, parent, finish);\r\n });\r\n });\r\n }\r\n\r\n removeCourtList(array, type, next, parent, finish){\r\n if(array.length > 0){\r\n [].forEach.call(array, (e, index) => {\r\n this.http.delete(this.admin.getUrl() + type + \"/\" + e.id, options).subscribe((data)=>{\r\n if(index == array.length -1){\r\n if(next == null){\r\n this.http.delete(this.admin.getUrl() + \"region/\" + parent, options).subscribe((data)=>{\r\n if(finish){\r\n this.isDeleting = false;\r\n this.refreshTable();\r\n }\r\n });\r\n }else{\r\n this.removeCourtList(next, \"city\", null, parent, finish);\r\n }\r\n }\r\n });\r\n });\r\n }else{\r\n if(next == null){\r\n this.http.delete(this.admin.getUrl() + \"region/\" + parent, options).subscribe((data)=>{\r\n if(finish){\r\n this.isDeleting = false;\r\n this.refreshTable();\r\n }\r\n });\r\n }else{\r\n this.removeCourtList(next, \"city\", null, parent, finish);\r\n }\r\n }\r\n }\r\n\r\n refreshTable(){\r\n this.selection = new SelectionModel(true, []);\r\n this.dbRequest();\r\n }\r\n \r\n}\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Library Item ++\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n@Component({\r\n selector: 'library-item',\r\n templateUrl: 'library-item.html',\r\n styleUrls: ['./admin.css'],\r\n providers: [ChecklistDatabase, AdminPage]\r\n})\r\n\r\nexport class LibraryItem {\r\n\r\n IsSaving: boolean = false;\r\n IsLoading: boolean = false;\r\n dbRefresh: boolean = false;\r\n userAllow: boolean = true;\r\n isAdmin: boolean = false;\r\n\r\n barValue: number = 50;\r\n pageSizer: number = 5;\r\n pageIndexer: number = 0;\r\n\r\n currentLocale: string = \"\";\r\n langCurrentTitle: string = \"\";\r\n changeTreeValue: string = \"\";\r\n changeTreeEmail: string = \"\";\r\n\r\n localeList: any[] = [];\r\n langDataList: any[] = [];\r\n RegionData: any[] = [];\r\n RegionTree: any[] = [];\r\n CityTree: any[] = [];\r\n CourtTree: any[] = [];\r\n LibraryItemData: LibraryItemData[] = [];\r\n displayedColumns: string[] = [\"select\", \"Title\", \"Date\"];\r\n\r\n barColor: ThemePalette = 'primary';\r\n barMode: ProgressSpinnerMode = 'indeterminate';\r\n titleFormControl = new FormControl();\r\n data: any;\r\n libraryType: string;\r\n title: any = null;\r\n treeData = {};\r\n treeDataBase: any = null;\r\n flatNodeMap = new Map();\r\n nestedNodeMap = new Map();\r\n selectedParent: TodoItemFlatNode | null = null;\r\n treeControl: FlatTreeControl;\r\n treeFlattener: MatTreeFlattener;\r\n dataSourceTree: MatTreeFlatDataSource;\r\n dataSource: MatTableDataSource;\r\n selection = new SelectionModel(true, []);\r\n\r\n @ViewChild(MatPaginator, {static: true}) paginator: MatPaginator;\r\n @ViewChild(MatSort, {static: true}) sort: MatSort;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private admin: AdminPage,\r\n public dialog: MatDialog,\r\n private router: Router,\r\n public _database: ChecklistDatabase,\r\n public cookieService: CookieService\r\n ){\r\n if(this.router.getCurrentNavigation().extras.skipLocationChange == false){\r\n this.router.navigate(['/admin/library']);\r\n }else{\r\n\r\n this.IsLoading = true;\r\n\r\n this.currentLocale = this.admin.getLocale();\r\n\r\n if(this.cookieService.get(\"page_size\").split(\"_\")[0] == \"l\"){\r\n this.pageSizer = parseInt(this.cookieService.get(\"page_size\").split(\"_\")[1]);\r\n this.pageIndexer = parseInt(this.cookieService.get(\"page_size\").split(\"_\")[2]);\r\n }else{\r\n this.cookieService.delete(\"page_size\", \"/\");\r\n }\r\n \r\n let interval = setInterval(() => {\r\n if(this.admin.getDBStatus()){\r\n clearInterval(interval);\r\n this.localeList = this.admin.getList(\"Lang\");\r\n\r\n if(this.cookieService.get(\"cookieAllowId\").split(\"T\")[1] == \"1\" || this.admin.managerDisable){\r\n this.isAdmin = true;\r\n }\r\n \r\n if(this.data.status == \"add\" && !this.isAdmin){\r\n this.data.data.Disabled = true;\r\n }\r\n }\r\n }, 50);\r\n \r\n this.data = this.router.getCurrentNavigation().extras.state;\r\n DELETE_LIST = [];\r\n\r\n if(this.data.status == \"review\"){\r\n this.userAllow = false;\r\n }else{\r\n this.userAllow = true;\r\n }\r\n\r\n let titleList = this.data.data.Title.split(\"*L*\");\r\n [].forEach.call(titleList, (e, indexE) =>{\r\n if(e.split(\"*I*\").length == 1){\r\n e = this.admin.getDefLocale() + \"*I*\" + e;\r\n }\r\n this.langDataList.push(\r\n {\r\n langId: e.split(\"*I*\")[0], title: e.split(\"*I*\")[1]\r\n }\r\n );\r\n });\r\n let elements = this.langDataList.filter(x => x.langId == this.currentLocale).map(x => x);\r\n if(elements.length == 0){\r\n elements = this.langDataList.filter(x => x.langId == this.admin.getDefLocale()).map(x => x);\r\n }\r\n this.langCurrentTitle = elements[0].title;\r\n REGION_TITLE = this.langCurrentTitle;\r\n\r\n this.titleFormControl = new FormControl(this.langCurrentTitle, [Validators.required]);\r\n\r\n this.dataSource = new MatTableDataSource(this.LibraryItemData);\r\n this.libraryType = this.data.data.Type;\r\n if(this.libraryType == undefined){\r\n this.libraryType = \"normal\";\r\n }\r\n this.treeFlattener = new MatTreeFlattener(this.transformer, this.getLevel, this.isExpandable, this.getChildren);\r\n this.treeControl = new FlatTreeControl(this.getLevel, this.isExpandable);\r\n this.dataSourceTree = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);\r\n \r\n dataChange.subscribe(data => {\r\n this.dataSourceTree.data = data;\r\n });\r\n let startUp = setInterval(() => {\r\n if(this.treeControl.dataNodes[0] != undefined){\r\n this.treeControl.expand(this.treeControl.dataNodes[0]);\r\n clearInterval(startUp);\r\n }\r\n }, 50);\r\n this.dbRequest();\r\n }\r\n }\r\n\r\n isAllSelected() {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.dataSource.data.length;\r\n return numSelected === numRows;\r\n }\r\n \r\n masterToggle() {\r\n this.isAllSelected() ? this.selection.clear() : this.dataSource.data.forEach(row => this.selection.select(row));\r\n }\r\n \r\n checkboxLabel(row?: LibraryItemData): string {\r\n if (!row) {\r\n return `${this.isAllSelected() ? 'select' : 'deselect'} all`;\r\n }\r\n return `${this.selection.isSelected(row) ? 'deselect' : 'select'} row ${row.Id + 1}`;\r\n }\r\n\r\n getLevel = (node: TodoItemFlatNode) => node.level;\r\n\r\n getId = (node: TodoItemFlatNode) => node.id;\r\n\r\n isExpandable = (node: TodoItemFlatNode) => node.expandable;\r\n\r\n getChildren = (node: TodoItemNode): TodoItemNode[] => node.children;\r\n\r\n hasChild = (_: number, _nodeData: TodoItemFlatNode) => _nodeData.expandable;\r\n\r\n hasNoContent = (_: number, _nodeData: TodoItemFlatNode) => _nodeData.item === '';\r\n\r\n transformer = (node: TodoItemNode, level: number) => {\r\n const existingNode = this.nestedNodeMap.get(node);\r\n const flatNode = existingNode && existingNode.item === node.item\r\n ? existingNode\r\n : new TodoItemFlatNode();\r\n flatNode.item = node.item;\r\n flatNode.level = level;\r\n flatNode.id = node.id;\r\n flatNode.expandable = !!node.children;\r\n this.flatNodeMap.set(flatNode, node);\r\n this.nestedNodeMap.set(node, flatNode);\r\n return flatNode;\r\n }\r\n\r\n getParentNode(node: TodoItemFlatNode): TodoItemFlatNode | null {\r\n const currentLevel = this.getLevel(node);\r\n\r\n if (currentLevel < 1) {\r\n return null;\r\n }\r\n\r\n const startIndex = this.treeControl.dataNodes.indexOf(node) - 1;\r\n\r\n for (let i = startIndex; i >= 0; i--) {\r\n const currentNode = this.treeControl.dataNodes[i];\r\n\r\n if (this.getLevel(currentNode) < currentLevel) {\r\n return currentNode;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n dbRequest(){\r\n currentRegion = null;\r\n if(this.libraryType == \"normal\"){\r\n this.http.get(this.admin.getUrl() + \"userDataTypeValue\").subscribe((data)=>{\r\n this.LibraryItemData = [];\r\n [].forEach.call(data, (e) => {\r\n if(e.uerDataTypeId == this.data.data.Id){\r\n let date = e.createdAt.split(\"T\")[0].split(\"-\");\r\n date = date.reverse();\r\n date = date.join(\".\");\r\n\r\n let tableTitle = e.value.split(\"*L*\");\r\n let elements = tableTitle.filter(x => x.split(\"*I*\")[0] == this.currentLocale).map(x => x);\r\n if(elements.length == 0){\r\n tableTitle = tableTitle[0];\r\n }else{\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n \r\n this.LibraryItemData.push({\r\n Id: e.id,\r\n TableTitle: tableTitle,\r\n Title: e.value,\r\n Type: e.uerDataTypeId,\r\n Date: date,\r\n Disabled: e.isActual,\r\n Email: e.email,\r\n });\r\n }\r\n });\r\n this.dataSource = new MatTableDataSource(this.LibraryItemData);\r\n this.paginator.pageSize = this.pageSizer;\r\n this.paginator.pageIndex = this.pageIndexer;\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n\r\n this.IsLoading = false;\r\n });\r\n }else{\r\n if(this.data.data.Id != null){\r\n currentRegion = this.data.data;\r\n }else{\r\n this.titleChange(this.title);\r\n }\r\n this.IsLoading = false;\r\n }\r\n }\r\n\r\n pageSize(){\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(\":\")[0];\r\n let secure = false;\r\n if(location.protocol == \"https:\"){\r\n secure = true;\r\n }\r\n this.cookieService.set(\"page_size\", \"l_\" + this.dataSource.paginator.pageSize.toString() + \"_\" + this.dataSource.paginator.pageIndex.toString(), expires, \"/\", local, secure);\r\n }\r\n\r\n hasNodeChild(node){\r\n let hasChild = false;\r\n [].forEach.call(dataChange.value, (e) => {\r\n if(e.item == node.item){\r\n if(e.children && e.children.length > 0){\r\n hasChild = true;\r\n return false;\r\n }\r\n }else{\r\n if(e.children){\r\n [].forEach.call(e.children, (el) => {\r\n if(el.item == node.item){\r\n if(el.children && el.children.length > 0){\r\n hasChild = true;\r\n return false;\r\n }\r\n }else{\r\n if(el.children){\r\n [].forEach.call(el.children, (ep) => {\r\n if(ep.item == node.item){\r\n if(ep.children && ep.children.length > 0){\r\n hasChild = true;\r\n return false;\r\n }\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\r\n }\r\n });\r\n if(node.expandable && hasChild){\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n\r\n treeMenu(action, node, type){\r\n if(action == \"edit\"){\r\n let nd = node.item.split(\", Email: \");\r\n this.changeTreeValue = nd[0];\r\n this.changeTreeEmail = nd[1];\r\n if(this.changeTreeEmail == undefined){\r\n this.changeTreeEmail = \"\";\r\n }\r\n this.saveNode(node, \"\", \"\");\r\n }else{\r\n this.deleteNode(node);\r\n }\r\n }\r\n\r\n contextTrigger(event, id){\r\n event.preventDefault();\r\n eventFire(document.getElementById(id), 'click');\r\n\r\n function eventFire(el, etype){\r\n if(el.fireEvent){\r\n el.fireEvent('on' + etype);\r\n }else{\r\n var evObj = document.createEvent('Events');\r\n evObj.initEvent(etype, true, false);\r\n el.dispatchEvent(evObj);\r\n }\r\n }\r\n }\r\n\r\n addNewItem(node: TodoItemFlatNode) {\r\n let parentNode = this.flatNodeMap.get(node);\r\n this._database.insertItem(parentNode!, '');\r\n this.treeControl.expand(node);\r\n }\r\n\r\n saveNode(node: TodoItemFlatNode, itemValue: string, itemEmail: string) {\r\n if(itemValue != \"\"){\r\n this.changeTreeValue = \"\";\r\n }\r\n if(itemEmail != \"\"){\r\n this.changeTreeEmail = \"\";\r\n }\r\n let nestedNode = this.flatNodeMap.get(node);\r\n let newItem = null;\r\n if(node.level == 2){\r\n newItem = itemValue + \", Email: \" + itemEmail;\r\n }else{\r\n newItem = itemValue;\r\n }\r\n if(itemValue == \"\" && itemEmail == \"\"){\r\n newItem = \"\";\r\n }\r\n this._database.updateItem(nestedNode!, newItem, false);\r\n }\r\n\r\n deleteNode(node: TodoItemFlatNode) {\r\n const nodeC = this.getParentNode(node);\r\n const parentNode = this.flatNodeMap.get(nodeC);\r\n const childNode = this.flatNodeMap.get(node);\r\n this._database.removeItem(parentNode, childNode);\r\n }\r\n\r\n setLocale(event){\r\n this.admin.setLocale(event);\r\n let data = {\r\n langType: \"reload\",\r\n itemData: this.data.data\r\n };\r\n this.router.navigateByUrl('/admin/library', {state: data});\r\n }\r\n\r\n getIndex(id){\r\n return this.LibraryItemData.findIndex(x => x.Id === id);\r\n }\r\n\r\n changeRegister(){\r\n isChange = true;\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(\":\")[0];\r\n let secure = false;\r\n if(location.protocol == \"https:\"){\r\n secure = true;\r\n }\r\n this.cookieService.set(\"is_change\", \"true\", expires, \"/\", local, secure);\r\n }\r\n\r\n unChangeRegister(){\r\n isChange = false;\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(\":\")[0];\r\n let secure = false;\r\n if(location.protocol == \"https:\"){\r\n secure = true;\r\n }\r\n this.cookieService.delete(\"is_change\", \"/\", local, secure);\r\n }\r\n\r\n titleChange(event){\r\n if(this.title == null){\r\n this.title = event;\r\n }\r\n if(this.libraryType == \"court\"){\r\n this._database.updateItem(this._database.data[0]!, event, false);\r\n }\r\n }\r\n\r\n onChange(type, value){\r\n switch(type){\r\n case \"Type\":\r\n this.libraryType = value;\r\n this.dbRequest();\r\n break;\r\n }\r\n }\r\n\r\n openMenu(status: string){\r\n if(status == \"dbClick\"){\r\n if(this.userAllow){\r\n status = \"edit\";\r\n }else{\r\n status = \"review\";\r\n }\r\n }\r\n event.stopPropagation();\r\n let dialogRef = null;\r\n let index = -1;\r\n switch(status){\r\n case \"add\":\r\n let emptyProduct = {\r\n \"Id\": null,\r\n \"Title\": \"\",\r\n }\r\n this.admin.setLocale(this.admin.getDefLocale());\r\n dialogRef = this.dialog.open(LibraryParse, {\r\n width: \"600px\",\r\n minHeight: \"250px\",\r\n maxHeight: \"800px\",\r\n disableClose: true,\r\n data: {name: \"Новий запис\", status: status, data: emptyProduct, parent: this.data.data.Id, type: this.libraryType}\r\n });\r\n break;\r\n case \"edit\":\r\n index = this.getIndex(this.selection.selected[0].Id);\r\n dialogRef = this.dialog.open(LibraryParse, {\r\n width: \"600px\",\r\n minHeight: \"250px\",\r\n maxHeight: \"800px\",\r\n disableClose: true,\r\n data: {name: \"\", status: status, data: this.LibraryItemData[index], parent: this.data.data.Id, type: this.libraryType}\r\n });\r\n break;\r\n case \"review\":\r\n index = this.getIndex(this.selection.selected[0].Id);\r\n dialogRef = this.dialog.open(LibraryParse, {\r\n width: \"600px\",\r\n minHeight: \"250px\",\r\n maxHeight: \"800px\",\r\n disableClose: true,\r\n data: {name: \"\", status: status, data: this.LibraryItemData[index], parent: this.data.data.Id, type: this.libraryType}\r\n });\r\n break;\r\n case \"remove\":\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: {text: \"Ви дійсно хочете видалити запис?\"}\r\n });\r\n confirm.afterClosed().subscribe(result => {\r\n if(result){\r\n [].forEach.call(this.selection.selected, (e, index) => {\r\n this.http.delete(this.admin.getUrl() + \"userDataTypeValue/\" + e.Id, options).subscribe(()=>{\r\n if(index == this.selection.selected.length -1){\r\n this.refreshTable();\r\n }\r\n });\r\n });\r\n }\r\n });\r\n break;\r\n }\r\n if(dialogRef != null){\r\n dialogRef.afterClosed().subscribe(result => {\r\n if(result == \"reload\"){\r\n this.currentLocale = this.admin.getLocale();\r\n this.openMenu(\"edit\");\r\n }else{\r\n this.selection = new SelectionModel(true, []);\r\n if(result == \"lang\"){\r\n this.admin.refreshLocale();\r\n }\r\n this.dbRequest();\r\n }\r\n });\r\n }\r\n }\r\n\r\n refreshTable(){\r\n this.selection = new SelectionModel(true, []);\r\n this.dbRequest();\r\n }\r\n \r\n addMenu(body){\r\n this.IsSaving = true;\r\n\r\n let disabled = false;\r\n if(body.disabled.checked != undefined){\r\n disabled = body.disabled.checked;\r\n }\r\n\r\n if(this.libraryType == \"normal\"){\r\n let elements: any = this.langDataList.filter(x => x.langId == this.currentLocale).map(x => x);\r\n if(elements.length == 0){\r\n this.langDataList.push({langId: this.currentLocale, title: body.name});\r\n }else{\r\n elements[0].title = body.name;\r\n }\r\n let titleString = \"\";\r\n [].forEach.call(this.langDataList, (e, indexE) =>{\r\n if(indexE != 0){\r\n titleString += \"*L*\";\r\n }\r\n titleString += this.admin.getDefLocale() + \"*I*\" + e.title;\r\n });\r\n \r\n let json = {\r\n \"title\": titleString,\r\n \"userDataTypeValues\": [],\r\n \"type\": this.libraryType,\r\n \"isActual\": disabled,\r\n }\r\n this.http.post(this.admin.getUrl() + \"userDataType\", json, options).subscribe(()=>{\r\n this.IsSaving = false;\r\n this.onClose(true);\r\n });\r\n }else{\r\n let elements: any = this.langDataList.filter(x => x.langId == this.currentLocale).map(x => x);\r\n if(elements.length == 0){\r\n this.langDataList.push({langId: this.currentLocale, title: this._database.data[0].item});\r\n }else{\r\n elements[0].title = this._database.data[0].item;\r\n }\r\n let titleString = \"\";\r\n [].forEach.call(this.langDataList, (e, indexE) =>{\r\n if(indexE != 0){\r\n titleString += \"*L*\";\r\n }\r\n titleString += this.admin.getDefLocale() + \"*I*\" + e.title;\r\n });\r\n \r\n let json: any = {\r\n \"title\": titleString,\r\n \"isActual\": disabled,\r\n };\r\n this.http.post(this.admin.getUrl() + \"region\", json, options).subscribe((data)=>{\r\n this.http.get(this.admin.getUrl() + \"region\").subscribe((dataR)=>{\r\n let datas: any = dataR;\r\n let regionId: any = datas[datas.length - 1].id;\r\n this.writeCourt(this._database.data[0].children, null, 0, 0, 1, regionId, 0);\r\n });\r\n });\r\n }\r\n }\r\n\r\n saveMenu(body){\r\n this.IsSaving = true;\r\n\r\n if(this.libraryType == \"normal\"){\r\n let elements: any = this.langDataList.filter(x => x.langId == this.currentLocale).map(x => x);\r\n if(elements.length == 0){\r\n this.langDataList.push({langId: this.currentLocale, title: body.name});\r\n }else{\r\n elements[0].title = body.name;\r\n }\r\n let titleString = \"\";\r\n [].forEach.call(this.langDataList, (e, indexE) =>{\r\n if(indexE != 0){\r\n titleString += \"*L*\";\r\n }\r\n titleString += e.langId + \"*I*\" + e.title;\r\n });\r\n \r\n let json = {\r\n \"id\": body.id,\r\n \"title\": titleString,\r\n \"userDataTypeValues\": [],\r\n \"type\": this.data.data.Type,\r\n \"isActual\": body.disabled.checked,\r\n }\r\n this.http.put(this.admin.getUrl() + \"userDataType/\" + body.id, json, options).subscribe(()=>{\r\n this.IsSaving = false;\r\n this.onClose(true);\r\n });\r\n }else{\r\n let elements: any = this.langDataList.filter(x => x.langId == this.currentLocale).map(x => x);\r\n if(elements.length == 0){\r\n this.langDataList.push({langId: this.currentLocale, title: this._database.data[0].item});\r\n }else{\r\n elements[0].title = this._database.data[0].item;\r\n }\r\n let titleString = \"\";\r\n [].forEach.call(this.langDataList, (e, indexE) =>{\r\n if(indexE != 0){\r\n titleString += \"*L*\";\r\n }\r\n titleString += e.langId + \"*I*\" + e.title;\r\n });\r\n \r\n let regionId = this.data.data.Id;\r\n let json: any = {\r\n \"id\": regionId,\r\n \"title\": titleString,\r\n \"isActual\": body.disabled.checked,\r\n };\r\n this.http.put(this.admin.getUrl() + \"region/\" + regionId, json, options).subscribe((data)=>{\r\n this.writeCourt(this._database.data[0].children, null, 0, 0, 1, regionId, 0);\r\n });\r\n }\r\n }\r\n\r\n writeCourt(array, parentArray, parentIndex, index, level, id, parentId){\r\n if(array == undefined){\r\n this.deleteCourt();\r\n return false;\r\n }\r\n if(array[index] == undefined){\r\n if(parentArray == null){\r\n this.deleteCourt();\r\n }else{\r\n this.writeCourt(parentArray, null, 0, parentIndex, 1, parentId, 0);\r\n }\r\n return false;\r\n }\r\n let e = array[index];\r\n if(e.item == \"\"){\r\n e.item = \"empty\";\r\n if(e.children == undefined){\r\n e.children = [];\r\n }\r\n }\r\n let addChild = false;\r\n if(level == 1 && e.children == undefined){\r\n addChild = true;\r\n }else if(level == 1 && e.children.length == 0){\r\n addChild = true;\r\n }\r\n if(addChild){\r\n let todo = new TodoItemNode();\r\n todo.item = \"empty\";\r\n todo.children = [];\r\n e.children = [];\r\n e.children.push(todo);\r\n }\r\n\r\n let elements: any = this.langDataList.filter(x => x.langId == this.currentLocale).map(x => x);\r\n if(elements.length == 0){\r\n this.langDataList.push({langId: this.currentLocale, title: e.item});\r\n }else{\r\n elements[0].title = e.item;\r\n }\r\n let titleString = \"\";\r\n [].forEach.call(this.langDataList, (e, indexE) =>{\r\n if(indexE != 0){\r\n titleString += \"*L*\";\r\n }\r\n if(e.id == undefined){\r\n titleString += e.langId + \"*I*\" + e.title;\r\n }else{\r\n titleString += e.langId + \"*I*\" + e.title;\r\n }\r\n });\r\n \r\n let base = \"city\";\r\n let json: any = {\r\n \"title\": titleString,\r\n \"regionId\": id,\r\n };\r\n if(level == 2){\r\n base = \"court\";\r\n let name = e.item.split(\", Email: \")[0];\r\n let email = e.item.split(\", Email: \")[1];\r\n if(email == undefined){\r\n email = null;\r\n }else{\r\n if(email.length == 0){\r\n email = null;\r\n }\r\n }\r\n\r\n let elements: any = this.langDataList.filter(x => x.langId == this.currentLocale).map(x => x);\r\n if(elements.length == 0){\r\n this.langDataList.push({langId: this.currentLocale, title: name});\r\n }else{\r\n elements[0].title = name;\r\n }\r\n let titleString = \"\";\r\n [].forEach.call(this.langDataList, (e, indexE) =>{\r\n if(indexE != 0){\r\n titleString += \"*L*\";\r\n }\r\n if(e.id == undefined){\r\n titleString += e.langId + \"*I*\" + e.title;\r\n }else{\r\n titleString += e.langId + \"*I*\" + e.title;\r\n }\r\n });\r\n \r\n json = {\r\n \"title\": titleString,\r\n \"cityId\": id,\r\n \"email\": email,\r\n };\r\n }\r\n if(e.id == undefined){\r\n this.http.post(this.admin.getUrl() + base, json, options).subscribe((data)=>{\r\n if(level == 1){\r\n this.http.get(this.admin.getUrl() + base).subscribe((dataC)=>{\r\n let datas: any = dataC;\r\n let newId: any = datas[datas.length - 1].id;\r\n this.writeCourt(e.children, array, index +1, 0, 2, newId, id);\r\n });\r\n }else{\r\n this.writeCourt(array, parentArray, parentIndex, index +1, 2, id, parentId);\r\n }\r\n });\r\n }else{\r\n json.id = e.id;\r\n \r\n this.http.put(this.admin.getUrl() + base + \"/\" + e.id, json, options).subscribe((data)=>{\r\n if(level == 1){\r\n this.writeCourt(e.children, array, index +1, 0, 2, e.id, id);\r\n }else{\r\n this.writeCourt(array, parentArray, parentIndex, index +1, 2, id, parentId);\r\n }\r\n });\r\n }\r\n }\r\n\r\n deleteCourt(){\r\n if(DELETE_LIST.length > 0){\r\n let deleteList = [];\r\n let deletLevel = [];\r\n [].forEach.call(DELETE_LIST, (e) => {\r\n if(e.children != undefined){\r\n if(e.children.length > 0){\r\n [].forEach.call(e.children, (c) => {\r\n deleteList.push(c);\r\n deletLevel.push(\"court\");\r\n });\r\n deleteList.push(e);\r\n deletLevel.push(\"city\");\r\n }else{\r\n deleteList.push(e);\r\n deletLevel.push(\"court\");\r\n }\r\n }\r\n });\r\n [].forEach.call(deleteList, (e, index) => {\r\n if(e.id == undefined){\r\n return false;\r\n }\r\n let base = deletLevel[index];\r\n this.http.delete(this.admin.getUrl() + base + \"/\" + e.id, options).subscribe((data)=>{\r\n if(index == DELETE_LIST.length -1){\r\n this.onClose(true);\r\n }\r\n });\r\n });\r\n }else{\r\n this.onClose(true);\r\n }\r\n }\r\n\r\n onClose(save): void {\r\n if(isChange && !save){\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: {text: \"Увага! Документ буде закритий без збереження змін. Продовжити?\"}\r\n });\r\n confirm.afterClosed().subscribe(result => {\r\n if(result){\r\n this.unChangeRegister();\r\n this.router.navigate(['/admin/library']);\r\n }\r\n });\r\n }else{\r\n this.unChangeRegister();\r\n this.router.navigate(['/admin/library']);\r\n }\r\n }\r\n\r\n}\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Library Parse ++\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n@Component({\r\n selector: 'library-parse',\r\n templateUrl: 'library-parse.html',\r\n styleUrls: ['./admin.css'],\r\n providers: [AdminPage]\r\n})\r\n\r\nexport class LibraryParse {\r\n\r\n IsSaving: boolean = false;\r\n IsLoading: boolean = false;\r\n\r\n barValue: number = 50;\r\n\r\n currentLocale: string = \"\";\r\n langCurrentTitle: string = \"\";\r\n\r\n langDataList: any[] = [];\r\n\r\n barColor: ThemePalette = 'primary';\r\n barMode: ProgressSpinnerMode = 'indeterminate';\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n private http: HttpClient,\r\n private admin: AdminPage,\r\n public dialog: MatDialog,\r\n private cookieService: CookieService,\r\n ){\r\n this.IsLoading = true;\r\n\r\n this.currentLocale = this.admin.getLocale();\r\n\r\n let titleList = data.data.Title.split(\"*L*\");\r\n [].forEach.call(titleList, (e, indexE) =>{\r\n if(e.split(\"*I*\").length == 1){\r\n e = this.admin.getDefLocale() + \"*I*\" + e;\r\n }\r\n this.langDataList.push(\r\n {\r\n langId: e.split(\"*I*\")[0], title: e.split(\"*I*\")[1]\r\n }\r\n );\r\n });\r\n let elements = this.langDataList.filter(x => x.langId == this.currentLocale).map(x => x);\r\n if(elements.length == 0){\r\n elements = this.langDataList.filter(x => x.langId == this.admin.getDefLocale()).map(x => x);\r\n }\r\n this.langCurrentTitle = elements[0].title;\r\n\r\n this.IsLoading = false;\r\n }\r\n\r\n changeRegister(){\r\n isChange = true;\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(\":\")[0];\r\n let secure = false;\r\n if(location.protocol == \"https:\"){\r\n secure = true;\r\n }\r\n this.cookieService.set(\"is_change\", \"true\", expires, \"/\", local, secure);\r\n }\r\n\r\n unChangeRegister(){\r\n isChange = false;\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(\":\")[0];\r\n let secure = false;\r\n if(location.protocol == \"https:\"){\r\n secure = true;\r\n }\r\n this.cookieService.delete(\"is_change\", \"/\", local, secure);\r\n }\r\n\r\n addMenu(body){\r\n this.IsSaving = true;\r\n \r\n this.langDataList = [];\r\n let elements: any = this.langDataList.filter(x => x.langId == this.currentLocale).map(x => x);\r\n if(elements.length == 0){\r\n this.langDataList.push({langId: this.currentLocale, title: body.name});\r\n }else{\r\n elements[0].title = body.name;\r\n }\r\n let titleString = \"\";\r\n [].forEach.call(this.langDataList, (e, indexE) =>{\r\n if(indexE != 0){\r\n titleString += \"*L*\";\r\n }\r\n titleString += this.admin.getDefLocale() + \"*I*\" + e.title;\r\n });\r\n \r\n let json = {\r\n \"value\": titleString,\r\n \"email\": body.email,\r\n \"uerDataTypeId\": this.data.parent,\r\n }\r\n this.http.post(this.admin.getUrl() + \"userDataTypeValue\", json, options).subscribe(()=>{\r\n this.IsSaving = false;\r\n this.onClose(true, null);\r\n });\r\n }\r\n\r\n saveMenu(body){\r\n this.IsSaving = true;\r\n\r\n let elements: any = this.langDataList.filter(x => x.langId == this.currentLocale).map(x => x);\r\n if(elements.length == 0){\r\n this.langDataList.push({langId: this.currentLocale, title: body.name});\r\n }else{\r\n elements[0].title = body.name;\r\n }\r\n let titleString = \"\";\r\n [].forEach.call(this.langDataList, (e, indexE) =>{\r\n if(indexE != 0){\r\n titleString += \"*L*\";\r\n }\r\n titleString += e.langId + \"*I*\" + e.title;\r\n });\r\n\r\n let json = {\r\n \"id\": body.id,\r\n \"value\": titleString,\r\n \"email\": body.email,\r\n \"uerDataTypeId\": this.data.parent,\r\n }\r\n this.http.put(this.admin.getUrl() + \"userDataTypeValue/\" + body.id, json, options).subscribe(()=>{\r\n this.IsSaving = false;\r\n this.onClose(true, null);\r\n });\r\n } \r\n\r\n onClose(save, type): void {\r\n if(isChange && !save){\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: {text: \"Увага! Документ буде закритий без збереження змін. Продовжити?\"}\r\n });\r\n confirm.afterClosed().subscribe(result => {\r\n if(result){\r\n this.unChangeRegister();\r\n this.dialogRef.close(type);\r\n }\r\n });\r\n }else{\r\n this.unChangeRegister();\r\n this.dialogRef.close(type);\r\n }\r\n }\r\n\r\n}","
\r\n

Управління Довідниками

\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
У вас недостатньо прав для редагування чи видалення вибраних довідників!
\r\n
\r\n\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Внутрішня назва {{row.TableTitle}} Тип довідника {{ row.Type == \"court\" ? \"Судовий\" : \"Звичайний\" }} Дата створення {{row.Date}} Автор {{row.Author}}
\r\n\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n

Будь-ласка зачекайте!
Триває завантаження

\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n

Будь-ласка зачекайте!
Триває видалення

\r\n
\r\n
","
\r\n

{{ data.name }}

\r\n

{{ this.langCurrentTitle }}

\r\n \r\n
\r\n\r\n
\r\n
\r\n
Найменування (title): *
\r\n
Назва Регіону: *
\r\n \r\n \r\n \r\n Обов'язково до заповнення!\r\n \r\n \r\n
\r\n
\r\n
Тип Довідника:
\r\n \r\n Звичайний\r\n Судовий\r\n \r\n
\r\n
\r\n
Відключити (Disable):
\r\n \r\n
Увага! Можливість розблокувати відображення форми доступно тільки для користувача із правами \"Адміністратор\".
\r\n
\r\n
\r\n
Панель елементів заблокована! Збережіть довідник, щоб отримати доступ до панелі елементів.
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
У вас недостатньо прав для редагування чи видалення вибраних записів!
\r\n
\r\n\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Внутрішня назва {{row.TableTitle}} Дата створення {{row.Date}}
\r\n \r\n \r\n
\r\n
\r\n Дерево довідника (explore Регіон - location_on Місто - account_balance Суд)\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n explore\r\n location_on\r\n account_balance\r\n {{node.item}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n {{ list.Text }}\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n

Будь-ласка зачекайте!
Триває збереження

\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n

Будь-ласка зачекайте!
Триває завантаження

\r\n
\r\n
\r\n","
\r\n

{{ data.name }}

\r\n

{{ this.langCurrentTitle }}

\r\n \r\n
\r\n\r\n
\r\n
\r\n
Текст запису:
\r\n \r\n \r\n \r\n
\r\n
\r\n
Email:
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n

Будь-ласка зачекайте!
Триває збереження

\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n

Будь-ласка зачекайте!
Триває завантаження

\r\n
\r\n
\r\n","import { SelectionModel } from '@angular/cdk/collections';\r\nimport { Component, Inject, ViewChild } from '@angular/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { Router } from '@angular/router';\r\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport {\r\n MAT_MOMENT_DATE_FORMATS,\r\n MomentDateAdapter,\r\n MAT_MOMENT_DATE_ADAPTER_OPTIONS,\r\n} from '@angular/material-moment-adapter';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner';\r\n\r\nimport { ConfirmMenu } from '../confirm-menu';\r\nimport { AdminPage } from './admin';\r\n\r\nexport interface DialogData {\r\n name: string;\r\n status: string;\r\n data: ItemData;\r\n}\r\n\r\nexport interface ItemData {\r\n Id: number;\r\n TableTitle: string;\r\n Title: string;\r\n Link: string;\r\n Author: string;\r\n CreateDate: string;\r\n Image: string;\r\n Disabled: boolean;\r\n Lang: string;\r\n}\r\n\r\nvar isChange = false;\r\nvar options = {};\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Links ++\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n@Component({\r\n selector: 'links',\r\n templateUrl: 'links.html',\r\n styleUrls: ['admin.css'],\r\n providers: [AdminPage],\r\n})\r\nexport class LinksPage {\r\n userAllow: boolean = true;\r\n IsLoading: boolean = false;\r\n\r\n barValue: number = 50;\r\n pageSizer: number = 5;\r\n pageIndexer: number = 0;\r\n\r\n currentLocale: string = '';\r\n\r\n dataBase: ItemData[] = [];\r\n displayedColumns: string[] = ['select', 'Title', 'CreateDate', 'Author'];\r\n\r\n barColor: ThemePalette = 'primary';\r\n barMode: ProgressSpinnerMode = 'indeterminate';\r\n selection = new SelectionModel(true, []);\r\n dataSource: MatTableDataSource;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(\r\n private router: Router,\r\n private cookieService: CookieService,\r\n private admin: AdminPage,\r\n private http: HttpClient,\r\n public dialog: MatDialog\r\n ) {\r\n this.IsLoading = true;\r\n\r\n if (this.cookieService.get('access_token') == '') {\r\n this.router.navigate(['/admin/login']);\r\n }\r\n\r\n if (this.cookieService.get('page_size').split('_')[0] == 'li') {\r\n this.pageSizer = parseInt(this.cookieService.get('page_size').split('_')[1]);\r\n this.pageIndexer = parseInt(this.cookieService.get('page_size').split('_')[2]);\r\n } else {\r\n this.cookieService.delete('page_size', '/');\r\n }\r\n\r\n if (this.cookieService.get('page_filter') != '') {\r\n this.cookieService.delete('page_filter', '/');\r\n }\r\n\r\n options = {\r\n headers: new HttpHeaders({ Authorization: 'Bearer ' + cookieService.get('access_token') }),\r\n };\r\n\r\n this.currentLocale = this.admin.getLocale();\r\n\r\n this.dataSource = new MatTableDataSource(this.dataBase);\r\n\r\n this.dbRequest();\r\n }\r\n\r\n dbRequest() {\r\n this.http.get(this.admin.getUrl() + 'Account/GetUsers', options).subscribe((dataU) => {\r\n this.http.get(this.admin.getUrl() + 'PageElement').subscribe((data) => {\r\n this.dataBase = [];\r\n [].forEach.call(data, (e) => {\r\n if (e.type == 'link') {\r\n let createdAt = e.createdAt.split('T')[0].split('-');\r\n createdAt = createdAt.reverse();\r\n createdAt = createdAt.join('.');\r\n\r\n let createdBy: any = 'Система';\r\n if (e.createdById != null) {\r\n [].forEach.call(dataU, (c) => {\r\n if (c.id == e.createdById) {\r\n createdBy = c.email;\r\n // createdBy = c.email.split(\"@\")[0];\r\n }\r\n });\r\n }\r\n\r\n let tableTitle = e.title.split('*L*');\r\n let elements = tableTitle\r\n .filter((x) => x.split('*I*')[0] == this.admin.getDefLocale())\r\n .map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split('*I*')[1];\r\n }\r\n\r\n this.dataBase.push({\r\n Id: e.id,\r\n TableTitle: tableTitle,\r\n Title: e.title,\r\n Author: createdBy,\r\n CreateDate: createdAt,\r\n Image: e.image,\r\n Link: e.link,\r\n Disabled: e.isActual,\r\n Lang: e.lang,\r\n });\r\n }\r\n });\r\n this.dataSource = new MatTableDataSource(this.dataBase);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n\r\n this.IsLoading = false;\r\n });\r\n });\r\n }\r\n\r\n pageSize() {\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(':')[0];\r\n let secure = false;\r\n if (location.protocol == 'https:') {\r\n secure = true;\r\n }\r\n this.pageSizer = this.dataSource.paginator.pageSize;\r\n this.pageIndexer = this.dataSource.paginator.pageIndex;\r\n this.cookieService.set(\r\n 'page_size',\r\n 'li_' +\r\n this.dataSource.paginator.pageSize.toString() +\r\n '_' +\r\n this.dataSource.paginator.pageIndex.toString(),\r\n expires,\r\n '/',\r\n local,\r\n secure\r\n );\r\n }\r\n\r\n applyFilter(filterValue: string) {\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n isAllSelected() {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.dataSource.data.length;\r\n return numSelected === numRows;\r\n }\r\n\r\n masterToggle() {\r\n this.isAllSelected()\r\n ? this.selection.clear()\r\n : this.dataSource.data.forEach((row) => this.selection.select(row));\r\n }\r\n\r\n checkboxLabel(row?: ItemData): string {\r\n let userId = this.cookieService.get('userName').split('T')[0];\r\n let userRole = parseInt(this.cookieService.get('cookieAllowId').split('T')[1]);\r\n this.userAllow = true;\r\n if (userRole != 1) {\r\n [].forEach.call(this.selection.selected, (e) => {\r\n if (e.Author != userId) {\r\n this.userAllow = false;\r\n }\r\n });\r\n }\r\n if (!row) {\r\n return `${this.isAllSelected() ? 'select' : 'deselect'} all`;\r\n }\r\n return `${this.selection.isSelected(row) ? 'deselect' : 'select'} row ${row.Id + 1}`;\r\n }\r\n\r\n getIndex(id) {\r\n return this.dataBase.findIndex((x) => x.Id === id);\r\n }\r\n\r\n openMenu(status: string) {\r\n if (status == 'dbClick') {\r\n if (\r\n this.cookieService.get('userName') == this.selection.selected[0].Author ||\r\n this.cookieService.get('cookieAllowId').split('T')[1] == '1'\r\n ) {\r\n status = 'edit';\r\n this.userAllow = true;\r\n } else {\r\n status = 'review';\r\n this.userAllow = false;\r\n }\r\n }\r\n event.stopPropagation();\r\n let dialogRef = null;\r\n let index = -1;\r\n switch (status) {\r\n case 'add':\r\n let emptyProduct = {\r\n Id: null,\r\n Title: '',\r\n Image: null,\r\n };\r\n this.admin.setLocale(this.admin.getDefLocale());\r\n dialogRef = this.dialog.open(LinksItem, {\r\n width: '1000px',\r\n minHeight: '450px',\r\n maxHeight: '800px',\r\n disableClose: true,\r\n data: { name: 'Нове посилання', status: status, data: emptyProduct },\r\n });\r\n break;\r\n case 'edit':\r\n index = this.getIndex(this.selection.selected[0].Id);\r\n dialogRef = this.dialog.open(LinksItem, {\r\n width: '1000px',\r\n minHeight: '450px',\r\n maxHeight: '800px',\r\n disableClose: true,\r\n data: { name: '', status: status, data: this.dataBase[index] },\r\n });\r\n break;\r\n case 'review':\r\n index = this.getIndex(this.selection.selected[0].Id);\r\n dialogRef = this.dialog.open(LinksItem, {\r\n width: '1000px',\r\n minHeight: '450px',\r\n maxHeight: '800px',\r\n disableClose: true,\r\n data: { name: '', status: status, data: this.dataBase[index] },\r\n });\r\n break;\r\n case 'remove':\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: '600px',\r\n disableClose: true,\r\n data: { text: 'Ви дійсно хочете видалити посилання?' },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n [].forEach.call(this.selection.selected, (e, index) => {\r\n this.http\r\n .delete(this.admin.getUrl() + 'PageElement/' + e.Id, options)\r\n .subscribe((data) => {\r\n if (index == this.selection.selected.length - 1) {\r\n this.refreshTable();\r\n }\r\n });\r\n });\r\n }\r\n });\r\n break;\r\n }\r\n if (dialogRef != null) {\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result == 'reload') {\r\n this.currentLocale = this.admin.getLocale();\r\n if (this.userAllow) {\r\n this.openMenu('edit');\r\n } else {\r\n this.openMenu('review');\r\n }\r\n } else {\r\n this.selection = new SelectionModel(true, []);\r\n if (result == 'lang') {\r\n this.admin.refreshLocale();\r\n }\r\n this.dbRequest();\r\n }\r\n });\r\n }\r\n }\r\n\r\n refreshTable() {\r\n this.selection = new SelectionModel(true, []);\r\n this.dbRequest();\r\n }\r\n}\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Request Item ++\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n@Component({\r\n selector: 'links-item',\r\n templateUrl: 'links-item.html',\r\n styleUrls: ['./admin.css'],\r\n providers: [\r\n AdminPage,\r\n { provide: MAT_DATE_LOCALE, useValue: 'uk-UA' },\r\n {\r\n provide: DateAdapter,\r\n useClass: MomentDateAdapter,\r\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\r\n },\r\n { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },\r\n ],\r\n})\r\nexport class LinksItem {\r\n IsSaving: boolean = false;\r\n IsLoading: boolean = false;\r\n isAdmin: boolean = false;\r\n\r\n barValue: number = 50;\r\n\r\n currentLocale: string = '';\r\n langCurrentTitle: string = '';\r\n langCurrentText: string = '';\r\n\r\n localeList: any[] = [];\r\n langDataList: any[] = [];\r\n\r\n barColor: ThemePalette = 'primary';\r\n barMode: ProgressSpinnerMode = 'indeterminate';\r\n titleFormControl = new FormControl();\r\n dateItem: any = null;\r\n fileData: File = null;\r\n previewUrl: any = null;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n private http: HttpClient,\r\n private admin: AdminPage,\r\n public dialog: MatDialog,\r\n private cookieService: CookieService\r\n ) {\r\n this.IsLoading = true;\r\n\r\n this.currentLocale = this.admin.getLocale();\r\n\r\n let interval = setInterval(() => {\r\n if (this.admin.getDBStatus()) {\r\n clearInterval(interval);\r\n this.localeList = this.admin.getList('Lang');\r\n\r\n if (\r\n this.cookieService.get('cookieAllowId').split('T')[1] == '1' ||\r\n this.admin.managerDisable\r\n ) {\r\n this.isAdmin = true;\r\n }\r\n\r\n if (this.data.status == 'add' && !this.isAdmin) {\r\n this.data.data.Disabled = true;\r\n }\r\n }\r\n }, 50);\r\n\r\n let titleList = data.data.Title.split('*L*');\r\n [].forEach.call(titleList, (e, indexE) => {\r\n if (e.split('*I*').length == 1) {\r\n e = this.admin.getDefLocale() + '*I*' + e;\r\n }\r\n this.langDataList.push({\r\n langId: e.split('*I*')[0],\r\n title: e.split('*I*')[1],\r\n });\r\n });\r\n let elements = this.langDataList.filter((x) => x.langId == this.currentLocale).map((x) => x);\r\n if (elements.length == 0) {\r\n elements = this.langDataList\r\n .filter((x) => x.langId == this.admin.getDefLocale())\r\n .map((x) => x);\r\n }\r\n this.langCurrentTitle = elements[0].title;\r\n\r\n this.titleFormControl = new FormControl(this.langCurrentTitle, [Validators.required]);\r\n\r\n this.IsLoading = false;\r\n }\r\n\r\n setLocale(event) {\r\n this.admin.setLocale(event);\r\n this.onClose(false, 'reload');\r\n }\r\n\r\n changeRegister() {\r\n isChange = true;\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(':')[0];\r\n let secure = false;\r\n if (location.protocol == 'https:') {\r\n secure = true;\r\n }\r\n this.cookieService.set('is_change', 'true', expires, '/', local, secure);\r\n }\r\n\r\n unChangeRegister() {\r\n isChange = false;\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(':')[0];\r\n let secure = false;\r\n if (location.protocol == 'https:') {\r\n secure = true;\r\n }\r\n this.cookieService.delete('is_change', '/', local, secure);\r\n }\r\n\r\n fileProgress(fileInput: any, type) {\r\n this.fileData = fileInput.target.files[0];\r\n this.preview(type);\r\n }\r\n\r\n preview(type) {\r\n var mimeType = this.fileData.type;\r\n if (mimeType.match(/image\\/*/) == null) {\r\n return;\r\n }\r\n\r\n var reader = new FileReader();\r\n reader.readAsDataURL(this.fileData);\r\n reader.onload = (_event) => {\r\n this.previewUrl = reader.result;\r\n };\r\n }\r\n\r\n changeDate(date) {\r\n let array = date.split('.');\r\n return array[1] + '.' + array[0] + '.' + array[2];\r\n }\r\n\r\n addMenu(body) {\r\n this.IsSaving = true;\r\n\r\n if (this.previewUrl == null) {\r\n this.previewUrl = body.image;\r\n }\r\n\r\n let disabled = false;\r\n if (body.disabled.checked != undefined) {\r\n disabled = body.disabled.checked;\r\n }\r\n\r\n let elements: any = this.langDataList\r\n .filter((x) => x.langId == this.currentLocale)\r\n .map((x) => x);\r\n if (elements.length == 0) {\r\n this.langDataList.push({ langId: this.currentLocale, title: body.name, text: body.text });\r\n } else {\r\n elements[0].title = body.name;\r\n }\r\n let titleString = '';\r\n [].forEach.call(this.langDataList, (e, indexE) => {\r\n if (indexE != 0) {\r\n titleString += '*L*';\r\n }\r\n titleString += this.admin.getDefLocale() + '*I*' + e.title;\r\n });\r\n\r\n let json = {\r\n Title: titleString,\r\n Link: body.link,\r\n Image: this.previewUrl,\r\n Type: 'link',\r\n isActual: disabled,\r\n Lang: body.lang,\r\n };\r\n this.http.post(this.admin.getUrl() + 'PageElement', json, options).subscribe((data) => {\r\n this.IsSaving = false;\r\n this.onClose(true, null);\r\n });\r\n }\r\n\r\n saveMenu(body) {\r\n this.IsSaving = true;\r\n\r\n if (this.previewUrl == null) {\r\n this.previewUrl = body.image;\r\n }\r\n\r\n let elements: any = this.langDataList\r\n .filter((x) => x.langId == this.currentLocale)\r\n .map((x) => x);\r\n if (elements.length == 0) {\r\n this.langDataList.push({ langId: this.currentLocale, title: body.name, text: body.text });\r\n } else {\r\n elements[0].title = body.name;\r\n }\r\n let titleString = '';\r\n [].forEach.call(this.langDataList, (e, indexE) => {\r\n if (indexE != 0) {\r\n titleString += '*L*';\r\n }\r\n titleString += e.langId + '*I*' + e.title;\r\n });\r\n\r\n let json = {\r\n Id: body.id,\r\n Title: titleString,\r\n Link: body.link,\r\n Image: this.previewUrl,\r\n Type: 'link',\r\n isActual: body.disabled.checked,\r\n Lang: body.lang,\r\n };\r\n\r\n this.http\r\n .put(this.admin.getUrl() + 'PageElement/' + body.id, json, options)\r\n .subscribe((data) => {\r\n this.IsSaving = false;\r\n this.onClose(true, null);\r\n });\r\n }\r\n\r\n onClose(save, type): void {\r\n if (isChange && !save) {\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: '600px',\r\n disableClose: true,\r\n data: { text: 'Увага! Документ буде закритий без збереження змін. Продовжити?' },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n this.unChangeRegister();\r\n this.dialogRef.close(type);\r\n }\r\n });\r\n } else {\r\n this.unChangeRegister();\r\n this.dialogRef.close(type);\r\n }\r\n }\r\n}\r\n","
\r\n

Управління Посиланнями

\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
У вас недостатньо прав для редагування чи видалення вибраних посилань!
\r\n
\r\n\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Внутрішня назва {{row.TableTitle}} Дата створення {{dataBase[getIndex(row.Id)].CreateDate.split(\"T\")[0]}} Автор {{row.Author}}
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n

Будь-ласка зачекайте!
Триває завантаження

\r\n
\r\n
\r\n","
\r\n

{{ data.name }}

\r\n

{{ this.langCurrentTitle }}

\r\n \r\n
\r\n\r\n\r\n
\r\n
Найменування: *
\r\n \r\n \r\n \r\n Обов'язково до заповнення!\r\n \r\n \r\n
\r\n
\r\n
Посилання на оригінал:
\r\n \r\n \r\n \r\n
\r\n
\r\n
Зображення:
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
Позиція:
\r\n \r\n \r\n \r\n
\r\n
\r\n
Відключити (Disable):
\r\n \r\n
\r\n Увага! Можливість розблокувати відображення форми доступно тільки для користувача із правами\r\n \"Адміністратор\".\r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n save Зберегти\r\n \r\n \r\n save Зберегти\r\n \r\n \r\n \r\n {{ list.Text }}\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n

Будь-ласка зачекайте!
Триває збереження

\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n

Будь-ласка зачекайте!
Триває завантаження

\r\n
\r\n
\r\n","import {Component} from '@angular/core';\r\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\r\nimport {CookieService} from 'ngx-cookie-service';\r\nimport {Router} from '@angular/router';\r\nimport {AdminPage} from \"./admin\";\r\n\r\n@Component({\r\n selector: 'login',\r\n templateUrl: 'login.html',\r\n styleUrls: ['admin.css'],\r\n})\r\nexport class LoginPage {\r\n \r\n constructor(\r\n private http: HttpClient,\r\n private cookieService: CookieService,\r\n private router: Router,\r\n private admin: AdminPage\r\n ){\r\n\r\n }\r\n \r\n error: boolean = false;\r\n errorMessage: string = \"\";\r\n \r\n loginCheck(name: string, pass: string){\r\n let json = {\r\n \"email\": name,\r\n \"password\": pass,\r\n };\r\n let headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\"\r\n });\r\n let options = { \"headers\": headers }; \r\n this.http.post(this.admin.getUrl() + \"Account/Login\", json, options).subscribe((data)=>{\r\n if(data != \"\"){\r\n this.error = false;\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(\":\")[0];\r\n let secure = false;\r\n if(location.protocol == \"https:\"){\r\n secure = true;\r\n }\r\n this.cookieService.set(\"access_token\", data.toString(), expires, \"/\", local, secure);\r\n this.cookieService.set(\"userName\", name, expires, \"/\", local, secure);\r\n\r\n let optGet = {\"headers\": new HttpHeaders({\"Authorization\": \"Bearer \" + data.toString()})};\r\n \r\n this.http.get(this.admin.getUrl() + \"Account/GetUsers\", optGet).subscribe((data)=>{\r\n [].forEach.call(data, (e) => {\r\n if(e.email == this.cookieService.get(\"userName\")){\r\n let roles = 1;\r\n if(e.roles[0] != \"Admin\"){\r\n roles = 2;\r\n }\r\n this.cookieService.set(\"cookieAllowId\", e.id + \"T\" + roles, expires, \"/\", local, secure);\r\n this.admin.setUserData(e.id + \"T\" + roles);\r\n }\r\n });\r\n this.admin.isLoginChange();\r\n this.router.navigate(['/admin/request-type']);\r\n });\r\n }\r\n },\r\n err => {\r\n this.error = true;\r\n if(err.error == \"Lockedout\"){\r\n this.errorMessage = \"Користувач заблокований.\";\r\n }else{\r\n this.errorMessage = \"Невірний Email або пароль.\";\r\n }\r\n });\r\n }\r\n \r\n}","
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Email\r\n \r\n email\r\n \r\n
\r\n
\r\n \r\n Пароль\r\n \r\n https\r\n {{ errorMessage }}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import {SelectionModel} from '@angular/cdk/collections';\r\nimport {Component, Inject, ViewChild, ElementRef} from '@angular/core';\r\nimport {FormControl, Validators} from '@angular/forms';\r\nimport {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\r\nimport {MatPaginator} from '@angular/material/paginator';\r\nimport {MatSort} from '@angular/material/sort';\r\nimport {MatTableDataSource} from '@angular/material/table';\r\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\r\nimport {CookieService} from 'ngx-cookie-service';\r\nimport {Router} from '@angular/router';\r\nimport {DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE} from '@angular/material/core';\r\nimport {MAT_MOMENT_DATE_FORMATS, MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS} from '@angular/material-moment-adapter';\r\nimport * as Quill from 'quill';\r\nimport {ThemePalette} from '@angular/material/core';\r\nimport {ProgressSpinnerMode} from '@angular/material/progress-spinner';\r\n\r\nimport {ConfirmMenu} from '../confirm-menu'\r\nimport {AdminPage} from \"./admin\";\r\n\r\nexport interface DialogData {\r\n name: string;\r\n status: string;\r\n data: ItemData;\r\n}\r\n\r\nexport interface ItemData {\r\n Id: number;\r\n TableTitle: string;\r\n Title: string;\r\n Text: string;\r\n Link: string;\r\n Date: string;\r\n Author: string;\r\n CreateDate: string;\r\n Image: string;\r\n Disabled: boolean;\r\n}\r\n\r\nvar isChange = false;\r\nvar options = {};\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// News ++\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n \r\n@Component({\r\n selector: 'news',\r\n templateUrl: 'news.html',\r\n styleUrls: ['admin.css'],\r\n providers: [AdminPage]\r\n})\r\n\r\nexport class NewsPage {\r\n\r\n userAllow = true;\r\n IsLoading: boolean = false;\r\n\r\n pageSizer: number = 5;\r\n pageIndexer: number = 0;\r\n barValue: number = 50;\r\n\r\n currentLocale: string = \"\";\r\n \r\n dataBase: ItemData[] = [];\r\n displayedColumns: string[] = [\"select\", \"Title\", \"Date\", \"CreateDate\", \"Author\"];\r\n \r\n selection = new SelectionModel(true, []);\r\n barColor: ThemePalette = 'primary';\r\n barMode: ProgressSpinnerMode = 'indeterminate';\r\n dataSource: MatTableDataSource;\r\n\r\n @ViewChild(MatPaginator, {static: true}) paginator: MatPaginator;\r\n @ViewChild(MatSort, {static: true}) sort: MatSort;\r\n\r\n constructor(\r\n private router: Router,\r\n private cookieService: CookieService,\r\n private admin: AdminPage,\r\n private http: HttpClient,\r\n public dialog: MatDialog,\r\n ){\r\n this.IsLoading = true;\r\n \r\n if(this.cookieService.get(\"access_token\") == \"\"){\r\n this.router.navigate(['/admin/login']);\r\n }\r\n\r\n if(this.cookieService.get(\"page_size\").split(\"_\")[0] == \"n\"){\r\n this.pageSizer = parseInt(this.cookieService.get(\"page_size\").split(\"_\")[1]);\r\n this.pageIndexer = parseInt(this.cookieService.get(\"page_size\").split(\"_\")[2]);\r\n }else{\r\n this.cookieService.delete(\"page_size\", \"/\");\r\n }\r\n\r\n if(this.cookieService.get(\"page_filter\") != \"\"){\r\n this.cookieService.delete(\"page_filter\", \"/\");\r\n }\r\n\r\n options = {\"headers\": new HttpHeaders({\"Authorization\": \"Bearer \" + cookieService.get(\"access_token\")})};\r\n\r\n this.currentLocale = this.admin.getLocale();\r\n \r\n this.dataSource = new MatTableDataSource(this.dataBase);\r\n\r\n this.dbRequest();\r\n }\r\n\r\n dbRequest(){\r\n this.http.get(this.admin.getUrl() + \"Account/GetUsers\", options).subscribe((dataU)=>{\r\n this.http.get(this.admin.getUrl() + \"New\").subscribe((data)=>{\r\n this.dataBase = [];\r\n [].forEach.call(data, (e) => {\r\n let createdAt = e.createdAt.split(\"T\")[0].split(\"-\");\r\n createdAt = createdAt.reverse();\r\n createdAt = createdAt.join(\".\");\r\n\r\n let date: any = \"\";\r\n if(e.date != \"\" && e.date != null && e.date != undefined){\r\n date = e.date.split(\"T\")[0].split(\"-\");\r\n date = date.reverse();\r\n date = date.join(\".\");\r\n }\r\n \r\n let createdBy: any = \"Система\";\r\n if(e.createdById != null){\r\n [].forEach.call(dataU, (c) =>{\r\n if(c.id == e.createdById){\r\n createdBy = c.email;\r\n // createdBy = c.email.split(\"@\")[0];\r\n }\r\n });\r\n }\r\n\r\n let tableTitle = e.title.split(\"*L*\");\r\n let elements = tableTitle.filter(x => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map(x => x);\r\n if(elements.length == 0){\r\n tableTitle = tableTitle[0];\r\n }else{\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n \r\n this.dataBase.push({\r\n Id: e.id, TableTitle: tableTitle, Title: e.title, Text: e.text, Author: createdBy, CreateDate: createdAt, Date: date, Image: e.image, Link: e.link, Disabled: e.isActual\r\n });\r\n });\r\n this.dataSource = new MatTableDataSource(this.dataBase);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n\r\n this.IsLoading = false;\r\n });\r\n });\r\n }\r\n\r\n pageSize(){\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(\":\")[0];\r\n let secure = false;\r\n if(location.protocol == \"https:\"){\r\n secure = true;\r\n }\r\n this.pageSizer = this.dataSource.paginator.pageSize;\r\n this.pageIndexer = this.dataSource.paginator.pageIndex;\r\n this.cookieService.set(\"page_size\", \"n_\" + this.dataSource.paginator.pageSize.toString() + \"_\" + this.dataSource.paginator.pageIndex.toString(), expires, \"/\", local, secure);\r\n }\r\n\r\n applyFilter(filterValue: string) {\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n \r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n isAllSelected() {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.dataSource.data.length;\r\n return numSelected === numRows;\r\n }\r\n \r\n masterToggle() {\r\n this.isAllSelected() ? this.selection.clear() : this.dataSource.data.forEach(row => this.selection.select(row));\r\n }\r\n \r\n checkboxLabel(row?: ItemData): string {\r\n let userId = this.cookieService.get(\"userName\").split(\"T\")[0];\r\n // let userId = this.cookieService.get(\"userName\").split(\"T\")[0].split(\"@\")[0];\r\n let userRole = parseInt(this.cookieService.get(\"cookieAllowId\").split(\"T\")[1]);\r\n // if(userRole == 1){\r\n this.userAllow = true;\r\n // }else{\r\n // this.userAllow = false;\r\n // }\r\n if(userRole != 1){\r\n [].forEach.call(this.selection.selected, (e) =>{\r\n if(e.Author != userId){\r\n this.userAllow = false;\r\n }\r\n });\r\n }\r\n if (!row) {\r\n return `${this.isAllSelected() ? 'select' : 'deselect'} all`;\r\n }\r\n return `${this.selection.isSelected(row) ? 'deselect' : 'select'} row ${row.Id + 1}`;\r\n }\r\n\r\n getIndex(id){\r\n return this.dataBase.findIndex(x => x.Id === id);\r\n }\r\n\r\n openMenu(status: string){\r\n if(status == \"dbClick\"){\r\n if(this.cookieService.get(\"userName\") == this.selection.selected[0].Author || this.cookieService.get(\"cookieAllowId\").split(\"T\")[1] == \"1\"){\r\n status = \"edit\";\r\n this.userAllow = true;\r\n }else{\r\n status = \"review\";\r\n this.userAllow = false;\r\n }\r\n }\r\n event.stopPropagation();\r\n let dialogRef = null;\r\n let index = -1;\r\n switch(status){\r\n case \"add\":\r\n let emptyProduct = {\r\n \"Id\": null,\r\n \"Title\": \"\",\r\n \"Image\": null\r\n }\r\n this.admin.setLocale(this.admin.getDefLocale());\r\n dialogRef = this.dialog.open(NewsItem, {\r\n width: \"1000px\",\r\n minHeight: \"450px\",\r\n maxHeight: \"800px\",\r\n disableClose: true,\r\n data: {name: \"Нова новина\", status: status, data: emptyProduct}\r\n });\r\n break;\r\n case \"edit\":\r\n index = this.getIndex(this.selection.selected[0].Id);\r\n dialogRef = this.dialog.open(NewsItem, {\r\n width: \"1000px\",\r\n minHeight: \"450px\",\r\n maxHeight: \"800px\",\r\n disableClose: true,\r\n data: {name: \"\", status: status, data: this.dataBase[index]}\r\n });\r\n break;\r\n case \"review\":\r\n index = this.getIndex(this.selection.selected[0].Id);\r\n dialogRef = this.dialog.open(NewsItem, {\r\n width: \"1000px\",\r\n minHeight: \"450px\",\r\n maxHeight: \"800px\",\r\n disableClose: true,\r\n data: {name: \"\", status: status, data: this.dataBase[index]}\r\n });\r\n break;\r\n case \"remove\":\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: {text: \"Ви дійсно хочете видалити новину?\"}\r\n });\r\n confirm.afterClosed().subscribe(result => {\r\n if(result){\r\n [].forEach.call(this.selection.selected, (e, index) => {\r\n this.http.delete(this.admin.getUrl() + \"New/\" + e.Id, options).subscribe((data)=>{\r\n if(index == this.selection.selected.length -1){\r\n this.refreshTable();\r\n }\r\n });\r\n });\r\n }\r\n });\r\n break;\r\n }\r\n if(dialogRef != null){\r\n dialogRef.afterClosed().subscribe(result => {\r\n if(result == \"reload\"){\r\n this.currentLocale = this.admin.getLocale();\r\n if(this.userAllow){\r\n this.openMenu(\"edit\");\r\n }else{\r\n this.openMenu(\"review\");\r\n }\r\n }else{\r\n this.selection = new SelectionModel(true, []);\r\n if(result == \"lang\"){\r\n this.admin.refreshLocale();\r\n }\r\n this.dbRequest();\r\n }\r\n });\r\n }\r\n }\r\n\r\n refreshTable(){\r\n this.selection = new SelectionModel(true, []);\r\n this.dbRequest();\r\n }\r\n \r\n}\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Request Item ++\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n@Component({\r\n selector: 'news-item',\r\n templateUrl: 'news-item.html',\r\n styleUrls: ['./admin.css'],\r\n providers: [\r\n AdminPage,\r\n {provide: MAT_DATE_LOCALE, useValue: 'uk-UA'},\r\n {provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS]},\r\n {provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS},\r\n ],\r\n})\r\n\r\nexport class NewsItem {\r\n\r\n IsSaving: boolean = false;\r\n IsLoadFin: boolean = false;\r\n IsLoading: boolean = false;\r\n isAdmin: boolean = false;\r\n\r\n barValue: number = 50;\r\n \r\n currentLocale: string = \"\";\r\n langCurrentTitle: string = \"\";\r\n langCurrentText: string = \"\";\r\n\r\n localeList: any[] = [];\r\n langDataList: any[] = [];\r\n\r\n titleFormControl = new FormControl();\r\n dateItem: any = null;\r\n editorQuill: any;\r\n barColor: ThemePalette = 'primary';\r\n barMode: ProgressSpinnerMode = 'indeterminate';\r\n fileData: File = null;\r\n previewUrl:any = null;\r\n\r\n @ViewChild('editorQuill', {static: false}) editorElementRef: ElementRef;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n private http: HttpClient,\r\n private admin: AdminPage,\r\n public dialog: MatDialog,\r\n private cookieService: CookieService,\r\n ){\r\n this.IsLoading = true;\r\n \r\n this.currentLocale = this.admin.getLocale();\r\n\r\n let interval = setInterval(() => {\r\n if(this.admin.getDBStatus()){\r\n clearInterval(interval);\r\n this.localeList = this.admin.getList(\"Lang\");\r\n\r\n if(this.cookieService.get(\"cookieAllowId\").split(\"T\")[1] == \"1\" || this.admin.managerDisable){\r\n this.isAdmin = true;\r\n }\r\n \r\n if(this.data.status == \"add\" && !this.isAdmin){\r\n this.data.data.Disabled = true;\r\n }\r\n }\r\n }, 50);\r\n\r\n let titleList = this.data.data.Title.split(\"*L*\");\r\n let textList: any = \"\";\r\n if(data.data.Text != null && this.data.data.Text != undefined){\r\n textList = this.data.data.Text.split(\"*L*\");\r\n }\r\n [].forEach.call(titleList, (e, indexE) =>{\r\n if(e.split(\"*I*\").length == 1){\r\n e = this.admin.getDefLocale() + \"*I*\" + e;\r\n }\r\n this.langDataList.push(\r\n {\r\n langId: e.split(\"*I*\")[0], title: e.split(\"*I*\")[1], text: textList[indexE]\r\n }\r\n );\r\n });\r\n let elements = this.langDataList.filter(x => x.langId == this.currentLocale).map(x => x);\r\n if(elements.length == 0){\r\n elements = this.langDataList.filter(x => x.langId == this.admin.getDefLocale()).map(x => x);\r\n }\r\n this.langCurrentTitle = elements[0].title;\r\n this.langCurrentText = elements[0].text;\r\n\r\n this.titleFormControl = new FormControl(this.langCurrentTitle, [Validators.required]);\r\n\r\n if(this.data.data.Date != null){\r\n this.dateItem = new Date(this.dateCorector(this.data.data.Date));\r\n }\r\n\r\n let intervalT = setInterval(() => {\r\n if(this.IsLoadFin){\r\n clearInterval(intervalT);\r\n if(this.langCurrentText != \"\" && this.langCurrentText != null && this.langCurrentText != undefined){\r\n this.editorQuill.root.innerHTML = this.langCurrentText;\r\n }\r\n this.IsLoading = false;\r\n }\r\n }, 50);\r\n }\r\n\r\n ngAfterViewInit() {\r\n var toolbarOptions = [\r\n ['bold', 'italic', 'underline', 'strike'],\r\n [{ 'header': 1 }, { 'header': 2 }],\r\n [{ 'list': 'ordered'}, { 'list': 'bullet' }],\r\n [{ 'indent': '-1'}, { 'indent': '+1' }],\r\n [{ 'size': ['small', false, 'large', 'huge'] }],\r\n [{ 'header': [1, 2, 3, 4, 5, 6, false] }],\r\n [{ 'color': [] }, { 'background': [] }],\r\n [{ 'align': [] }],\r\n ['link', 'image'],\r\n ['clean']\r\n ];\r\n\r\n this.editorQuill = new Quill.default(this.editorElementRef.nativeElement, {\r\n modules: {\r\n toolbar: toolbarOptions\r\n },\r\n placeholder: 'Текст',\r\n theme: 'snow'\r\n });\r\n\r\n this.IsLoadFin = true;\r\n }\r\n\r\n dateCorector(date){\r\n let nd = date.split(\".\");\r\n return nd[1] + \".\" + nd[0] + \".\" + nd[2];\r\n }\r\n\r\n setLocale(event){\r\n this.admin.setLocale(event);\r\n this.onClose(false, \"reload\");\r\n }\r\n\r\n changeRegister(){\r\n isChange = true;\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(\":\")[0];\r\n let secure = false;\r\n if(location.protocol == \"https:\"){\r\n secure = true;\r\n }\r\n this.cookieService.set(\"is_change\", \"true\", expires, \"/\", local, secure);\r\n }\r\n\r\n unChangeRegister(){\r\n isChange = false;\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(\":\")[0];\r\n let secure = false;\r\n if(location.protocol == \"https:\"){\r\n secure = true;\r\n }\r\n this.cookieService.delete(\"is_change\", \"/\", local, secure);\r\n }\r\n\r\n fileProgress(fileInput: any, type) {\r\n this.fileData = fileInput.target.files[0];\r\n this.preview(type);\r\n }\r\n\r\n preview(type) {\r\n var mimeType = this.fileData.type;\r\n if (mimeType.match(/image\\/*/) == null) {\r\n return;\r\n }\r\n \r\n var reader = new FileReader(); \r\n reader.readAsDataURL(this.fileData); \r\n reader.onload = (_event) => { \r\n this.previewUrl = reader.result; \r\n }\r\n }\r\n\r\n changeDate(date){\r\n let array = date.split(\".\");\r\n return array[1] + \".\" + array[0] + \".\" + array[2];\r\n }\r\n\r\n addMenu(body){\r\n this.IsSaving = true;\r\n \r\n if(this.previewUrl == null){\r\n this.previewUrl = body.image;\r\n }\r\n\r\n let date = \"\";\r\n if(body.date != \"\"){\r\n date = this.changeDate(body.date);\r\n }\r\n let text = this.editorQuill.container.children[0].innerHTML;\r\n\r\n let elements: any = this.langDataList.filter(x => x.langId == this.currentLocale).map(x => x);\r\n if(elements.length == 0){\r\n this.langDataList.push({langId: this.currentLocale, title: body.name, text: text});\r\n }else{\r\n elements[0].title = body.name;\r\n elements[0].text = text;\r\n }\r\n let titleString = \"\";\r\n let textString = \"\";\r\n [].forEach.call(this.langDataList, (e, indexE) =>{\r\n if(indexE != 0){\r\n titleString += \"*L*\";\r\n textString += \"*L*\";\r\n }\r\n titleString += this.admin.getDefLocale() + \"*I*\" + e.title;\r\n textString += e.text;\r\n });\r\n \r\n let json = {\r\n \"Title\": titleString,\r\n \"Text\": textString,\r\n \"Link\": body.link,\r\n \"Image\": this.previewUrl,\r\n \"Date\": date,\r\n \"isActual\": body.disabled.checked\r\n }\r\n this.http.post(this.admin.getUrl() + \"New\", json, options).subscribe((data)=>{\r\n this.IsSaving = false;\r\n this.onClose(true, null);\r\n });\r\n }\r\n\r\n saveMenu(body){\r\n this.IsSaving = true;\r\n \r\n if(this.previewUrl == null){\r\n this.previewUrl = body.image;\r\n }\r\n let date = \"\";\r\n if(body.date != \"\"){\r\n date = this.changeDate(body.date);\r\n }\r\n let text = this.editorQuill.container.children[0].innerHTML;\r\n\r\n let elements: any = this.langDataList.filter(x => x.langId == this.currentLocale).map(x => x);\r\n if(elements.length == 0){\r\n this.langDataList.push({langId: this.currentLocale, title: body.name, text: text});\r\n }else{\r\n elements[0].title = body.name;\r\n elements[0].text = text;\r\n }\r\n\r\n let titleString = \"\";\r\n let textString = \"\";\r\n [].forEach.call(this.langDataList, (e, indexE) =>{\r\n if(indexE != 0){\r\n titleString += \"*L*\";\r\n textString += \"*L*\";\r\n }\r\n titleString += e.langId + \"*I*\" + e.title;\r\n textString += e.text;\r\n });\r\n \r\n let json = {\r\n \"Id\": body.id,\r\n \"Title\": titleString,\r\n \"Text\": textString,\r\n \"Link\": body.link,\r\n \"Image\": this.previewUrl,\r\n \"Date\": date,\r\n \"isActual\": body.disabled.checked\r\n }\r\n this.http.put(this.admin.getUrl() + \"New/\" + body.id, json, options).subscribe((data)=>{\r\n this.IsSaving = false;\r\n this.onClose(true, null);\r\n });\r\n } \r\n\r\n onClose(save, type): void {\r\n if(isChange && !save){\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: {text: \"Увага! Документ буде закритий без збереження змін. Продовжити?\"}\r\n });\r\n confirm.afterClosed().subscribe(result => {\r\n if(result){\r\n this.unChangeRegister();\r\n this.dialogRef.close(type);\r\n }\r\n });\r\n }else{\r\n this.unChangeRegister();\r\n this.dialogRef.close(type);\r\n }\r\n }\r\n\r\n}","
\r\n

Управління Новинами

\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
У вас недостатньо прав для редагування чи видалення вибраних новин!
\r\n
\r\n\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Внутрішня назва {{row.TableTitle}} Дата новини {{dataBase[getIndex(row.Id)].Date.split(\"T\")[0]}} Дата запису {{dataBase[getIndex(row.Id)].CreateDate.split(\"T\")[0]}} Автор {{row.Author}}
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n

Будь-ласка зачекайте!
Триває завантаження

\r\n
\r\n
\r\n","
\r\n

{{ data.name }}

\r\n

{{ data.data.TableTitle }}

\r\n \r\n
\r\n\r\n
\r\n
\r\n
Найменування: *
\r\n \r\n \r\n \r\n Обов'язково до заповнення!\r\n \r\n \r\n
\r\n
\r\n
Контент новини:
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Посилання на оригінал:
\r\n \r\n \r\n \r\n
\r\n
\r\n
Дата новини:
\r\n \r\n Виберіть необхідну дату\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
Зображення:
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
Відключити (Disable):
\r\n \r\n
Увага! Можливість розблокувати відображення форми доступно тільки для користувача із правами \"Адміністратор\".
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n {{ list.Text }}\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n

Будь-ласка зачекайте!
Триває збереження

\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n

Будь-ласка зачекайте!
Триває завантаження

\r\n
\r\n
\r\n","import { SelectionModel } from '@angular/cdk/collections';\r\nimport { Component, Inject, ViewChild, ElementRef } from '@angular/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { Router } from '@angular/router';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner';\r\nimport * as Quill from 'quill';\r\n\r\nimport { ConfirmMenu } from '../confirm-menu';\r\nimport { AdminPage } from './admin';\r\n\r\nexport interface DialogData {\r\n name: string;\r\n status: string;\r\n data: ItemData;\r\n}\r\n\r\nexport interface ItemData {\r\n Id: number;\r\n Type: string;\r\n TableTitle: string;\r\n Title: string;\r\n Text: string;\r\n Link: string;\r\n Author: string;\r\n CreateDate: string;\r\n Image: string;\r\n Disabled: boolean;\r\n Lang: string;\r\n}\r\n\r\nvar isChange = false;\r\nvar options = {};\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Request Type ++\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n@Component({\r\n selector: 'pages',\r\n templateUrl: 'pages.html',\r\n styleUrls: ['admin.css'],\r\n providers: [AdminPage],\r\n})\r\nexport class PagesPage {\r\n userAllow: boolean = true;\r\n IsLoading: boolean = false;\r\n\r\n barValue: number = 50;\r\n pageSizer: number = 5;\r\n pageIndexer: number = 0;\r\n\r\n currentLocale: string = '';\r\n\r\n dataBase: ItemData[] = [];\r\n displayedColumns: string[] = ['select', 'Title', 'CreateDate', 'Author'];\r\n\r\n barColor: ThemePalette = 'primary';\r\n barMode: ProgressSpinnerMode = 'indeterminate';\r\n dataSource: MatTableDataSource;\r\n selection = new SelectionModel(true, []);\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(\r\n private router: Router,\r\n private cookieService: CookieService,\r\n private admin: AdminPage,\r\n private http: HttpClient,\r\n public dialog: MatDialog\r\n ) {\r\n this.IsLoading = true;\r\n\r\n if (this.cookieService.get('access_token') == '') {\r\n this.router.navigate(['/admin/login']);\r\n }\r\n\r\n if (this.cookieService.get('page_size').split('_')[0] == 'p') {\r\n this.pageSizer = parseInt(this.cookieService.get('page_size').split('_')[1]);\r\n this.pageIndexer = parseInt(this.cookieService.get('page_size').split('_')[2]);\r\n } else {\r\n this.cookieService.delete('page_size', '/');\r\n }\r\n\r\n if (this.cookieService.get('page_filter') != '') {\r\n this.cookieService.delete('page_filter', '/');\r\n }\r\n\r\n options = {\r\n headers: new HttpHeaders({ Authorization: 'Bearer ' + cookieService.get('access_token') }),\r\n };\r\n\r\n this.currentLocale = this.admin.getLocale();\r\n\r\n this.dataSource = new MatTableDataSource(this.dataBase);\r\n\r\n this.dbRequest();\r\n }\r\n\r\n dbRequest() {\r\n this.http.get(this.admin.getUrl() + 'Account/GetUsers', options).subscribe((dataU) => {\r\n this.http.get(this.admin.getUrl() + 'PageElement').subscribe((data) => {\r\n this.dataBase = [];\r\n [].forEach.call(data, (e) => {\r\n if (e.type == 'page') {\r\n let createdAt = e.createdAt.split('T')[0].split('-');\r\n createdAt = createdAt.reverse();\r\n createdAt = createdAt.join('.');\r\n\r\n let createdBy: any = 'Система';\r\n if (e.createdById != null) {\r\n [].forEach.call(dataU, (c) => {\r\n if (c.id == e.createdById) {\r\n createdBy = c.email;\r\n // createdBy = c.email.split(\"@\")[0];\r\n }\r\n });\r\n }\r\n\r\n let tableTitle = e.title.split('*L*');\r\n let elements = tableTitle\r\n .filter((x) => x.split('*I*')[0] == this.admin.getDefLocale())\r\n .map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split('*I*')[1];\r\n }\r\n this.dataBase.push({\r\n Id: e.id,\r\n Type: e.type,\r\n TableTitle: tableTitle,\r\n Title: e.title,\r\n Text: e.text,\r\n Link: e.link,\r\n Author: createdBy,\r\n CreateDate: createdAt,\r\n Image: e.image,\r\n Disabled: e.isActual,\r\n Lang: e.lang,\r\n });\r\n }\r\n });\r\n this.dataSource = new MatTableDataSource(this.dataBase);\r\n this.paginator.pageSize = this.pageSizer;\r\n this.paginator.pageIndex = this.pageIndexer;\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n\r\n this.IsLoading = false;\r\n });\r\n });\r\n }\r\n\r\n pageSize() {\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(':')[0];\r\n let secure = false;\r\n if (location.protocol == 'https:') {\r\n secure = true;\r\n }\r\n this.pageSizer = this.dataSource.paginator.pageSize;\r\n this.pageIndexer = this.dataSource.paginator.pageIndex;\r\n this.cookieService.set(\r\n 'page_size',\r\n 'p_' +\r\n this.dataSource.paginator.pageSize.toString() +\r\n '_' +\r\n this.dataSource.paginator.pageIndex.toString(),\r\n expires,\r\n '/',\r\n local,\r\n secure\r\n );\r\n }\r\n\r\n applyFilter(filterValue: string) {\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n isAllSelected() {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.dataSource.data.length;\r\n return numSelected === numRows;\r\n }\r\n\r\n masterToggle() {\r\n this.isAllSelected()\r\n ? this.selection.clear()\r\n : this.dataSource.data.forEach((row) => this.selection.select(row));\r\n }\r\n\r\n checkboxLabel(row?: ItemData): string {\r\n let userId = this.cookieService.get('userName').split('T')[0];\r\n // let userId = this.cookieService.get(\"userName\").split(\"T\")[0].split(\"@\")[0];\r\n let userRole = parseInt(this.cookieService.get('cookieAllowId').split('T')[1]);\r\n // if(userRole == 1){\r\n this.userAllow = true;\r\n // }else{\r\n // this.userAllow = false;\r\n // }\r\n if (userRole != 1) {\r\n [].forEach.call(this.selection.selected, (e) => {\r\n if (e.Author != userId) {\r\n this.userAllow = false;\r\n }\r\n });\r\n }\r\n if (!row) {\r\n return `${this.isAllSelected() ? 'select' : 'deselect'} all`;\r\n }\r\n return `${this.selection.isSelected(row) ? 'deselect' : 'select'} row ${row.Id + 1}`;\r\n }\r\n\r\n getIndex(id) {\r\n return this.dataBase.findIndex((x) => x.Id === id);\r\n }\r\n\r\n openMenu(status: string) {\r\n if (status == 'dbClick') {\r\n if (\r\n this.cookieService.get('userName') == this.selection.selected[0].Author ||\r\n this.cookieService.get('cookieAllowId').split('T')[1] == '1'\r\n ) {\r\n status = 'edit';\r\n this.userAllow = true;\r\n } else {\r\n status = 'review';\r\n this.userAllow = false;\r\n }\r\n }\r\n event.stopPropagation();\r\n let dialogRef = null;\r\n let index = -1;\r\n switch (status) {\r\n case 'add':\r\n let emptyProduct = {\r\n Id: null,\r\n Title: '',\r\n };\r\n this.admin.setLocale(this.admin.getDefLocale());\r\n dialogRef = this.dialog.open(PagesItem, {\r\n width: '1000px',\r\n minHeight: '450px',\r\n maxHeight: '800px',\r\n disableClose: true,\r\n data: { name: 'Нова сторінка', status: status, data: emptyProduct },\r\n });\r\n break;\r\n case 'edit':\r\n index = this.getIndex(this.selection.selected[0].Id);\r\n dialogRef = this.dialog.open(PagesItem, {\r\n width: '1000px',\r\n minHeight: '450px',\r\n maxHeight: '800px',\r\n disableClose: true,\r\n data: { name: '', status: status, data: this.dataBase[index] },\r\n });\r\n break;\r\n case 'review':\r\n index = this.getIndex(this.selection.selected[0].Id);\r\n dialogRef = this.dialog.open(PagesItem, {\r\n width: '1000px',\r\n minHeight: '450px',\r\n maxHeight: '800px',\r\n disableClose: true,\r\n data: { name: '', status: status, data: this.dataBase[index] },\r\n });\r\n break;\r\n case 'remove':\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: '600px',\r\n disableClose: true,\r\n data: { text: 'Ви дійсно хочете видалити сторінку?' },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n [].forEach.call(this.selection.selected, (e, index) => {\r\n this.http\r\n .delete(this.admin.getUrl() + 'PageElement/' + e.Id, options)\r\n .subscribe((data) => {\r\n if (index == this.selection.selected.length - 1) {\r\n this.refreshTable();\r\n }\r\n });\r\n });\r\n }\r\n });\r\n break;\r\n }\r\n if (dialogRef != null) {\r\n if (dialogRef != null) {\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result == 'reload') {\r\n this.currentLocale = this.admin.getLocale();\r\n if (this.userAllow) {\r\n this.openMenu('edit');\r\n } else {\r\n this.openMenu('review');\r\n }\r\n } else {\r\n this.selection = new SelectionModel(true, []);\r\n if (result == 'lang') {\r\n this.admin.refreshLocale();\r\n }\r\n this.dbRequest();\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n refreshTable() {\r\n this.selection = new SelectionModel(true, []);\r\n this.dbRequest();\r\n }\r\n}\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Request Item ++\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n@Component({\r\n selector: 'pages-item',\r\n templateUrl: 'pages-item.html',\r\n styleUrls: ['./admin.css'],\r\n providers: [AdminPage],\r\n})\r\nexport class PagesItem {\r\n IsSaving: boolean = false;\r\n IsLoading: boolean = false;\r\n IsLoadFin: boolean = false;\r\n isAdmin: boolean = false;\r\n\r\n barValue: number = 50;\r\n\r\n currentLocale: string = '';\r\n langCurrentTitle: string = '';\r\n langCurrentText: string = '';\r\n\r\n localeList: any[] = [];\r\n langDataList: any[] = [];\r\n\r\n titleFormControl = new FormControl();\r\n linkFormControl = new FormControl();\r\n barColor: ThemePalette = 'primary';\r\n barMode: ProgressSpinnerMode = 'indeterminate';\r\n editorQuill: any;\r\n fileData: File = null;\r\n previewUrl: any = null;\r\n\r\n @ViewChild('editorQuill', { static: false }) editorElementRef: ElementRef;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n private http: HttpClient,\r\n private admin: AdminPage,\r\n public dialog: MatDialog,\r\n private cookieService: CookieService\r\n ) {\r\n this.IsLoading = true;\r\n\r\n this.currentLocale = this.admin.getLocale();\r\n\r\n let interval = setInterval(() => {\r\n if (this.admin.getDBStatus()) {\r\n clearInterval(interval);\r\n this.localeList = this.admin.getList('Lang');\r\n\r\n if (\r\n this.cookieService.get('cookieAllowId').split('T')[1] == '1' ||\r\n this.admin.managerDisable\r\n ) {\r\n this.isAdmin = true;\r\n }\r\n\r\n if (this.data.status == 'add' && !this.isAdmin) {\r\n this.data.data.Disabled = true;\r\n }\r\n }\r\n }, 50);\r\n\r\n let titleList = data.data.Title.split('*L*');\r\n let textList: any = '';\r\n if (data.data.Text != null && data.data.Text != undefined) {\r\n textList = data.data.Text.split('*L*');\r\n }\r\n [].forEach.call(titleList, (e, indexE) => {\r\n if (e.split('*I*').length == 1) {\r\n e = this.admin.getDefLocale() + '*I*' + e;\r\n }\r\n this.langDataList.push({\r\n langId: e.split('*I*')[0],\r\n title: e.split('*I*')[1],\r\n text: textList[indexE],\r\n });\r\n });\r\n let elements = this.langDataList.filter((x) => x.langId == this.currentLocale).map((x) => x);\r\n if (elements.length == 0) {\r\n elements = this.langDataList\r\n .filter((x) => x.langId == this.admin.getDefLocale())\r\n .map((x) => x);\r\n }\r\n this.langCurrentTitle = elements[0].title;\r\n this.langCurrentText = elements[0].text;\r\n\r\n this.titleFormControl = new FormControl(this.langCurrentTitle, [Validators.required]);\r\n this.linkFormControl = new FormControl(data.data.Link, [Validators.required]);\r\n\r\n let intervalT = setInterval(() => {\r\n if (this.IsLoadFin) {\r\n clearInterval(intervalT);\r\n if (\r\n this.langCurrentText != '' &&\r\n this.langCurrentText != null &&\r\n this.langCurrentText != undefined\r\n ) {\r\n this.editorQuill.root.innerHTML = this.langCurrentText;\r\n }\r\n this.IsLoading = false;\r\n }\r\n }, 50);\r\n }\r\n\r\n ngAfterViewInit() {\r\n var toolbarOptions = [\r\n ['bold', 'italic', 'underline', 'strike'],\r\n [{ header: 1 }, { header: 2 }],\r\n // [{ 'list': 'ordered'}, { 'list': 'bullet' }],\r\n [{ indent: '-1' }, { indent: '+1' }],\r\n [{ size: ['small', false, 'large', 'huge'] }],\r\n [{ header: [1, 2, 3, 4, 5, 6, false] }],\r\n [{ color: [] }, { background: [] }],\r\n [{ align: [] }],\r\n ['link', 'image'],\r\n ['clean'],\r\n ];\r\n\r\n this.editorQuill = new Quill.default(this.editorElementRef.nativeElement, {\r\n modules: {\r\n toolbar: toolbarOptions,\r\n },\r\n placeholder: 'Текст',\r\n theme: 'snow',\r\n });\r\n\r\n this.IsLoadFin = true;\r\n }\r\n\r\n setLocale(event) {\r\n this.admin.setLocale(event);\r\n this.onClose(false, 'reload');\r\n }\r\n\r\n changeRegister() {\r\n isChange = true;\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(':')[0];\r\n let secure = false;\r\n if (location.protocol == 'https:') {\r\n secure = true;\r\n }\r\n this.cookieService.set('is_change', 'true', expires, '/', local, secure);\r\n }\r\n\r\n unChangeRegister() {\r\n isChange = false;\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(':')[0];\r\n let secure = false;\r\n if (location.protocol == 'https:') {\r\n secure = true;\r\n }\r\n this.cookieService.delete('is_change', '/', local, secure);\r\n }\r\n\r\n fileProgress(fileInput: any, type) {\r\n this.fileData = fileInput.target.files[0];\r\n this.preview(type);\r\n }\r\n\r\n preview(type) {\r\n var mimeType = this.fileData.type;\r\n if (mimeType.match(/image\\/*/) == null) {\r\n return;\r\n }\r\n\r\n var reader = new FileReader();\r\n reader.readAsDataURL(this.fileData);\r\n reader.onload = (_event) => {\r\n this.previewUrl = reader.result;\r\n };\r\n }\r\n\r\n addMenu(body) {\r\n this.IsSaving = true;\r\n\r\n let text = this.editorQuill.container.children[0].innerHTML;\r\n let disabled = false;\r\n if (body.disabled.checked != undefined) {\r\n disabled = body.disabled.checked;\r\n }\r\n\r\n let elements: any = this.langDataList\r\n .filter((x) => x.langId == this.currentLocale)\r\n .map((x) => x);\r\n if (elements.length == 0) {\r\n this.langDataList.push({ langId: this.currentLocale, title: body.name, text: text });\r\n } else {\r\n elements[0].title = body.name;\r\n elements[0].text = text;\r\n }\r\n let titleString = '';\r\n let textString = '';\r\n [].forEach.call(this.langDataList, (e, indexE) => {\r\n if (indexE != 0) {\r\n titleString += '*L*';\r\n textString += '*L*';\r\n }\r\n titleString += this.admin.getDefLocale() + '*I*' + e.title;\r\n textString += e.text;\r\n });\r\n\r\n let json = {\r\n Title: titleString,\r\n Text: textString,\r\n Link: body.link,\r\n Type: 'page',\r\n isActual: disabled,\r\n Lang: body.lang,\r\n };\r\n this.http.post(this.admin.getUrl() + 'PageElement', json, options).subscribe((data) => {\r\n this.IsSaving = false;\r\n this.onClose(true, null);\r\n });\r\n }\r\n\r\n saveMenu(body) {\r\n this.IsSaving = true;\r\n\r\n let text = this.editorQuill.container.children[0].innerHTML;\r\n\r\n let elements: any = this.langDataList\r\n .filter((x) => x.langId == this.currentLocale)\r\n .map((x) => x);\r\n if (elements.length == 0) {\r\n this.langDataList.push({ langId: this.currentLocale, title: body.name, text: text });\r\n } else {\r\n elements[0].title = body.name;\r\n elements[0].text = text;\r\n }\r\n let titleString = '';\r\n let textString = '';\r\n [].forEach.call(this.langDataList, (e, indexE) => {\r\n if (indexE != 0) {\r\n titleString += '*L*';\r\n textString += '*L*';\r\n }\r\n titleString += e.langId + '*I*' + e.title;\r\n textString += e.text;\r\n });\r\n\r\n let json = {\r\n Id: body.id,\r\n Title: titleString,\r\n Text: textString,\r\n Link: body.link,\r\n Type: 'page',\r\n isActual: body.disabled.checked,\r\n Lang: body.lang,\r\n };\r\n this.http\r\n .put(this.admin.getUrl() + 'PageElement/' + body.id, json, options)\r\n .subscribe((data) => {\r\n this.IsSaving = false;\r\n this.onClose(true, null);\r\n });\r\n }\r\n\r\n onClose(save, type): void {\r\n if (isChange && !save) {\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: '600px',\r\n disableClose: true,\r\n data: { text: 'Увага! Документ буде закритий без збереження змін. Продовжити?' },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n this.unChangeRegister();\r\n this.dialogRef.close(type);\r\n }\r\n });\r\n } else {\r\n this.unChangeRegister();\r\n this.dialogRef.close(type);\r\n }\r\n }\r\n}\r\n","
\r\n

Управління Сторінками

\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
У вас недостатньо прав для редагування чи видалення вибраних сторінок!
\r\n
\r\n\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Внутрішня назва {{row.TableTitle}} Дата створення {{dataBase[getIndex(row.Id)].CreateDate.split(\"T\")[0]}} Автор {{row.Author}}
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n

Будь-ласка зачекайте!
Триває завантаження

\r\n
\r\n
\r\n","
\r\n

{{ data.name }}

\r\n

{{ this.langCurrentTitle }}

\r\n \r\n
\r\n\r\n\r\n
\r\n
Найменування: *
\r\n \r\n \r\n \r\n Обов'язково до заповнення!\r\n \r\n \r\n
\r\n
\r\n
Контент сторінки:
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Код посилання:*
\r\n \r\n \r\n \r\n Обов'язково до заповнення!\r\n \r\n \r\n
\r\n
\r\n
Позиція:
\r\n \r\n \r\n \r\n
\r\n
\r\n
Відключити (Disable):
\r\n \r\n
\r\n Увага! Можливість розблокувати відображення форми доступно тільки для користувача із правами\r\n \"Адміністратор\".\r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n save Зберегти\r\n \r\n \r\n save Зберегти\r\n \r\n \r\n \r\n {{ list.Text }}\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n

Будь-ласка зачекайте!
Триває збереження

\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n

Будь-ласка зачекайте!
Триває завантаження

\r\n
\r\n
\r\n","import { SelectionModel } from '@angular/cdk/collections';\r\nimport { Component, Inject, ViewChild, ElementRef } from '@angular/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { Router } from '@angular/router';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner';\r\n\r\nimport { ConfirmMenu } from '../confirm-menu';\r\nimport { AdminPage } from './admin';\r\n\r\nexport interface DialogData {\r\n name: string;\r\n status: string;\r\n data: ItemData;\r\n}\r\n\r\nexport interface ItemData {\r\n Id: number;\r\n TableTitle: string;\r\n Title: string;\r\n Text: string;\r\n Type: string;\r\n Star: string;\r\n TableType: string;\r\n Disabled: boolean;\r\n}\r\n\r\nvar isChange = false;\r\nvar options = {};\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Poll Type ++\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n@Component({\r\n selector: 'poll',\r\n templateUrl: 'poll.html',\r\n styleUrls: ['admin.css'],\r\n providers: [AdminPage],\r\n})\r\nexport class PollPage {\r\n userAllow: boolean = true;\r\n IsLoading: boolean = false;\r\n\r\n barValue: number = 50;\r\n pageSizer: number = 5;\r\n pageIndexer: number = 0;\r\n\r\n currentLocale: string = '';\r\n\r\n dataBase: ItemData[] = [];\r\n displayedColumns: string[] = ['select', 'Title', 'Type'];\r\n\r\n barColor: ThemePalette = 'primary';\r\n barMode: ProgressSpinnerMode = 'indeterminate';\r\n dataSource: MatTableDataSource;\r\n selection = new SelectionModel(true, []);\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(\r\n private router: Router,\r\n private cookieService: CookieService,\r\n private admin: AdminPage,\r\n private http: HttpClient,\r\n public dialog: MatDialog\r\n ) {\r\n this.IsLoading = true;\r\n\r\n if (this.cookieService.get('access_token') == '') {\r\n this.router.navigate(['/admin/login']);\r\n }\r\n\r\n if (this.cookieService.get('page_size').split('_')[0] == 'pl') {\r\n this.pageSizer = parseInt(this.cookieService.get('page_size').split('_')[1]);\r\n this.pageIndexer = parseInt(this.cookieService.get('page_size').split('_')[2]);\r\n } else {\r\n this.cookieService.delete('page_size', '/');\r\n }\r\n\r\n if (this.cookieService.get('page_filter') != '') {\r\n this.cookieService.delete('page_filter', '/');\r\n }\r\n\r\n options = {\r\n headers: new HttpHeaders({ Authorization: 'Bearer ' + cookieService.get('access_token') }),\r\n };\r\n\r\n this.currentLocale = this.admin.getLocale();\r\n\r\n this.dataSource = new MatTableDataSource(this.dataBase);\r\n\r\n this.dbRequest();\r\n }\r\n\r\n dbRequest() {\r\n this.http.get(this.admin.getUrl() + 'PageElement').subscribe((data) => {\r\n this.dataBase = [];\r\n [].forEach.call(data, (e) => {\r\n if (e.type == 'poll') {\r\n let tableTitle = e.title.split('*L*');\r\n let elements = tableTitle\r\n .filter((x) => x.split('*I*')[0] == this.admin.getDefLocale())\r\n .map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split('*I*')[1];\r\n }\r\n\r\n let tableType = 'Головне запитання';\r\n if (e.link == '1') {\r\n tableType = 'Запитання на дозвіл';\r\n } else if (e.link == '2') {\r\n tableType = 'Додаткове запитання';\r\n }\r\n\r\n this.dataBase.push({\r\n Id: e.id,\r\n TableTitle: tableTitle,\r\n Title: e.title,\r\n Text: e.text,\r\n Type: e.link,\r\n Star: e.image,\r\n Disabled: e.isActual,\r\n TableType: tableType,\r\n });\r\n }\r\n });\r\n\r\n // console.log(this.dataBase);\r\n\r\n this.dataSource = new MatTableDataSource(this.dataBase);\r\n this.paginator.pageSize = this.pageSizer;\r\n this.paginator.pageIndex = this.pageIndexer;\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n\r\n this.IsLoading = false;\r\n });\r\n }\r\n\r\n pageSize() {\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(':')[0];\r\n let secure = false;\r\n if (location.protocol == 'https:') {\r\n secure = true;\r\n }\r\n this.pageSizer = this.dataSource.paginator.pageSize;\r\n this.pageIndexer = this.dataSource.paginator.pageIndex;\r\n this.cookieService.set(\r\n 'page_size',\r\n 'p_' +\r\n this.dataSource.paginator.pageSize.toString() +\r\n '_' +\r\n this.dataSource.paginator.pageIndex.toString(),\r\n expires,\r\n '/',\r\n local,\r\n secure\r\n );\r\n }\r\n\r\n applyFilter(filterValue: string) {\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n isAllSelected() {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.dataSource.data.length;\r\n return numSelected === numRows;\r\n }\r\n\r\n masterToggle() {\r\n this.isAllSelected()\r\n ? this.selection.clear()\r\n : this.dataSource.data.forEach((row) => this.selection.select(row));\r\n }\r\n\r\n checkboxLabel(row?: ItemData): string {\r\n let userId = this.cookieService.get('userName').split('T')[0];\r\n let userRole = parseInt(this.cookieService.get('cookieAllowId').split('T')[1]);\r\n this.userAllow = true;\r\n if (userRole != 1) {\r\n [].forEach.call(this.selection.selected, (e) => {\r\n if (e.Author != userId) {\r\n this.userAllow = false;\r\n }\r\n });\r\n }\r\n if (!row) {\r\n return `${this.isAllSelected() ? 'select' : 'deselect'} all`;\r\n }\r\n return `${this.selection.isSelected(row) ? 'deselect' : 'select'} row ${row.Id + 1}`;\r\n }\r\n\r\n getIndex(id) {\r\n return this.dataBase.findIndex((x) => x.Id === id);\r\n }\r\n\r\n openMenu(status: string) {\r\n if (status == 'dbClick') {\r\n if (this.cookieService.get('cookieAllowId').split('T')[1] == '1') {\r\n status = 'edit';\r\n this.userAllow = true;\r\n } else {\r\n status = 'review';\r\n this.userAllow = false;\r\n }\r\n }\r\n event.stopPropagation();\r\n let dialogRef = null;\r\n let index = -1;\r\n switch (status) {\r\n case 'add':\r\n let emptyProduct = {\r\n Id: null,\r\n Title: '',\r\n };\r\n this.admin.setLocale(this.admin.getDefLocale());\r\n dialogRef = this.dialog.open(PollItem, {\r\n width: '1000px',\r\n minHeight: '450px',\r\n maxHeight: '800px',\r\n disableClose: true,\r\n data: { name: 'Нова сторінка', status: status, data: emptyProduct },\r\n });\r\n break;\r\n case 'edit':\r\n index = this.getIndex(this.selection.selected[0].Id);\r\n dialogRef = this.dialog.open(PollItem, {\r\n width: '1000px',\r\n minHeight: '450px',\r\n maxHeight: '800px',\r\n disableClose: true,\r\n data: { name: '', status: status, data: this.dataBase[index] },\r\n });\r\n break;\r\n case 'review':\r\n index = this.getIndex(this.selection.selected[0].Id);\r\n dialogRef = this.dialog.open(PollItem, {\r\n width: '1000px',\r\n minHeight: '450px',\r\n maxHeight: '800px',\r\n disableClose: true,\r\n data: { name: '', status: status, data: this.dataBase[index] },\r\n });\r\n break;\r\n case 'remove':\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: '600px',\r\n disableClose: true,\r\n data: { text: 'Ви дійсно хочете видалити питання?' },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n [].forEach.call(this.selection.selected, (e, index) => {\r\n this.http\r\n .delete(this.admin.getUrl() + 'PageElement/' + e.Id, options)\r\n .subscribe((data) => {\r\n if (index == this.selection.selected.length - 1) {\r\n this.refreshTable();\r\n }\r\n });\r\n });\r\n }\r\n });\r\n break;\r\n }\r\n if (dialogRef != null) {\r\n if (dialogRef != null) {\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result == 'reload') {\r\n this.currentLocale = this.admin.getLocale();\r\n if (this.userAllow) {\r\n this.openMenu('edit');\r\n } else {\r\n this.openMenu('review');\r\n }\r\n } else {\r\n this.selection = new SelectionModel(true, []);\r\n if (result == 'lang') {\r\n this.admin.refreshLocale();\r\n }\r\n this.dbRequest();\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n refreshTable() {\r\n this.selection = new SelectionModel(true, []);\r\n this.dbRequest();\r\n }\r\n}\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Poll Item ++\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n@Component({\r\n selector: 'poll-item',\r\n templateUrl: 'poll-item.html',\r\n styleUrls: ['./admin.css'],\r\n providers: [AdminPage],\r\n})\r\nexport class PollItem {\r\n IsSaving: boolean = false;\r\n IsLoading: boolean = false;\r\n isAdmin: boolean = false;\r\n\r\n barValue: number = 50;\r\n pollType: string = '0';\r\n pollStar: string = '5';\r\n\r\n currentLocale: string = '';\r\n langCurrentTitle: string = '';\r\n langCurrentText: string = '';\r\n\r\n localeList: any[] = [];\r\n langDataList: any[] = [];\r\n\r\n titleFormControl = new FormControl();\r\n linkFormControl = new FormControl();\r\n barColor: ThemePalette = 'primary';\r\n barMode: ProgressSpinnerMode = 'indeterminate';\r\n editorQuill: any;\r\n fileData: File = null;\r\n previewUrl: any = null;\r\n\r\n @ViewChild('editorQuill', { static: false }) editorElementRef: ElementRef;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n private http: HttpClient,\r\n private admin: AdminPage,\r\n public dialog: MatDialog,\r\n private cookieService: CookieService\r\n ) {\r\n this.IsLoading = true;\r\n\r\n this.currentLocale = this.admin.getLocale();\r\n\r\n let interval = setInterval(() => {\r\n if (this.admin.getDBStatus()) {\r\n clearInterval(interval);\r\n this.localeList = this.admin.getList('Lang');\r\n\r\n if (\r\n this.cookieService.get('cookieAllowId').split('T')[1] == '1' ||\r\n this.admin.managerDisable\r\n ) {\r\n this.isAdmin = true;\r\n }\r\n\r\n if (this.data.status == 'add' && !this.isAdmin) {\r\n this.data.data.Disabled = true;\r\n }\r\n }\r\n }, 50);\r\n\r\n let titleList = data.data.Title.split('*L*');\r\n let textList: any = '';\r\n if (data.data.Text != null && data.data.Text != undefined) {\r\n textList = data.data.Text.split('*L*');\r\n }\r\n [].forEach.call(titleList, (e, indexE) => {\r\n if (e.split('*I*').length == 1) {\r\n e = this.admin.getDefLocale() + '*I*' + e;\r\n }\r\n this.langDataList.push({\r\n langId: e.split('*I*')[0],\r\n title: e.split('*I*')[1],\r\n text: textList[indexE],\r\n });\r\n });\r\n let elements = this.langDataList.filter((x) => x.langId == this.currentLocale).map((x) => x);\r\n if (elements.length == 0) {\r\n elements = this.langDataList\r\n .filter((x) => x.langId == this.admin.getDefLocale())\r\n .map((x) => x);\r\n }\r\n this.langCurrentTitle = elements[0].title;\r\n this.langCurrentText = elements[0].text;\r\n\r\n this.titleFormControl = new FormControl(this.langCurrentTitle, [Validators.required]);\r\n if (this.data.data.Type != undefined) {\r\n this.pollType = this.data.data.Type;\r\n this.pollStar = this.data.data.Star;\r\n }\r\n\r\n this.IsLoading = false;\r\n }\r\n\r\n setLocale(event) {\r\n this.admin.setLocale(event);\r\n this.onClose(false, 'reload');\r\n }\r\n\r\n changeRegister() {\r\n isChange = true;\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(':')[0];\r\n let secure = false;\r\n if (location.protocol == 'https:') {\r\n secure = true;\r\n }\r\n this.cookieService.set('is_change', 'true', expires, '/', local, secure);\r\n }\r\n\r\n unChangeRegister() {\r\n isChange = false;\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(':')[0];\r\n let secure = false;\r\n if (location.protocol == 'https:') {\r\n secure = true;\r\n }\r\n this.cookieService.delete('is_change', '/', local, secure);\r\n }\r\n\r\n onChange(data, value) {\r\n switch (data) {\r\n case 'Type':\r\n this.pollType = value;\r\n break;\r\n case 'Star':\r\n this.pollStar = value;\r\n break;\r\n }\r\n }\r\n\r\n addMenu(body) {\r\n this.IsSaving = true;\r\n\r\n let disabled = false;\r\n if (body.disabled.checked != undefined) {\r\n disabled = body.disabled.checked;\r\n }\r\n\r\n let elements: any = this.langDataList\r\n .filter((x) => x.langId == this.currentLocale)\r\n .map((x) => x);\r\n if (elements.length == 0) {\r\n this.langDataList.push({ langId: this.currentLocale, title: body.name, text: body.text });\r\n } else {\r\n elements[0].title = body.name;\r\n elements[0].text = body.text;\r\n }\r\n let titleString = '';\r\n let textString = '';\r\n [].forEach.call(this.langDataList, (e, indexE) => {\r\n if (indexE != 0) {\r\n titleString += '*L*';\r\n textString += '*L*';\r\n }\r\n titleString += this.admin.getDefLocale() + '*I*' + e.title;\r\n textString += e.text;\r\n });\r\n\r\n let json = {\r\n Title: titleString,\r\n Text: textString,\r\n Link: this.pollType,\r\n Image: this.pollStar,\r\n Type: 'poll',\r\n isActual: disabled,\r\n };\r\n // console.log(json);\r\n this.http.post(this.admin.getUrl() + 'PageElement', json, options).subscribe((data) => {\r\n this.IsSaving = false;\r\n this.onClose(true, null);\r\n });\r\n }\r\n\r\n saveMenu(body) {\r\n this.IsSaving = true;\r\n\r\n let elements: any = this.langDataList\r\n .filter((x) => x.langId == this.currentLocale)\r\n .map((x) => x);\r\n if (elements.length == 0) {\r\n this.langDataList.push({ langId: this.currentLocale, title: body.name, text: body.text });\r\n } else {\r\n elements[0].title = body.name;\r\n elements[0].text = body.text;\r\n }\r\n let titleString = '';\r\n let textString = '';\r\n [].forEach.call(this.langDataList, (e, indexE) => {\r\n if (indexE != 0) {\r\n titleString += '*L*';\r\n textString += '*L*';\r\n }\r\n titleString += e.langId + '*I*' + e.title;\r\n textString += e.text;\r\n });\r\n\r\n let json = {\r\n Id: body.id,\r\n Title: titleString,\r\n Text: textString,\r\n Link: this.pollType,\r\n Image: this.pollStar,\r\n Type: 'poll',\r\n isActual: body.disabled.checked,\r\n };\r\n // console.log(json);\r\n this.http\r\n .put(this.admin.getUrl() + 'PageElement/' + body.id, json, options)\r\n .subscribe((data) => {\r\n this.IsSaving = false;\r\n this.onClose(true, null);\r\n });\r\n }\r\n\r\n onClose(save, type): void {\r\n if (isChange && !save) {\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: '600px',\r\n disableClose: true,\r\n data: { text: 'Увага! Документ буде закритий без збереження змін. Продовжити?' },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n this.unChangeRegister();\r\n this.dialogRef.close(type);\r\n }\r\n });\r\n } else {\r\n this.unChangeRegister();\r\n this.dialogRef.close(type);\r\n }\r\n }\r\n}\r\n","
\r\n

Управління Опитуванням

\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
У вас недостатньо прав для редагування чи видалення вибраних запитань!
\r\n
\r\n\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Внутрішня назва {{row.TableTitle}} Тип запитання {{row.TableType}}
\r\n\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n

Будь-ласка зачекайте!
Триває завантаження

\r\n
\r\n
","
\r\n

{{ data.name }}

\r\n

{{ this.langCurrentTitle }}

\r\n \r\n
\r\n\r\n
\r\n
\r\n
Запитання: *
\r\n \r\n \r\n \r\n Обов'язково до заповнення!\r\n \r\n \r\n
\r\n
\r\n
Тип запитання:
\r\n \r\n Впливає на порядок відображення запитань при опитуванні\r\n \r\n Головне запитання\r\n Дозвіл на додатнові запитання\r\n Додаткове запитання\r\n \r\n \r\n
\r\n
\r\n
Зірки:
\r\n \r\n При виборі користувачем зірок меньше цього значення, будуть показані додaткові запитання\r\n \r\n 1\r\n 2\r\n 3\r\n 4\r\n 5\r\n \r\n \r\n
\r\n
\r\n
Повідомлення:
\r\n \r\n \r\n \r\n
\r\n
\r\n
Відключити (Disable):
\r\n \r\n
Увага! Можливість розблокувати відображення форми доступно тільки для користувача із правами \"Адміністратор\".
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n {{ list.Text }}\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n

Будь-ласка зачекайте!
Триває збереження

\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n

Будь-ласка зачекайте!
Триває завантаження

\r\n
\r\n
","import { SelectionModel } from '@angular/cdk/collections';\r\nimport { Component, ViewChild } from '@angular/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport {\r\n MAT_MOMENT_DATE_FORMATS,\r\n MomentDateAdapter,\r\n MAT_MOMENT_DATE_ADAPTER_OPTIONS,\r\n} from '@angular/material-moment-adapter';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { DndDropEvent, DropEffect } from 'ngx-drag-drop';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { FileInput } from 'ngx-material-file-input';\r\nimport { AES, enc } from 'crypto-ts';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport {\r\n InputComponent,\r\n ColumnComponent,\r\n CheckboxComponent,\r\n SelectComponent,\r\n RadioComponent,\r\n FileComponent,\r\n EditorComponent,\r\n DateComponent,\r\n CopyComponent,\r\n CourtComponent,\r\n OrderComponent,\r\n} from './component';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner';\r\n\r\nimport { ConfirmMenu } from '../confirm-menu';\r\nimport { InfoMenu } from '../info-menu';\r\nimport { AdminPage } from './admin';\r\n\r\nexport interface RequestType {\r\n Id: number;\r\n Title: string;\r\n Text: string;\r\n Author: string;\r\n CreateDate: string;\r\n RequestForms: string[];\r\n Image: string;\r\n TableTitle: string;\r\n}\r\n\r\nexport interface RequestForms {\r\n Id: number;\r\n TableTitle: string;\r\n Title: string;\r\n Author: string;\r\n CreateDate: string;\r\n RequestAttributes: string[];\r\n Condition: string;\r\n Disabled: any;\r\n}\r\n\r\nexport interface RequestAttributes {\r\n id: number;\r\n requestAttributeId: number;\r\n requestFormId: number;\r\n requestForm: string;\r\n required: boolean;\r\n tableLabel: string; //++\r\n label: string;\r\n tableDescription: string; //++\r\n description: string;\r\n tablePlaceholder: string; //++\r\n placeholder: string;\r\n key: string;\r\n type: string;\r\n mask: string;\r\n tableTooltip: string; //++\r\n tooltip: string;\r\n disabled: boolean;\r\n display: boolean;\r\n condition: any;\r\n tableDialog: string; //++\r\n dialog: string;\r\n selectors: any;\r\n columns: any[];\r\n value: any;\r\n dublicate: number;\r\n position: number;\r\n aligment: string;\r\n}\r\n\r\nexport interface TableFilter {\r\n column: string;\r\n value: any;\r\n}\r\n\r\nexport interface AttrSaveData {\r\n id: number;\r\n userRequestId: number;\r\n requestAttributeId: number;\r\n data: string;\r\n}\r\n\r\nexport interface ConditionList {\r\n formT: any;\r\n target: any;\r\n condition: string;\r\n formF: string;\r\n field: any;\r\n date: string;\r\n on: string;\r\n value: string;\r\n else: string;\r\n}\r\n\r\nvar draggables = [\r\n {\r\n label: 'Текст',\r\n tableLabel: 'Текст (Input)',\r\n key: 'input',\r\n type: 'input',\r\n disabled: false,\r\n display: true,\r\n required: false,\r\n },\r\n {\r\n label: 'Прапорець',\r\n tableLabel: 'Прапорець (Checkbox)',\r\n key: 'checkbox',\r\n type: 'checkbox',\r\n disable: false,\r\n display: true,\r\n required: false,\r\n dialog: '',\r\n },\r\n {\r\n label: 'Вибірка',\r\n tableLabel: 'Вибірка (Select)',\r\n key: 'select',\r\n type: 'select',\r\n disable: false,\r\n display: true,\r\n required: false,\r\n selectors: { type: 'custom', list: [] },\r\n },\r\n {\r\n label: 'Перемикач',\r\n tableLabel: 'Перемикач (Radio)',\r\n key: 'radio',\r\n type: 'radio',\r\n disable: false,\r\n display: true,\r\n required: false,\r\n selectors: { type: 'custom', list: [] },\r\n },\r\n {\r\n label: 'Файл',\r\n tableLabel: 'Файл (File)',\r\n key: 'file',\r\n type: 'file',\r\n disable: false,\r\n display: true,\r\n required: false,\r\n },\r\n {\r\n label: 'Редактор',\r\n tableLabel: 'Редактор (Editor)',\r\n key: 'editor',\r\n type: 'editor',\r\n disable: false,\r\n display: true,\r\n required: false,\r\n },\r\n {\r\n label: 'Дата',\r\n tableLabel: 'Дата (Date)',\r\n key: 'date',\r\n type: 'date',\r\n mask: 'date',\r\n disable: false,\r\n display: true,\r\n required: false,\r\n },\r\n {\r\n label: 'Дублікат',\r\n tableLabel: 'Дублікат (Dublicate)',\r\n key: 'copy',\r\n display: true,\r\n type: 'copy',\r\n columns: new Array(1).fill([]),\r\n },\r\n {\r\n label: 'Колонки',\r\n tableLabel: 'Колонки (Collumn)',\r\n key: 'column',\r\n type: 'column',\r\n display: true,\r\n required: false,\r\n columns: new Array(2).fill([]),\r\n },\r\n {\r\n label: 'Cуд',\r\n tableLabel: 'Cуд (Court)',\r\n key: 'court',\r\n type: 'court',\r\n disable: false,\r\n display: true,\r\n required: false,\r\n selectors: { type: 'court', list: new Array(3) },\r\n },\r\n {\r\n label: 'Електронна заява',\r\n tableLabel: 'Електронна заява (E-form)',\r\n key: 'order',\r\n type: 'order',\r\n disable: false,\r\n display: true,\r\n required: false,\r\n selectors: { type: 'order', list: [{ name: '', value: '', dialog: '' }] },\r\n },\r\n];\r\n\r\nvar isChange = false;\r\nvar options = {};\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Request Form ++\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n@Component({\r\n selector: 'request-form',\r\n templateUrl: 'request-form.html',\r\n styleUrls: ['admin.css'],\r\n providers: [AdminPage],\r\n})\r\nexport class RequestFormPage {\r\n userAllow: boolean = true;\r\n isReload: boolean = false;\r\n IsLoading: boolean = false;\r\n isDeleting: boolean = false;\r\n\r\n pageSizer: number = 5;\r\n pageIndexer: number = 0;\r\n filterAll: number = 0;\r\n barValue: number = 50;\r\n\r\n currentLocale: string = '';\r\n\r\n dateList: string[] = [];\r\n authorList: string[] = [];\r\n filter: any = [];\r\n getFilter: any = [];\r\n saveFilter: any = [];\r\n dataParent: RequestType[] = [];\r\n dataBase: RequestForms[] = [];\r\n displayedColumns: string[] = ['select', 'Title', 'Type', 'CreateDate', 'Author'];\r\n\r\n filterSelect = {\r\n Title: '',\r\n CreateDate: '',\r\n Author: '',\r\n RequestTypeId: '',\r\n };\r\n dataSource: MatTableDataSource;\r\n selection = new SelectionModel(true, []);\r\n barColor: ThemePalette = 'primary';\r\n barMode: ProgressSpinnerMode = 'indeterminate';\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(\r\n private router: Router,\r\n private cookieService: CookieService,\r\n private admin: AdminPage,\r\n private http: HttpClient,\r\n public dialog: MatDialog,\r\n private route: ActivatedRoute\r\n ) {\r\n this.IsLoading = true;\r\n\r\n if (this.cookieService.get('access_token') == '') {\r\n this.router.navigate(['/admin/login']);\r\n }\r\n\r\n options = {\r\n headers: new HttpHeaders({\r\n Authorization: 'Bearer ' + cookieService.get('access_token'),\r\n 'Content-Type': 'application/json',\r\n }),\r\n };\r\n\r\n if (this.cookieService.get('page_size').split('_')[0] == 'f') {\r\n this.pageSizer = parseInt(this.cookieService.get('page_size').split('_')[1]);\r\n this.pageIndexer = parseInt(this.cookieService.get('page_size').split('_')[2]);\r\n } else {\r\n this.cookieService.delete('page_size', '/');\r\n }\r\n\r\n if (this.cookieService.get('page_filter').split('_')[0] == 'f') {\r\n let text = this.cookieService.get('page_filter').split('_')[1];\r\n let unpack: any = AES.decrypt(text, 'kusaid');\r\n unpack = unpack.toString(enc.Utf8);\r\n this.saveFilter = JSON.parse(unpack);\r\n } else {\r\n this.cookieService.delete('page_filter', '/');\r\n }\r\n\r\n this.currentLocale = this.admin.getLocale();\r\n\r\n this.dataSource = new MatTableDataSource(this.dataBase);\r\n this.dataSource.filterPredicate = this.createFilter;\r\n\r\n if (this.router.getCurrentNavigation().extras.skipLocationChange != false) {\r\n let filterData = this.router.getCurrentNavigation().extras.state;\r\n this.getFilter = [filterData.filterName, filterData.filterType];\r\n if (filterData.langType != undefined) {\r\n if (filterData.langType == 'reload') {\r\n this.currentLocale = this.admin.getLocale();\r\n if (filterData.itemData.Id == 0) {\r\n filterData.itemData.Id = filterData.itemData.LangParent;\r\n filterData.itemData.Lang = this.admin.getDefLocale();\r\n }\r\n this.selection.selected.push(filterData.itemData);\r\n this.isReload = true;\r\n } else {\r\n this.selection = new SelectionModel(true, []);\r\n if (filterData.langType == 'lang') {\r\n this.admin.refreshLocale();\r\n }\r\n this.dbRequest();\r\n }\r\n }\r\n }\r\n this.dbRequest();\r\n }\r\n\r\n dbRequest() {\r\n this.http.get(this.admin.getUrl() + 'RequestType').subscribe((dataT) => {\r\n this.dataParent = [];\r\n this.dateList = [];\r\n [].forEach.call(dataT, (e) => {\r\n let tableTitle = e.title.split('*L*');\r\n let elements = tableTitle\r\n .filter((x) => x.split('*I*')[0] == this.admin.getDefLocale())\r\n .map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split('*I*')[1];\r\n }\r\n\r\n this.dataParent.push({\r\n Id: e.id,\r\n TableTitle: tableTitle,\r\n Title: e.title,\r\n Text: e.desc,\r\n Author: e.createdById,\r\n CreateDate: e.createdAt.split('T')[0],\r\n RequestForms: e.requestTypeRequestForms,\r\n Image: e.picture,\r\n });\r\n });\r\n this.http.get(this.admin.getUrl() + 'Account/GetUsers', options).subscribe((dataU) => {\r\n this.http.get(this.admin.getUrl() + 'RequestForm').subscribe((dataF) => {\r\n this.dataBase = [];\r\n this.dateList = [];\r\n this.authorList = [];\r\n [].forEach.call(dataF, (e) => {\r\n if (e.requestTypeRequestForms.length > 0) {\r\n let date = e.createdAt.split('T')[0].split('-');\r\n date = date.reverse();\r\n date = date.join('.');\r\n let author: any = 'Система';\r\n if (e.createdById != null) {\r\n [].forEach.call(dataU, (c) => {\r\n if (c.id == e.createdById) {\r\n author = c.email;\r\n }\r\n });\r\n }\r\n\r\n let tableTitle = e.title.split('*L*');\r\n let elements = tableTitle\r\n .filter((x) => x.split('*I*')[0] == this.admin.getDefLocale())\r\n .map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split('*I*')[1];\r\n }\r\n\r\n this.dataBase.push({\r\n Id: e.id,\r\n TableTitle: tableTitle,\r\n Title: e.title,\r\n Author: author,\r\n CreateDate: date,\r\n RequestAttributes: e.requestTypeRequestForms,\r\n Condition: e.condition,\r\n Disabled: e.isActual,\r\n });\r\n\r\n if (!this.dateList.some((e) => e === date)) {\r\n this.dateList.push(date);\r\n }\r\n if (!this.authorList.some((e) => e === author)) {\r\n this.authorList.push(author);\r\n }\r\n }\r\n });\r\n\r\n this.dataSource = new MatTableDataSource(this.dataBase);\r\n this.dataSource.filterPredicate = this.createFilter;\r\n this.paginator.pageSize = this.pageSizer;\r\n this.paginator.pageIndex = this.pageIndexer;\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n\r\n if (this.getFilter.length > 0) {\r\n this.applyFilter(this.getFilter[0], this.getFilter[1]);\r\n this.getFilter = [];\r\n } else if (this.saveFilter.length > 0) {\r\n [].forEach.call(this.saveFilter, (e, indexE) => {\r\n if (e.column == 'Author') {\r\n if (this.authorList.filter((x) => x == e.value).map((x) => x).length > 0) {\r\n this.applyFilter(e.value, e.column);\r\n } else {\r\n this.applyFilter('', e.column);\r\n }\r\n } else {\r\n this.applyFilter(e.value, e.column);\r\n }\r\n });\r\n }\r\n\r\n this.IsLoading = false;\r\n\r\n if (this.isReload) {\r\n this.isReload = false;\r\n this.openMenu('edit');\r\n }\r\n });\r\n });\r\n });\r\n }\r\n\r\n pageSize() {\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(':')[0];\r\n let secure = false;\r\n if (location.protocol == 'https:') {\r\n secure = true;\r\n }\r\n this.cookieService.set(\r\n 'page_size',\r\n 'f_' +\r\n this.dataSource.paginator.pageSize.toString() +\r\n '_' +\r\n this.dataSource.paginator.pageIndex.toString(),\r\n expires,\r\n '/',\r\n local,\r\n secure\r\n );\r\n }\r\n\r\n createFilter(data: any, filter: any) {\r\n let filters: TableFilter[] = filter;\r\n let check = 0;\r\n [].forEach.call(filters, (e) => {\r\n if (e.column == 'RequestTypeId') {\r\n [].forEach.call(data.RequestAttributes, (c) => {\r\n let column = e.column.charAt(0).toLowerCase() + e.column.substring(1);\r\n if (c[column]) {\r\n let dataVal = c[column].toString().toLowerCase();\r\n if (dataVal == e.value) {\r\n check++;\r\n }\r\n }\r\n });\r\n } else if (e.column == 'Title') {\r\n let dataVal = data[e.column].toLowerCase();\r\n if (dataVal.includes(e.value)) {\r\n check++;\r\n }\r\n } else if (e.column == 'Author') {\r\n let dataVal = data[e.column].toLowerCase();\r\n if (dataVal.includes(e.value)) {\r\n check++;\r\n }\r\n } else {\r\n if (e.value == data[e.column]) {\r\n check++;\r\n }\r\n }\r\n });\r\n if (check == filters.length) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n applyFilter(filterValue: string, filterColumn: string) {\r\n if (filterValue == undefined) {\r\n filterValue = '';\r\n } else {\r\n filterValue = filterValue.toString().trim().toLowerCase();\r\n }\r\n let isFilter = false;\r\n [].forEach.call(this.filter, (e, index) => {\r\n if (e) {\r\n if (e.column == filterColumn) {\r\n if (filterValue != '') {\r\n e.value = filterValue;\r\n isFilter = true;\r\n } else {\r\n this.filter.splice(index, 1);\r\n }\r\n }\r\n }\r\n });\r\n if (!isFilter) {\r\n if (filterValue != '') {\r\n let values = filterValue;\r\n this.filter.push({\r\n column: filterColumn,\r\n value: values,\r\n });\r\n }\r\n }\r\n switch (filterColumn) {\r\n case 'Title':\r\n this.filterSelect.Title = filterValue;\r\n break;\r\n case 'CreateDate':\r\n this.filterSelect.CreateDate = filterValue;\r\n break;\r\n case 'Author':\r\n if (filterValue == 'система') {\r\n filterValue = 'Система';\r\n }\r\n this.filterSelect.Author = filterValue;\r\n break;\r\n case 'RequestTypeId':\r\n this.filterSelect.RequestTypeId = filterValue;\r\n break;\r\n }\r\n\r\n this.dataSource.filter = this.filter;\r\n if (this.dataSource.filter.length == 0) {\r\n this.filterAll = this.dataSource.data.length;\r\n } else {\r\n if (this.selection.selected.length == 0) {\r\n this.filterAll = this.dataSource.data.length;\r\n } else {\r\n this.filterAll = this.selection.selected.length;\r\n }\r\n }\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n\r\n let pack = JSON.stringify(this.dataSource.filter);\r\n pack = AES.encrypt(pack, 'kusaid').toString();\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(':')[0];\r\n let secure = false;\r\n if (location.protocol == 'https:') {\r\n secure = true;\r\n }\r\n this.cookieService.set('page_filter', 'f_' + pack, expires, '/', local, secure);\r\n }\r\n\r\n isAllSelected() {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.filterAll;\r\n return numSelected === numRows;\r\n }\r\n\r\n masterToggle() {\r\n this.isAllSelected()\r\n ? this.selection.clear()\r\n : this.dataSource.data.forEach((row) => {\r\n if (this.createFilter(row, this.dataSource.filter)) {\r\n this.selection.select(row);\r\n }\r\n });\r\n if (this.selection.selected.length == 0) {\r\n this.filterAll = this.dataSource.data.length;\r\n } else {\r\n this.filterAll = this.selection.selected.length;\r\n }\r\n }\r\n\r\n checkboxLabel(row?: RequestForms): string {\r\n let userId = this.cookieService.get('userName').split('T')[0];\r\n let userRole = parseInt(this.cookieService.get('cookieAllowId').split('T')[1]);\r\n this.userAllow = true;\r\n if (userRole != 1) {\r\n [].forEach.call(this.selection.selected, (e) => {\r\n if (e.Author != userId) {\r\n this.userAllow = false;\r\n }\r\n });\r\n }\r\n if (!row) {\r\n return `${this.isAllSelected() ? 'select' : 'deselect'} all`;\r\n }\r\n return `${this.selection.isSelected(row) ? 'deselect' : 'select'} row ${row.Id + 1}`;\r\n }\r\n\r\n getIndex(id) {\r\n return this.dataBase.findIndex((x) => x.Id === id);\r\n }\r\n\r\n getIndexP(id) {\r\n if (typeof id == 'string') {\r\n id = parseInt(id);\r\n }\r\n return this.dataParent.findIndex((x) => x.Id === id);\r\n }\r\n\r\n getChilds(id, finish) {\r\n let result = null;\r\n this.http.get(this.admin.getUrl() + 'RequestForm').subscribe((data) => {\r\n result = [];\r\n [].forEach.call(data, (e) => {\r\n if (e.Id == parseInt(id)) {\r\n result = e.requestAttributes;\r\n }\r\n });\r\n this.removeChilds(id, result, finish);\r\n });\r\n }\r\n\r\n openMenu(status: string) {\r\n if (status == 'dbClick') {\r\n if (\r\n this.cookieService.get('userName') == this.selection.selected[0].Author ||\r\n this.cookieService.get('cookieAllowId').split('T')[1] == '1'\r\n ) {\r\n status = 'edit';\r\n this.userAllow = true;\r\n } else {\r\n status = 'review';\r\n this.userAllow = false;\r\n }\r\n }\r\n let emptyProduct;\r\n let data;\r\n let index;\r\n switch (status) {\r\n case 'add':\r\n emptyProduct = {\r\n Id: null,\r\n Title: '',\r\n Type: [this.dataParent[0].Id],\r\n };\r\n data = {\r\n name: 'Нова форма заяви',\r\n status: status,\r\n data: emptyProduct,\r\n };\r\n this.admin.setLocale(this.admin.getDefLocale());\r\n this.router.navigateByUrl('/admin/request-form-item', { state: data });\r\n break;\r\n case 'edit':\r\n index = this.getIndex(this.selection.selected[0].Id);\r\n data = {\r\n name: '',\r\n status: status,\r\n data: this.dataBase[index],\r\n };\r\n this.router.navigateByUrl('/admin/request-form-item', { state: data });\r\n break;\r\n case 'review':\r\n index = this.getIndex(this.selection.selected[0].Id);\r\n data = {\r\n name: '',\r\n status: status,\r\n data: this.dataBase[index],\r\n };\r\n this.router.navigateByUrl('/admin/request-form-item', { state: data });\r\n break;\r\n case 'remove':\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: '600px',\r\n disableClose: true,\r\n data: { text: 'Ви дійсно хочете видалити форму заяви?' },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n this.isDeleting = true;\r\n [].forEach.call(this.selection.selected, (e, index) => {\r\n if (index == this.selection.selected.length - 1) {\r\n this.getChilds(e.Id, true);\r\n } else {\r\n this.getChilds(e.Id, false);\r\n }\r\n });\r\n }\r\n });\r\n break;\r\n }\r\n }\r\n\r\n removeChilds(parent, childs, finish) {\r\n if (childs.length > 0) {\r\n [].forEach.call(childs, (c, indexC) => {\r\n this.http\r\n .delete(this.admin.getUrl() + 'RequestAttribute/' + c, options)\r\n .subscribe((data) => {\r\n if (indexC == childs.length - 1) {\r\n this.http\r\n .delete(this.admin.getUrl() + 'RequestForm/' + parent, options)\r\n .subscribe((data) => {\r\n if (finish) {\r\n this.isDeleting = false;\r\n this.refreshTable();\r\n }\r\n });\r\n }\r\n });\r\n });\r\n } else {\r\n this.http.delete(this.admin.getUrl() + 'RequestForm/' + parent, options).subscribe((data) => {\r\n if (finish) {\r\n this.isDeleting = false;\r\n this.refreshTable();\r\n }\r\n });\r\n }\r\n }\r\n\r\n refreshTable() {\r\n this.selection = new SelectionModel(true, []);\r\n if (this.cookieService.get('page_filter').split('_')[0] == 'f') {\r\n let text = this.cookieService.get('page_filter').split('_')[1];\r\n let unpack: any = AES.decrypt(text, 'kusaid');\r\n unpack = unpack.toString(enc.Utf8);\r\n this.saveFilter = JSON.parse(unpack);\r\n }\r\n this.dbRequest();\r\n }\r\n}\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Form Item ++\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n@Component({\r\n selector: 'request-form-item',\r\n templateUrl: 'request-form-item.html',\r\n styleUrls: ['./admin.css'],\r\n providers: [\r\n AdminPage,\r\n { provide: MAT_DATE_LOCALE, useValue: 'uk-UA' },\r\n {\r\n provide: DateAdapter,\r\n useClass: MomentDateAdapter,\r\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\r\n },\r\n { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },\r\n ],\r\n})\r\nexport class RequestFormItem {\r\n IsSaving: boolean = false;\r\n IsLoading: boolean = false;\r\n jsonVisible: boolean = false;\r\n isLoad: boolean = false;\r\n reviewAllow: boolean = true;\r\n conditionFinish: boolean = true;\r\n isAdmin: boolean = false;\r\n isSaveData: boolean = false;\r\n\r\n barValue: number = 50;\r\n previewCourtLoad: number = 0;\r\n saveDataForm: number = -1;\r\n userRequestId: number = 1;\r\n\r\n currentLocale: string = '';\r\n langCurrentTitle: string = '';\r\n currentDragEffectMsg: string = '';\r\n\r\n localeList: any[] = [];\r\n nestableList: RequestAttributes[] = [];\r\n nestableListShow: RequestAttributes[] = [];\r\n dataParent: RequestType[] = [];\r\n dataBase: RequestForms[] = [];\r\n previewValues: any[] = [];\r\n loadAttrAll: any[] = [];\r\n loadAttrList: any[] = [];\r\n loadAttrBase: any[] = [];\r\n attributesBase: any[] = [];\r\n attributesParent: any[] = [];\r\n attributesChild: any[] = [];\r\n removeAttrList: any[] = [];\r\n nestableListPreview: RequestAttributes[] = [];\r\n attrSaveData: AttrSaveData[] = [];\r\n requestForm: any[] = [];\r\n conditionValues: any[] = [];\r\n conditionMore: any[] = [];\r\n conditionOn: any[] = [];\r\n dateDate: any[] = [];\r\n dateTime: any[] = [];\r\n langDataList: any[] = [];\r\n conditionArray: any[] = [];\r\n conditionFieldList: any[] = [];\r\n conditionFinArray: any[] = [];\r\n conditionList: ConditionList[] = [];\r\n userDataTypeValue: any[] = [];\r\n showCourtList: any[] = new Array(3);\r\n previewCourtList: any[] = new Array(3);\r\n saveDataArray: any[] = [];\r\n\r\n data: any = null;\r\n json: any = null;\r\n attrId: any = null;\r\n currentDraggableEvent: DragEvent;\r\n titleFormControl = new FormControl();\r\n testFormControl = new FormControl();\r\n selectorList: any = null;\r\n draggables = draggables;\r\n barColor: ThemePalette = 'primary';\r\n barMode: ProgressSpinnerMode = 'indeterminate';\r\n requestType: any = null;\r\n emailFormControl = new FormControl('', [Validators.email]);\r\n emailFormControlShow = new FormControl('', [Validators.email]);\r\n maskLimitPatterns = { A: { pattern: new RegExp('.') } };\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private admin: AdminPage,\r\n private router: Router,\r\n private snackBarService: MatSnackBar,\r\n public dialog: MatDialog,\r\n public cookieService: CookieService\r\n ) {\r\n isChange = false;\r\n\r\n if (this.router.getCurrentNavigation().extras.skipLocationChange == false) {\r\n this.router.navigate(['/admin/request-form']);\r\n } else {\r\n this.IsLoading = true;\r\n\r\n this.currentLocale = this.admin.getLocale();\r\n\r\n let interval = setInterval(() => {\r\n if (this.admin.getDBStatus()) {\r\n clearInterval(interval);\r\n this.localeList = this.admin.getList('Lang');\r\n\r\n if (\r\n this.cookieService.get('cookieAllowId').split('T')[1] == '1' ||\r\n this.admin.managerDisable\r\n ) {\r\n this.isAdmin = true;\r\n }\r\n\r\n if (this.data.status == 'add' && !this.isAdmin) {\r\n this.data.data.Disabled = true;\r\n }\r\n }\r\n }, 50);\r\n\r\n this.data = this.router.getCurrentNavigation().extras.state;\r\n\r\n let titleList = this.data.data.Title.split('*L*');\r\n [].forEach.call(titleList, (e, indexE) => {\r\n if (e.split('*I*').length == 1) {\r\n e = this.admin.getDefLocale() + '*I*' + e;\r\n }\r\n this.langDataList.push({\r\n langId: e.split('*I*')[0],\r\n title: e.split('*I*')[1],\r\n });\r\n });\r\n let elements = this.langDataList.filter((x) => x.langId == this.currentLocale).map((x) => x);\r\n if (elements.length == 0) {\r\n elements = this.langDataList\r\n .filter((x) => x.langId == this.admin.getDefLocale())\r\n .map((x) => x);\r\n }\r\n this.langCurrentTitle = elements[0].title;\r\n\r\n this.titleFormControl = new FormControl(this.langCurrentTitle, [Validators.required]);\r\n\r\n if (this.data.data.RequestAttributes) {\r\n this.data.data.RequestTypeId = this.data.data.RequestAttributes[0].requestTypeId;\r\n }\r\n\r\n this.IsLoading = true;\r\n this.dbRequest('Lib', null, null);\r\n this.dbRequest('Region', null, null);\r\n this.dbRequest('Type', null, null);\r\n this.dbRequest('Form', null, null);\r\n this.dbRequest('Attr', null, null);\r\n\r\n let value: ConditionList = {\r\n formT: '',\r\n target: '',\r\n condition: '',\r\n formF: '',\r\n field: '',\r\n date: '',\r\n on: '',\r\n value: '',\r\n else: '',\r\n };\r\n this.conditionList.push(value);\r\n if (this.data.data.Condition != null) {\r\n let inter = setInterval(() => {\r\n if (this.requestForm != undefined) {\r\n if (this.requestForm.length > 0) {\r\n clearInterval(inter);\r\n this.conditionUnPacker(this.data.data.Condition);\r\n }\r\n }\r\n }, 50);\r\n }\r\n // console.log(this.data);\r\n }\r\n }\r\n\r\n conditionUnPacker(value) {\r\n let condition: any = [];\r\n if (value != null && typeof value === 'string') {\r\n let list = value.split('*I*');\r\n [].forEach.call(list, (e, index) => {\r\n let text = e.split('|');\r\n if (text.length > 10) {\r\n if (Number.isInteger(parseInt(text[1]))) {\r\n text[0] = text[0] + '|' + text[1];\r\n text.splice(1, 1);\r\n }\r\n if (Number.isInteger(parseInt(text[4]))) {\r\n text[3] = text[3] + '|' + text[4];\r\n text.splice(4, 1);\r\n }\r\n }\r\n let array: any = {\r\n formT: text[0],\r\n target: text[1],\r\n condition: text[2],\r\n else: text[3],\r\n formF: text[4],\r\n field: text[5],\r\n on: text[6],\r\n value: text[7],\r\n date: text[8],\r\n };\r\n if (array.formT == undefined) {\r\n array.formT = '';\r\n }\r\n if (array.target == undefined) {\r\n array.target = '';\r\n }\r\n if (array.condition == undefined) {\r\n array.condition = '';\r\n }\r\n if (array.else == undefined) {\r\n array.else = '';\r\n }\r\n if (array.formF == undefined) {\r\n array.formF = '';\r\n }\r\n if (array.field == undefined) {\r\n array.field = '';\r\n }\r\n if (array.on == undefined) {\r\n array.on = '';\r\n }\r\n if (array.value == undefined) {\r\n array.value = '';\r\n }\r\n if (array.date == undefined) {\r\n array.date = '';\r\n }\r\n list[index] = array;\r\n });\r\n condition = list;\r\n this.conditionList = condition;\r\n [].forEach.call(this.conditionList, (e, index) => {\r\n if (e.formT != '') {\r\n this.changeCondition(parseInt(e.formT), 'formT', index);\r\n }\r\n if (e.target != '') {\r\n this.conditionList[index].target = parseInt(e.target);\r\n }\r\n if (e.field != '') {\r\n this.conditionList[index].field = parseInt(e.field);\r\n }\r\n this.conditionList[index].condition = e.condition;\r\n this.conditionList[index].else = e.else;\r\n this.conditionList[index].on = e.on;\r\n this.conditionList[index].value = e.value;\r\n this.loadTarget({ value: e.target }, index);\r\n this.onOwnDateLoad(index);\r\n });\r\n }\r\n }\r\n\r\n conditionPacker(value) {\r\n if (value != null) {\r\n let list = [];\r\n [].forEach.call(value, (e) => {\r\n list.push(\r\n e.formT +\r\n '|' +\r\n e.target +\r\n '|' +\r\n e.condition +\r\n '|' +\r\n e.else +\r\n '|' +\r\n e.formF +\r\n '|' +\r\n e.field +\r\n '|' +\r\n e.on +\r\n '|' +\r\n e.value +\r\n '|' +\r\n e.date\r\n );\r\n });\r\n return list.join('*I*');\r\n }\r\n return null;\r\n }\r\n\r\n dbRequest(type, value, preview) {\r\n switch (type) {\r\n case 'Region':\r\n this.http.get(this.admin.getUrl() + 'Region').subscribe((data) => {\r\n this.showCourtList[0] = [];\r\n this.showCourtList[1] = [];\r\n this.showCourtList[2] = [];\r\n this.previewCourtList[0] = [];\r\n this.previewCourtList[1] = [];\r\n this.previewCourtList[2] = [];\r\n this.showCourtList[0].push({ id: 0, title: '' });\r\n this.previewCourtList[0].push({ id: 0, title: '' });\r\n [].forEach.call(data, (e) => {\r\n this.showCourtList[0].push(e);\r\n this.previewCourtList[0].push(e);\r\n });\r\n });\r\n break;\r\n case 'City':\r\n this.http.get(this.admin.getUrl() + 'City').subscribe((data) => {\r\n if (preview) {\r\n this.previewCourtList[1] = [];\r\n this.previewCourtList[2] = [];\r\n } else {\r\n this.showCourtList[1] = [];\r\n this.showCourtList[2] = [];\r\n }\r\n [].forEach.call(data, (e) => {\r\n if (e.regionId == value) {\r\n if (preview) {\r\n this.previewCourtList[1].push(e);\r\n } else {\r\n this.showCourtList[1].push(e);\r\n }\r\n }\r\n });\r\n });\r\n break;\r\n case 'Court':\r\n this.http.get(this.admin.getUrl() + 'Court').subscribe((data) => {\r\n if (preview) {\r\n this.previewCourtList[2] = [];\r\n } else {\r\n this.showCourtList[2] = [];\r\n }\r\n [].forEach.call(data, (e) => {\r\n if (e.cityId == value) {\r\n if (preview) {\r\n this.previewCourtList[2].push(e);\r\n } else {\r\n this.showCourtList[2].push(e);\r\n }\r\n }\r\n });\r\n });\r\n break;\r\n case 'Type':\r\n this.http.get(this.admin.getUrl() + 'RequestType').subscribe((data) => {\r\n this.dataParent = [];\r\n [].forEach.call(data, (e) => {\r\n let tableTitle = e.title.split('*L*');\r\n let elements = tableTitle\r\n .filter((x) => x.split('*I*')[0] == this.admin.getDefLocale())\r\n .map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split('*I*')[1];\r\n }\r\n\r\n this.dataParent.push({\r\n Id: e.id,\r\n TableTitle: tableTitle,\r\n Title: e.title,\r\n Text: e.desc,\r\n Author: null,\r\n CreateDate: e.createdAt.split('T')[0],\r\n RequestForms: e.requestForms,\r\n Image: null,\r\n });\r\n });\r\n if (this.data.data.RequestTypeId == undefined) {\r\n this.data.data.RequestTypeId = data[0].id;\r\n }\r\n });\r\n break;\r\n case 'Form':\r\n this.http.get(this.admin.getUrl() + 'RequestForm').subscribe((data) => {\r\n this.requestForm = [];\r\n [].forEach.call(data, (e) => {\r\n [].forEach.call(e.requestTypeRequestForms, (c) => {\r\n if (\r\n c.requestTypeId == this.data.data.RequestTypeId &&\r\n c.requestFormId != this.data.data.Id\r\n ) {\r\n let tableTitle = e.title.split('*L*');\r\n let elements = tableTitle\r\n .filter((x) => x.split('*I*')[0] == this.admin.getDefLocale())\r\n .map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split('*I*')[1];\r\n }\r\n e.tableTitle = tableTitle;\r\n\r\n this.requestForm.push(e);\r\n }\r\n });\r\n });\r\n });\r\n break;\r\n case 'Attr':\r\n this.http.get(this.admin.getUrl() + 'RequestAttribute').subscribe((data) => {\r\n this.loadAttrAll = [];\r\n this.loadAttrBase = [];\r\n this.loadAttrList = [];\r\n let prePosition = [];\r\n [].forEach.call(data, (e) => {\r\n if (e.requestFormId == this.data.data.Id) {\r\n let tableTitle = e.label.split('*L*');\r\n let elements = tableTitle\r\n .filter((x) => x.split('*I*')[0] == this.admin.getDefLocale())\r\n .map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split('*I*')[1];\r\n }\r\n e.tableTitle = tableTitle;\r\n\r\n prePosition.push(e);\r\n }\r\n });\r\n prePosition.sort((a, b) =>\r\n a.position > b.position ? 1 : b.position > a.position ? -1 : 0\r\n );\r\n [].forEach.call(prePosition, (e) => {\r\n let tableTitle = e.label.split('*L*');\r\n let elements = tableTitle\r\n .filter((x) => x.split('*I*')[0] == this.admin.getDefLocale())\r\n .map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split('*I*')[1];\r\n }\r\n e.tableTitle = tableTitle;\r\n\r\n this.loadAttrAll.push(e);\r\n // if(e.requestFormId == this.data.data.Id){\r\n this.loadAttrBase.push(e);\r\n this.loadAttrList.push(e);\r\n // }\r\n });\r\n\r\n this.buildAttr();\r\n this.jsonUpdate();\r\n });\r\n break;\r\n case 'Data':\r\n this.http.get(this.admin.getUrl() + 'UserRequest').subscribe((data) => {\r\n this.attrSaveData = [];\r\n let datas: any = [];\r\n datas = data;\r\n let index = datas\r\n .map(function (e) {\r\n return e.isActual;\r\n })\r\n .indexOf(true);\r\n if (index != -1) {\r\n [].forEach.call(datas[index].userDatas, (e) => {\r\n this.attrSaveData.push({\r\n id: e.id,\r\n userRequestId: e.userRequestId,\r\n requestAttributeId: e.requestAttributeId,\r\n data: e.data,\r\n });\r\n });\r\n }\r\n this.buildUserData();\r\n this.isLoad = false;\r\n });\r\n break;\r\n case 'Lib':\r\n this.http.get(this.admin.getUrl() + 'userDataTypeValue').subscribe((data) => {\r\n this.userDataTypeValue = [];\r\n [].forEach.call(data, (e) => {\r\n let tableTitle = e.value.split('*L*');\r\n let elements = tableTitle\r\n .filter((x) => x.split('*I*')[0] == this.admin.getDefLocale())\r\n .map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split('*I*')[1];\r\n }\r\n\r\n this.userDataTypeValue.push({\r\n Id: e.id,\r\n Title: tableTitle,\r\n Email: e.email,\r\n Parent: e.uerDataTypeId,\r\n });\r\n });\r\n // this.isLoad = false;\r\n });\r\n break;\r\n }\r\n }\r\n\r\n buildAttr() {\r\n this.attributesBase = [];\r\n this.attributesChild = [];\r\n this.attributesParent = [];\r\n this.nestableList = [];\r\n\r\n [].forEach.call(this.loadAttrBase, (e) => {\r\n if (\r\n e.requestFormId == this.data.data.Id ||\r\n (e.requestFormId == this.data.data.LangParent && this.currentLocale == this.data.data.Lang)\r\n ) {\r\n if (e.requestAttributeId != null || e.requestAttributeId != undefined) {\r\n let array = [];\r\n array.push(e);\r\n if (!this.attributesBase.some((c) => c === e.requestAttributeId)) {\r\n this.attributesBase.push(e.requestAttributeId);\r\n this.attributesChild.push(array);\r\n } else {\r\n let index = this.attributesBase.indexOf(e.requestAttributeId);\r\n this.attributesChild[index] = this.attributesChild[index].concat(array);\r\n }\r\n } else {\r\n this.attributesParent.push(e);\r\n }\r\n }\r\n });\r\n this.dataFormer(this.attributesParent, null);\r\n setTimeout(() => {\r\n this.nestableListShow = JSON.parse(JSON.stringify(this.nestableList));\r\n this.nestableListPreview = JSON.parse(JSON.stringify(this.nestableList));\r\n\r\n this.buildNesteData();\r\n\r\n this.dbRequest('Data', null, null);\r\n }, 500);\r\n }\r\n\r\n buildNesteData() {\r\n let array = this.dataLiner(this.nestableListShow, true);\r\n [].forEach.call(array, (e) => {\r\n this.conditionControl('show', e);\r\n });\r\n }\r\n\r\n buildUserData() {\r\n let array = this.dataLiner(this.nestableListPreview, true);\r\n let dub = [];\r\n let number = [];\r\n let data = [];\r\n [].forEach.call(array, (e) => {\r\n let dataArray = [];\r\n let indexF = this.attrSaveData\r\n .map(function (c) {\r\n return c.requestAttributeId;\r\n })\r\n .indexOf(e.id);\r\n let dubId = this.getDublicateId(array, e.id);\r\n if (typeof dubId === 'number') {\r\n if (indexF != -1) {\r\n dub.push(dubId);\r\n dataArray.push(this.attrSaveData[indexF].data);\r\n number.push(this.attrSaveData[indexF].data.split('|&|').length);\r\n }\r\n }\r\n if (indexF != -1) {\r\n if (e.id == this.attrSaveData[indexF].requestAttributeId) {\r\n if (e.type == 'date') {\r\n if (e.value != '') {\r\n if (this.attrSaveData[indexF].data.split('|&|').length == 1) {\r\n let value = this.attrSaveData[indexF].data.split('-');\r\n e.value = new Date(parseInt(value[2]), parseInt(value[1]) - 1, parseInt(value[0]));\r\n if (e.mask != 'time') {\r\n e.placeholder = '';\r\n } else {\r\n let time = this.attrSaveData[indexF].data.split(' ');\r\n if (time.length > 1) {\r\n e.placeholder = time[1];\r\n e.value.setHours(parseInt(time[1].split(':')[0]));\r\n e.value.setMinutes(parseInt(time[1].split(':')[1]));\r\n }\r\n }\r\n } else {\r\n e.value = this.attrSaveData[indexF].data;\r\n e.placeholder = '';\r\n }\r\n } else {\r\n let value = this.attrSaveData[indexF].data.split('-');\r\n e.value = new Date(parseInt(value[2]), parseInt(value[1]) - 1, parseInt(value[0]));\r\n if (e.mask != 'time') {\r\n e.placeholder = '';\r\n } else {\r\n let time = this.attrSaveData[indexF].data.split(' ');\r\n if (time.length > 1) {\r\n e.placeholder = time[1];\r\n e.value.setHours(parseInt(time[1].split(':')[0]));\r\n e.value.setMinutes(parseInt(time[1].split(':')[1]));\r\n }\r\n }\r\n }\r\n } else if (e.type == 'file') {\r\n let newFile = new FileInput([\r\n {\r\n lastModified: null,\r\n name: this.attrSaveData[indexF].data,\r\n size: null,\r\n type: null,\r\n slice: null,\r\n },\r\n ]);\r\n e.value = newFile;\r\n } else if (e.type == 'checkbox') {\r\n if (this.attrSaveData[indexF].data == '' || this.attrSaveData[indexF].data == null) {\r\n e.value = false;\r\n } else {\r\n e.value = JSON.parse(this.attrSaveData[indexF].data);\r\n }\r\n } else if (e.type == 'court') {\r\n let courtData = this.attrSaveData[indexF].data.split('_');\r\n if (courtData.length == 1) {\r\n courtData = ['0', '0', '0'];\r\n } else {\r\n this.dbRequest('City', parseInt(courtData[0]), true);\r\n setTimeout(() => {\r\n this.dbRequest('Court', parseInt(courtData[1]), true);\r\n }, 100);\r\n }\r\n e.value = [parseInt(courtData[0]), parseInt(courtData[1]), parseInt(courtData[2])];\r\n } else {\r\n e.value = this.attrSaveData[indexF].data;\r\n }\r\n }\r\n }\r\n if (dataArray.length > 0) {\r\n data.push(dataArray);\r\n }\r\n this.conditionControl('preview', e);\r\n });\r\n setTimeout(() => {\r\n this.isLoad = true;\r\n this.IsLoading = false;\r\n }, 500);\r\n\r\n this.previewDublicate('load', dub, null, number, data);\r\n }\r\n\r\n getDublicateId(array, id) {\r\n let index = array\r\n .map(function (c) {\r\n return c.id;\r\n })\r\n .indexOf(id);\r\n if (array[index].type == 'copy') {\r\n return array[index].id;\r\n } else {\r\n if (array[index].requestAttributeId != null) {\r\n return this.getDublicateId(array, array[index].requestAttributeId);\r\n } else {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n dataFormer(array, result) {\r\n [].forEach.call(array, (e) => {\r\n let index = this.attributesBase.indexOf(e.id);\r\n\r\n let column = null;\r\n column = new Array(1).fill([]);\r\n let columns = null;\r\n if (index != -1) {\r\n columns = this.dataFormer(this.attributesChild[index], column);\r\n }\r\n if (e.selectors == null && (e.type == 'radio' || e.type == 'select')) {\r\n e.selectors = e.selectors = '*T*custom*L*option_0|empty|';\r\n }\r\n let position = 0;\r\n if (e.position != undefined) {\r\n position = e.position;\r\n }\r\n\r\n let label = e.label;\r\n label = label.split('*L*');\r\n label = returnLocalString(label, this.currentLocale, this.admin.getDefLocale());\r\n\r\n let description = e.description;\r\n if (description != null) {\r\n description = description.split('*L*');\r\n description = returnLocalString(description, this.currentLocale, this.admin.getDefLocale());\r\n }\r\n\r\n let placeholder = e.placeholder;\r\n if (placeholder != null) {\r\n placeholder = placeholder.split('*L*');\r\n placeholder = returnLocalString(placeholder, this.currentLocale, this.admin.getDefLocale());\r\n }\r\n\r\n let tooltip = e.tooltip;\r\n if (tooltip != null) {\r\n tooltip = tooltip.split('*L*');\r\n tooltip = returnLocalString(tooltip, this.currentLocale, this.admin.getDefLocale());\r\n }\r\n\r\n let dialog = e.dialog;\r\n if (dialog != null) {\r\n dialog = dialog.split('*L*');\r\n dialog = returnLocalString(dialog, this.currentLocale, this.admin.getDefLocale());\r\n }\r\n\r\n function returnLocalString(array, locale, def) {\r\n let result = '';\r\n let indexX = array\r\n .map(function (e) {\r\n return e.split('*I*')[0];\r\n })\r\n .indexOf(locale);\r\n if (indexX == -1 && array.length == 1) {\r\n indexX = array\r\n .map(function (e) {\r\n return e.split('*I*')[0];\r\n })\r\n .indexOf(def);\r\n if (indexX == -1) {\r\n result = array[0];\r\n } else {\r\n result = array[indexX].split('*I*')[1];\r\n }\r\n } else if (indexX == -1 && array.length != 1) {\r\n result = array[0];\r\n } else {\r\n result = array[indexX].split('*I*')[1];\r\n }\r\n return result;\r\n }\r\n\r\n let selectors = null;\r\n if (e.type != 'date') {\r\n selectors = this.dataPacker('unpack', 'selectors', e.selectors);\r\n } else {\r\n if ((e.selectors != null && e.selectors != '') || e.selctors == true) {\r\n columns = new Date();\r\n } else {\r\n columns = null;\r\n }\r\n selectors = e.selectors;\r\n }\r\n\r\n let json = {\r\n id: e.id,\r\n requestAttributeId: e.requestAttributeId,\r\n requestFormId: e.requestFormId,\r\n requestForm: null,\r\n required: e.required,\r\n tableLabel: label,\r\n label: e.label,\r\n tableDescription: description,\r\n description: e.description,\r\n tablePlaceholder: placeholder,\r\n placeholder: e.placeholder,\r\n key: e.key,\r\n type: e.type,\r\n mask: e.mask,\r\n tableTooltip: tooltip,\r\n tooltip: e.tooltip,\r\n disabled: e.disabled,\r\n display: e.display,\r\n condition: this.dataPacker('unpack', 'condition', e.condition),\r\n tableDialog: dialog,\r\n dialog: e.dialog,\r\n selectors: selectors,\r\n columns: columns,\r\n value: '',\r\n dublicate: -1,\r\n position: position,\r\n clone: e.clone,\r\n dub: e.dub,\r\n aligment: e.aligment,\r\n };\r\n if (e.type == 'court') {\r\n json.selectors = { type: 'court', list: [null, null, null] };\r\n }\r\n let keys = [];\r\n if (result != null) {\r\n let key = parseInt(json.key.split('_')[1].split('|')[1]);\r\n if (json.key.split('_')[1].split('|')[1] == undefined) {\r\n key = 0;\r\n json.key = json.key + '|' + 0;\r\n }\r\n keys.push(json);\r\n if (result.length < key + 1) {\r\n let count = key + 1 - result.length;\r\n for (let i = 0; i < count; i++) {\r\n result.push([]);\r\n }\r\n }\r\n if (result[key].length > 0) {\r\n result[key] = result[key].concat(keys);\r\n } else {\r\n result[key] = keys;\r\n }\r\n } else {\r\n this.nestableList.push(json);\r\n }\r\n });\r\n return result;\r\n }\r\n\r\n dataLiner(array, allow) {\r\n let result = [];\r\n if (array != null) {\r\n [].forEach.call(array, (e) => {\r\n if (Array.isArray(e)) {\r\n let column = this.dataLiner(e, allow);\r\n [].forEach.call(column, (c) => {\r\n result.push(c);\r\n });\r\n } else {\r\n if (e.type == 'column' || e.type == 'copy') {\r\n let column = this.dataLiner(e.columns, allow);\r\n if (allow) {\r\n result.push(e);\r\n }\r\n [].forEach.call(column, (c) => {\r\n result.push(c);\r\n });\r\n } else {\r\n result.push(e);\r\n }\r\n }\r\n });\r\n }\r\n return result;\r\n }\r\n\r\n dataPacker(type, group, value) {\r\n if (type == 'pack') {\r\n switch (group) {\r\n case 'selectors':\r\n if (value != null) {\r\n let list = [];\r\n if (value.list == undefined || value.list == null) {\r\n return value;\r\n }\r\n if (value.type == 'lib') {\r\n return '*T*' + value.type + '*L*' + value.id;\r\n } else {\r\n [].forEach.call(value.list, (e) => {\r\n list.push(e.name + '|' + e.value + '|' + e.dialog);\r\n });\r\n return '*T*' + value.type + '*L*' + list.join('*I*');\r\n }\r\n } else {\r\n return null;\r\n }\r\n case 'condition':\r\n if (value != null) {\r\n let list = [];\r\n [].forEach.call(value, (e) => {\r\n list.push(\r\n e.target +\r\n '|' +\r\n e.condition +\r\n '|' +\r\n e.else +\r\n '|' +\r\n e.field +\r\n '|' +\r\n e.on +\r\n '|' +\r\n e.value +\r\n '|' +\r\n e.date\r\n );\r\n });\r\n return list.join('*I*');\r\n } else {\r\n return null;\r\n }\r\n }\r\n } else {\r\n switch (group) {\r\n case 'selectors':\r\n let selectors = {\r\n type: '',\r\n list: [],\r\n id: 0,\r\n };\r\n if (value != null && value.list == undefined) {\r\n selectors.type = value.split('*T*')[1].split('*L*')[0];\r\n if (selectors.type == 'lib') {\r\n let list = [];\r\n let valList = value.split('*L*')[1];\r\n selectors.id = valList;\r\n [].forEach.call(this.userDataTypeValue, (e) => {\r\n if (e.Parent == parseInt(valList)) {\r\n list.push(e);\r\n }\r\n });\r\n selectors.list = [];\r\n [].forEach.call(list, (e, index) => {\r\n selectors.list.push({ name: 'option_' + index, value: e.Title, email: e.Email });\r\n });\r\n } else {\r\n let list = value.split('*L*')[1].split('*I*');\r\n [].forEach.call(list, (e, index) => {\r\n let text = e.split('|');\r\n let array = {\r\n name: text[0],\r\n value: text[1],\r\n dialog: text[2],\r\n };\r\n list[index] = array;\r\n });\r\n selectors.list = list;\r\n }\r\n return selectors;\r\n } else {\r\n if (value != null) {\r\n if (value.type == 'lib') {\r\n selectors.type = value.type;\r\n let list = [];\r\n if (!isNaN(value.list[0])) {\r\n selectors.id = value.list[0];\r\n } else {\r\n selectors.id = parseInt(value.list[0].name);\r\n }\r\n [].forEach.call(this.userDataTypeValue, (e) => {\r\n if (e.Parent == selectors.id) {\r\n list.push(e);\r\n }\r\n });\r\n selectors.list = [];\r\n [].forEach.call(list, (e, index) => {\r\n selectors.list.push({ name: 'option_' + index, value: e.Title, email: e.Email });\r\n });\r\n return selectors;\r\n }\r\n } else {\r\n return value;\r\n }\r\n }\r\n case 'condition':\r\n let condition = [];\r\n if (value != null && typeof value === 'string') {\r\n let list = value.split('*I*');\r\n [].forEach.call(list, (e, index) => {\r\n let text = e.split('|');\r\n if (text.length > 7) {\r\n if (Number.isInteger(parseInt(text[1]))) {\r\n text[0] = text[0] + '|' + text[1];\r\n text.splice(1, 1);\r\n }\r\n if (Number.isInteger(parseInt(text[4]))) {\r\n text[3] = text[3] + '|' + text[4];\r\n text.splice(4, 1);\r\n }\r\n }\r\n let array: any = {\r\n target: text[0],\r\n condition: text[1],\r\n else: text[2],\r\n field: text[3],\r\n on: text[4],\r\n value: text[5],\r\n date: text[6],\r\n };\r\n if (array.target == undefined) {\r\n array.target = '';\r\n }\r\n if (array.condition == undefined) {\r\n array.condition = '';\r\n }\r\n if (array.else == undefined) {\r\n array.else = '';\r\n }\r\n if (array.field == undefined) {\r\n array.field = '';\r\n }\r\n if (array.on == undefined) {\r\n array.on = '';\r\n }\r\n if (array.value == undefined) {\r\n array.value = '';\r\n }\r\n if (array.date == undefined) {\r\n array.date = '';\r\n }\r\n list[index] = array;\r\n });\r\n condition = list;\r\n return condition;\r\n } else {\r\n return value;\r\n }\r\n }\r\n return null;\r\n }\r\n }\r\n\r\n onDragStart(event: DragEvent) {\r\n this.currentDragEffectMsg = '';\r\n this.currentDraggableEvent = event;\r\n this.snackBarService.dismiss();\r\n this.snackBarService.open('Переміщення розпочато!', undefined, { duration: 2000 });\r\n }\r\n\r\n onDragged(item: any, list: any[], effect: DropEffect) {\r\n if (this.currentDragEffectMsg == '') {\r\n this.currentDragEffectMsg = `Переміщення закінчилось з еффектом \"${effect}\"!`;\r\n }\r\n if (effect === 'move') {\r\n const index = list.indexOf(item);\r\n list.splice(index, 1);\r\n }\r\n this.changeRegister();\r\n }\r\n\r\n onDragEnd(event: DragEvent) {\r\n this.reviewAllow = false;\r\n this.currentDraggableEvent = event;\r\n this.snackBarService.dismiss();\r\n this.snackBarService.open(this.currentDragEffectMsg || 'Переміщення завершено!', undefined, {\r\n duration: 2000,\r\n });\r\n this.jsonUpdate();\r\n }\r\n\r\n onDrop(item: RequestAttributes, indexItem: number, event: DndDropEvent, list?: any[]) {\r\n if (item != null) {\r\n if (item.type == 'copy' && event.data.type == 'court') {\r\n this.currentDragEffectMsg = `Елемент \"Суд\" недоступний для дублювання!`;\r\n return false;\r\n } else if (item.type == 'copy' && event.data.type == 'copy') {\r\n this.currentDragEffectMsg = `Елемент \"Дублікат\" недоступний для дублювання!`;\r\n return false;\r\n } else if (item.type == 'copy' && event.data.type == 'order') {\r\n this.currentDragEffectMsg = `Елемент \"Електронна заява\" недоступний для дублювання!`;\r\n return false;\r\n } else if (item.type == 'column' && event.data.type == 'order') {\r\n this.currentDragEffectMsg = `Елемент \"Електронна заява\" недоступний для відображення в колонках!`;\r\n return false;\r\n }\r\n }\r\n if (list && (event.dropEffect === 'copy' || event.dropEffect === 'move')) {\r\n let index = event.index;\r\n if (typeof index === 'undefined') {\r\n index = list.length;\r\n }\r\n let json = JSON.stringify(this.nestableList);\r\n let reg = new RegExp(/\"key\":\"\\w*_[\\d].*?\"/);\r\n let matches = [];\r\n let continues = true;\r\n while (continues == true) {\r\n let result = json.match(reg);\r\n if (result) {\r\n matches.push(result);\r\n json = json.replace(reg, '');\r\n } else {\r\n continues = false;\r\n }\r\n }\r\n let newData = event.data;\r\n if (item != undefined) {\r\n if (item.id == undefined) {\r\n newData.requestAttributeId = item.key.split('|')[0];\r\n } else {\r\n newData.requestAttributeId = item.id;\r\n }\r\n } else {\r\n newData.requestAttributeId = null;\r\n if (newData.type != 'column' && newData.type != 'copy') {\r\n newData.columns = null;\r\n }\r\n }\r\n if (matches.length == 0) {\r\n newData.key = newData.key + '_1';\r\n } else {\r\n if (event.data.key.split('_').length == 1) {\r\n let counter = 0;\r\n [].forEach.call(matches, (e) => {\r\n if (e[0].split('\"')[3].split('_')[0] == newData.type) {\r\n if (counter <= e[0].split('\"')[3].split('_')[1].split('|')[0]) {\r\n counter = parseInt(e[0].split('\"')[3].split('_')[1].split('|')[0]) + 1;\r\n }\r\n }\r\n });\r\n let newCount = counter;\r\n newData.key = newData.key.split('_')[0] + '_' + newCount;\r\n } else {\r\n newData.key = event.data.key;\r\n }\r\n if (indexItem != null) {\r\n newData.key = newData.key.split('|')[0] + '|' + indexItem;\r\n }\r\n }\r\n list.splice(index, 0, event.data);\r\n this.jsonUpdate();\r\n }\r\n }\r\n\r\n onRemove(index: number, list: any[]) {\r\n this.reviewAllow = false;\r\n let item = list[index];\r\n let check = false;\r\n if (item.type == 'column' || item.type == 'copy') {\r\n if (item.columns != null) {\r\n [].forEach.call(item.columns, (e) => {\r\n if (e.length != 0) {\r\n check = true;\r\n }\r\n });\r\n }\r\n }\r\n if (check) {\r\n let text = 'Неможливо видалити Дублікат, Дублікат повинен бути порожнім!';\r\n if (item.type == 'column') {\r\n text = 'Неможливо видалити Колонку, Колонка повинна бути порожньою!';\r\n }\r\n this.dialog.open(InfoMenu, {\r\n maxWidth: '600px',\r\n disableClose: true,\r\n data: { text: text },\r\n });\r\n return false;\r\n }\r\n this.changeRegister();\r\n let key = list[index].key;\r\n list.splice(index, 1);\r\n let indexAttr = this.loadAttrBase\r\n .map(function (e) {\r\n return e.key.split('|')[0];\r\n })\r\n .indexOf(key.split('|')[0]);\r\n this.removeAttrList.push(this.loadAttrBase[indexAttr]);\r\n this.loadAttrBase.splice(indexAttr, 1);\r\n this.jsonUpdate();\r\n }\r\n\r\n onSave(index: number, item: any, list: any[]) {\r\n this.reviewAllow = false;\r\n list[index] = item;\r\n\r\n let array = this.dataLiner(this.nestableList, true);\r\n let indexF = array\r\n .map(function (e) {\r\n return e.key.split('|')[0];\r\n })\r\n .indexOf(item.key.split('|')[0]);\r\n array[indexF].condition = item.condition;\r\n if (item.tableLabel != undefined) {\r\n array[indexF].tableLabel = item.tableLabel;\r\n }\r\n if (item.label != undefined) {\r\n array[indexF].label = item.label;\r\n }\r\n if (item.columns != undefined) {\r\n array[indexF].columns = item.columns;\r\n }\r\n if (item.required != undefined) {\r\n array[indexF].required = item.required;\r\n }\r\n if (item.disabled != undefined) {\r\n array[indexF].disabled = item.disabled;\r\n }\r\n if (item.tableDescription != undefined) {\r\n array[indexF].tableDescription = item.tableDescription;\r\n }\r\n if (item.description != undefined) {\r\n array[indexF].description = item.description;\r\n }\r\n if (item.dublicate != undefined) {\r\n array[indexF].dublicate = item.dublicate;\r\n }\r\n if (item.mask != undefined) {\r\n array[indexF].mask = item.mask;\r\n }\r\n if (item.tablePlaceholder != undefined) {\r\n array[indexF].tablePlaceholder = item.tablePlaceholder;\r\n }\r\n if (item.placeholder != undefined) {\r\n array[indexF].placeholder = item.placeholder;\r\n }\r\n if (item.selectors != undefined) {\r\n if (item.type != 'date') {\r\n item.selectors = this.dataPacker('unpack', 'selectors', item.selectors);\r\n }\r\n array[indexF].selectors = item.selectors;\r\n }\r\n if (item.tableTooltip != undefined) {\r\n array[indexF].tableTooltip = item.tableTooltip;\r\n }\r\n if (item.tooltip != undefined) {\r\n array[indexF].tooltip = item.tooltip;\r\n }\r\n if (item.tableDialog != undefined) {\r\n array[indexF].tableDialog = item.tableDialog;\r\n }\r\n if (item.dialog != undefined) {\r\n array[indexF].dialog = item.dialog;\r\n }\r\n if (item.clone != undefined) {\r\n array[indexF].clone = item.clone;\r\n }\r\n if (item.dub != undefined) {\r\n array[indexF].dub = item.dub;\r\n }\r\n if (item.aligment != undefined) {\r\n array[indexF].aligment = item.aligment;\r\n }\r\n array[indexF] = item;\r\n if (item.condition == null) {\r\n array[indexF].display = true;\r\n }\r\n this.jsonUpdate();\r\n array = this.dataLiner(this.nestableListShow, true);\r\n if (item.condition != null) {\r\n let indexF = array\r\n .map(function (e) {\r\n return e.key.split('|')[0];\r\n })\r\n .indexOf(item.condition[0].target.split('|')[0]);\r\n this.conditionControl('show', array[indexF]);\r\n }\r\n this.changeRegister();\r\n }\r\n\r\n displayJson() {\r\n this.jsonVisible = !this.jsonVisible;\r\n }\r\n\r\n jsonUpdate() {\r\n this.json = JSON.stringify(this.nestableList, undefined, 2);\r\n this.nestableListShow = JSON.parse(JSON.stringify(this.nestableList));\r\n }\r\n\r\n openSetting(item: any, list: any[]) {\r\n let componentDialog = null;\r\n switch (item.type) {\r\n case 'input':\r\n componentDialog = InputComponent;\r\n break;\r\n case 'checkbox':\r\n componentDialog = CheckboxComponent;\r\n break;\r\n case 'select':\r\n componentDialog = SelectComponent;\r\n break;\r\n case 'radio':\r\n componentDialog = RadioComponent;\r\n break;\r\n case 'file':\r\n componentDialog = FileComponent;\r\n break;\r\n case 'editor':\r\n componentDialog = EditorComponent;\r\n break;\r\n case 'date':\r\n componentDialog = DateComponent;\r\n break;\r\n case 'copy':\r\n componentDialog = CopyComponent;\r\n break;\r\n case 'column':\r\n componentDialog = ColumnComponent;\r\n break;\r\n case 'court':\r\n componentDialog = CourtComponent;\r\n break;\r\n case 'order':\r\n componentDialog = OrderComponent;\r\n break;\r\n }\r\n let newList = this.dataLiner(this.nestableList, false);\r\n let indexF = newList\r\n .map(function (e) {\r\n return e.key.split('|')[0];\r\n })\r\n .indexOf(item.key.split('|')[0]);\r\n newList.splice(indexF, 1);\r\n newList = newList.filter((x) => x.type != 'court').map((x) => x);\r\n newList = newList.filter((x) => x.type != 'order').map((x) => x);\r\n\r\n [].forEach.call(newList, (e) => {\r\n let tableTitle = e.label.split('*L*');\r\n let elements = tableTitle\r\n .filter((x) => x.split('*I*')[0] == this.admin.getDefLocale())\r\n .map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split('*I*')[1];\r\n }\r\n e.tableTitle = tableTitle;\r\n });\r\n\r\n // console.log(newList);\r\n // console.log(item);\r\n\r\n let dialogRef = this.dialog.open(componentDialog, {\r\n width: '1000px',\r\n minHeight: '450px',\r\n maxHeight: '800px',\r\n disableClose: true,\r\n data: { list: newList, data: item, type: this.data.data.RequestTypeId },\r\n });\r\n if (dialogRef != null) {\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result == undefined) {\r\n return false;\r\n }\r\n switch (result[0]) {\r\n case 'remove':\r\n this.onRemove(result[1], result[2]);\r\n break;\r\n case 'save':\r\n this.reviewAllow = false;\r\n this.onSave(result[1], result[2], result[3]);\r\n break;\r\n }\r\n });\r\n }\r\n }\r\n\r\n inputValidator(event: any) {\r\n const pattern = /[^\\d\\s]/;\r\n if (!pattern.test(event.data)) {\r\n event.target.value = event.target.value.replace(/[\\d\\s]/g, '');\r\n }\r\n }\r\n\r\n onChange(value, input, type) {\r\n if (input.value === undefined) {\r\n // console.log(\"undefined\");\r\n } else {\r\n if (input.type == 'radio' || input.type == 'select') {\r\n input.value = value.value;\r\n } else if (input.type == 'checkbox') {\r\n input.value = value.checked;\r\n } else if (input.type == 'date') {\r\n if (typeof value === 'string') {\r\n input.placeholder = value;\r\n } else {\r\n if (value.value == null) {\r\n input.value = '';\r\n } else {\r\n input.value = value.value;\r\n }\r\n if (input.value == '') {\r\n input.placeholder = '';\r\n } else {\r\n if (input.placeholder == '' || input.placeholder == null) {\r\n input.placeholder = '00:00';\r\n }\r\n }\r\n }\r\n if (input.placeholder != '' && input.placeholder != null) {\r\n let nd = new Date(input.value);\r\n nd.setHours(parseInt(input.placeholder.split(':')[0]));\r\n nd.setMinutes(parseInt(input.placeholder.split(':')[1]));\r\n input.value = nd;\r\n }\r\n } else if (input.type == 'file') {\r\n if (value == null) {\r\n value = '';\r\n input.mask = '';\r\n } else {\r\n let fileData: File = null;\r\n let previewUrl: any = null;\r\n let ex: string = '';\r\n let name: string = '';\r\n\r\n fileData = value.files[0];\r\n\r\n let array = fileData.name.split('.');\r\n ex = array[array.length - 1];\r\n array.splice(-1, 1);\r\n name = array.join('.');\r\n\r\n var mimeType = fileData.type;\r\n if (mimeType.match(/image\\/*/) != null) {\r\n var reader = new FileReader();\r\n reader.readAsDataURL(fileData);\r\n reader.onload = (_event) => {\r\n previewUrl = reader.result;\r\n };\r\n }\r\n\r\n if (mimeType.match(/text.*/) != null) {\r\n var reader = new FileReader();\r\n reader.readAsText(fileData);\r\n reader.onload = (_event) => {\r\n previewUrl = reader.result;\r\n };\r\n }\r\n\r\n if (mimeType.match(/application.*/) != null) {\r\n var reader = new FileReader();\r\n reader.readAsDataURL(fileData);\r\n reader.onload = (_event) => {\r\n previewUrl = reader.result;\r\n };\r\n }\r\n\r\n let interval = setInterval(() => {\r\n if (previewUrl != null) {\r\n clearInterval(interval);\r\n input.mask = previewUrl;\r\n }\r\n }, 50);\r\n }\r\n input.value = value;\r\n } else if (input.type == 'court') {\r\n let court = new Array(3).fill(0);\r\n if (input.value != '' && input.value != undefined) {\r\n [].forEach.call(input.value, (e, index) => {\r\n court[index] = parseInt(e);\r\n });\r\n }\r\n court[this.previewCourtLoad] = value.value;\r\n if (this.previewCourtLoad == 0) {\r\n court[1] = 0;\r\n court[2] = 0;\r\n } else if (this.previewCourtLoad == 1) {\r\n court[2] = 0;\r\n }\r\n input.value = court;\r\n } else {\r\n input.value = value;\r\n }\r\n if (type == 'preview') {\r\n this.conditionControl('preview', input);\r\n } else {\r\n this.conditionControl('show', input);\r\n }\r\n this.onDialog(input.key, value);\r\n if (this.isLoad && this.data.status != 'review') {\r\n this.changeRegister();\r\n }\r\n }\r\n }\r\n\r\n onDialog(input, value) {\r\n if (value == null) {\r\n return false;\r\n }\r\n let text = '';\r\n let dataLiner = this.dataLiner(this.nestableList, false);\r\n if (value.checked != null) {\r\n let target = dataLiner\r\n .filter((x) => x.key.split('|')[0] === input.split('|')[0])\r\n .map((x) => x);\r\n if (target[0] == undefined) {\r\n return false;\r\n }\r\n if (value.checked && target[0].tableDialog != '') {\r\n let linkChecker = target[0].tableDialog.split('@@');\r\n if (linkChecker.length > 1) {\r\n let newText = linkChecker[0];\r\n let linkArray = linkChecker[1].split('&&');\r\n newText += \"\" + linkArray[0] + '';\r\n newText += linkChecker[2];\r\n text = newText;\r\n } else {\r\n text = target[0].tableDialog;\r\n }\r\n }\r\n } else if (input.split('_')[0] == 'date') {\r\n let target = dataLiner\r\n .filter((x) => x.key.split('|')[0] === input.split('|')[0])\r\n .map((x) => x);\r\n if (target[0].tableDialog != '' && target[0].tableDialog != null) {\r\n let linkChecker = target[0].tableDialog.split('@@');\r\n if (linkChecker.length > 1) {\r\n let newText = linkChecker[0];\r\n let linkArray = linkChecker[1].split('&&');\r\n newText += \"\" + linkArray[0] + '';\r\n newText += linkChecker[2];\r\n text = newText;\r\n } else {\r\n text = target[0].tableDialog;\r\n }\r\n }\r\n } else if (value.source != null && input.split('_')[0] != 'court') {\r\n let target = dataLiner\r\n .filter((x) => x.key.split('|')[0] === input.split('|')[0])\r\n .map((x) => x);\r\n let array: any = this.dataPacker('unpack', 'selectors', target[0].selectors);\r\n let index = array.list\r\n .map(function (e) {\r\n return e.name;\r\n })\r\n .indexOf(value.value);\r\n if (array.list[index].dialog != '') {\r\n let linkChecker = array.list[index].dialog.split('@@');\r\n if (linkChecker.length > 1) {\r\n let newText = linkChecker[0];\r\n let linkArray = linkChecker[1].split('&&');\r\n newText += \"\" + linkArray[0] + '';\r\n newText += linkChecker[2];\r\n text = newText;\r\n } else {\r\n text = array.list[index].dialog;\r\n }\r\n }\r\n }\r\n if (text != '') {\r\n this.dialog.open(ConfirmMenu, {\r\n maxWidth: '600px',\r\n disableClose: true,\r\n data: { text: text, button: ['Повернутися до заяви', 'Закінчити заяву'] },\r\n });\r\n }\r\n }\r\n\r\n changeRegister() {\r\n isChange = true;\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(':')[0];\r\n let secure = false;\r\n if (location.protocol == 'https:') {\r\n secure = true;\r\n }\r\n this.cookieService.set('is_change', 'true', expires, '/', local, secure);\r\n }\r\n\r\n unChangeRegister() {\r\n isChange = false;\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(':')[0];\r\n let secure = false;\r\n if (location.protocol == 'https:') {\r\n secure = true;\r\n }\r\n this.cookieService.delete('is_change', '/', local, secure);\r\n }\r\n\r\n mainChange() {\r\n this.reviewAllow = false;\r\n }\r\n\r\n public changeType(event: any) {\r\n this.data.data.RequestTypeId = event.value;\r\n }\r\n\r\n setLocale(event) {\r\n this.admin.setLocale(event);\r\n let data = {\r\n langType: 'reload',\r\n itemData: this.data.data,\r\n };\r\n this.router.navigateByUrl('/admin/request-form', { state: data });\r\n }\r\n\r\n previewDublicate(type, item, index, number, data) {\r\n let target = null;\r\n let array = [];\r\n let column = [];\r\n let liner = this.dataLiner(this.nestableListPreview, true);\r\n switch (type) {\r\n case 'add':\r\n target = liner.filter((x) => x.key.split('|')[0] === item.key.split('|')[0]).map((x) => x);\r\n array = JSON.parse(JSON.stringify(target[0].columns[0]));\r\n column = this.dataLiner(array, true);\r\n [].forEach.call(column, (e, index) => {\r\n if (e.value != '') {\r\n column[index].value = '';\r\n }\r\n column[index].dublicate = target[0].columns.length;\r\n });\r\n // [].forEach.call(array, (e) =>{\r\n // if(e.type == \"column\" || e.type == \"copy\"){\r\n // array = [e];\r\n // return false;\r\n // }\r\n // });\r\n target[0].columns.push(array);\r\n [].forEach.call(column, (e) => {\r\n this.conditionControl('preview', e);\r\n });\r\n break;\r\n case 'load':\r\n let numbers = [];\r\n let items = [];\r\n [].forEach.call(item, (e, index) => {\r\n if (!items.some((c) => c === e)) {\r\n items.push(e);\r\n numbers.push(number[index]);\r\n }\r\n });\r\n if (items.length == 0) {\r\n return false;\r\n }\r\n target = liner.filter((x) => x.id === items[0]).map((x) => x);\r\n array = JSON.parse(JSON.stringify(target[0].columns[0]));\r\n let child = this.dataLiner(array, true);\r\n array = array.concat(child);\r\n array = [...new Set(array)];\r\n let datas = [];\r\n for (let i = 0; i < numbers[0]; i++) {\r\n let newData = [];\r\n if (i == 0) {\r\n newData = array;\r\n } else {\r\n newData = JSON.parse(JSON.stringify(array));\r\n }\r\n let arrays = this.dataLiner(newData, true);\r\n [].forEach.call(arrays, (e, indexD) => {\r\n e.dublicate = i;\r\n });\r\n let rebuildData = [];\r\n [].forEach.call(newData, (nd) => {\r\n let array = newData.filter((x) => x.requestAttributeId == nd.id).map((x) => x);\r\n rebuildData = rebuildData.concat(array);\r\n });\r\n rebuildData = newData.filter(function (el) {\r\n return rebuildData.indexOf(el) < 0;\r\n });\r\n newData = rebuildData;\r\n datas.push(newData);\r\n }\r\n let values = [];\r\n [].forEach.call(datas, (e, index) => {\r\n values.push(this.dataLiner(e, false));\r\n [].forEach.call(values[index], (c, indexC) => {\r\n if (data[indexC] != undefined) {\r\n if (c.type == 'date') {\r\n let value = data[indexC][0].split('|&|')[index].split('-');\r\n c.value = new Date(parseInt(value[2]), parseInt(value[1]) - 1, parseInt(value[0]));\r\n let time = data[indexC][0].split('|&|')[index].split(' ');\r\n if (time.length > 1) {\r\n c.placeholder = time[1];\r\n c.value.setHours(parseInt(time[1].split(':')[0]));\r\n c.value.setMinutes(parseInt(time[1].split(':')[1]));\r\n }\r\n setTimeout(() => {\r\n this.onChange(c, c, 'preview');\r\n }, 0);\r\n } else if (c.type == 'file') {\r\n let value = data[indexC][0].split('|&|')[index];\r\n let newFile = new FileInput([\r\n {\r\n lastModified: null,\r\n name: value,\r\n size: null,\r\n type: null,\r\n slice: null,\r\n },\r\n ]);\r\n c.value = newFile;\r\n } else if (c.type == 'checkbox') {\r\n c.value = JSON.parse(data[indexC][0].split('|&|')[index]);\r\n } else {\r\n c.value = data[indexC][0].split('|&|')[index];\r\n }\r\n }\r\n });\r\n });\r\n target[0].columns = datas;\r\n break;\r\n case 'remove':\r\n target = liner.filter((x) => x.key.split('|')[0] === item.key.split('|')[0]).map((x) => x);\r\n target[0].columns.splice(index, 1);\r\n break;\r\n }\r\n }\r\n\r\n showDublicate(type, item, index) {\r\n let target = null;\r\n let array = [];\r\n let column = [];\r\n let liner = this.dataLiner(this.nestableListShow, true);\r\n if (type == 'add') {\r\n target = liner.filter((x) => x.key.split('|')[0] === item.key.split('|')[0]).map((x) => x);\r\n array = JSON.parse(JSON.stringify(target[0].columns[0]));\r\n column = this.dataLiner(array, true);\r\n [].forEach.call(column, (e, index) => {\r\n if (e.value != '') {\r\n column[index].value = '';\r\n }\r\n column[index].dublicate = target[0].columns.length;\r\n });\r\n // [].forEach.call(array, (e) =>{\r\n // if(e.type == \"column\" || e.type == \"copy\"){\r\n // array = [e];\r\n // return false;\r\n // }\r\n // });\r\n target[0].columns.push(array);\r\n [].forEach.call(column, (e) => {\r\n this.conditionControl('show', e);\r\n });\r\n } else {\r\n target = liner.filter((x) => x.key.split('|')[0] === item.key.split('|')[0]).map((x) => x);\r\n target[0].columns.splice(index, 1);\r\n }\r\n }\r\n\r\n courtClick(type) {\r\n this.previewCourtLoad = type;\r\n }\r\n\r\n changeCourt(type, event, item, preview) {\r\n switch (type) {\r\n case 'region':\r\n if (event == 0) {\r\n item.selectors.list = new Array(3).fill(null);\r\n item.value = new Array(3).fill(0);\r\n this.dbRequest('Region', null, preview);\r\n } else {\r\n this.previewCourtLoad = 0;\r\n this.dbRequest('City', event, preview);\r\n item.selectors.list[0] = event;\r\n }\r\n break;\r\n case 'city':\r\n this.previewCourtLoad = 1;\r\n this.dbRequest('Court', event, preview);\r\n item.selectors.list[1] = event;\r\n break;\r\n case 'court':\r\n this.previewCourtLoad = 2;\r\n item.selectors.list[2] = event;\r\n break;\r\n }\r\n }\r\n\r\n conditionControl(type, change) {\r\n let array = [];\r\n if (type == 'preview') {\r\n array = this.dataLiner(this.nestableListPreview, true);\r\n } else {\r\n array = this.dataLiner(this.nestableListShow, true);\r\n }\r\n let itemList = array.filter((x) => x.condition != null).map((x) => x);\r\n if (change.dublicate == undefined) {\r\n change.dublicate = -1;\r\n }\r\n [].forEach.call(itemList, (e) => {\r\n if (e.dublicate == change.dublicate || change.dublicate == -1) {\r\n e.condition = this.dataPacker('unpack', 'condition', e.condition);\r\n [].forEach.call(e.condition, (c) => {\r\n if (c.field == undefined) {\r\n c.field = '';\r\n }\r\n if (change.key.split('|')[0] == c.target.split('|')[0]) {\r\n this.conditionSwitch(e, type);\r\n } else if (change.key.split('|')[0] == c.field.split('|')[0]) {\r\n this.conditionSwitch(e, type);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n conditionSwitch(target, type) {\r\n let value = '';\r\n let elseC = [];\r\n let result = [];\r\n let array = [];\r\n let nd;\r\n let vl;\r\n let findElse;\r\n if (type == 'preview') {\r\n array = this.dataLiner(this.nestableListPreview, true);\r\n } else {\r\n array = this.dataLiner(this.nestableListShow, true);\r\n }\r\n [].forEach.call(target.condition, (e) => {\r\n let findChange = array\r\n .filter((x) => x.key.split('|')[0] == e.target.split('|')[0])\r\n .map((x) => x);\r\n value = findChange[0].value;\r\n elseC.push(e.else);\r\n switch (e.condition) {\r\n case 'empty':\r\n if (value == '' || value == null) {\r\n result.push(true);\r\n } else {\r\n result.push(false);\r\n }\r\n break;\r\n case 'fill':\r\n if (value == '' || value == null) {\r\n result.push(false);\r\n } else {\r\n result.push(true);\r\n }\r\n break;\r\n case 'emptyE':\r\n if (value == '' || value == null) {\r\n result.push(true);\r\n } else {\r\n result.push(false);\r\n }\r\n break;\r\n case 'fillE':\r\n if (value == '' || value == null) {\r\n result.push(false);\r\n } else {\r\n result.push(true);\r\n }\r\n break;\r\n case 'morenumber':\r\n findElse = array\r\n .filter((x) => x.key.split('|')[0] == e.field.split('|')[0])\r\n .map((x) => x);\r\n if (e.field == '0') {\r\n nd = parseInt(e.value);\r\n } else {\r\n nd = parseInt(findElse[0].value);\r\n }\r\n if (e.on == '0' || e.on == '2') {\r\n if (nd < parseInt(value)) {\r\n result.push(true);\r\n } else {\r\n result.push(false);\r\n }\r\n } else if (e.on == '1') {\r\n nd += parseInt(e.value);\r\n if (nd <= parseInt(value)) {\r\n result.push(true);\r\n } else {\r\n result.push(false);\r\n }\r\n }\r\n break;\r\n case 'lessnumber':\r\n findElse = array\r\n .filter((x) => x.key.split('|')[0] == e.field.split('|')[0])\r\n .map((x) => x);\r\n if (e.field == '0') {\r\n nd = parseInt(e.value);\r\n } else {\r\n nd = parseInt(findElse[0].value);\r\n }\r\n if (e.on == '0' || e.on == '2') {\r\n if (nd > parseInt(value)) {\r\n result.push(true);\r\n } else {\r\n result.push(false);\r\n }\r\n } else if (e.on == '1') {\r\n nd -= parseInt(e.value);\r\n if (nd >= parseInt(value)) {\r\n result.push(true);\r\n } else {\r\n result.push(false);\r\n }\r\n }\r\n break;\r\n case 'isnumber':\r\n findElse = array\r\n .filter((x) => x.key.split('|')[0] == e.field.split('|')[0])\r\n .map((x) => x);\r\n if (e.field == '0') {\r\n nd = parseInt(e.value);\r\n } else {\r\n nd = parseInt(findElse[0].value);\r\n }\r\n if (nd == parseInt(value)) {\r\n result.push(true);\r\n } else {\r\n result.push(false);\r\n }\r\n break;\r\n case 'notnumber':\r\n findElse = array\r\n .filter((x) => x.key.split('|')[0] == e.field.split('|')[0])\r\n .map((x) => x);\r\n if (e.field == '0') {\r\n nd = parseInt(e.value);\r\n } else {\r\n nd = parseInt(findElse[0].value);\r\n }\r\n if (nd != parseInt(value)) {\r\n result.push(true);\r\n } else {\r\n result.push(false);\r\n }\r\n break;\r\n case 'check':\r\n if (value == '' || value == null) {\r\n result.push(false);\r\n } else {\r\n result.push(true);\r\n }\r\n break;\r\n case 'uncheck':\r\n if (value == '' || value == null) {\r\n result.push(true);\r\n } else {\r\n result.push(false);\r\n }\r\n break;\r\n case 'file':\r\n if (value == '' || value == null) {\r\n result.push(false);\r\n } else {\r\n result.push(true);\r\n }\r\n break;\r\n case 'nofile':\r\n if (value == '' || value == null) {\r\n result.push(true);\r\n } else {\r\n result.push(false);\r\n }\r\n break;\r\n case 'date':\r\n if (value == '' || value == null) {\r\n result.push(false);\r\n } else {\r\n result.push(true);\r\n }\r\n break;\r\n case 'nodate':\r\n if (value == '' || value == null) {\r\n result.push(true);\r\n } else {\r\n result.push(false);\r\n }\r\n break;\r\n case 'moredate':\r\n findElse = array\r\n .filter((x) => x.key.split('|')[0] == e.field.split('|')[0])\r\n .map((x) => x);\r\n if (findElse.length > 0) {\r\n vl = findElse[0].value;\r\n }\r\n if (e.field == '0') {\r\n nd = new Date();\r\n nd = new Date(nd.toDateString());\r\n } else if (e.field == '1') {\r\n nd = new Date(this.dateCorector(e.date));\r\n } else {\r\n nd = new Date(vl);\r\n }\r\n if (e.on == '0') {\r\n let dvl = new Date(value);\r\n nd.setHours(0);\r\n nd.setMinutes(0);\r\n dvl.setHours(0);\r\n dvl.setMinutes(0);\r\n if (nd.getTime() < dvl.getTime()) {\r\n result.push(true);\r\n } else {\r\n result.push(false);\r\n }\r\n } else if (e.on == '1') {\r\n let dvl = new Date(value);\r\n nd.setHours(0);\r\n nd.setMinutes(0);\r\n dvl.setHours(0);\r\n dvl.setMinutes(0);\r\n nd.setDate(nd.getDate() + parseInt(e.value));\r\n if (nd.getTime() <= dvl.getTime()) {\r\n result.push(true);\r\n } else {\r\n result.push(false);\r\n }\r\n } else if (e.on == '2') {\r\n let dvl = new Date(value);\r\n nd.setHours(0);\r\n nd.setMinutes(0);\r\n dvl.setHours(0);\r\n dvl.setMinutes(0);\r\n nd.setMonth(nd.getMonth() + parseInt(e.value));\r\n if (nd.getTime() <= dvl.getTime()) {\r\n result.push(true);\r\n } else {\r\n result.push(false);\r\n }\r\n } else if (e.on == '3') {\r\n let dvl = new Date(value);\r\n nd.setHours(0);\r\n nd.setMinutes(0);\r\n dvl.setHours(0);\r\n dvl.setMinutes(0);\r\n nd.setFullYear(nd.getFullYear() + parseInt(e.value));\r\n if (nd.getTime() <= dvl.getTime()) {\r\n result.push(true);\r\n } else {\r\n result.push(false);\r\n }\r\n } else if (e.on == '4') {\r\n nd.setHours(nd.getHours() + parseInt(e.value));\r\n if (nd.getTime() <= new Date(value).getTime()) {\r\n result.push(true);\r\n } else {\r\n result.push(false);\r\n }\r\n }\r\n break;\r\n case 'lessdate':\r\n findElse = array\r\n .filter((x) => x.key.split('|')[0] == e.field.split('|')[0])\r\n .map((x) => x);\r\n if (findElse.length > 0) {\r\n vl = findElse[0].value;\r\n }\r\n if (e.field == '0') {\r\n nd = new Date();\r\n nd = new Date(nd.toDateString());\r\n } else if (e.field == '1') {\r\n nd = new Date(this.dateCorector(e.date));\r\n } else {\r\n nd = new Date(vl);\r\n }\r\n if (e.on == '0') {\r\n let dvl = new Date(value);\r\n nd.setHours(0);\r\n nd.setMinutes(0);\r\n dvl.setHours(0);\r\n dvl.setMinutes(0);\r\n if (nd.getTime() > dvl.getTime()) {\r\n result.push(true);\r\n } else {\r\n result.push(false);\r\n }\r\n } else if (e.on == '1') {\r\n let dvl = new Date(value);\r\n nd.setHours(0);\r\n nd.setMinutes(0);\r\n dvl.setHours(0);\r\n dvl.setMinutes(0);\r\n nd.setDate(nd.getDate() - parseInt(e.value));\r\n if (nd.getTime() >= dvl.getTime()) {\r\n result.push(true);\r\n } else {\r\n result.push(false);\r\n }\r\n } else if (e.on == '2') {\r\n let dvl = new Date(value);\r\n nd.setHours(0);\r\n nd.setMinutes(0);\r\n dvl.setHours(0);\r\n dvl.setMinutes(0);\r\n nd.setMonth(nd.getMonth() - parseInt(e.value));\r\n if (nd.getTime() >= dvl.getTime()) {\r\n result.push(true);\r\n } else {\r\n result.push(false);\r\n }\r\n } else if (e.on == '3') {\r\n let dvl = new Date(value);\r\n nd.setHours(0);\r\n nd.setMinutes(0);\r\n dvl.setHours(0);\r\n dvl.setMinutes(0);\r\n nd.setFullYear(nd.getFullYear() - parseInt(e.value));\r\n if (nd.getTime() >= dvl.getTime()) {\r\n result.push(true);\r\n } else {\r\n result.push(false);\r\n }\r\n } else if (e.on == '4') {\r\n nd.setHours(nd.getHours() - parseInt(e.value));\r\n if (nd.getTime() >= new Date(value).getTime()) {\r\n result.push(true);\r\n } else {\r\n result.push(false);\r\n }\r\n }\r\n break;\r\n case 'isdate':\r\n findElse = array\r\n .filter((x) => x.key.split('|')[0] == e.field.split('|')[0])\r\n .map((x) => x);\r\n if (findElse.length > 0) {\r\n vl = findElse[0].value;\r\n }\r\n if (e.field == '0') {\r\n nd = new Date();\r\n nd = new Date(nd.toDateString());\r\n } else if (e.field == '1') {\r\n nd = new Date(this.dateCorector(e.date));\r\n } else {\r\n nd = new Date(vl);\r\n }\r\n if (nd.getTime() == new Date(value).getTime()) {\r\n result.push(true);\r\n } else {\r\n result.push(false);\r\n }\r\n break;\r\n case 'notdate':\r\n findElse = array\r\n .filter((x) => x.key.split('|')[0] == e.field.split('|')[0])\r\n .map((x) => x);\r\n if (findElse.length > 0) {\r\n vl = findElse[0].value;\r\n }\r\n if (e.field == '0') {\r\n nd = new Date();\r\n nd = new Date(nd.toDateString());\r\n } else if (e.field == '1') {\r\n nd = new Date(this.dateCorector(e.date));\r\n } else {\r\n nd = new Date(vl);\r\n }\r\n if (nd.getTime() != new Date(value).getTime()) {\r\n result.push(true);\r\n } else {\r\n result.push(false);\r\n }\r\n break;\r\n default: //select+radio\r\n if (value == '' || value == null) {\r\n result.push(false);\r\n } else if (value == e.condition) {\r\n result.push(true);\r\n } else {\r\n result.push(false);\r\n }\r\n break;\r\n }\r\n });\r\n let display = true;\r\n let finResult = [];\r\n let finIndex = 0;\r\n if (result.length == 1) {\r\n display = result[0];\r\n finResult.push([display]);\r\n } else if (result.length > 1) {\r\n finResult.push([]);\r\n [].forEach.call(result, (e, index) => {\r\n if (elseC[index] != '') {\r\n if (elseC[index] == 'and') {\r\n finResult[finIndex].push(e);\r\n } else if (elseC[index] == 'or') {\r\n finResult.push([]);\r\n finIndex++;\r\n finResult[finIndex].push(e);\r\n }\r\n } else {\r\n finResult[finIndex].push(e);\r\n }\r\n });\r\n }\r\n let disResult = [];\r\n if (finResult.length > 0) {\r\n [].forEach.call(finResult, (e) => {\r\n disResult.push(\r\n e\r\n .map(function (x) {\r\n return x;\r\n })\r\n .indexOf(false)\r\n );\r\n });\r\n display = false;\r\n [].forEach.call(disResult, (e) => {\r\n if (e == -1) {\r\n display = true;\r\n }\r\n });\r\n } else {\r\n display = false;\r\n }\r\n target.display = display;\r\n }\r\n\r\n dateCorector(date) {\r\n let nd = date.split('-');\r\n return nd[1] + '-' + nd[0] + '-' + nd[2];\r\n }\r\n\r\n getIndex(id) {\r\n return this.dataBase.findIndex((x) => x.Id === id);\r\n }\r\n\r\n getIndexP(id) {\r\n return this.dataParent.findIndex((x) => x.Id === id);\r\n }\r\n\r\n editCondition(index) {\r\n if (index == -1) {\r\n let value: ConditionList = {\r\n formT: '',\r\n target: '',\r\n condition: '',\r\n formF: '',\r\n field: '',\r\n date: '',\r\n on: '',\r\n value: '',\r\n else: '',\r\n };\r\n this.conditionList.push(value);\r\n this.conditionValues.push([]);\r\n this.conditionArray.push([]);\r\n this.conditionMore.push([]);\r\n this.conditionOn.push([]);\r\n this.dateDate.push([]);\r\n this.dateTime.push([]);\r\n this.conditionFinArray.push([]);\r\n } else {\r\n this.conditionList.splice(index, 1);\r\n this.conditionValues.splice(index, 1);\r\n this.conditionArray.splice(index, 1);\r\n this.conditionMore.splice(index, 1);\r\n this.conditionOn.splice(index, 1);\r\n this.dateDate.splice(index, 1);\r\n this.dateTime.splice(index, 1);\r\n this.conditionFinArray.splice(index, 1);\r\n }\r\n }\r\n\r\n changeConditionMore(event, index) {\r\n if (\r\n this.conditionList[index].condition == 'morenumber' ||\r\n this.conditionList[index].condition == 'lessnumber' ||\r\n this.conditionList[index].condition == 'isnumber' ||\r\n this.conditionList[index].condition == 'notnumber'\r\n ) {\r\n this.conditionOn[index] = [];\r\n if (event == '0') {\r\n this.conditionOn[index].push({ name: '2', value: 'ніж' });\r\n } else {\r\n this.conditionOn[index].push({ name: '0', value: 'ніж' }, { name: '1', value: 'на' });\r\n }\r\n }\r\n this.conditionList[index] = {\r\n formT: this.conditionList[index].formT,\r\n target: this.conditionList[index].target,\r\n condition: this.conditionList[index].condition,\r\n formF: '',\r\n field: '',\r\n date: '',\r\n on: '',\r\n value: '',\r\n else: this.conditionList[index].else,\r\n };\r\n this.dateDate[index] = '';\r\n this.dateTime[index] = '';\r\n this.conditionCheck(event, 'field', index);\r\n this.conditionList[index].field = event;\r\n if (this.isLoad) {\r\n this.reviewAllow = false;\r\n }\r\n }\r\n\r\n changeConditionOn(event, index) {\r\n this.conditionCheck(event, 'on', index);\r\n this.conditionList[index].on = event;\r\n if (this.isLoad) {\r\n this.reviewAllow = false;\r\n }\r\n }\r\n\r\n onOwnDate(event, index, type) {\r\n if (type == 'date') {\r\n this.dateDate[index] = event.value;\r\n } else {\r\n this.dateTime[index] = '';\r\n setTimeout(() => {\r\n this.dateTime[index] = event;\r\n }, 0);\r\n }\r\n if (this.dateTime[index] != '' && this.dateTime[index] != undefined) {\r\n let nd = new Date(this.dateDate[index]);\r\n nd.setHours(parseInt(this.dateTime[index].split(':')[0]));\r\n nd.setMinutes(parseInt(this.dateTime[index].split(':')[1]));\r\n this.dateDate[index] = nd;\r\n } else {\r\n setTimeout(() => {\r\n this.dateTime[index] = '00:00';\r\n }, 0);\r\n }\r\n this.conditionList[index] = {\r\n formT: this.conditionList[index].formT,\r\n target: this.conditionList[index].target,\r\n condition: this.conditionList[index].condition,\r\n formF: this.conditionList[index].formF,\r\n field: this.conditionList[index].field,\r\n date: '',\r\n on: '',\r\n value: '',\r\n else: this.conditionList[index].else,\r\n };\r\n this.conditionCheck(event, 'date', index);\r\n this.conditionList[index].date = this.dateDate[index];\r\n if (this.isLoad) {\r\n this.reviewAllow = false;\r\n }\r\n }\r\n\r\n onOwnDateLoad(index) {\r\n let nd = this.conditionList[index].date.split('-');\r\n let date = new Date(nd[1] + '-' + nd[0] + '-' + nd[2]);\r\n this.dateDate[index] = date;\r\n this.dateTime[index] =\r\n ('0' + date.getHours()).slice(-2) + ':' + ('0' + date.getMinutes()).slice(-2);\r\n }\r\n\r\n changeValue(event, index) {\r\n this.conditionCheck(event, 'value', index);\r\n this.conditionList[index].value = event.target.value;\r\n if (this.isLoad) {\r\n this.reviewAllow = false;\r\n }\r\n }\r\n\r\n changeCondition(event, type, index) {\r\n if (type == 'formT') {\r\n this.conditionList[index] = {\r\n formT: '',\r\n target: '',\r\n condition: '',\r\n formF: '',\r\n field: '',\r\n date: '',\r\n on: '',\r\n value: '',\r\n else: this.conditionList[index].else,\r\n };\r\n if (index == 0) {\r\n this.conditionList[index].else = '';\r\n }\r\n let target = this.requestForm.filter((x) => x.id === event).map((x) => x);\r\n this.conditionArray[index] = this.dataLiner(target[0].requestAttributes, false);\r\n [].forEach.call(this.conditionArray[index], (e) => {\r\n let tableTitle = e.label.split('*L*');\r\n let elements = tableTitle\r\n .filter((x) => x.split('*I*')[0] == this.admin.getDefLocale())\r\n .map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split('*I*')[1];\r\n }\r\n e.tableTitle = tableTitle;\r\n });\r\n } else if (type == 'target') {\r\n this.conditionList[index] = {\r\n formT: this.conditionList[index].formT,\r\n target: '',\r\n condition: '',\r\n formF: '',\r\n field: '',\r\n date: '',\r\n on: '',\r\n value: '',\r\n else: this.conditionList[index].else,\r\n };\r\n } else if (type == 'condition') {\r\n this.conditionList[index] = {\r\n formT: this.conditionList[index].formT,\r\n target: this.conditionList[index].target,\r\n condition: '',\r\n formF: '',\r\n field: '',\r\n date: '',\r\n on: '',\r\n value: '',\r\n else: this.conditionList[index].else,\r\n };\r\n }\r\n this.dateDate[index] = '';\r\n this.dateTime[index] = '';\r\n this.conditionCheck(event, type, index);\r\n this.conditionList[index][type] = event;\r\n if (this.isLoad) {\r\n this.reviewAllow = false;\r\n }\r\n }\r\n\r\n conditionCheck(event, type, index) {\r\n switch (type) {\r\n case 'formT':\r\n if (event == '') {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case 'target':\r\n if (event == '') {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case 'condition':\r\n if (\r\n event == 'moredate' ||\r\n event == 'lessdate' ||\r\n event == 'isdate' ||\r\n event == 'notdate' ||\r\n event == 'morenumber' ||\r\n event == 'lessnumber' ||\r\n event == 'isnumber' ||\r\n event == 'notnumber' ||\r\n event == ''\r\n ) {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n case 'field':\r\n if (\r\n (this.conditionList[index].condition == 'isdate' ||\r\n this.conditionList[index].condition == 'notdate' ||\r\n this.conditionList[index].condition == 'isnumber' ||\r\n this.conditionList[index].condition == 'notnumber') &&\r\n event != '' &&\r\n event != '1'\r\n ) {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case 'date':\r\n if (event == '') {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n case 'on':\r\n if (event == '0') {\r\n this.conditionFinArray[index] = true;\r\n } else {\r\n this.conditionFinArray[index] = false;\r\n }\r\n break;\r\n case 'value':\r\n if (event.target.value == '') {\r\n this.conditionFinArray[index] = false;\r\n } else {\r\n this.conditionFinArray[index] = true;\r\n }\r\n break;\r\n }\r\n let check = true;\r\n [].forEach.call(this.conditionFinArray, (e) => {\r\n if (e == false) {\r\n check = false;\r\n }\r\n });\r\n if (this.IsLoading) {\r\n check = true;\r\n }\r\n this.conditionFinish = check;\r\n }\r\n\r\n loadTarget(event, index) {\r\n this.conditionValues[index] = [];\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push({ name: '0', value: '', pl: '' });\r\n this.conditionOn[index] = [];\r\n let target = this.conditionArray[index]\r\n .filter((x) => x.id === parseInt(event.value))\r\n .map((x) => x);\r\n if (target.length == 0) {\r\n this.conditionList.length = 1;\r\n this.conditionList[0] = {\r\n formT: '',\r\n target: '',\r\n condition: '',\r\n formF: '',\r\n field: '',\r\n date: '',\r\n on: '',\r\n value: '',\r\n else: '',\r\n };\r\n this.conditionValues[0] = [];\r\n this.conditionMore[0] = [];\r\n this.conditionOn[0] = [];\r\n return false;\r\n }\r\n let array: any;\r\n switch (target[0].type) {\r\n case 'select':\r\n array = this.dataPacker('unpack', 'selectors', target[0].selectors);\r\n [].forEach.call(array.list, (e) => {\r\n this.conditionValues[index].push(e);\r\n });\r\n break;\r\n case 'input':\r\n let check = 0;\r\n if (target[0].mask != '' && target[0].mask != null && target[0].mask != undefined) {\r\n let mask = target[0].mask.split('_');\r\n if (mask[0] == 'number') {\r\n check = 1;\r\n }\r\n }\r\n if (check == 1) {\r\n this.conditionValues[index].push(\r\n { name: 'fill', value: 'Числове поле заповнене' },\r\n { name: 'empty', value: 'Числове поле порожнє' },\r\n { name: 'morenumber', value: 'Число більше' },\r\n { name: 'lessnumber', value: 'Число меньше' },\r\n { name: 'isnumber', value: 'Число дорівнює' },\r\n { name: 'notnumber', value: 'Число не дорівнює' }\r\n );\r\n let list = [];\r\n [].forEach.call(this.conditionArray[index], (e) => {\r\n if (e.type == 'input') {\r\n if (e.mask != '' && e.mask != null && e.mask != undefined) {\r\n let mask = e.mask.split('_');\r\n if (mask[0] == 'number') {\r\n list.push(e);\r\n }\r\n }\r\n }\r\n });\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push({ name: '0', value: '*Ввести власні дані*' });\r\n [].forEach.call(list, (e) => {\r\n this.conditionMore[index].push({ name: e.key, value: e.tableLabel });\r\n });\r\n let indexF = this.conditionMore[index]\r\n .map(function (e) {\r\n return e.name.split('|')[0];\r\n })\r\n .indexOf(target[0].key.split('|')[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[index].splice(indexF, 1);\r\n }\r\n if (this.conditionList[index].field == '0') {\r\n this.conditionOn[index].push({ name: '2', value: 'ніж (строго більше чи меньше)' });\r\n } else {\r\n this.conditionOn[index].push(\r\n { name: '0', value: 'ніж (строго більше чи меньше)' },\r\n { name: '1', value: 'на (число)' }\r\n );\r\n }\r\n } else {\r\n this.conditionValues[index].push(\r\n { name: 'fill', value: 'Текстове поле заповнене' },\r\n { name: 'empty', value: 'Текстове поле порожнє' }\r\n );\r\n }\r\n break;\r\n case 'radio':\r\n array = this.dataPacker('unpack', 'selectors', target[0].selectors);\r\n [].forEach.call(array.list, (e) => {\r\n this.conditionValues[index].push(e);\r\n });\r\n break;\r\n case 'checkbox':\r\n this.conditionValues[index].push(\r\n { name: 'check', value: 'Поле відмічене' },\r\n { name: 'uncheck', value: 'Поле не відмічене' }\r\n );\r\n break;\r\n case 'date':\r\n this.conditionValues[index].push(\r\n { name: 'date', value: 'Дата вказана' },\r\n { name: 'nodate', value: 'Дата не вказана' },\r\n { name: 'moredate', value: 'Дата більше' },\r\n { name: 'lessdate', value: 'Дата меньше' },\r\n { name: 'isdate', value: 'Дата дорівнює' },\r\n { name: 'notdate', value: 'Дата не дорівнює' }\r\n );\r\n let list = [];\r\n [].forEach.call(this.conditionArray[index], (e) => {\r\n if (e.type == 'date') {\r\n list.push(e);\r\n }\r\n });\r\n this.conditionMore[index] = [];\r\n this.conditionMore[index].push(\r\n { name: '0', value: '*Поточна дата*', pl: 'кількість годин (днів, місяців, років)' },\r\n { name: '1', value: '*Власна дата*' }\r\n );\r\n [].forEach.call(list, (e) => {\r\n this.conditionMore[index].push({ name: e.key, value: e.tableLabel });\r\n });\r\n let indexF = this.conditionMore[index]\r\n .map(function (e) {\r\n return e.name.split('|')[0];\r\n })\r\n .indexOf(target[0].key.split('|')[0]);\r\n if (indexF != -1) {\r\n this.conditionMore[index].splice(indexF, 1);\r\n }\r\n this.conditionOn[index].push(\r\n { name: '0', value: 'ніж (строго більше чи меньше)' },\r\n { name: '1', value: 'на (днів)' },\r\n { name: '2', value: 'на (місяців)' },\r\n { name: '3', value: 'на (років)' }\r\n );\r\n if (target[0].mask == 'time') {\r\n this.conditionOn[index].push({ name: '4', value: 'на (годин)' });\r\n }\r\n break;\r\n case 'file':\r\n this.conditionValues[index].push(\r\n { name: 'file', value: 'Файл вибрано' },\r\n { name: 'nofile', value: 'Файл відсутній' }\r\n );\r\n break;\r\n case 'editor':\r\n this.conditionValues[index].push(\r\n { name: 'fillE', value: 'Редактор заповненний' },\r\n { name: 'emptyE', value: 'Редактор порожній' }\r\n );\r\n break;\r\n }\r\n }\r\n\r\n emptyCheck(empty, array) {\r\n let isParent = false;\r\n [].forEach.call(array, (e, indexE) => {\r\n if (e.type == 'column' || e.type == 'copy') {\r\n if (e.columns.length > 0) {\r\n let isEmpty = true;\r\n [].forEach.call(e.columns, (c, indexC) => {\r\n if (c.length > 0) {\r\n let emptyC = this.emptyCheck(empty, c);\r\n e.columns[indexC] = emptyC[2];\r\n if (emptyC[2].length > 0) {\r\n isEmpty = false;\r\n } else {\r\n isEmpty = true;\r\n }\r\n }\r\n });\r\n if (isEmpty) {\r\n if (!empty.some((x) => x.key.split('|')[0] === e.key.split('|')[0])) {\r\n empty.push(e);\r\n }\r\n isParent = true;\r\n // array.splice(indexE, 1);\r\n }\r\n } else {\r\n if (!empty.some((x) => x.key.split('|')[0] === e.key.split('|')[0])) {\r\n empty.push(e);\r\n }\r\n // array.splice(indexE, 1);\r\n }\r\n }\r\n });\r\n return [empty, isParent, array];\r\n }\r\n\r\n checkMenu(body, type) {\r\n let arrayNest = this.dataLiner(this.nestableList, true);\r\n let emptyRemove = [];\r\n let sendArray = JSON.parse(JSON.stringify(arrayNest));\r\n if (sendArray.length == 0) {\r\n let InfoText = 'Форма порожня! Для збереження форми, будь-ласка, додайте хоча б одне поле.';\r\n this.dialog.open(InfoMenu, {\r\n maxWidth: '600px',\r\n disableClose: true,\r\n data: { text: InfoText },\r\n });\r\n return false;\r\n }\r\n emptyRemove = this.emptyCheck(emptyRemove, sendArray);\r\n emptyRemove = emptyRemove[0];\r\n // console.log(emptyRemove);\r\n if (emptyRemove.length > 0) {\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: '600px',\r\n disableClose: true,\r\n data: {\r\n text: 'Увага! В документі знайдені порожні \"Колоники\", \"Дублікати\". При збереженні вони будуть видалені. Продовжити?',\r\n },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n emptyRemove = emptyRemove.reverse();\r\n if (type == 'add') {\r\n this.addMenu(body, emptyRemove);\r\n } else {\r\n this.saveMenu(body, emptyRemove);\r\n }\r\n }\r\n });\r\n } else {\r\n if (type == 'add') {\r\n this.addMenu(body, null);\r\n } else {\r\n this.saveMenu(body, null);\r\n }\r\n }\r\n }\r\n\r\n addMenu(body, emptyRemove) {\r\n this.IsSaving = true;\r\n\r\n this.requestType = body.type;\r\n let type = [];\r\n type.push({ requestTypeId: body.type, requestFormId: 0 });\r\n let arrayNest = this.dataLiner(this.nestableList, true);\r\n\r\n if (emptyRemove != null) {\r\n [].forEach.call(emptyRemove, (e) => {\r\n let indexF = arrayNest\r\n .map(function (f) {\r\n return f.key.split('|')[0];\r\n })\r\n .indexOf(e.key.split('|')[0]);\r\n arrayNest.splice(indexF, 1);\r\n });\r\n }\r\n\r\n [].forEach.call(arrayNest, (e, index) => {\r\n arrayNest[index].position = index;\r\n arrayNest[index].value = '';\r\n });\r\n let condition = this.conditionList;\r\n if (this.conditionList[0].formT == '') {\r\n condition = null;\r\n } else {\r\n [].forEach.call(condition, (e) => {\r\n if (e.date != '') {\r\n e.date = new Date(e.date);\r\n let dateVal =\r\n ('0' + e.date.getDate()).slice(-2) +\r\n '-' +\r\n ('0' + (e.date.getMonth() + 1)).slice(-2) +\r\n '-' +\r\n e.date.getFullYear() +\r\n ' ' +\r\n ('0' + e.date.getHours()).slice(-2) +\r\n ':' +\r\n ('0' + e.date.getMinutes()).slice(-2);\r\n e.date = dateVal;\r\n }\r\n });\r\n }\r\n let elements: any = this.langDataList\r\n .filter((x) => x.langId == this.currentLocale)\r\n .map((x) => x);\r\n if (elements.length == 0) {\r\n this.langDataList.push({ langId: this.currentLocale, title: body.name, text: body.text });\r\n } else {\r\n elements[0].title = body.name;\r\n }\r\n let titleString = '';\r\n [].forEach.call(this.langDataList, (e, indexE) => {\r\n if (indexE != 0) {\r\n titleString += '*L*';\r\n }\r\n titleString += this.admin.getDefLocale() + '*I*' + e.title;\r\n });\r\n\r\n let disabled = false;\r\n if (body.disabled.checked != undefined) {\r\n disabled = body.disabled.checked;\r\n }\r\n\r\n if (!this.isAdmin) {\r\n disabled = true;\r\n }\r\n\r\n let json = {\r\n title: titleString,\r\n requestTypeRequestForms: type,\r\n requestAttributes: [],\r\n condition: this.conditionPacker(condition),\r\n isActual: disabled,\r\n };\r\n\r\n // console.log(json);\r\n // return;\r\n\r\n this.http.post(this.admin.getUrl() + 'RequestForm', json, options).subscribe((data) => {\r\n let dataN: any = data;\r\n let formId = dataN.id;\r\n this.isSaveData = true;\r\n this.saveDataArray = [];\r\n this.writeAttr('post', arrayNest, 0, formId, body.typeSave);\r\n });\r\n }\r\n\r\n saveMenu(body, emptyRemove) {\r\n this.IsSaving = true;\r\n\r\n this.requestType = body.type;\r\n this.data.data.RequestTypeId = this.requestType;\r\n if (!body.typeSave) {\r\n this.unChangeRegister();\r\n this.isLoad = false;\r\n }\r\n if (this.reviewAllow) {\r\n this.saveData(body.typeSave, false);\r\n return false;\r\n }\r\n let type = [];\r\n type.push({\r\n requestTypeId: body.type,\r\n requestFormId: this.data.data.Id,\r\n sortNember: this.data.data.RequestAttributes[0].sortNember,\r\n });\r\n let condition = this.conditionList;\r\n if (this.conditionList[0].formT == '') {\r\n condition = null;\r\n } else {\r\n [].forEach.call(condition, (e) => {\r\n if (e.date != '') {\r\n e.date = new Date(e.date);\r\n let dateVal =\r\n ('0' + e.date.getDate()).slice(-2) +\r\n '-' +\r\n ('0' + (e.date.getMonth() + 1)).slice(-2) +\r\n '-' +\r\n e.date.getFullYear() +\r\n ' ' +\r\n ('0' + e.date.getHours()).slice(-2) +\r\n ':' +\r\n ('0' + e.date.getMinutes()).slice(-2);\r\n e.date = dateVal;\r\n }\r\n });\r\n }\r\n\r\n let elements: any = this.langDataList\r\n .filter((x) => x.langId == this.currentLocale)\r\n .map((x) => x);\r\n if (elements.length == 0) {\r\n this.langDataList.push({ langId: this.currentLocale, title: body.name, text: body.text });\r\n } else {\r\n elements[0].title = body.name;\r\n }\r\n let titleString = '';\r\n [].forEach.call(this.langDataList, (e, indexE) => {\r\n if (indexE != 0) {\r\n titleString += '*L*';\r\n }\r\n titleString += e.langId + '*I*' + e.title;\r\n });\r\n\r\n let disabled = false;\r\n if (body.disabled.checked != undefined) {\r\n disabled = body.disabled.checked;\r\n }\r\n\r\n let json = {\r\n id: this.data.data.Id,\r\n title: titleString,\r\n requestTypeRequestForms: type,\r\n requestAttributes: [],\r\n condition: this.conditionPacker(condition),\r\n isActual: disabled,\r\n };\r\n let array = [];\r\n let arrayNest = this.dataLiner(this.nestableList, true);\r\n\r\n if (emptyRemove != null) {\r\n [].forEach.call(emptyRemove, (e) => {\r\n if (e.id == undefined) {\r\n let indexF = arrayNest\r\n .map(function (x) {\r\n return x.key.split('|')[0];\r\n })\r\n .indexOf(e.key.split('|')[0]);\r\n arrayNest.splice(indexF, 1);\r\n } else {\r\n this.removeAttrList.push(e);\r\n }\r\n });\r\n }\r\n\r\n [].forEach.call(arrayNest, (e, index) => {\r\n arrayNest[index].position = index;\r\n });\r\n [].forEach.call(arrayNest, (e) => {\r\n if (e.id != undefined) {\r\n array.push(e);\r\n }\r\n });\r\n let arrayCreate = [];\r\n let arrayRemove = [];\r\n let arrayChange = [];\r\n [].forEach.call(arrayNest, (e) => {\r\n if (e.id != undefined) {\r\n arrayChange.push(e);\r\n } else {\r\n arrayCreate.push(e);\r\n }\r\n if (e.type == 'copy') {\r\n if (e.columns != undefined) {\r\n e.columns.length = 1;\r\n }\r\n }\r\n });\r\n [].forEach.call(this.removeAttrList, (e) => {\r\n if (!arrayRemove.some((x) => x.id === e.id)) {\r\n arrayRemove.push(e);\r\n }\r\n });\r\n this.removeAttrList = arrayRemove;\r\n [].forEach.call(arrayRemove, (e, indexE) => {\r\n [].forEach.call(arrayChange, (c, indexC) => {\r\n if (c.id == e.id) {\r\n arrayChange.splice(indexC, 1);\r\n }\r\n });\r\n });\r\n if (arrayCreate.length > 0) {\r\n this.writeAttr('post', arrayCreate, 0, this.data.data.Id, body.typeSave);\r\n }\r\n setTimeout(() => {\r\n if (arrayChange.length > 0) {\r\n this.writeAttr('put', arrayChange, 0, this.data.data.Id, body.typeSave);\r\n }\r\n }, 200);\r\n this.http\r\n .put(this.admin.getUrl() + 'RequestForm/' + this.data.data.Id, json, options)\r\n .subscribe(() => {\r\n if (arrayChange.length == 0 && arrayCreate.length == 0) {\r\n setTimeout(() => {\r\n this.removeAttrCheck(body.typeSave);\r\n }, 500);\r\n }\r\n });\r\n }\r\n\r\n removeAttrCheck(typeSave) {\r\n let arrayRemove = this.removeAttrList;\r\n [].forEach.call(arrayRemove, (e, indexE) => {\r\n if (e == undefined) {\r\n arrayRemove.splice(indexE, 1);\r\n }\r\n });\r\n if (arrayRemove.length > 0) {\r\n this.removeAttrList = [];\r\n this.removeAttr(arrayRemove, 0, typeSave);\r\n } else {\r\n if (typeSave) {\r\n if (this.isSaveData) {\r\n this.saveData(true, true);\r\n } else {\r\n this.onClose(true);\r\n }\r\n } else {\r\n this.IsLoading = true;\r\n this.IsSaving = false;\r\n this.reviewAllow = true;\r\n this.unChangeRegister();\r\n this.dbRequest('Attr', null, null);\r\n }\r\n }\r\n }\r\n\r\n removeAttr(array, index, typeSave) {\r\n if (array.length == index) {\r\n return false;\r\n }\r\n let e = array[index];\r\n if (e.id != undefined) {\r\n this.http\r\n .delete(this.admin.getUrl() + 'RequestAttribute/' + e.id, options)\r\n .subscribe((data) => {\r\n if (index + 1 == array.length) {\r\n if (typeSave) {\r\n if (this.isSaveData) {\r\n this.saveData(true, true);\r\n } else {\r\n this.onClose(true);\r\n }\r\n } else {\r\n this.IsLoading = true;\r\n this.IsSaving = false;\r\n this.reviewAllow = true;\r\n this.unChangeRegister();\r\n this.dbRequest('Attr', null, null);\r\n }\r\n } else {\r\n this.removeAttr(array, index + 1, typeSave);\r\n }\r\n });\r\n } else {\r\n if (index + 1 == array.length) {\r\n if (typeSave) {\r\n if (this.isSaveData) {\r\n this.saveData(true, true);\r\n } else {\r\n this.onClose(true);\r\n }\r\n } else {\r\n this.IsLoading = true;\r\n this.IsSaving = false;\r\n this.reviewAllow = true;\r\n this.unChangeRegister();\r\n this.dbRequest('Attr', null, null);\r\n }\r\n } else {\r\n this.removeAttr(array, index + 1, typeSave);\r\n }\r\n }\r\n }\r\n\r\n writeAttr(method, array, index, formId, typeSave) {\r\n if (array.length == index) {\r\n setTimeout(() => {\r\n this.removeAttrCheck(typeSave);\r\n }, 500);\r\n return false;\r\n }\r\n let attrId = null;\r\n let e = array[index];\r\n let key = e.key;\r\n if (e.type == 'radio' || e.type == 'select') {\r\n if (e.selectors == null) {\r\n e.selectors = '*T*custom*L*option_0|empty|';\r\n }\r\n }\r\n if (e.type == 'court') {\r\n e.selectors = '*T*court*L*';\r\n }\r\n\r\n let label = e.label;\r\n label = label.split('*L*');\r\n label = newLocalString(label, this.currentLocale, e.tableLabel);\r\n\r\n let description = e.description;\r\n let placeholder = e.placeholder;\r\n let tooltip = e.tooltip;\r\n let dialog = e.dialog;\r\n\r\n if (e.type != 'order') {\r\n if (e.tableDescription != null) {\r\n if (description == null || description == '' || e.tableDescription == '') {\r\n description = [];\r\n } else {\r\n description = description.split('*L*');\r\n }\r\n description = newLocalString(description, this.currentLocale, e.tableDescription);\r\n }\r\n\r\n if (e.tablePlaceholder != null) {\r\n if (placeholder == null || placeholder == '' || e.tablePlaceholder == '') {\r\n placeholder = [];\r\n } else {\r\n placeholder = placeholder.split('*L*');\r\n }\r\n placeholder = newLocalString(placeholder, this.currentLocale, e.tablePlaceholder);\r\n }\r\n\r\n if (e.tableTooltip != null) {\r\n if (tooltip == null || tooltip == '' || e.tableTooltip == '') {\r\n tooltip = [];\r\n } else {\r\n tooltip = tooltip.split('*L*');\r\n }\r\n tooltip = newLocalString(tooltip, this.currentLocale, e.tableTooltip);\r\n }\r\n\r\n if (e.tableDialog != null) {\r\n if (dialog == null || dialog == '' || e.tableDialog == '') {\r\n dialog = [];\r\n } else {\r\n dialog = dialog.split('*L*');\r\n }\r\n dialog = newLocalString(dialog, this.currentLocale, e.tableDialog);\r\n }\r\n }\r\n\r\n if (e.type == 'date' && e.mask != 'time') {\r\n placeholder = '';\r\n }\r\n\r\n function newLocalString(array, locale, value) {\r\n if (array[0] == value && array.length == 1) {\r\n array = [];\r\n }\r\n let result = '';\r\n let indexX = array\r\n .map(function (e) {\r\n return e.split('*I*')[0];\r\n })\r\n .indexOf(locale);\r\n if (indexX == -1) {\r\n if (array.length == 1) {\r\n array.push(locale + '*I*' + value);\r\n result = array.join('*L*');\r\n } else {\r\n result = locale + '*I*' + value;\r\n }\r\n } else {\r\n array[indexX] = locale + '*I*' + value;\r\n result = array.join('*L*');\r\n }\r\n return result;\r\n }\r\n\r\n let selectors = this.dataPacker('pack', 'selectors', e.selectors);\r\n\r\n if (e.type == 'date') {\r\n if (e.selectors != null && e.selectors != '') {\r\n e.selectors = true;\r\n } else {\r\n selectors = null;\r\n }\r\n }\r\n\r\n let json = {\r\n id: e.id,\r\n requestAttributeId: attrId,\r\n requestFormId: formId,\r\n required: e.required,\r\n label: label == undefined ? '' : label,\r\n description: description == undefined ? '' : description,\r\n placeholder: placeholder == undefined ? '' : placeholder,\r\n type: e.type,\r\n key: key,\r\n mask: e.mask == undefined ? '' : e.mask,\r\n tooltip: tooltip == undefined ? '' : tooltip,\r\n disabled: e.disabled,\r\n display: e.display,\r\n condition: this.dataPacker('pack', 'condition', e.condition),\r\n dialog: dialog == undefined ? '' : dialog,\r\n selectors: selectors,\r\n position: e.position,\r\n clone: e.clone,\r\n dub: e.dub,\r\n aligment: e.aligment,\r\n };\r\n let attrMethod = false;\r\n if (e.requestAttributeId != undefined) {\r\n if (e.requestAttributeId == null) {\r\n attrId = null;\r\n } else if (Number.isInteger(e.requestAttributeId)) {\r\n attrId = e.requestAttributeId;\r\n } else {\r\n attrMethod = true;\r\n attrId = e.requestAttributeId;\r\n }\r\n }\r\n\r\n if (attrMethod) {\r\n this.http.get(this.admin.getUrl() + 'RequestAttribute').subscribe((data) => {\r\n let datas: any = data;\r\n [].forEach.call(datas, (c) => {\r\n if (c.key != null) {\r\n if (c.key.split('|')[0] == e.requestAttributeId) {\r\n attrId = c.id;\r\n }\r\n }\r\n });\r\n if (attrId == null) {\r\n key = e.key.split('|')[0];\r\n } else {\r\n if (e.columns != null && typeof e.columns === 'string') {\r\n key = e.key.split('|')[0] + '|' + e.columns;\r\n }\r\n }\r\n if (e.type == 'court') {\r\n json.selectors = '*T*court*L*';\r\n } else if (e.type == 'radio' || e.type == 'select') {\r\n if (e.selectors == null) {\r\n e.selectors = '*T*custom*L*option_0|empty|';\r\n }\r\n }\r\n json.requestAttributeId = attrId;\r\n json.key = key;\r\n switch (method) {\r\n case 'put':\r\n this.http\r\n .put(this.admin.getUrl() + 'RequestAttribute/' + e.id, json, options)\r\n .subscribe((data) => {\r\n if (this.isSaveData) {\r\n this.saveDataArray.push(data);\r\n }\r\n this.writeAttr(method, array, index + 1, formId, typeSave);\r\n });\r\n break;\r\n case 'post':\r\n this.http\r\n .post(this.admin.getUrl() + 'RequestAttribute', json, options)\r\n .subscribe((data) => {\r\n if (this.isSaveData) {\r\n this.saveDataArray.push(data);\r\n }\r\n this.writeAttr(method, array, index + 1, formId, typeSave);\r\n });\r\n break;\r\n }\r\n });\r\n } else {\r\n if (attrId == null) {\r\n key = e.key.split('|')[0];\r\n } else {\r\n if (e.columns != null && typeof e.columns === 'string') {\r\n key = e.key.split('|')[0] + '|' + e.columns;\r\n }\r\n }\r\n if (e.type == 'court') {\r\n json.selectors = '*T*court*L*';\r\n } else if (e.type == 'radio' || e.type == 'select') {\r\n if (e.selectors == null) {\r\n e.selectors = '*T*custom*L*option_0|empty|';\r\n }\r\n }\r\n json.requestAttributeId = attrId;\r\n json.key = key;\r\n switch (method) {\r\n case 'put':\r\n this.http\r\n .put(this.admin.getUrl() + 'RequestAttribute/' + e.id, json, options)\r\n .subscribe((data) => {\r\n if (this.isSaveData) {\r\n this.saveDataArray.push(data);\r\n }\r\n this.writeAttr(method, array, index + 1, formId, typeSave);\r\n });\r\n break;\r\n case 'post':\r\n this.http\r\n .post(this.admin.getUrl() + 'RequestAttribute', json, options)\r\n .subscribe((data) => {\r\n if (this.isSaveData) {\r\n this.saveDataArray.push(data);\r\n }\r\n this.writeAttr(method, array, index + 1, formId, typeSave);\r\n });\r\n break;\r\n }\r\n }\r\n }\r\n\r\n saveData(typeSave, add) {\r\n if (add) {\r\n this.nestableListPreview = this.saveDataArray;\r\n this.isSaveData = false;\r\n }\r\n let array = this.dataLiner(this.nestableListPreview, false);\r\n\r\n this.attrSaveData = [];\r\n [].forEach.call(array, (e) => {\r\n if (e.type != 'column' && e.type != 'copy') {\r\n if (!this.attrSaveData.some((c) => c.requestAttributeId === e.id)) {\r\n let value = '';\r\n if (e.type == 'date' && e.value != '' && e.value != null && e.value != undefined) {\r\n if (e.value._i == undefined) {\r\n e.value = new Date(e.value);\r\n value =\r\n e.value.getDate() + '-' + (e.value.getMonth() + 1) + '-' + e.value.getFullYear();\r\n if (e.mask == 'time' && e.dialog != '' && e.placeholder != null) {\r\n value += ' ' + e.placeholder;\r\n }\r\n } else {\r\n value = e.value._i.date + '-' + (e.value._i.month + 1) + '-' + e.value._i.year;\r\n if (e.mask == 'time' && e.placeholder != '' && e.placeholder != null) {\r\n value += ' ' + e.placeholder;\r\n }\r\n }\r\n } else if (e.type == 'court') {\r\n if (e.value != '') {\r\n value = e.value.join('_');\r\n }\r\n } else if (e.type == 'file') {\r\n if (e.value != '' && e.value != null && e.value != undefined) {\r\n if (e.value.files == undefined) {\r\n value = e.value;\r\n } else {\r\n value = e.value.files[0].name;\r\n }\r\n } else {\r\n value = '';\r\n }\r\n } else if (e.type == 'checkbox') {\r\n if (e.value == '' || e.value == null) {\r\n value = 'false';\r\n } else {\r\n value = e.value.toString();\r\n }\r\n } else {\r\n if (e.mask == '+00 (000) 00-00-000' && e.value != '' && e.value != null) {\r\n var i = 0,\r\n v = e.value.toString();\r\n let result = e.mask.replace(/\\d/g, (_) => v[i++]);\r\n value = result;\r\n } else {\r\n if (e.value == null) {\r\n value = '';\r\n } else {\r\n value = e.value.toString();\r\n }\r\n }\r\n }\r\n if (!e.display) {\r\n value = '';\r\n }\r\n this.attrSaveData.push({\r\n id: 0,\r\n userRequestId: this.userRequestId,\r\n requestAttributeId: e.id,\r\n data: value,\r\n });\r\n } else {\r\n let value = '';\r\n if (e.type == 'date' && e.value != '' && e.value != null && e.value != undefined) {\r\n if (e.value._i == undefined) {\r\n e.value = new Date(e.value);\r\n value =\r\n e.value.getDate() + '-' + (e.value.getMonth() + 1) + '-' + e.value.getFullYear();\r\n if (e.mask == 'time' && e.placeholder != '' && e.placeholder != null) {\r\n value += ' ' + e.placeholder;\r\n }\r\n } else {\r\n value = e.value._i.date + '-' + (e.value._i.month + 1) + '-' + e.value._i.year;\r\n if (e.mask == 'time' && e.placeholder != '' && e.placeholder != null) {\r\n value += ' ' + e.placeholder;\r\n }\r\n }\r\n } else if (e.type == 'court') {\r\n value = e.value.join('_');\r\n } else if (e.type == 'file') {\r\n if (e.value != '' && e.value != null && e.value != undefined) {\r\n if (e.value.files == undefined) {\r\n value = e.value;\r\n } else {\r\n value = e.value.files[0].name;\r\n }\r\n } else {\r\n value = '';\r\n }\r\n } else if (e.type == 'checkbox') {\r\n if (e.value == '' || e.value == null) {\r\n value = 'false';\r\n } else {\r\n value = e.value.toString();\r\n }\r\n } else {\r\n if (e.mask == '+00 (000) 00-00-000' && e.value != '' && e.value != null) {\r\n var i = 0,\r\n v = e.value.toString();\r\n let result = e.mask.replace(/\\d/g, (_) => v[i++]);\r\n value = result;\r\n } else {\r\n if (e.value == null) {\r\n value = '';\r\n } else {\r\n value = e.value.toString();\r\n }\r\n }\r\n }\r\n if (!e.display) {\r\n value = '';\r\n }\r\n let index = this.attrSaveData\r\n .map(function (e) {\r\n return e.requestAttributeId;\r\n })\r\n .indexOf(e.id);\r\n this.attrSaveData[index].data = this.attrSaveData[index].data + '|&|' + value;\r\n }\r\n }\r\n });\r\n this.http.get(this.admin.getUrl() + 'UserRequest').subscribe((dataG) => {\r\n let datas: any = dataG;\r\n let index = datas\r\n .map(function (e) {\r\n return e.isActual;\r\n })\r\n .indexOf(true);\r\n if (index == -1) {\r\n let json = {\r\n requestTypeId: this.requestType,\r\n isActual: true,\r\n };\r\n this.http.post(this.admin.getUrl() + 'UserRequest', json, options).subscribe((dataPU) => {\r\n this.http.get(this.admin.getUrl() + 'UserRequest').subscribe((dataGU) => {\r\n let datal: any = dataGU;\r\n let userRequestIdA = datal[datal.length - 1];\r\n [].forEach.call(this.attrSaveData, (e, index) => {\r\n let json = {\r\n data: e.data,\r\n requestAttributeId: e.requestAttributeId,\r\n userRequestId: userRequestIdA.id,\r\n };\r\n this.http\r\n .post(this.admin.getUrl() + 'UserData', json, options)\r\n .subscribe((dataPA) => {\r\n if (index == this.attrSaveData.length - 1) {\r\n setTimeout(() => {\r\n this.removeAttrCheck(typeSave);\r\n }, 500);\r\n }\r\n });\r\n });\r\n });\r\n });\r\n } else {\r\n this.userRequestId = datas[index].userDatas[0].userRequestId;\r\n let addArray = [];\r\n let changeArray = [];\r\n [].forEach.call(this.attrSaveData, (e) => {\r\n let find = false;\r\n if (datas[index].userDatas.length > 0) {\r\n [].forEach.call(datas[index].userDatas, (c) => {\r\n if (e.requestAttributeId == c.requestAttributeId) {\r\n c.data = e.data;\r\n changeArray.push(c);\r\n find = true;\r\n return false;\r\n }\r\n });\r\n }\r\n if (find == false) {\r\n addArray.push(e);\r\n }\r\n });\r\n if (datas[index].userDatas.length > 0) {\r\n [].forEach.call(datas[index].userDatas, (e) => {\r\n let find = false;\r\n [].forEach.call(this.attrSaveData, (c) => {\r\n if (e.requestAttributeId == c.requestAttributeId) {\r\n find = true;\r\n }\r\n });\r\n });\r\n }\r\n if (addArray.length > 0) {\r\n this.writeData('post', addArray, 0, typeSave);\r\n }\r\n if (changeArray.length > 0) {\r\n this.writeData('put', changeArray, 0, typeSave);\r\n } else {\r\n setTimeout(() => {\r\n this.removeAttrCheck(typeSave);\r\n }, 500);\r\n }\r\n }\r\n });\r\n }\r\n\r\n writeData(type, array, index, typeSave) {\r\n let e = array[index];\r\n if (array.length == index) {\r\n setTimeout(() => {\r\n this.removeAttrCheck(typeSave);\r\n }, 500);\r\n return false;\r\n }\r\n if (type == 'post') {\r\n let json = {\r\n data: e.data,\r\n requestAttributeId: e.requestAttributeId,\r\n userRequestId: this.userRequestId,\r\n };\r\n this.http.post(this.admin.getUrl() + 'UserData', json, options).subscribe((data) => {\r\n this.writeData('post', array, index + 1, typeSave);\r\n });\r\n } else if (type == 'put') {\r\n let jsonC = {\r\n id: e.id,\r\n data: e.data,\r\n requestAttributeId: e.requestAttributeId,\r\n userRequestId: this.userRequestId,\r\n };\r\n this.http.put(this.admin.getUrl() + 'UserData/' + e.id, jsonC, options).subscribe((data) => {\r\n this.writeData('put', array, index + 1, typeSave);\r\n });\r\n }\r\n }\r\n\r\n onClose(save): void {\r\n if (isChange && !save) {\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: '600px',\r\n disableClose: true,\r\n data: { text: 'Увага! Документ буде закритий без збереження змін. Продовжити?' },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n this.unChangeRegister();\r\n this.router.navigate(['/admin/request-form']);\r\n }\r\n });\r\n } else {\r\n this.unChangeRegister();\r\n this.router.navigate(['/admin/request-form']);\r\n }\r\n }\r\n}\r\n","
\r\n

Управління Формами Заяв

\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
У вас недостатньо прав для редагування чи видалення вибраних форм!
\r\n
\r\n\r\n
\r\n \r\n Назва\r\n \r\n \r\n \r\n Типи форм\r\n \r\n Очистити фільтр\r\n {{ type.TableTitle }}\r\n \r\n \r\n \r\n Дати\r\n \r\n Очистити фільтр\r\n {{ date }}\r\n \r\n \r\n \r\n Автор\r\n \r\n Очистити фільтр\r\n {{ author }}\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Внутрішня назва {{row.TableTitle}} Тип Форми \r\n {{dataParent[getIndexP(row.RequestAttributes[0].requestTypeId)].TableTitle}} \r\n Дата {{dataBase[getIndex(row.Id)].CreateDate}} Автор {{row.Author}}
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n

Будь-ласка зачекайте!
Триває завантаження

\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n

Будь-ласка зачекайте!
Триває видалення

\r\n
\r\n
","
\r\n

{{ data.name }}

\r\n

{{ langCurrentTitle }}

\r\n \r\n
\r\n\r\n\r\n \r\n
\r\n Дані форми\r\n
\r\n
\r\n
Найменування (Title): *
\r\n \r\n \r\n \r\n Обов'язково до заповнення!\r\n \r\n \r\n
\r\n
\r\n
Тип Заяви:
\r\n \r\n {{ type.TableTitle }}\r\n \r\n
\r\n
\r\n
Відключити (Disable):
\r\n \r\n
Увага! Можливість розблокувати відображення форми доступно тільки для користувача із правами \"Адміністратор\".
\r\n
\r\n
\r\n
\r\n
\r\n Відображення\r\n
\r\n
Відображати форму якщо:
\r\n
\r\n
0\">\r\n
Взаємодія умов:
\r\n \r\n \r\n Вимкнуто\r\n І (and)\r\n Або (or)\r\n \r\n \r\n
\r\n
= 0 && cond.else != '')\">\r\n
Форма для умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Поле для умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Умова відображення:
\r\n \r\n \r\n Вимкнуто\r\n {{ value.value }}\r\n \r\n \r\n
\r\n\r\n
\r\n
Вимога умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ more.value }}\r\n \r\n \r\n
\r\n
\r\n
Власна дата:
\r\n
\r\n \r\n Виберіть необхідну дату\r\n \r\n \r\n \r\n \r\n \r\n Виберіть необхідний час\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
Тип умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ on.value }}\r\n \r\n \r\n
\r\n
\r\n
Значення умови:
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n Елементи\r\n
\r\n \r\n font_download\r\n check_box\r\n list\r\n radio_button_checked\r\n cloud_download\r\n edit\r\n date_range\r\n amp_stories\r\n add_box\r\n grid_on\r\n account_balance\r\n contact_mail\r\n {{draggable.label}}\r\n \r\n
\r\n
\r\n
\r\n Макет форми\r\n
\r\n \r\n \r\n \r\n {{item.tableLabel}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Json\r\n \r\n \r\n
{{json}}
\r\n
\r\n
\r\n
\r\n Легенда\r\n
Поле форми
\r\n
Дублікат
\r\n
Колонка
\r\n
Контейнер колонки/дубліката
\r\n
\r\n
\r\n Візуальне відображення\r\n\r\n \r\n
\r\n
\r\n
\r\n
info
\r\n
\r\n
{{item.tableLabel}} *
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n Будь-ласка введіть коректний Email!\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
info
\r\n
\r\n {{item.tableLabel}}\r\n *\r\n
\r\n
\r\n
\r\n
\r\n
info
\r\n
\r\n
{{item.tableLabel}} *
\r\n \r\n {{ option.value }}\r\n \r\n
\r\n
\r\n
\r\n
info
\r\n
\r\n
{{item.tableLabel}} *
\r\n \r\n {{option.value}}\r\n \r\n
\r\n
\r\n \r\n {{option.value}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
info
\r\n
\r\n
{{item.tableLabel}} *
\r\n \r\n Виберіть необхідний файл\r\n \r\n cloud_upload\r\n \r\n
\r\n
\r\n
\r\n
info
\r\n
\r\n
{{item.tableLabel}} *
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
info
\r\n
\r\n
{{item.tableLabel}} *
\r\n
\r\n \r\n дд.мм.рррр\r\n \r\n \r\n \r\n \r\n \r\n гг:хх\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
info
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{item.tableLabel}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
info
\r\n
\r\n
{{item.tableLabel}} *
\r\n \r\n {{ region.title }}\r\n \r\n \r\n {{ city.title }}\r\n \r\n \r\n {{ court.title }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n Внесення даних неможливе\r\n

Увага! Внесення даних для використання у попередньому перегляді шаблонів неможливе, оскільки структура форми була змінена. Збережіть форму, щоб отримати змогу вносити дані.

\r\n
\r\n
\r\n Візуальне відображення\r\n\r\n \r\n
\r\n
\r\n
\r\n
info
\r\n
\r\n
{{item.tableLabel}} *
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n Будь-ласка введіть коректний Email!\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
info
\r\n
\r\n {{item.tableLabel}}\r\n *\r\n
\r\n
\r\n
\r\n
\r\n
info
\r\n
\r\n
{{item.tableLabel}} *
\r\n \r\n {{ option.value }}\r\n \r\n
\r\n
\r\n
\r\n
info
\r\n
\r\n
{{item.tableLabel}} *
\r\n \r\n {{option.value}}\r\n \r\n
\r\n
\r\n \r\n {{option.value}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
info
\r\n
\r\n
{{item.tableLabel}} *
\r\n \r\n Виберіть необхідний файл\r\n \r\n cloud_upload\r\n \r\n
\r\n
\r\n
\r\n
info
\r\n
\r\n
{{item.tableLabel}} *
\r\n \r\n \r\n \r\n
\r\n
\r\n
{{item.tableLabel}} *
\r\n
\r\n
info
\r\n
\r\n
\r\n \r\n дд.мм.рррр\r\n \r\n \r\n \r\n \r\n \r\n гг:хх\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
info
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{item.tableLabel}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
info
\r\n
\r\n
{{item.tableLabel}} *
\r\n \r\n {{ region.title }}\r\n \r\n 0\" [disabled]=\"item.disabled\" [required]=\"item.required\" [value]=\"item.value[1]\" (selectionChange)=\"onChange($event, item, 'preview'); changeCourt('city', $event.value, item, true)\" (click)=\"courtClick(1)\">\r\n {{ city.title }}\r\n \r\n 0\" [disabled]=\"item.disabled\" [required]=\"item.required\" [value]=\"item.value[2]\" (selectionChange)=\"onChange($event, item, 'preview'); changeCourt('court', $event.value, item, true)\" (click)=\"courtClick(2)\">\r\n {{ court.title }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{ list.Text }}\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n

Будь-ласка зачекайте!
Триває збереження

\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n

Будь-ласка зачекайте!
Триває завантаження

\r\n
\r\n
\r\n","import { SelectionModel } from \"@angular/cdk/collections\";\r\nimport { Component, Inject, ViewChild } from \"@angular/core\";\r\nimport { FormControl, Validators } from \"@angular/forms\";\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { MatPaginator } from \"@angular/material/paginator\";\r\nimport { MatSort } from \"@angular/material/sort\";\r\nimport { MatTableDataSource } from \"@angular/material/table\";\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { CookieService } from \"ngx-cookie-service\";\r\nimport { Router } from \"@angular/router\";\r\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\r\nimport { DndDropEvent, DropEffect } from \"ngx-drag-drop\";\r\nimport { ThemePalette } from \"@angular/material/core\";\r\nimport { ProgressSpinnerMode } from \"@angular/material/progress-spinner\";\r\n\r\nimport { AdminPage } from \"./admin\";\r\nimport { ConfirmMenu } from \"../confirm-menu\";\r\nimport { InfoMenu } from \"../info-menu\";\r\n\r\nexport interface DialogData {\r\n name: string;\r\n status: string;\r\n data: RequestType;\r\n}\r\n\r\nexport interface RequestType {\r\n Id: number;\r\n Title: string;\r\n Text: string;\r\n Author: string;\r\n CreateDate: string;\r\n RequestForms: string[];\r\n Image: string;\r\n Disabled: any;\r\n Doc: string;\r\n TableTitle: string;\r\n}\r\n\r\nexport interface RequestForms {\r\n condition: string;\r\n createdAt: string;\r\n createdBy: string;\r\n id: number;\r\n requestAttributes: any[];\r\n requestTypeRequestForms: any[];\r\n title: string;\r\n}\r\n\r\nvar isChange = false;\r\nvar options = {};\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Request Type ++\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n@Component({\r\n selector: \"request-type\",\r\n templateUrl: \"request-type.html\",\r\n styleUrls: [\"admin.css\"],\r\n providers: [AdminPage],\r\n})\r\nexport class RequestTypePage {\r\n userAllow: boolean = true;\r\n IsLoading: boolean = false;\r\n isDeleting: boolean = false;\r\n\r\n barValue: number = 50;\r\n pageSizer: number = 5;\r\n pageIndexer: number = 0;\r\n\r\n currentLocale: string = \"\";\r\n\r\n dataBase: RequestType[] = [];\r\n displayedColumns: string[] = [\"select\", \"Title\", \"RequestForms\", \"CreateDate\", \"Author\"];\r\n\r\n barColor: ThemePalette = \"primary\";\r\n barMode: ProgressSpinnerMode = \"indeterminate\";\r\n dataSource: MatTableDataSource;\r\n selection = new SelectionModel(true, []);\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(private router: Router, private cookieService: CookieService, private admin: AdminPage, private http: HttpClient, public dialog: MatDialog) {\r\n this.IsLoading = true;\r\n\r\n if (this.cookieService.get(\"access_token\") == \"\") {\r\n this.router.navigate([\"/admin/login\"]);\r\n }\r\n\r\n options = {\r\n headers: new HttpHeaders({\r\n Authorization: \"Bearer \" + cookieService.get(\"access_token\"),\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n };\r\n\r\n if (this.cookieService.get(\"page_size\").split(\"_\")[0] == \"t\") {\r\n this.pageSizer = parseInt(this.cookieService.get(\"page_size\").split(\"_\")[1]);\r\n this.pageIndexer = parseInt(this.cookieService.get(\"page_size\").split(\"_\")[2]);\r\n } else {\r\n this.cookieService.delete(\"page_size\", \"/\");\r\n }\r\n\r\n if (this.cookieService.get(\"page_filter\") != \"\") {\r\n this.cookieService.delete(\"page_filter\", \"/\");\r\n }\r\n\r\n this.currentLocale = this.admin.getLocale();\r\n\r\n this.dataSource = new MatTableDataSource(this.dataBase);\r\n\r\n this.dbRequest();\r\n }\r\n\r\n dbRequest() {\r\n this.http.get(this.admin.getUrl() + \"Account/GetUsers\", options).subscribe((dataU) => {\r\n this.http.get(this.admin.getUrl() + \"RequestType\").subscribe((data) => {\r\n this.dataBase = [];\r\n [].forEach.call(data, (e) => {\r\n let date = e.createdAt.split(\"T\")[0].split(\"-\");\r\n date = date.reverse();\r\n date = date.join(\".\");\r\n let author: any = \"Система\";\r\n if (e.createdById != null) {\r\n [].forEach.call(dataU, (c) => {\r\n if (c.id == e.createdById) {\r\n author = c.email;\r\n // author = c.email.split(\"@\")[0];\r\n }\r\n });\r\n }\r\n\r\n let tableTitle = e.title.split(\"*L*\");\r\n let elements = tableTitle.filter((x) => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n\r\n this.dataBase.push({\r\n Id: e.id,\r\n TableTitle: tableTitle,\r\n Title: e.title,\r\n Text: e.desk,\r\n Author: author,\r\n CreateDate: date,\r\n RequestForms: e.requestTypeRequestForms,\r\n Image: e.picture,\r\n Disabled: e.isActual,\r\n Doc: e.doc,\r\n });\r\n });\r\n\r\n this.dataSource = new MatTableDataSource(this.dataBase);\r\n this.paginator.pageSize = this.pageSizer;\r\n this.paginator.pageIndex = this.pageIndexer;\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n\r\n this.IsLoading = false;\r\n });\r\n });\r\n }\r\n\r\n pageSize() {\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(\":\")[0];\r\n let secure = false;\r\n if (location.protocol == \"https:\") {\r\n secure = true;\r\n }\r\n this.pageSizer = this.dataSource.paginator.pageSize;\r\n this.pageIndexer = this.dataSource.paginator.pageIndex;\r\n this.cookieService.set(\"page_size\", \"t_\" + this.dataSource.paginator.pageSize.toString() + \"_\" + this.dataSource.paginator.pageIndex.toString(), expires, \"/\", local, secure);\r\n }\r\n\r\n applyFilter(filterValue: string) {\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n isAllSelected() {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.dataSource.data.length;\r\n return numSelected === numRows;\r\n }\r\n\r\n masterToggle() {\r\n this.isAllSelected() ? this.selection.clear() : this.dataSource.data.forEach((row) => this.selection.select(row));\r\n }\r\n\r\n checkboxLabel(row?: RequestType): string {\r\n let userId = this.cookieService.get(\"userName\").split(\"T\")[0];\r\n // let userId = this.cookieService.get(\"userName\").split(\"T\")[0].split(\"@\")[0];\r\n let userRole = parseInt(this.cookieService.get(\"cookieAllowId\").split(\"T\")[1]);\r\n // if(userRole == 1){\r\n this.userAllow = true;\r\n // }else{\r\n // this.userAllow = false;\r\n // }\r\n if (userRole != 1) {\r\n [].forEach.call(this.selection.selected, (e) => {\r\n if (e.Author != userId) {\r\n this.userAllow = false;\r\n }\r\n });\r\n }\r\n if (!row) {\r\n return `${this.isAllSelected() ? \"select\" : \"deselect\"} all`;\r\n }\r\n return `${this.selection.isSelected(row) ? \"deselect\" : \"select\"} row ${row.Id + 1}`;\r\n }\r\n\r\n getIndex(id) {\r\n return this.dataBase.findIndex((x) => x.Id === id);\r\n }\r\n\r\n getChilds(id, finish) {\r\n let result = null;\r\n let attrs = null;\r\n this.http.get(this.admin.getUrl() + \"RequestForm\").subscribe((data) => {\r\n result = [];\r\n attrs = [];\r\n [].forEach.call(data, (e) => {\r\n if (e.requestTypeRequestForms.length > 0) {\r\n if (e.requestTypeRequestForms[0].requestTypeId == parseInt(id)) {\r\n result.push(e.id);\r\n attrs.concat(e.requestAttributes);\r\n }\r\n }\r\n });\r\n this.removeChilds(id, result, attrs, finish);\r\n });\r\n }\r\n\r\n openMenu(status: string) {\r\n if (status == \"dbClick\") {\r\n if (this.cookieService.get(\"userName\") == this.selection.selected[0].Author || this.cookieService.get(\"cookieAllowId\").split(\"T\")[1] == \"1\") {\r\n status = \"edit\";\r\n this.userAllow = true;\r\n } else {\r\n this.userAllow = false;\r\n }\r\n }\r\n event.stopPropagation();\r\n let dialogRef = null;\r\n switch (status) {\r\n case \"add\":\r\n let emptyProduct = {\r\n Id: null,\r\n Title: \"\",\r\n Image: null,\r\n Author: null,\r\n };\r\n this.admin.setLocale(this.admin.getDefLocale());\r\n dialogRef = this.dialog.open(RequestTypeItem, {\r\n width: \"1000px\",\r\n minHeight: \"450px\",\r\n maxHeight: \"800px\",\r\n disableClose: true,\r\n data: { name: \"Новий тип заяви\", status: status, data: emptyProduct },\r\n });\r\n break;\r\n case \"edit\":\r\n let index = this.getIndex(this.selection.selected[0].Id);\r\n dialogRef = this.dialog.open(RequestTypeItem, {\r\n width: \"1000px\",\r\n minHeight: \"450px\",\r\n maxHeight: \"800px\",\r\n disableClose: true,\r\n data: { name: \"\", status: status, data: this.dataBase[index] },\r\n });\r\n break;\r\n case \"remove\":\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: { text: \"Ви дійсно хочете видалити тип заяви та зв'язані із нею форми та шаблони?\" },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n this.isDeleting = true;\r\n [].forEach.call(this.selection.selected, (e, index) => {\r\n if (index == this.selection.selected.length - 1) {\r\n this.getChilds(e.Id, true);\r\n } else {\r\n this.getChilds(e.Id, false);\r\n }\r\n // this.http.delete(this.admin.getUrl() + \"RequestType/\" + e.Id, options).subscribe((data)=>{\r\n // if(index == this.selection.selected.length -1){\r\n // this.refreshTable();\r\n // }\r\n // });\r\n });\r\n }\r\n });\r\n break;\r\n case \"open\":\r\n this.admin.changeCheck(\"/admin/request-form\");\r\n // this.router.navigate(['/admin/request-form']);\r\n let data = {\r\n filterName: this.selection.selected[0].Id.toString(),\r\n filterType: \"RequestTypeId\",\r\n };\r\n this.router.navigateByUrl(\"/admin/request-form\", { state: data });\r\n break;\r\n }\r\n if (dialogRef != null) {\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result == \"reload\") {\r\n this.currentLocale = this.admin.getLocale();\r\n this.openMenu(\"edit\");\r\n } else {\r\n this.selection = new SelectionModel(true, []);\r\n if (result == \"lang\") {\r\n this.admin.refreshLocale();\r\n }\r\n this.dbRequest();\r\n }\r\n });\r\n }\r\n }\r\n\r\n removeChilds(parent, childs, attrs, finish) {\r\n try {\r\n if (attrs.length > 0) {\r\n [].forEach.call(attrs, (a, indexA) => {\r\n setTimeout(() => {\r\n this.http.delete(this.admin.getUrl() + \"RequestAttribute/\" + a.id, options).subscribe((data) => {\r\n if (indexA + 1 == attrs.length) {\r\n if (childs.length > 0) {\r\n [].forEach.call(childs, (c, indexC) => {\r\n setTimeout(() => {\r\n this.http.delete(this.admin.getUrl() + \"RequestForm/\" + c, options).subscribe((data) => {\r\n if (indexC == childs.length - 1) {\r\n this.http.delete(this.admin.getUrl() + \"RequestType/\" + parent, options).subscribe((data) => {\r\n if (finish) {\r\n this.isDeleting = false;\r\n this.refreshTable();\r\n }\r\n });\r\n }\r\n });\r\n }, indexC * 100);\r\n });\r\n } else {\r\n this.http.delete(this.admin.getUrl() + \"RequestType/\" + parent, options).subscribe((data) => {\r\n if (finish) {\r\n this.isDeleting = false;\r\n this.refreshTable();\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }, indexA * 200);\r\n });\r\n } else {\r\n if (childs.length > 0) {\r\n [].forEach.call(childs, (c, indexC) => {\r\n setTimeout(() => {\r\n this.http.delete(this.admin.getUrl() + \"RequestForm/\" + c, options).subscribe((data) => {\r\n if (indexC == childs.length - 1) {\r\n this.http.delete(this.admin.getUrl() + \"RequestType/\" + parent, options).subscribe((data) => {\r\n if (finish) {\r\n this.isDeleting = false;\r\n this.refreshTable();\r\n }\r\n });\r\n }\r\n });\r\n }, indexC * 100);\r\n });\r\n } else {\r\n this.http.delete(this.admin.getUrl() + \"RequestType/\" + parent, options).subscribe((data) => {\r\n if (finish) {\r\n this.isDeleting = false;\r\n this.refreshTable();\r\n }\r\n });\r\n }\r\n }\r\n } catch (err) {\r\n console.error(err);\r\n this.dialog.open(InfoMenu, {\r\n width: \"80%\",\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: { text: \"При видаленні типу заяви виникла помилка. Не всі зв'язані форми були видалені. Будь ласка спробуйте ще раз!\" },\r\n });\r\n }\r\n }\r\n\r\n refreshTable() {\r\n this.selection = new SelectionModel(true, []);\r\n this.dbRequest();\r\n }\r\n}\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Request Item ++\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n@Component({\r\n selector: \"request-type-item\",\r\n templateUrl: \"request-type-item.html\",\r\n styleUrls: [\"./admin.css\"],\r\n providers: [AdminPage],\r\n})\r\nexport class RequestTypeItem {\r\n IsSaving: boolean = false;\r\n IsLoading: boolean = false;\r\n isAdmin: boolean = false;\r\n\r\n barValue: number = 50;\r\n\r\n currentLocale: string = \"\";\r\n langCurrentTitle: string = \"\";\r\n langCurrentText: string = \"\";\r\n langCurrentDoc: string = \"\";\r\n currentDragEffectMsg: string = \"\";\r\n\r\n localeList: any[] = [];\r\n requestForm: any[] = [];\r\n requestAttr: any[] = [];\r\n nestableList: any[] = [];\r\n langDataList: any[] = [];\r\n\r\n titleFormControl = new FormControl();\r\n barColor: ThemePalette = \"primary\";\r\n barMode: ProgressSpinnerMode = \"indeterminate\";\r\n currentDraggableEvent: DragEvent;\r\n fileData: File = null;\r\n previewUrl: any = null;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n private http: HttpClient,\r\n private admin: AdminPage,\r\n public dialog: MatDialog,\r\n private snackBarService: MatSnackBar,\r\n private cookieService: CookieService\r\n ) {\r\n this.IsLoading = true;\r\n\r\n this.currentLocale = this.admin.getLocale();\r\n\r\n let interval = setInterval(() => {\r\n if (this.admin.getDBStatus()) {\r\n clearInterval(interval);\r\n this.localeList = this.admin.getList(\"Lang\");\r\n\r\n if (this.cookieService.get(\"cookieAllowId\").split(\"T\")[1] == \"1\" || this.admin.managerDisable) {\r\n this.isAdmin = true;\r\n }\r\n\r\n if (this.data.status == \"add\" && !this.isAdmin) {\r\n this.data.data.Disabled = true;\r\n }\r\n }\r\n }, 50);\r\n\r\n let titleList = data.data.Title.split(\"*L*\");\r\n let textList: any = \"\";\r\n let docList: any = \"\";\r\n if (data.data.Text != null && data.data.Text != undefined) {\r\n textList = data.data.Text.split(\"*L*\");\r\n }\r\n if (data.data.Doc != null && data.data.Doc != undefined) {\r\n docList = data.data.Doc.split(\"*L*\");\r\n }\r\n [].forEach.call(titleList, (e, indexE) => {\r\n if (e.split(\"*I*\").length == 1) {\r\n e = this.admin.getDefLocale() + \"*I*\" + e;\r\n }\r\n this.langDataList.push({\r\n langId: e.split(\"*I*\")[0],\r\n title: e.split(\"*I*\")[1],\r\n text: textList[indexE],\r\n doc: docList[indexE],\r\n });\r\n });\r\n let elements = this.langDataList.filter((x) => x.langId == this.currentLocale).map((x) => x);\r\n if (elements.length == 0) {\r\n elements = this.langDataList.filter((x) => x.langId == this.admin.getDefLocale()).map((x) => x);\r\n }\r\n this.langCurrentTitle = elements[0].title;\r\n this.langCurrentText = elements[0].text;\r\n this.langCurrentDoc = elements[0].doc;\r\n\r\n this.titleFormControl = new FormControl(this.langCurrentTitle, [Validators.required]);\r\n\r\n this.dbRequest(\"Form\");\r\n }\r\n\r\n dbRequest(type) {\r\n switch (type) {\r\n case \"Form\":\r\n this.http.get(this.admin.getUrl() + \"RequestForm\").subscribe((data) => {\r\n this.requestForm = [];\r\n [].forEach.call(data, (e) => {\r\n if (e.requestTypeRequestForms.length > 0) {\r\n if (e.requestTypeRequestForms[0].requestTypeId == this.data.data.Id) {\r\n this.requestForm.push(e);\r\n }\r\n }\r\n });\r\n this.nestableBuild();\r\n });\r\n break;\r\n case \"Attr\":\r\n this.http.get(this.admin.getUrl() + \"RequestAttribute\").subscribe((data) => {\r\n this.requestAttr = [];\r\n [].forEach.call(data, (e) => {\r\n if (e.requestFormId == this.data.data.Id) {\r\n this.requestAttr.push(e);\r\n }\r\n });\r\n });\r\n break;\r\n }\r\n }\r\n\r\n setLocale(event) {\r\n this.admin.setLocale(event);\r\n this.onClose(false, \"reload\");\r\n }\r\n\r\n nestableBuild() {\r\n this.nestableList = [];\r\n let indexArray = [];\r\n\r\n [].forEach.call(this.requestForm, (e) => {\r\n [].forEach.call(e.requestTypeRequestForms, (c) => {\r\n if (c.requestTypeId == this.data.data.Id) {\r\n indexArray.push({ elem: e, index: c.sortNember });\r\n }\r\n });\r\n });\r\n\r\n indexArray.sort((a, b) => (a.index > b.index ? 1 : b.index > a.index ? -1 : 0));\r\n\r\n [].forEach.call(indexArray, (e) => {\r\n let tableTitle = e.elem.title.split(\"*L*\");\r\n let elements = tableTitle.filter((x) => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map((x) => x);\r\n if (elements.length == 0) {\r\n tableTitle = tableTitle[0];\r\n } else {\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n e.elem.tableTitle = tableTitle;\r\n\r\n this.nestableList.push(e.elem);\r\n });\r\n\r\n this.IsLoading = false;\r\n }\r\n\r\n onDragStart(event: DragEvent) {\r\n this.currentDragEffectMsg = \"\";\r\n this.currentDraggableEvent = event;\r\n this.snackBarService.dismiss();\r\n this.snackBarService.open(\"Переміщення розпочато!\", undefined, { duration: 2000 });\r\n }\r\n\r\n onDragged(item: any, list: any[], effect: DropEffect) {\r\n if (this.currentDragEffectMsg == \"\") {\r\n this.currentDragEffectMsg = `Переміщення закінчилось з еффектом \"${effect}\"!`;\r\n }\r\n if (effect === \"move\") {\r\n const index = list.indexOf(item);\r\n list.splice(index, 1);\r\n }\r\n this.changeRegister();\r\n }\r\n\r\n onDragEnd(event: DragEvent) {\r\n this.currentDraggableEvent = event;\r\n this.snackBarService.dismiss();\r\n this.snackBarService.open(this.currentDragEffectMsg || \"Переміщення завершено!\", undefined, { duration: 2000 });\r\n }\r\n\r\n onDrop(item: RequestForms, indexItem: number, event: DndDropEvent, list?: any[]) {\r\n if (list && event.dropEffect === \"move\") {\r\n let index = event.index;\r\n if (typeof index === \"undefined\") {\r\n index = list.length;\r\n }\r\n list.splice(index, 0, event.data);\r\n }\r\n }\r\n\r\n changeRegister() {\r\n isChange = true;\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(\":\")[0];\r\n let secure = false;\r\n if (location.protocol == \"https:\") {\r\n secure = true;\r\n }\r\n this.cookieService.set(\"is_change\", \"true\", expires, \"/\", local, secure);\r\n }\r\n\r\n unChangeRegister() {\r\n isChange = false;\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(\":\")[0];\r\n let secure = false;\r\n if (location.protocol == \"https:\") {\r\n secure = true;\r\n }\r\n this.cookieService.delete(\"is_change\", \"/\", local, secure);\r\n }\r\n\r\n fileProgress(fileInput: any, type) {\r\n this.fileData = fileInput.target.files[0];\r\n this.preview(type);\r\n }\r\n\r\n preview(type) {\r\n var mimeType = this.fileData.type;\r\n if (mimeType.match(/image\\/*/) == null) {\r\n return;\r\n }\r\n\r\n var reader = new FileReader();\r\n reader.readAsDataURL(this.fileData);\r\n reader.onload = (_event) => {\r\n this.previewUrl = reader.result;\r\n };\r\n }\r\n\r\n addMenu(body) {\r\n this.IsSaving = true;\r\n\r\n if (this.previewUrl == null) {\r\n this.previewUrl = body.image;\r\n }\r\n\r\n let elements: any = this.langDataList.filter((x) => x.langId == this.currentLocale).map((x) => x);\r\n if (elements.length == 0) {\r\n this.langDataList.push({ langId: this.currentLocale, title: body.name, text: body.text });\r\n } else {\r\n elements[0].title = body.name;\r\n elements[0].text = body.text;\r\n }\r\n let titleString = \"\";\r\n let textString = \"\";\r\n let docString = \"\";\r\n [].forEach.call(this.langDataList, (e, indexE) => {\r\n if (indexE != 0) {\r\n titleString += \"*L*\";\r\n textString += \"*L*\";\r\n docString += \"*L*\";\r\n }\r\n titleString += this.admin.getDefLocale() + \"*I*\" + e.title;\r\n textString += e.text;\r\n docString += e.doc;\r\n });\r\n\r\n let json = {\r\n title: titleString,\r\n picture: this.previewUrl,\r\n isActual: body.disabled.checked,\r\n desk: textString,\r\n doc: docString,\r\n };\r\n\r\n let formList = [];\r\n [].forEach.call(this.nestableList, (e, indexE) => {\r\n [].forEach.call(e.requestTypeRequestForms, (c, indexC) => {\r\n if (c.requestTypeId == this.data.data.Id) {\r\n let formType = c;\r\n formType.sortNember = indexE;\r\n e.requestTypeRequestForms[indexC] = formType;\r\n }\r\n });\r\n formList.push(e);\r\n });\r\n this.http.post(this.admin.getUrl() + \"RequestType\", json, options).subscribe((data) => {\r\n if (formList.length > 0) {\r\n [].forEach.call(formList, (e, indexE) => {\r\n this.http.put(this.admin.getUrl() + \"RequestForm/\" + e.id, e, options).subscribe(() => {\r\n if (formList.length - 1 == indexE) {\r\n this.IsSaving = false;\r\n this.onClose(true, null);\r\n }\r\n });\r\n });\r\n } else {\r\n this.IsSaving = false;\r\n this.onClose(true, null);\r\n }\r\n });\r\n }\r\n\r\n saveMenu(body) {\r\n this.IsSaving = true;\r\n\r\n if (this.previewUrl == null) {\r\n this.previewUrl = body.image;\r\n }\r\n\r\n let elements: any = this.langDataList.filter((x) => x.langId == this.currentLocale).map((x) => x);\r\n if (elements.length == 0) {\r\n this.langDataList.push({ langId: this.currentLocale, title: body.name, text: body.text, doc: body.doc });\r\n } else {\r\n elements[0].title = body.name;\r\n elements[0].text = body.text;\r\n elements[0].doc = body.doc;\r\n }\r\n let titleString = \"\";\r\n let textString = \"\";\r\n let docString = \"\";\r\n [].forEach.call(this.langDataList, (e, indexE) => {\r\n if (indexE != 0) {\r\n titleString += \"*L*\";\r\n textString += \"*L*\";\r\n docString += \"*L*\";\r\n }\r\n titleString += e.langId + \"*I*\" + e.title;\r\n textString += e.text;\r\n docString += e.doc;\r\n });\r\n\r\n let json = {\r\n id: body.id,\r\n title: titleString,\r\n picture: this.previewUrl,\r\n isActual: body.disabled.checked,\r\n desk: textString,\r\n doc: docString,\r\n };\r\n\r\n let formList = [];\r\n [].forEach.call(this.nestableList, (e, indexE) => {\r\n [].forEach.call(e.requestTypeRequestForms, (c, indexC) => {\r\n if (c.requestTypeId == this.data.data.Id) {\r\n let formType = c;\r\n formType.sortNember = indexE;\r\n e.requestTypeRequestForms[indexC] = formType;\r\n }\r\n });\r\n formList.push(e);\r\n });\r\n this.http.put(this.admin.getUrl() + \"RequestType/\" + body.id, json, options).subscribe(() => {\r\n if (formList.length > 0) {\r\n [].forEach.call(formList, (e, indexE) => {\r\n this.http.put(this.admin.getUrl() + \"RequestForm/\" + e.id, e, options).subscribe(() => {\r\n if (formList.length - 1 == indexE) {\r\n this.IsSaving = false;\r\n this.onClose(true, null);\r\n }\r\n });\r\n });\r\n } else {\r\n this.IsSaving = false;\r\n this.onClose(true, null);\r\n }\r\n });\r\n }\r\n\r\n onClose(save, type): void {\r\n if (isChange && !save) {\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: { text: \"Увага! Документ буде закритий без збереження змін. Продовжити?\" },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n this.unChangeRegister();\r\n this.dialogRef.close(type);\r\n }\r\n });\r\n } else {\r\n this.unChangeRegister();\r\n this.dialogRef.close(type);\r\n }\r\n }\r\n}\r\n","
\r\n

Управління Типами Заяв

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
У вас недостатньо прав для редагування чи видалення вибраних типів!
\r\n
\r\n\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Внутрішня назва {{row.TableTitle}} Кількість форм заяв {{row.RequestForms.length}} Дата створення {{row.CreateDate}} Автор {{row.Author}}
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n

Будь-ласка зачекайте!
Триває завантаження

\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n

Будь-ласка зачекайте!
Триває видалення

\r\n
\r\n
","
\r\n

{{ data.name }}

\r\n

{{ langCurrentTitle }}

\r\n \r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n
Найменування (title): *
\r\n \r\n \r\n Обов'язково до заповнення! \r\n \r\n
\r\n
\r\n
Опис:
\r\n \r\n \r\n \r\n
\r\n
\r\n
Зображення:
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
Відключити (Disable):
\r\n \r\n
\r\n Увага! Можливість розблокувати відображення форми доступно тільки для користувача із правами \"Адміністратор\".\r\n
\r\n
\r\n
\r\n
Необхідні документи:
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n {{item.tableTitle}}\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n save Зберегти\r\n \r\n \r\n save Зберегти\r\n \r\n \r\n \r\n {{ list.Text }}\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n

Будь-ласка зачекайте!
Триває збереження

\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n

Будь-ласка зачекайте!
Триває завантаження

\r\n
\r\n
\r\n","import { SelectionModel } from '@angular/cdk/collections';\r\nimport { Component, Inject, ViewChild } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { Router } from '@angular/router';\r\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport {\r\n MAT_MOMENT_DATE_FORMATS,\r\n MomentDateAdapter,\r\n MAT_MOMENT_DATE_ADAPTER_OPTIONS,\r\n} from '@angular/material-moment-adapter';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner';\r\n\r\nimport { ConfirmMenu } from '../confirm-menu';\r\nimport { AdminPage } from './admin';\r\n\r\nexport interface DialogData {\r\n name: string;\r\n status: string;\r\n data: ItemData;\r\n}\r\n\r\nexport interface ItemData {\r\n Name: string;\r\n Setting: string;\r\n Id: number;\r\n Type: string;\r\n Title: string;\r\n Text: string;\r\n Link: string;\r\n Lang: string;\r\n}\r\n\r\nexport interface LangData {\r\n id: number;\r\n name: string;\r\n}\r\n\r\nconst SETTINGS_ELEMENTS = [\r\n { Type: 'lang', Name: 'Мови сайту', Setting: 'Налаштування Мов Сайту' },\r\n { Type: 'requestTimer', Name: 'Час зберігання заяв', Setting: 'Налаштування Часу Зберігання' },\r\n { Type: 'disclaimer', Name: 'Дисклеймер відкриття форми', Setting: 'Налаштування Дисклеймера' },\r\n {\r\n Type: 'sendDisclaimer',\r\n Name: 'Дисклеймер відправки заяв',\r\n Setting: 'Налаштування Дисклеймера',\r\n },\r\n {\r\n Type: 'info',\r\n Name: 'Верхній інформаційний блок',\r\n Setting: 'Налаштування Інформаційного Блоку',\r\n },\r\n {\r\n Type: 'request',\r\n Name: 'Підказка до блоку \"Продовження форми\"',\r\n Setting: 'Налаштування \"Продовження Форми\"',\r\n },\r\n { Type: 'footer', Name: 'Підвал сайту', Setting: 'Налаштування Тексту Підвала' },\r\n {\r\n Type: 'requestInfo',\r\n Name: 'Інформація при завершенні заяви',\r\n Setting: 'Налаштування Завершення Заяви',\r\n },\r\n {\r\n Type: 'requestEdit',\r\n Name: 'Інформація при редагуванні тексту форми',\r\n Setting: 'Налаштування Тексту Форми',\r\n },\r\n { Type: 'skip', Name: 'Пропуск заповнення форми', Setting: 'Налаштування Заповнення Форми' },\r\n {\r\n Type: 'requestTooltip',\r\n Name: \"Відображення роз'яснення\",\r\n Setting: \"Налаштування Відображення Роз'яснення\",\r\n },\r\n {\r\n Type: 'managerDisable',\r\n Name: 'Активація форм адміністратором',\r\n Setting: 'Налаштування Активації Форм',\r\n },\r\n { Type: 'pollEmail', Name: 'Налаштування опитування', Setting: 'Налаштування Опитування' },\r\n { Type: 'saveMethod', Name: 'Налаштування збереження даних', Setting: 'Налаштування Збереження' },\r\n];\r\n\r\nvar isChange = false;\r\n\r\n@Component({\r\n selector: 'settings',\r\n templateUrl: 'settings.html',\r\n styleUrls: ['admin.css'],\r\n providers: [AdminPage],\r\n})\r\nexport class SettingsPage {\r\n localeList: LangData[] = [];\r\n dataBase: ItemData[] = [];\r\n tableBase: ItemData[] = [];\r\n\r\n currentLocale: string = '';\r\n\r\n userAllow: boolean = true;\r\n isLoad: boolean = false;\r\n\r\n pageSizer: number = 5;\r\n pageIndexer: number = 0;\r\n pregressValue: number = 50;\r\n\r\n pregressColor: ThemePalette = 'primary';\r\n pregressMode: ProgressSpinnerMode = 'indeterminate';\r\n\r\n constructor(\r\n private router: Router,\r\n private cookieService: CookieService,\r\n private admin: AdminPage,\r\n private http: HttpClient,\r\n public dialog: MatDialog\r\n ) {\r\n this.isLoad = true;\r\n\r\n if (this.cookieService.get('access_token') == '') {\r\n this.router.navigate(['/admin/login']);\r\n }\r\n\r\n if (this.cookieService.get('page_size').split('_')[0] == 's') {\r\n this.pageSizer = parseInt(this.cookieService.get('page_size').split('_')[1]);\r\n this.pageIndexer = parseInt(this.cookieService.get('page_size').split('_')[2]);\r\n } else {\r\n this.cookieService.delete('page_size', '/');\r\n }\r\n\r\n if (this.cookieService.get('page_filter') != '') {\r\n this.cookieService.delete('page_filter', '/');\r\n }\r\n\r\n this.dataSource = new MatTableDataSource(this.tableBase);\r\n\r\n this.currentLocale = this.admin.getLocale();\r\n\r\n let interval = setInterval(() => {\r\n if (this.admin.getDBStatus()) {\r\n clearInterval(interval);\r\n this.localeList = this.admin.getList('Lang');\r\n this.dbRequest();\r\n }\r\n }, 50);\r\n }\r\n\r\n displayedColumns: string[] = ['select', 'Name'];\r\n dataSource: MatTableDataSource;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n dbRequest() {\r\n this.http.get(this.admin.getUrl() + 'PageElement').subscribe((data) => {\r\n let dataN: any = data;\r\n this.dataBase = [];\r\n this.tableBase = [];\r\n [].forEach.call(SETTINGS_ELEMENTS, (e) => {\r\n let elements = dataN.filter((x) => x.type == e.Type).map((x) => x);\r\n if (elements.length == 0) {\r\n this.dataBase.push({\r\n Name: e.Name,\r\n Setting: e.Setting,\r\n Id: 0,\r\n Type: e.Type,\r\n Title: '',\r\n Text: '',\r\n Link: '',\r\n Lang: this.admin.getDefLocale(),\r\n });\r\n this.tableBase.push({\r\n Name: e.Name,\r\n Setting: e.Setting,\r\n Id: 0,\r\n Type: e.Type,\r\n Title: '',\r\n Text: '',\r\n Link: '',\r\n Lang: '',\r\n });\r\n } else {\r\n [].forEach.call(elements, (c) => {\r\n this.dataBase.push({\r\n Name: e.Name,\r\n Setting: e.Setting,\r\n Id: c.id,\r\n Type: e.Type,\r\n Title: c.title,\r\n Text: c.text,\r\n Link: c.link,\r\n Lang: c.lang,\r\n });\r\n if (c.lang == this.admin.getDefLocale() || c.lang == null || c.lang == '') {\r\n this.tableBase.push({\r\n Name: e.Name,\r\n Setting: e.Setting,\r\n Id: c.id,\r\n Type: e.Type,\r\n Title: c.title,\r\n Text: c.text,\r\n Link: c.link,\r\n Lang: c.lang,\r\n });\r\n }\r\n });\r\n }\r\n });\r\n\r\n this.dataSource = new MatTableDataSource(this.tableBase);\r\n this.paginator.pageSize = this.pageSizer;\r\n this.paginator.pageIndex = this.pageIndexer;\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n\r\n this.isLoad = false;\r\n });\r\n }\r\n\r\n pageSize() {\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(':')[0];\r\n let secure = false;\r\n if (location.protocol == 'https:') {\r\n secure = true;\r\n }\r\n this.pageSizer = this.dataSource.paginator.pageSize;\r\n this.pageIndexer = this.dataSource.paginator.pageIndex;\r\n this.cookieService.set(\r\n 'page_size',\r\n 's_' +\r\n this.dataSource.paginator.pageSize.toString() +\r\n '_' +\r\n this.dataSource.paginator.pageIndex.toString(),\r\n expires,\r\n '/',\r\n local,\r\n secure\r\n );\r\n }\r\n\r\n applyFilter(filterValue: string) {\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n selection = new SelectionModel(true, []);\r\n\r\n masterToggle() {\r\n this.selection.clear();\r\n }\r\n\r\n checkboxLabel(row?: ItemData): string {\r\n let userRole = parseInt(this.cookieService.get('cookieAllowId').split('T')[1]);\r\n // if(userRole == 1){\r\n this.userAllow = true;\r\n // }else{\r\n // this.userAllow = false;\r\n // }\r\n if (userRole != 1) {\r\n [].forEach.call(this.selection.selected, (e) => {\r\n this.userAllow = false;\r\n });\r\n }\r\n return `${this.selection.isSelected(row) ? 'deselect' : 'select'} row ${row.Id + 1}`;\r\n }\r\n\r\n getIndex(data) {\r\n let elements = this.dataBase.filter((x) => x.Type == data).map((x) => x);\r\n let indexX = elements\r\n .map(function (x) {\r\n return x.Lang;\r\n })\r\n .indexOf(this.currentLocale);\r\n if (indexX == -1) {\r\n let newElem = null;\r\n if (data == 'site' || data == 'lang' || data == 'requestTimer') {\r\n newElem = elements[0];\r\n } else {\r\n indexX = elements\r\n .map(function (x) {\r\n return x.Lang;\r\n })\r\n .indexOf(this.admin.getDefLocale());\r\n newElem = JSON.parse(JSON.stringify(elements[indexX]));\r\n newElem.Id = 0;\r\n newElem.Lang = this.currentLocale;\r\n }\r\n return newElem;\r\n } else {\r\n return elements[indexX];\r\n }\r\n }\r\n\r\n openMenu(status: string) {\r\n if (status == 'dbClick') {\r\n if (this.cookieService.get('cookieAllowId').split('T')[1] == '1') {\r\n status = 'edit';\r\n this.userAllow = true;\r\n } else {\r\n this.userAllow = false;\r\n }\r\n }\r\n event.stopPropagation();\r\n let dialogRef = null;\r\n switch (status) {\r\n case 'edit':\r\n let newData = this.getIndex(this.selection.selected[0].Type);\r\n dialogRef = this.dialog.open(SettingsItem, {\r\n width: '1000px',\r\n minHeight: '450px',\r\n maxHeight: '800px',\r\n disableClose: true,\r\n data: { name: '', status: status, data: newData },\r\n });\r\n break;\r\n }\r\n if (dialogRef != null) {\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result == 'reload') {\r\n this.currentLocale = this.admin.getLocale();\r\n this.openMenu('edit');\r\n } else {\r\n this.selection = new SelectionModel(true, []);\r\n if (result == 'lang') {\r\n this.admin.refreshLocale();\r\n }\r\n this.dbRequest();\r\n }\r\n });\r\n }\r\n }\r\n}\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Request Item ++\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n@Component({\r\n selector: 'settings-item',\r\n templateUrl: 'settings-item.html',\r\n styleUrls: ['./admin.css'],\r\n providers: [\r\n AdminPage,\r\n { provide: MAT_DATE_LOCALE, useValue: 'uk-UA' },\r\n {\r\n provide: DateAdapter,\r\n useClass: MomentDateAdapter,\r\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\r\n },\r\n { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },\r\n ],\r\n})\r\nexport class SettingsItem {\r\n localeList: any[] = [];\r\n languageList: any[] = [{ name: 'uk', text: 'Українська мова' }];\r\n\r\n currentLocale: string = '';\r\n disclaimer: string = '';\r\n emailE: string = '';\r\n emailL: string = '';\r\n emailP: string = '';\r\n emailI: string = '';\r\n emailR: string = '';\r\n saveMethod: string = '0';\r\n\r\n isSave: boolean = false;\r\n isLoad: boolean = false;\r\n disclaimerHide: boolean = false;\r\n skipActivation: boolean = false;\r\n\r\n pregressValue: number = 50;\r\n\r\n pregressColor: ThemePalette = 'primary';\r\n pregressMode: ProgressSpinnerMode = 'indeterminate';\r\n skipField: any = {\r\n a: '',\r\n b: '',\r\n d: '',\r\n i: '',\r\n };\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private admin: AdminPage,\r\n public dialog: MatDialog,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n private cookieService: CookieService\r\n ) {\r\n this.currentLocale = this.admin.getLocale();\r\n\r\n let interval = setInterval(() => {\r\n if (this.admin.getDBStatus()) {\r\n clearInterval(interval);\r\n this.localeList = this.admin.getList('Lang');\r\n }\r\n }, 50);\r\n\r\n if (this.data.data.Type == 'disclaimer' || this.data.data.Type == 'sendDisclaimer') {\r\n if (\r\n this.data.data.Link != '' &&\r\n this.data.data.Link != null &&\r\n this.data.data.Link != undefined\r\n ) {\r\n this.disclaimerHide = JSON.parse(this.data.data.Link);\r\n }\r\n }\r\n\r\n if (this.data.data.Type == 'requestTooltip' || this.data.data.Type == 'managerDisable') {\r\n if (\r\n this.data.data.Title != '' &&\r\n this.data.data.Title != null &&\r\n this.data.data.Title != undefined\r\n ) {\r\n this.disclaimerHide = JSON.parse(this.data.data.Title);\r\n }\r\n }\r\n\r\n if (this.data.data.Type == 'lang') {\r\n let nameArray = this.data.data.Title.split('|&|');\r\n let textArray = this.data.data.Text.split('|&|');\r\n if (nameArray[0] != '' && nameArray[0] != null && nameArray[0] != undefined) {\r\n this.languageList = [];\r\n [].forEach.call(nameArray, (e, indexE) => {\r\n this.languageList.push({ name: e, text: textArray[indexE] });\r\n });\r\n }\r\n }\r\n\r\n if (this.data.data.Type == 'skip') {\r\n let arr = this.data.data.Link.split('||');\r\n this.skipField.a = arr[0];\r\n this.skipField.b = arr[1];\r\n this.skipField.d = this.data.data.Title;\r\n this.skipField.i = this.data.data.Text;\r\n let boolS = false;\r\n if (arr[2] != '') {\r\n boolS = JSON.parse(arr[2]);\r\n }\r\n this.skipField.s = boolS;\r\n }\r\n\r\n if (this.data.data.Type == 'saveMethod') {\r\n this.saveMethod = this.data.data.Title;\r\n }\r\n }\r\n\r\n changeRegister() {\r\n isChange = true;\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(':')[0];\r\n let secure = false;\r\n if (location.protocol == 'https:') {\r\n secure = true;\r\n }\r\n this.cookieService.set('is_change', 'true', expires, '/', local, secure);\r\n }\r\n\r\n unChangeRegister() {\r\n isChange = false;\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(':')[0];\r\n let secure = false;\r\n if (location.protocol == 'https:') {\r\n secure = true;\r\n }\r\n this.cookieService.delete('is_change', '/', local, secure);\r\n }\r\n\r\n setLocale(event) {\r\n this.admin.setLocale(event);\r\n this.onClose(false, 'reload');\r\n }\r\n\r\n changeLang(event, type, index) {\r\n if (type == 'name') {\r\n this.languageList[index].name = event.target.value;\r\n } else {\r\n this.languageList[index].text = event.target.value;\r\n }\r\n }\r\n\r\n editLang(index) {\r\n if (index == -1) {\r\n let value = {\r\n name: '',\r\n text: '',\r\n };\r\n this.languageList.push(value);\r\n } else {\r\n this.languageList.splice(index, 1);\r\n }\r\n }\r\n\r\n changeSaveMethod(value) {\r\n this.saveMethod = value;\r\n }\r\n\r\n saveMenu(body) {\r\n this.isSave = true;\r\n let link = '';\r\n let title = body.title;\r\n let text = body.text;\r\n let lang = this.currentLocale;\r\n if (this.data.data.Type == 'disclaimer' || this.data.data.Type == 'sendDisclaimer') {\r\n link = body.display.checked;\r\n title = body.cond;\r\n }\r\n if (this.data.data.Type == 'requestTimer') {\r\n if (body.time == '' || body.time == '0') {\r\n body.time = '0';\r\n }\r\n title = body.time;\r\n }\r\n if (this.data.data.Type == 'lang') {\r\n title = '';\r\n text = '';\r\n lang = null;\r\n [].forEach.call(this.languageList, (e, indexE) => {\r\n if (indexE > 0) {\r\n title += '|&|';\r\n text += '|&|';\r\n }\r\n title += e.name;\r\n text += e.text;\r\n });\r\n } else if (this.data.data.Type == 'requestTimer') {\r\n lang = null;\r\n }\r\n\r\n if (this.data.data.Type == 'requestTooltip' || this.data.data.Type == 'managerDisable') {\r\n title = body.display.checked;\r\n }\r\n\r\n let act = false;\r\n if (this.data.data.Type == 'skip') {\r\n link = body.skipA + '||' + body.skipB + '||' + body.skipS;\r\n title = body.skipD;\r\n text = body.skipI;\r\n }\r\n\r\n if (this.data.data.Type == 'saveMethod') {\r\n title = this.saveMethod;\r\n }\r\n\r\n if (this.data.data.Type == 'pollEmail') {\r\n text = body.email;\r\n }\r\n\r\n if (this.data.data.Id != 0) {\r\n let json = {\r\n Id: this.data.data.Id,\r\n Title: title,\r\n Link: link.toString(),\r\n Type: this.data.data.Type,\r\n Text: text,\r\n Lang: lang,\r\n };\r\n\r\n this.http\r\n .put(\r\n this.admin.getUrl() + 'PageElement/' + this.data.data.Id,\r\n json,\r\n this.admin.getOptions()\r\n )\r\n .subscribe((data) => {\r\n this.isSave = false;\r\n this.onClose(true, null);\r\n });\r\n } else {\r\n let json = {\r\n Type: this.data.data.Type,\r\n Title: title,\r\n Text: text,\r\n Link: link.toString(),\r\n Lang: lang,\r\n };\r\n this.http\r\n .post(this.admin.getUrl() + 'PageElement', json, this.admin.getOptions())\r\n .subscribe((data) => {\r\n this.isSave = false;\r\n this.onClose(true, null);\r\n });\r\n }\r\n }\r\n\r\n onClose(save, type): void {\r\n if (isChange && !save) {\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: '600px',\r\n disableClose: true,\r\n data: { text: 'Увага! Документ буде закритий без збереження змін. Продовжити?' },\r\n });\r\n confirm.afterClosed().subscribe((result) => {\r\n if (result) {\r\n if (this.data.data.Type == 'lang') {\r\n this.unChangeRegister();\r\n this.dialogRef.close('lang');\r\n } else {\r\n this.unChangeRegister();\r\n this.dialogRef.close(type);\r\n }\r\n }\r\n });\r\n } else {\r\n if (this.data.data.Type == 'lang') {\r\n this.unChangeRegister();\r\n this.dialogRef.close('lang');\r\n } else {\r\n this.unChangeRegister();\r\n this.dialogRef.close(type);\r\n }\r\n }\r\n }\r\n}\r\n","
\r\n

Налаштування Сайту

\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Внутрішня назва {{row.Name}}
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n

Будь-ласка зачекайте!
Триває Завантаження

\r\n
\r\n
\r\n","
\r\n

{{data.data.Setting}}

\r\n \r\n
\r\n\r\n
\r\n
\r\n
Заголовок:
\r\n \r\n \r\n \r\n
\r\n
\r\n
Email:
\r\n \r\n \r\n \r\n
\r\n
\r\n
Текст:
\r\n \r\n \r\n \r\n
\r\n
\r\n
Числове значення (у днях):
\r\n \r\n \r\n \r\n
\r\n
\r\n
Текст умови:
\r\n \r\n \r\n \r\n
\r\n
\r\n
Відключити:
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Код мови:
\r\n \r\n \r\n \r\n
\r\n
\r\n
Назва мови:
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
Кнопка відновлення:
\r\n \r\n \r\n \r\n
\r\n
\r\n
Кнопка пропуску:
\r\n \r\n \r\n \r\n
\r\n
\r\n
Текст пояснення:
\r\n \r\n \r\n \r\n
\r\n
\r\n
Текст блокування:
\r\n \r\n \r\n \r\n
\r\n
\r\n
Відключити:
\r\n \r\n
\r\n \r\n
\r\n
Метод зберігання:
\r\n \r\n Вибір дe будуть зберігатися дані користувача\r\n \r\n В базі даних\r\n На компютері користувача\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n {{ list.Text }}\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n

Будь-ласка зачекайте!
Триває Завантаження

\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n

Будь-ласка зачекайте!
Триває Збереження

\r\n
\r\n
","import {SelectionModel} from '@angular/cdk/collections';\r\nimport {Component, Inject, ViewChild, ElementRef, AfterViewInit} from '@angular/core';\r\nimport {FormControl, Validators} from '@angular/forms';\r\nimport {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\r\nimport {MatPaginator} from '@angular/material/paginator';\r\nimport {MatSort} from '@angular/material/sort';\r\nimport {MatTableDataSource} from '@angular/material/table';\r\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\r\nimport {CookieService} from 'ngx-cookie-service';\r\nimport {Router} from '@angular/router';\r\nimport {ThemePalette} from '@angular/material/core';\r\nimport {ProgressSpinnerMode} from '@angular/material/progress-spinner';\r\nimport * as Quill from 'quill';\r\nimport QuillBetterTable from 'quill-better-table';\r\nimport {DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE} from '@angular/material/core';\r\nimport {MAT_MOMENT_DATE_FORMATS, MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS} from '@angular/material-moment-adapter';\r\nimport {TranslateService} from '@ngx-translate/core';\r\n\r\nimport {AdminPage} from \"./admin\";\r\nimport {InfoMenu} from '../info-menu'\r\nimport {ConfirmMenu} from '../confirm-menu'\r\nimport { CodeEditorMenu } from './code-editor';\r\n\r\nexport interface DialogData {\r\n name: string;\r\n status: string;\r\n data: TemplateData;\r\n}\r\n\r\nexport interface TemplateData {\r\n Id: number;\r\n TableTitle: string;\r\n Title: string;\r\n Content: string;\r\n TypeId: string;\r\n Author: string,\r\n CreateDate: string,\r\n}\r\n\r\nexport interface RequestType {\r\n Id: number;\r\n TableTitle: string;\r\n Title: string;\r\n Text: string;\r\n Author: string;\r\n CreateDate: string;\r\n RequestForms: string[];\r\n Image: string;\r\n}\r\n\r\nexport interface AttrSaveData {\r\n id: number;\r\n userRequestId: number;\r\n requestAttributeId: number;\r\n data: string;\r\n}\r\n\r\nvar isChange = false;\r\nvar options = {};\r\nvar universalIdentificatorCount: number = 0;\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Template ++\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n \r\n@Component({\r\n selector: 'template',\r\n templateUrl: 'template.html',\r\n styleUrls: ['admin.css'],\r\n providers: [AdminPage]\r\n})\r\n\r\nexport class TemplatePage {\r\n\r\n userAllow: boolean = true;\r\n isReload: boolean = false;\r\n IsLoading: boolean = false;\r\n \r\n pageSizer: number = 5;\r\n pageIndexer: number = 0;\r\n barValue: number = 50;\r\n \r\n currentLocale: string = \"\";\r\n\r\n templateData: TemplateData[];\r\n displayedColumns: string[] = [\"select\", \"Title\", \"CreateDate\", \"Author\"];\r\n\r\n barColor: ThemePalette = 'primary';\r\n barMode: ProgressSpinnerMode = 'indeterminate';\r\n dataSource: MatTableDataSource;\r\n selection = new SelectionModel(true, []);\r\n\r\n @ViewChild(MatPaginator, {static: true}) paginator: MatPaginator;\r\n @ViewChild(MatSort, {static: true}) sort: MatSort;\r\n\r\n constructor(\r\n private router: Router,\r\n private cookieService: CookieService,\r\n private admin: AdminPage,\r\n private http: HttpClient,\r\n public dialog: MatDialog,\r\n ){\r\n this.IsLoading = true;\r\n\r\n if(this.cookieService.get(\"access_token\") == \"\"){\r\n this.router.navigate(['/admin/login']);\r\n }\r\n\r\n if(this.cookieService.get(\"page_size\").split(\"_\")[0] == \"m\"){\r\n this.pageSizer = parseInt(this.cookieService.get(\"page_size\").split(\"_\")[1]);\r\n this.pageIndexer = parseInt(this.cookieService.get(\"page_size\").split(\"_\")[2]);\r\n }else{\r\n this.cookieService.delete(\"page_size\", \"/\");\r\n }\r\n\r\n if(this.cookieService.get(\"page_filter\") != \"\"){\r\n this.cookieService.delete(\"page_filter\", \"/\");\r\n }\r\n\r\n options = {\"headers\": new HttpHeaders({\"Authorization\": \"Bearer \" + cookieService.get(\"access_token\")})};\r\n\r\n this.currentLocale = this.admin.getLocale();\r\n\r\n this.dataSource = new MatTableDataSource(this.templateData);\r\n\r\n if(this.router.getCurrentNavigation().extras.skipLocationChange != false){\r\n let filterData = this.router.getCurrentNavigation().extras.state;\r\n if(filterData.langType != undefined){\r\n if(filterData.langType == \"reload\"){\r\n this.currentLocale = this.admin.getLocale();\r\n if(filterData.itemData.Id == 0){\r\n filterData.itemData.Id = filterData.itemData.LangParent;\r\n filterData.itemData.Lang = this.admin.getDefLocale();\r\n }\r\n this.selection.selected.push(filterData.itemData);\r\n this.isReload = true;\r\n }else{\r\n this.selection = new SelectionModel(true, []);\r\n if(filterData.langType == \"lang\"){\r\n this.admin.refreshLocale();\r\n }\r\n this.dbRequest();\r\n }\r\n }\r\n }\r\n \r\n this.dbRequest();\r\n }\r\n\r\n dbRequest(){\r\n this.http.get(this.admin.getUrl() + \"Account/GetUsers\", options).subscribe((dataU)=>{\r\n this.http.get(this.admin.getUrl() + \"Template\").subscribe((data)=>{\r\n this.templateData = [];\r\n [].forEach.call(data, (e) => {\r\n let date = e.createdAt.split(\"T\")[0].split(\"-\");\r\n date = date.reverse();\r\n date = date.join(\".\");\r\n let author: any = \"Система\";\r\n if(e.createdById != null){\r\n [].forEach.call(dataU, (c) =>{\r\n if(c.id == e.createdById){\r\n author = c.email;\r\n }\r\n });\r\n }\r\n\r\n let tableTitle = e.title.split(\"*L*\");\r\n let elements = tableTitle.filter(x => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map(x => x);\r\n if(elements.length == 0){\r\n tableTitle = tableTitle[0];\r\n }else{\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n\r\n this.templateData.push({\r\n Id: e.id,\r\n TableTitle: tableTitle,\r\n Title: e.title,\r\n Content: e.content,\r\n TypeId: e.requestTypeId,\r\n Author: author,\r\n CreateDate: date,\r\n });\r\n });\r\n\r\n this.dataSource = new MatTableDataSource(this.templateData);\r\n this.paginator.pageSize = this.pageSizer;\r\n this.paginator.pageIndex = this.pageIndexer;\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n \r\n this.IsLoading = false;\r\n\r\n if(this.isReload){\r\n this.isReload = false;\r\n this.openMenu(\"edit\");\r\n }\r\n });\r\n });\r\n }\r\n\r\n pageSize(){\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(\":\")[0];\r\n let secure = false;\r\n if(location.protocol == \"https:\"){\r\n secure = true;\r\n }\r\n this.cookieService.set(\"page_size\", \"m_\" + this.dataSource.paginator.pageSize.toString() + \"_\" + this.dataSource.paginator.pageIndex.toString(), expires, \"/\", local, secure);\r\n }\r\n\r\n applyFilter(filterValue: string) {\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n isAllSelected() {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.dataSource.data.length;\r\n return numSelected === numRows;\r\n }\r\n \r\n masterToggle() {\r\n this.isAllSelected() ? this.selection.clear() : this.dataSource.data.forEach(row => this.selection.select(row));\r\n }\r\n \r\n checkboxLabel(row?: TemplateData): string {\r\n let userId = this.cookieService.get(\"userName\").split(\"T\")[0];\r\n let userRole = parseInt(this.cookieService.get(\"cookieAllowId\").split(\"T\")[1]);\r\n this.userAllow = true;\r\n if(userRole != 1){\r\n [].forEach.call(this.selection.selected, (e) =>{\r\n if(e.Author != userId){\r\n this.userAllow = false;\r\n }\r\n });\r\n }\r\n if (!row) {\r\n return `${this.isAllSelected() ? 'select' : 'deselect'} all`;\r\n }\r\n return `${this.selection.isSelected(row) ? 'deselect' : 'select'} row ${row.Id + 1}`;\r\n }\r\n\r\n getIndex(id){\r\n return this.templateData.findIndex(x => x.Id === id);\r\n }\r\n\r\n openMenu(status: string){\r\n if(status == \"dbClick\"){\r\n if(this.cookieService.get(\"userName\") == this.selection.selected[0].Author || this.cookieService.get(\"cookieAllowId\").split(\"T\")[1] == \"1\"){\r\n status = \"edit\";\r\n this.userAllow = true;\r\n }else{\r\n status = \"review\";\r\n this.userAllow = false;\r\n }\r\n }\r\n event.stopPropagation();\r\n let emptyProduct;\r\n let data;\r\n let index;\r\n switch(status){\r\n case \"add\":\r\n emptyProduct = {\r\n \"Id\": null,\r\n \"Title\": \"\",\r\n \"Image\": null\r\n }\r\n data = {\r\n name: \"Новий шаблон\",\r\n status: status,\r\n data: emptyProduct\r\n };\r\n this.admin.setLocale(this.admin.getDefLocale());\r\n this.router.navigateByUrl('/admin/template-item', {state: data});\r\n break;\r\n case \"edit\":\r\n index = this.getIndex(this.selection.selected[0].Id);\r\n data = {\r\n name: \"\",\r\n status: status,\r\n data: this.templateData[index]\r\n };\r\n this.router.navigateByUrl('/admin/template-item', {state: data});\r\n break;\r\n case \"review\":\r\n index = this.getIndex(this.selection.selected[0].Id);\r\n data = {\r\n name: \"\",\r\n status: status,\r\n data: this.templateData[index]\r\n };\r\n this.router.navigateByUrl('/admin/template-item', {state: data});\r\n break;\r\n case \"remove\":\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: {text: \"Ви дійсно хочете видалити шаблон?\"}\r\n });\r\n confirm.afterClosed().subscribe(result => {\r\n if(result){\r\n [].forEach.call(this.selection.selected, (e, index) => {\r\n this.http.delete(this.admin.getUrl() + \"Template/\" + e.Id, options).subscribe((data)=>{\r\n if(index == this.selection.selected.length -1){\r\n this.refreshTable();\r\n }\r\n });\r\n });\r\n }\r\n });\r\n break;\r\n }\r\n }\r\n\r\n refreshTable(){\r\n this.selection = new SelectionModel(true, []);\r\n this.dbRequest();\r\n }\r\n \r\n}\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Template Item ++\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n@Component({\r\n selector: 'template-item',\r\n templateUrl: 'template-item.html',\r\n styleUrls: ['./admin.css'],\r\n providers: [AdminPage]\r\n})\r\n\r\nexport class TemplateItem implements AfterViewInit {\r\n\r\n IsSaving: boolean = false;\r\n IsLoading: boolean = false;\r\n IsLoad: boolean = false;\r\n dbIsLoad: boolean = false;\r\n IsLoadFin: boolean = false;\r\n IsContext: boolean = false;\r\n editorCommand = false;\r\n editorClickCheck = false;\r\n cursorFindAdd = false;\r\n\r\n requestType: number = 0;\r\n barValue: number = 50;\r\n contextX: number = 0;\r\n contextY: number = 0;\r\n \r\n currentLocale: string = \"\";\r\n editorContent: string = \"\";\r\n editorData: string = \"\";\r\n demoEditorContent: string = \"\";\r\n langCurrentTitle: string = \"\";\r\n langCurrentContent: string = \"\";\r\n\r\n localeList: any[] = [];\r\n langDataList: any[] = [];\r\n requestTypeList: RequestType[];\r\n attrSaveData: AttrSaveData[];\r\n attrLoadData: any[];\r\n regionLoadData: any[];\r\n cityLoadData: any[];\r\n courtLoadData: any[];\r\n userDataTypeValue: any[];\r\n\r\n titleFormControl = new FormControl();\r\n data: any;\r\n barColor: ThemePalette = 'primary';\r\n barMode: ProgressSpinnerMode = 'indeterminate';\r\n editorQuill: any = null;\r\n\r\n @ViewChild('editorQuill', {static: false}) editorElementRef: ElementRef;\r\n @ViewChild('editor') editor: any;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private admin: AdminPage,\r\n public dialog: MatDialog,\r\n private router: Router,\r\n private translateService: TranslateService,\r\n private cookieService: CookieService,\r\n ){\r\n if(this.router.getCurrentNavigation().extras.skipLocationChange == false){\r\n this.router.navigate(['/admin/template']);\r\n }else{\r\n this.IsLoading = true;\r\n\r\n this.currentLocale = this.admin.getLocale();\r\n\r\n let interval = setInterval(() => {\r\n if(this.admin.getDBStatus()){\r\n clearInterval(interval);\r\n this.localeList = this.admin.getList(\"Lang\");\r\n }\r\n }, 50);\r\n \r\n this.dbRequest();\r\n this.data = this.router.getCurrentNavigation().extras.state;\r\n\r\n let titleList = this.data.data.Title.split(\"*L*\");\r\n let textList: any = \"\";\r\n if(this.data.data.Content != null && this.data.data.Content != undefined){\r\n textList = this.data.data.Content.split(\"*L*\");\r\n }\r\n [].forEach.call(titleList, (e, indexE) =>{\r\n if(e.split(\"*I*\").length == 1){\r\n e = this.admin.getDefLocale() + \"*I*\" + e;\r\n }\r\n this.langDataList.push(\r\n {\r\n langId: e.split(\"*I*\")[0], title: e.split(\"*I*\")[1], content: textList[indexE]\r\n }\r\n );\r\n });\r\n let elements = this.langDataList.filter(x => x.langId == this.currentLocale).map(x => x);\r\n if(elements.length == 0){\r\n elements = this.langDataList.filter(x => x.langId == this.admin.getDefLocale()).map(x => x);\r\n }\r\n this.langCurrentTitle = elements[0].title;\r\n this.langCurrentContent = elements[0].content;\r\n\r\n this.titleFormControl = new FormControl(this.langCurrentTitle, [Validators.required]);\r\n\r\n isChange = false;\r\n\r\n if(this.langCurrentContent != undefined){\r\n this.IsLoading = true;\r\n let interval = setInterval(() => {\r\n if(this.dbIsLoad && this.IsLoadFin){\r\n clearInterval(interval);\r\n let reg = new RegExp(/(?!\\d)\\s(cc_cursor)/g);\r\n this.langCurrentContent = this.langCurrentContent.replace(reg, \"\");\r\n reg = new RegExp(/[^s]+<.span>/g);\r\n this.langCurrentContent = this.langCurrentContent.replace(reg, \"\");\r\n // ===============================================\r\n reg = new RegExp(//g);\r\n this.langCurrentContent = this.langCurrentContent.replace(reg, \"\");\r\n reg = new RegExp(//g);\r\n this.langCurrentContent = this.langCurrentContent.replace(reg, \"\");\r\n reg = new RegExp(/style=.color.\\srgb.\\d{1,3}.\\s\\d{1,3}.\\s\\d{1,3}.../g);\r\n this.langCurrentContent = this.langCurrentContent.replace(reg, \"\");\r\n // ===============================================\r\n reg = new RegExp(/\\sstyle=\"background-color: initial;\"/g);\r\n let test = reg.test(this.langCurrentContent);\r\n if(test){\r\n this.langCurrentContent = this.langCurrentContent.replace(reg, \"\");\r\n }\r\n reg = new RegExp(/class=.key-/g);\r\n this.langCurrentContent = this.langCurrentContent.replace(reg, \"key=\\\"\"); \r\n this.editorQuill.root.innerHTML = this.langCurrentContent;\r\n this.editorContent = this.editorQuill.root.innerHTML;\r\n reg = new RegExp(/[|][*]<\\w+\\s.*?(class=.key-(\\w|\\d|[-])+).>(\\w|\\d|\\s|[^<])+(<.\\w+.*?>[*][|]).*?/g);//v. 1.3.7\r\n let match = this.langCurrentContent.match(reg);\r\n reg = new RegExp(/[|][*]<\\w+\\s.*?(key=.(\\w|\\d|[-])+).>(\\w|\\d|\\s|[^<])+(<.\\w+.*?>[*][|]).*?/g);//v. 2.0\r\n if(match != null){\r\n match = match.concat(this.langCurrentContent.match(reg));\r\n }else{\r\n match = this.langCurrentContent.match(reg);\r\n }\r\n let counter = 0;\r\n if(match != null){\r\n [].forEach.call(match, (e) =>{\r\n if(e != null){\r\n let regKey = new RegExp(/\"key-(\\S|\\w|\\s|\\d|\\W).*?\"/);//v. 1.3.7\r\n let matchKey = e.match(regKey);\r\n regKey = new RegExp(/key=.(\\S|\\w|\\s|\\d|\\W).*?\"/);//v. 2.0\r\n if(matchKey != null){\r\n matchKey = matchKey.concat(e.match(regKey));\r\n }else{\r\n matchKey = e.match(regKey);\r\n }\r\n let UIC = matchKey[0].split(\"UI\")[1].split('T')[0];\r\n if(counter < parseInt(UIC)){\r\n counter = parseInt(UIC);\r\n }\r\n }\r\n });\r\n }\r\n universalIdentificatorCount = counter;\r\n this.IsLoading = false;\r\n }\r\n }, 50);\r\n }else{\r\n this.IsLoading = false;\r\n }\r\n if(this.data.data.TypeId != undefined){\r\n this.requestType = this.data.data.TypeId;\r\n }else{\r\n let intervalR = setInterval(() => {\r\n if(this.dbIsLoad){\r\n clearInterval(intervalR);\r\n this.requestType = this.requestTypeList[0].Id;\r\n }\r\n }, 50);\r\n }\r\n }\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n Quill.register({'modules/better-table': QuillBetterTable}, true);\r\n\r\n this.editorQuill = new Quill.default(this.editorElementRef.nativeElement, {\r\n modules: {\r\n toolbar: '#toolbarQuill',\r\n table: false,\r\n 'better-table': {\r\n operationMenu: {\r\n items: {\r\n insertColumnRight: {\r\n text: 'Вставте стовпчик праворуч',\r\n },\r\n insertColumnLeft: {\r\n text: 'Вставте стовпчик зліва',\r\n },\r\n insertRowUp: {\r\n text: 'Вставте рядок вгору',\r\n },\r\n insertRowDown: {\r\n text: 'Вставте рядок вниз',\r\n },\r\n mergeCells: {\r\n text: \"Об'єднайте вибрані клітинки\",\r\n },\r\n unmergeCells: {\r\n text: \"Роз'єднати клітинки\",\r\n },\r\n deleteColumn: {\r\n text: 'Видалити вибрані стовпці',\r\n },\r\n deleteRow: {\r\n text: 'Видалити вибрані рядки',\r\n },\r\n deleteTable: {\r\n text: 'Видалити таблицю',\r\n },\r\n },\r\n }\r\n },\r\n keyboard: {\r\n bindings: QuillBetterTable.keyboardBindings,\r\n 'list autofill': {\r\n prefix: /^\\s*(T{1,1}\\.|\\*)$/\r\n },\r\n }\r\n },\r\n placeholder: 'Текст шаблону',\r\n theme: 'snow'\r\n });\r\n\r\n var Parchment = Quill.import(\"parchment\");\r\n let KeyClass = new Parchment.Attributor('requestKey', 'key', {//v. 2.0\r\n scope: Parchment.Scope.INLINE\r\n });\r\n Quill.register(KeyClass, true);\r\n\r\n this.IsLoadFin = true;\r\n }\r\n\r\n codeEditor(){\r\n let confirm = this.dialog.open(CodeEditorMenu, {\r\n minWidth: \"800px\",\r\n maxWidth: \"1200px\",\r\n minHeight: \"500px\",\r\n disableClose: true,\r\n data: this.editorQuill.container.children[0].innerHTML\r\n });\r\n confirm.afterClosed().subscribe(result => {\r\n this.editorQuill.root.innerHTML = result;\r\n this.editorContent = this.editorQuill.root.innerHTML;\r\n });\r\n }\r\n\r\n manualFormatClear(){\r\n let editorText = this.editorQuill.container.children[0].innerHTML;\r\n editorText = editorText.replaceAll('*|', \"*|\");\r\n editorText = editorText.replaceAll('|*', \"|*\");\r\n editorText = editorText.replaceAll(' style=\"background-color: transparent; color: rgb(0, 0, 0);\"', \"\");\r\n editorText = editorText.replaceAll('style=\"background-color: transparent; color: rgb(0, 0, 0);\"', \"\");\r\n this.editorQuill.root.innerHTML = editorText;\r\n this.editorContent = this.editorQuill.root.innerHTML;\r\n }\r\n\r\n dbRequest(){\r\n this.http.get(this.admin.getUrl() + \"RequestType\").subscribe((data)=>{\r\n this.requestTypeList = [];\r\n [].forEach.call(data, (e) => {\r\n\r\n let tableTitle = e.title.split(\"*L*\");\r\n let elements = tableTitle.filter(x => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map(x => x);\r\n if(elements.length == 0){\r\n tableTitle = tableTitle[0];\r\n }else{\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n\r\n this.requestTypeList.push({\r\n Id: e.id, TableTitle: tableTitle, Title: e.title, Text: e.desk, Author: e.createdById, CreateDate: e.createdAt.split(\"T\")[0], RequestForms: e.requestTypeRequestForms, Image: e.picture\r\n });\r\n });\r\n this.http.get(this.admin.getUrl() + \"UserRequest\").subscribe((dataU)=>{\r\n this.attrSaveData = [];\r\n let datas: any = [];\r\n datas = dataU;\r\n let index = datas.map(function(e){ return e.isActual }).indexOf(true);\r\n if(index > 0){\r\n [].forEach.call(datas[index].userDatas, (e) =>{\r\n this.attrSaveData.push({\r\n \"id\": e.id,\r\n \"userRequestId\": e.userRequestId,\r\n \"requestAttributeId\": e.requestAttributeId,\r\n \"data\": e.data,\r\n });\r\n });\r\n }\r\n this.http.get(this.admin.getUrl() + \"RequestAttribute\").subscribe((dataR)=>{\r\n this.attrLoadData = [];\r\n let datas: any = dataR;\r\n [].forEach.call(datas, (e) =>{\r\n let tableTitle = e.label.split(\"*L*\");\r\n let elements = tableTitle.filter(x => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map(x => x);\r\n if(elements.length == 0){\r\n tableTitle = tableTitle[0];\r\n }else{\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n e.tableTitle = tableTitle;\r\n\r\n this.attrLoadData.push(e);\r\n });\r\n this.http.get(this.admin.getUrl() + \"Region\").subscribe((dataR)=>{\r\n this.regionLoadData = [];\r\n [].forEach.call(dataR, (e) => {\r\n let tableTitle = e.title.split(\"*L*\");\r\n let elements = tableTitle.filter(x => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map(x => x);\r\n if(elements.length == 0){\r\n tableTitle = tableTitle[0];\r\n }else{\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n e.tableTitle = tableTitle;\r\n \r\n this.regionLoadData.push(e);\r\n });\r\n this.http.get(this.admin.getUrl() + \"City\").subscribe((dataC)=>{\r\n this.cityLoadData = [];\r\n [].forEach.call(dataC, (e) => {\r\n let tableTitle = e.title.split(\"*L*\");\r\n let elements = tableTitle.filter(x => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map(x => x);\r\n if(elements.length == 0){\r\n tableTitle = tableTitle[0];\r\n }else{\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n e.tableTitle = tableTitle;\r\n \r\n this.cityLoadData.push(e);\r\n });\r\n this.http.get(this.admin.getUrl() + \"Court\").subscribe((dataO)=>{\r\n this.courtLoadData = [];\r\n [].forEach.call(dataO, (e) => {\r\n let tableTitle = e.title.split(\"*L*\");\r\n let elements = tableTitle.filter(x => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map(x => x);\r\n if(elements.length == 0){\r\n tableTitle = tableTitle[0];\r\n }else{\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n e.tableTitle = tableTitle;\r\n \r\n this.courtLoadData.push(e);\r\n });\r\n this.dbIsLoad = true;\r\n this.http.get(this.admin.getUrl() + \"userDataTypeValue\").subscribe((data)=>{\r\n this.userDataTypeValue = [];\r\n [].forEach.call(data, (e) => {\r\n let tableTitle = e.value.split(\"*L*\");\r\n let elements = tableTitle.filter(x => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map(x => x);\r\n if(elements.length == 0){\r\n tableTitle = tableTitle[0];\r\n }else{\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n \r\n this.userDataTypeValue.push({Id: e.id, Title: tableTitle, Email: e.email, Parent: e.uerDataTypeId});\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n }\r\n\r\n setLocale(event){\r\n this.admin.setLocale(event);\r\n let data = {\r\n langType: \"reload\",\r\n itemData: this.data.data\r\n };\r\n this.router.navigateByUrl('/admin/template', {state: data});\r\n }\r\n\r\n changeRegister(){\r\n isChange = true;\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(\":\")[0];\r\n let secure = false;\r\n if(location.protocol == \"https:\"){\r\n secure = true;\r\n }\r\n this.cookieService.set(\"is_change\", \"true\", expires, \"/\", local, secure);\r\n }\r\n\r\n unChangeRegister(){\r\n isChange = false;\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(\":\")[0];\r\n let secure = false;\r\n if(location.protocol == \"https:\"){\r\n secure = true;\r\n }\r\n this.cookieService.delete(\"is_change\", \"/\", local, secure);\r\n }\r\n\r\n requestTypeChange(event){\r\n this.requestType = event.value;\r\n }\r\n\r\n // clickEditorClear(){\r\n // this.editorQuill.container.children[0].innerHTML = this.editorQuill.container.children[0].innerText;\r\n // }\r\n\r\n contextTrigger(event, type){\r\n event.preventDefault();\r\n this.IsContext = type;\r\n if(type){\r\n let scrollY = 0;\r\n [].forEach.call(event.path, (e, index) =>{\r\n if(e.classList){\r\n if(e.classList.contains(\"mat-sidenav-content\")){\r\n scrollY = e.scrollTop;\r\n }\r\n }\r\n });\r\n this.contextX = event.clientX - 220;\r\n this.contextY = event.clientY + scrollY;\r\n }else{\r\n this.contextX = 0;\r\n this.contextY = 0;\r\n }\r\n }\r\n\r\n getContextPos(){\r\n let styles = {\r\n \"top\": this.contextY + \"px\",\r\n \"left\": this.contextX + \"px\"\r\n };\r\n return styles;\r\n }\r\n\r\n dateCorector(date){\r\n let nd = date.split(\"-\");\r\n return nd[1] + \"-\" + nd[0] + \"-\" + nd[2];\r\n }\r\n\r\n clickEditorCheck(event){\r\n if(this.editorQuill.getFormat().requestKey) {\r\n this.editorCommand = false;\r\n }else{\r\n this.editorCommand = true;\r\n }\r\n }\r\n\r\n dataPacker(value){\r\n let selectors = {\r\n type: \"\",\r\n list: []\r\n };\r\n if(value != null && value.list == undefined){\r\n selectors.type = value.split(\"*T*\")[1].split(\"*L*\")[0];\r\n if(selectors.type == \"lib\"){\r\n let list = [];\r\n let valList = value.split(\"*L*\")[1];\r\n [].forEach.call(this.userDataTypeValue, (e) => {\r\n if(e.Parent == parseInt(valList)){\r\n list.push(e);\r\n }\r\n });\r\n selectors.list = [];\r\n [].forEach.call(list, (e, index) => {\r\n selectors.list.push({name: \"option_\" + index, value: e.Title, email: e.Email});\r\n });\r\n }else{\r\n let list = value.split(\"*L*\")[1].split(\"*I*\");\r\n [].forEach.call(list, (e, index) => {\r\n let text = e.split(\"|\");\r\n let array = {\r\n name: text[0],\r\n value: text[1],\r\n dialog: text[2]\r\n };\r\n list[index] = array;\r\n });\r\n selectors.list = list;\r\n }\r\n return selectors;\r\n }else{\r\n if(value.type == \"lib\" && value.id == undefined){\r\n selectors.type = value.type;\r\n let list = [];\r\n [].forEach.call(this.userDataTypeValue, (e) => {\r\n if(e.Parent == parseInt(value.list[0].name)){\r\n list.push(e);\r\n }\r\n });\r\n selectors.list = [];\r\n [].forEach.call(list, (e, index) => {\r\n selectors.list.push({name: \"option_\" + index, value: e.Title, email: e.Email});\r\n });\r\n return selectors;\r\n }else{\r\n return value;\r\n }\r\n }\r\n }\r\n\r\n buildDemoText(){\r\n this.demoEditorContent = this.editorQuill.container.children[0].outerHTML;\r\n let reg = new RegExp(/(?!\\d)\\s(cc_cursor)/g);\r\n let test = reg.test(this.demoEditorContent);\r\n if(test){\r\n this.demoEditorContent = this.demoEditorContent.replace(reg, \"\");\r\n }\r\n reg = new RegExp(/\\sstyle=\"background-color: initial;\"/g);\r\n test = reg.test(this.demoEditorContent);\r\n if(test){\r\n this.demoEditorContent = this.demoEditorContent.replace(reg, \"\");\r\n }\r\n reg = new RegExp(/[|][*]<\\w+\\s.*?(class=.key-(\\w|\\d|[-])+).>(\\w|\\d|\\s|[^<])+(<.\\w+.*?>[*][|]).*?/g);//v. 1.3.7\r\n let match = this.demoEditorContent.match(reg);\r\n reg = new RegExp(/[|][*]<\\w+\\s.*?(key=.(\\w|\\d|[-])+).>(\\w|\\d|\\s|[^<])+(<.\\w+.*?>[*][|]).*?/g);//v. 2.0\r\n if(match != null){\r\n match = match.concat(this.demoEditorContent.match(reg));\r\n }else{\r\n match = this.demoEditorContent.match(reg);\r\n }\r\n if(match == null){\r\n return false;\r\n }\r\n let stopCircle = false;\r\n [].forEach.call(match, (e) =>{\r\n if(e == null){\r\n return false;\r\n }\r\n let regKey = new RegExp(/\"key-(\\S|\\w|\\s|\\d|\\W).*?\"/);//v. 1.3.7\r\n let matchKey = e.match(regKey);\r\n regKey = new RegExp(/key=.(\\S|\\w|\\s|\\d|\\W).*?\"/);//v. 2.0\r\n if(matchKey != null){\r\n matchKey = matchKey.concat(e.match(regKey));\r\n }else{\r\n matchKey = e.match(regKey);\r\n }\r\n let type = matchKey[0].split(\"TL\")[1].split('\"')[0];\r\n let indexF = -1;\r\n let attrId;\r\n let newData = \"\";\r\n let repReg = null;\r\n let addText = \"\";\r\n let endText = \"\";\r\n let condField;\r\n let cond;\r\n let resultC;\r\n let resultD;\r\n let atrrIdArray;\r\n let textResult;\r\n let idResult;\r\n let indexAttr;\r\n let listInd;\r\n let newText: any;\r\n let test: boolean;\r\n let mch;\r\n let dateArray;\r\n let dataArray;\r\n let newString;\r\n let dubSpace = \"\";\r\n switch(type){\r\n case \"0\":\r\n let text = \"\";\r\n attrId = parseInt(matchKey[0].split(\"FS\")[1].split(\"FLS\")[0]);\r\n if(attrId == 0){\r\n attrId = matchKey[0].split(\"FLS\")[1].split(\"DE\")[0];\r\n if(attrId != \"\"){\r\n let multipleList = attrId.split(\"xx\");\r\n [].forEach.call(multipleList, (c, indexC) =>{\r\n indexF = this.attrSaveData.map(function(e){ return e.requestAttributeId }).indexOf(parseInt(c));\r\n indexAttr = this.attrLoadData.map(function(e){ return e.id }).indexOf(parseInt(c));\r\n if(indexC > 0){\r\n text += \" \";\r\n }\r\n if(this.attrLoadData[indexAttr].type == \"select\"){\r\n let list = this.dataPacker(this.attrLoadData[indexAttr].selectors).list;\r\n [].forEach.call(list, (e) => {\r\n if(e.name == this.attrSaveData[indexF].data){\r\n text = e.value;\r\n }\r\n });\r\n }else{\r\n text += this.attrSaveData[indexF].data;\r\n }\r\n });\r\n }\r\n }else{\r\n indexF = this.attrSaveData.map(function(e){ return e.requestAttributeId }).indexOf(attrId);\r\n if(indexF == -1){\r\n if(!stopCircle){\r\n let text = \"Увага! В шаблоні знайдені поля, що не збережені для попереднього перегляду. Перейдіть на вкладку \\\"Форми\\\" перевірьте чи активна вкладка \\\"Дані шаблона\\\" та збережіть форму!\";\r\n let confirm = this.dialog.open(InfoMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: {text: text}\r\n });\r\n confirm.afterClosed().subscribe(result => {});\r\n stopCircle = true;\r\n }\r\n return false;\r\n }\r\n indexAttr = this.attrLoadData.map(function(e){ return e.id }).indexOf(attrId);\r\n if(this.attrLoadData[indexAttr].type == \"select\"){\r\n let list = this.dataPacker(this.attrLoadData[indexAttr].selectors).list;\r\n [].forEach.call(list, (e) => {\r\n if(e.name == this.attrSaveData[indexF].data){\r\n text = e.value;\r\n }\r\n });\r\n }else{\r\n text = this.attrSaveData[indexF].data;\r\n }\r\n attrId = matchKey[0].split(\"FLS\")[1].split(\"DE\")[0];\r\n if(attrId != \"\"){\r\n let courtList = attrId.split(\"xx\");\r\n let courtData = this.attrSaveData[indexF].data.split(\"_\");\r\n text = \"\";\r\n [].forEach.call(courtData, (c, indexC) =>{\r\n let courtIndex = -1;\r\n switch(indexC){\r\n case 0:\r\n listInd = courtList.map(function(e){ return parseInt(e) }).indexOf(1);\r\n if(listInd != -1){\r\n courtIndex = this.regionLoadData.map(function(e){ return e.id }).indexOf(parseInt(c));\r\n if(courtIndex == -1){\r\n return false;\r\n }\r\n text += this.regionLoadData[courtIndex].tableTitle;\r\n }\r\n break;\r\n case 1:\r\n listInd = courtList.map(function(e){ return parseInt(e) }).indexOf(2);\r\n if(listInd != -1){\r\n courtIndex = this.cityLoadData.map(function(e){ return e.id }).indexOf(parseInt(c));\r\n if(courtIndex == -1){\r\n return false;\r\n }\r\n if(courtList.length > 1){\r\n text += \", \";\r\n }\r\n text += this.cityLoadData[courtIndex].tableTitle;\r\n }\r\n break;\r\n case 2:\r\n listInd = courtList.map(function(e){ return parseInt(e) }).indexOf(3);\r\n if(listInd != -1){\r\n courtIndex = this.courtLoadData.map(function(e){ return e.id }).indexOf(parseInt(c));\r\n if(courtIndex == -1){\r\n return false;\r\n }\r\n if(courtList.length > 1){\r\n text += \", \";\r\n }\r\n text += this.courtLoadData[courtIndex].tableTitle;\r\n }\r\n break;\r\n }\r\n });\r\n }\r\n }\r\n\r\n newData = text; \r\n \r\n if(newData == undefined || newData == null){\r\n newData = \"\";\r\n }\r\n\r\n repReg = new RegExp(/\\d{1,2}-\\d{1,2}-\\d{4}/g);\r\n mch = newData.match(repReg);\r\n if(mch != null){\r\n dateArray = [];\r\n [].forEach.call(mch, (v) =>{\r\n newText = v.split(\"-\");\r\n [].forEach.call(newText, (c, indexC) =>{\r\n c = c.replace(/\\s/g, \"\");\r\n if(c.length == 1){\r\n newText[indexC] = \"0\" + c;\r\n }\r\n });\r\n newText = newText.join(\".\");\r\n dateArray.push(newText);\r\n });\r\n dataArray = newData.split(repReg);\r\n newString = \"\";\r\n [].forEach.call(dataArray, (e, indexE) =>{\r\n if(dateArray[indexE] == undefined){\r\n newString += e;\r\n }else{\r\n newString += e + dateArray[indexE];\r\n }\r\n });\r\n\r\n newData = newString;\r\n }\r\n break;\r\n case \"1\":\r\n attrId = matchKey[0].split(\"DE\")[1].split(\"CDS\")[0];\r\n atrrIdArray = attrId.split(\"xx\");\r\n dubSpace = atrrIdArray[atrrIdArray.length -1].split(\"qq\")[1];\r\n atrrIdArray[atrrIdArray.length -1] = atrrIdArray[atrrIdArray.length -1].split(\"qq\")[0];\r\n textResult = [];\r\n [].forEach.call(atrrIdArray, (c) =>{\r\n indexF = this.attrSaveData.map(function(e){ return e.requestAttributeId }).indexOf(parseInt(c));\r\n textResult.push(this.attrSaveData[indexF].data.split(\"|&|\"));\r\n });\r\n [].forEach.call(textResult[0], (c, indexC) =>{\r\n [].forEach.call(textResult, (d, indexD) =>{\r\n indexAttr = this.attrLoadData.map(function(e){ return e.id }).indexOf(parseInt(atrrIdArray[indexD]));\r\n if(this.attrLoadData[indexAttr].type == \"select\"){\r\n let list = this.dataPacker(this.attrLoadData[indexAttr].selectors).list;\r\n [].forEach.call(list, (e) => {\r\n if(e.name == textResult[indexD][indexC]){\r\n newData += \" \" + e.value;\r\n }\r\n });\r\n }else{\r\n newData += \" \" + textResult[indexD][indexC];\r\n }\r\n });\r\n if(indexC != textResult[0].length -1){\r\n if(dubSpace == \"1\"){\r\n newData += \", \";\r\n }else if(dubSpace == \"2\"){\r\n newData += \"
\";\r\n }\r\n }\r\n });\r\n\r\n repReg = new RegExp(/(,\\s)($|\\z|\\n)/g);\r\n newData = newData.replace(repReg, \"\");\r\n\r\n if(newData == undefined || newData == null){\r\n newData = \"\";\r\n }\r\n\r\n repReg = new RegExp(/\\d{1,2}-\\d{1,2}-\\d{4}/g);\r\n mch = newData.match(repReg);\r\n if(mch != null){\r\n dateArray = [];\r\n [].forEach.call(mch, (v) =>{\r\n newText = v.split(\"-\");\r\n [].forEach.call(newText, (c, indexC) =>{\r\n c = c.replace(/\\s/g, \"\");\r\n if(c.length == 1){\r\n newText[indexC] = \"0\" + c;\r\n }\r\n });\r\n newText = newText.join(\".\");\r\n dateArray.push(newText);\r\n });\r\n dataArray = newData.split(repReg);\r\n newString = \"\";\r\n [].forEach.call(dataArray, (e, indexE) =>{\r\n if(dateArray[indexE] == undefined){\r\n newString += e;\r\n }else{\r\n newString += e + dateArray[indexE];\r\n }\r\n });\r\n \r\n newData = newString;\r\n }\r\n break;\r\n case \"2\":\r\n attrId = parseInt(matchKey[0].split(\"CS\")[1].split(\"CVS\")[0]);\r\n if(attrId == 0){\r\n attrId = parseInt(matchKey[0].split(\"CAS\")[1].split(\"CVAS\")[0]);\r\n indexF = this.attrSaveData.map(function(e){ return e.requestAttributeId }).indexOf(attrId);\r\n condField = this.attrSaveData[indexF];\r\n indexAttr = this.attrLoadData.map(function(e){ return e.id }).indexOf(attrId);\r\n cond = matchKey[0].split(\"CVAS\")[1].split(\"TL\")[0];\r\n let splitCond = cond.split(\"xx\");\r\n if(splitCond.length == 1){\r\n cond = parseInt(matchKey[0].split(\"CVAS\")[1].split(\"TL\")[0]);\r\n }\r\n }else{\r\n indexF = this.attrSaveData.map(function(e){ return e.requestAttributeId }).indexOf(attrId);\r\n condField = this.attrSaveData[indexF];\r\n indexAttr = this.attrLoadData.map(function(e){ return e.id }).indexOf(attrId);\r\n cond = matchKey[0].split(\"CVS\")[1].split(\"FS\")[0];\r\n let splitCond = cond.split(\"xx\");\r\n if(splitCond.length == 1){\r\n cond = parseInt(matchKey[0].split(\"CVS\")[1].split(\"FS\")[0]);\r\n }\r\n }\r\n resultC = false;\r\n if(indexF != -1 || this.attrLoadData[indexAttr].type == \"copy\"){\r\n if(this.attrLoadData[indexAttr].type == \"radio\" || this.attrLoadData[indexAttr].type == \"select\"){\r\n if(condField.data != \"\"){\r\n if(condField.data == \"option_\" + cond){\r\n resultC = true;\r\n }\r\n }\r\n }else if(this.attrLoadData[indexAttr].type == \"checkbox\"){\r\n if((cond == 0 && condField.data == \"true\") || (cond == 1 && condField.data == \"false\")){\r\n resultC = true;\r\n }\r\n }else if(this.attrLoadData[indexAttr].type == \"copy\" || this.attrLoadData[indexAttr].type == \"input\" || this.attrLoadData[indexAttr].type == \"date\"){\r\n resultC = this.templateDrawCondition(indexAttr, cond, condField);\r\n }else{\r\n if(cond == 0){\r\n if(condField.data != \"\"){\r\n resultC = true;\r\n }\r\n }else{\r\n if(condField.data == \"\"){\r\n resultC = true;\r\n }\r\n }\r\n }\r\n }else if(indexF == -1){\r\n if(!stopCircle){\r\n let text = \"Увага! В шаблоні знайдені поля, що не збережені для попереднього перегляду. Перейдіть на вкладку \\\"Форми\\\" перевірьте чи активна вкладка \\\"Дані шаблона\\\" та збережіть форму!\";\r\n let confirm = this.dialog.open(InfoMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: {text: text}\r\n });\r\n confirm.afterClosed().subscribe(result => {});\r\n stopCircle = true;\r\n }\r\n }\r\n if(resultC == true){\r\n addText = e.split(\"#*\")[1].split(\"[\")[0];\r\n endText = e.split(\"]\")[1].split(\"*#\")[0];\r\n let text = \"\";\r\n attrId = matchKey[0].split(\"FS\")[1].split(\"FLS\")[0];\r\n if(parseInt(attrId) === 0){\r\n attrId = matchKey[0].split(\"FLS\")[1].split(\"DE\")[0];\r\n if(attrId != \"\"){\r\n let multipleList = attrId.split(\"xx\");\r\n [].forEach.call(multipleList, (c, indexC) =>{\r\n indexF = this.attrSaveData.map(function(e){ return e.requestAttributeId }).indexOf(parseInt(c));\r\n if(indexC > 0){\r\n text += \" \";\r\n }\r\n indexAttr = this.attrLoadData.map(function(e){ return e.id }).indexOf(parseInt(c));\r\n if(this.attrLoadData[indexAttr].type == \"select\"){\r\n let list = this.dataPacker(this.attrLoadData[indexAttr].selectors).list;\r\n [].forEach.call(list, (e) => {\r\n if(e.name == this.attrSaveData[indexF].data){\r\n text += e.value;\r\n }\r\n });\r\n }else{\r\n text += this.attrSaveData[indexF].data;\r\n }\r\n });\r\n }\r\n }else if(attrId !== \"\"){\r\n attrId = parseInt(attrId);\r\n indexF = this.attrSaveData.map(function(e){ return e.requestAttributeId }).indexOf(attrId);\r\n if(indexF == -1){\r\n if(!stopCircle){\r\n let text = \"Увага! В шаблоні знайдені поля, що не збережені для попереднього перегляду. Перейдіть на вкладку \\\"Форми\\\" перевірьте чи активна вкладка \\\"Дані шаблона\\\" та збережіть форму!\";\r\n let confirm = this.dialog.open(InfoMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: {text: text}\r\n });\r\n confirm.afterClosed().subscribe(result => {});\r\n stopCircle = true;\r\n }\r\n return false;\r\n }\r\n indexAttr = this.attrLoadData.map(function(e){ return e.id }).indexOf(attrId);\r\n if(this.attrLoadData[indexAttr].type == \"select\"){\r\n let list = this.dataPacker(this.attrLoadData[indexAttr].selectors).list;\r\n [].forEach.call(list, (e) => {\r\n if(e.name == this.attrSaveData[indexF].data){\r\n text = e.value;\r\n }\r\n });\r\n }else{\r\n text = this.attrSaveData[indexF].data;\r\n }\r\n attrId = matchKey[0].split(\"FLS\")[1].split(\"DE\")[0];\r\n if(attrId != \"\"){\r\n let courtList = attrId.split(\"xx\");\r\n let courtData = this.attrSaveData[indexF].data.split(\"_\");\r\n text = \"\";\r\n [].forEach.call(courtData, (c, indexC) =>{\r\n let courtIndex = -1;\r\n switch(indexC){\r\n case 0:\r\n listInd = courtList.map(function(e){ return parseInt(e) }).indexOf(1);\r\n if(listInd != -1){\r\n courtIndex = this.regionLoadData.map(function(e){ return e.id }).indexOf(parseInt(c));\r\n if(courtIndex == -1){\r\n return false;\r\n }\r\n text += this.regionLoadData[courtIndex].tableTitle;\r\n }\r\n break;\r\n case 1:\r\n listInd = courtList.map(function(e){ return parseInt(e) }).indexOf(2);\r\n if(listInd != -1){\r\n courtIndex = this.cityLoadData.map(function(e){ return e.id }).indexOf(parseInt(c));\r\n if(courtIndex == -1){\r\n return false;\r\n }\r\n if(courtList.length > 1){\r\n text += \", \";\r\n }\r\n text += this.cityLoadData[courtIndex].tableTitle;\r\n }\r\n break;\r\n case 2:\r\n listInd = courtList.map(function(e){ return parseInt(e) }).indexOf(3);\r\n if(listInd != -1){\r\n courtIndex = this.courtLoadData.map(function(e){ return e.id }).indexOf(parseInt(c));\r\n if(courtIndex == -1){\r\n return false;\r\n }\r\n if(courtList.length > 1){\r\n text += \", \";\r\n }\r\n text += this.courtLoadData[courtIndex].tableTitle;\r\n }\r\n break;\r\n }\r\n });\r\n }\r\n }\r\n\r\n if(newData == undefined || newData == null){\r\n newData = \"\";\r\n }\r\n \r\n newData = addText + text + endText;\r\n\r\n repReg = new RegExp(/\\d{1,2}-\\d{1,2}-\\d{4}/g);\r\n mch = newData.match(repReg);\r\n if(mch != null){\r\n dateArray = [];\r\n [].forEach.call(mch, (v) =>{\r\n newText = v.split(\"-\");\r\n [].forEach.call(newText, (c, indexC) =>{\r\n c = c.replace(/\\s/g, \"\");\r\n if(c.length == 1){\r\n newText[indexC] = \"0\" + c;\r\n }\r\n });\r\n newText = newText.join(\".\");\r\n dateArray.push(newText);\r\n });\r\n dataArray = newData.split(repReg);\r\n newString = \"\";\r\n [].forEach.call(dataArray, (e, indexE) =>{\r\n if(dateArray[indexE] == undefined){\r\n newString += e;\r\n }else{\r\n newString += e + dateArray[indexE];\r\n }\r\n });\r\n \r\n newData = newString;\r\n }\r\n }\r\n break;\r\n case \"3\":\r\n attrId = parseInt(matchKey[0].split(\"CS\")[1].split(\"CVS\")[0]);\r\n if(attrId == 0){\r\n attrId = parseInt(matchKey[0].split(\"CAS\")[1].split(\"CVAS\")[0]);\r\n indexF = this.attrSaveData.map(function(e){ return e.requestAttributeId }).indexOf(attrId);\r\n condField = this.attrSaveData[indexF];\r\n indexAttr = this.attrLoadData.map(function(e){ return e.id }).indexOf(attrId);\r\n cond = matchKey[0].split(\"CVAS\")[1].split(\"TL\")[0];\r\n let splitCond = cond.split(\"xx\");\r\n if(splitCond.length == 1){\r\n cond = parseInt(matchKey[0].split(\"CVAS\")[1].split(\"TL\")[0]);\r\n }\r\n }else{\r\n indexF = this.attrSaveData.map(function(e){ return e.requestAttributeId }).indexOf(attrId);\r\n condField = this.attrSaveData[indexF];\r\n indexAttr = this.attrLoadData.map(function(e){ return e.id }).indexOf(attrId);\r\n cond = matchKey[0].split(\"CVS\")[1].split(\"FS\")[0];\r\n let splitCond = cond.split(\"xx\");\r\n if(splitCond.length == 1){\r\n cond = parseInt(matchKey[0].split(\"CVS\")[1].split(\"FS\")[0]);\r\n }\r\n }\r\n resultC = false;\r\n if(indexF != -1 || this.attrLoadData[indexAttr].type == \"copy\"){\r\n if(this.attrLoadData[indexAttr].type == \"radio\" || this.attrLoadData[indexAttr].type == \"select\"){\r\n if(condField.data != \"\"){\r\n if(condField.data == \"option_\" + cond){\r\n resultC = true;\r\n }\r\n }\r\n }else if(this.attrLoadData[indexAttr].type == \"checkbox\"){\r\n if((cond == 0 && condField.data == \"true\") || (cond == 1 && condField.data == \"false\")){\r\n resultC = true;\r\n }\r\n }else if(this.attrLoadData[indexAttr].type == \"copy\" || this.attrLoadData[indexAttr].type == \"input\" || this.attrLoadData[indexAttr].type == \"date\"){\r\n resultC = this.templateDrawCondition(indexAttr, cond, condField);\r\n }else{\r\n if(cond == 0){\r\n if(condField.data != \"\"){\r\n resultC = true;\r\n }\r\n }else{\r\n if(condField.data == \"\"){\r\n resultC = true;\r\n }\r\n }\r\n }\r\n }\r\n if(resultC == true){\r\n addText = e.split(\"#*\")[1].split(\"[\")[0];\r\n endText = e.split(\"]\")[1].split(\"*#\")[0];\r\n attrId = matchKey[0].split(\"DE\")[1].split(\"CDS\")[0];\r\n let atrrIdArray = attrId.split(\"xx\");\r\n dubSpace = atrrIdArray[atrrIdArray.length -1].split(\"qq\")[1];\r\n atrrIdArray[atrrIdArray.length -1] = atrrIdArray[atrrIdArray.length -1].split(\"qq\")[0];\r\n let textResult = [];\r\n [].forEach.call(atrrIdArray, (c) =>{\r\n indexF = this.attrSaveData.map(function(e){ return e.requestAttributeId }).indexOf(parseInt(c));\r\n textResult.push(this.attrSaveData[indexF].data.split(\"|&|\"));\r\n });\r\n [].forEach.call(textResult[0], (c, indexC) =>{\r\n [].forEach.call(textResult, (d, indexD) =>{\r\n indexAttr = this.attrLoadData.map(function(e){ return e.id }).indexOf(parseInt(atrrIdArray[indexD]));\r\n if(this.attrLoadData[indexAttr].type == \"select\"){\r\n let list = this.dataPacker(this.attrLoadData[indexAttr].selectors).list;\r\n [].forEach.call(list, (e) => {\r\n if(e.name == textResult[indexD][indexC]){\r\n newData += \" \" + e.value;\r\n }\r\n });\r\n }else{\r\n newData += \" \" + textResult[indexD][indexC];\r\n }\r\n });\r\n if(indexC != textResult[0].length -1){\r\n if(dubSpace == \"1\"){\r\n newData += \", \";\r\n }else if(dubSpace == \"2\"){\r\n newData += \"
\";\r\n }\r\n }\r\n });\r\n\r\n repReg = new RegExp(/(,\\s)($|\\z|\\n)/g);\r\n newData = newData.replace(repReg, \"\");\r\n\r\n if(newData == undefined || newData == null){\r\n newData = \"\";\r\n }\r\n \r\n newData = addText + newData + endText;\r\n\r\n repReg = new RegExp(/\\d{1,2}-\\d{1,2}-\\d{4}/g);\r\n mch = newData.match(repReg);\r\n if(mch != null){\r\n dateArray = [];\r\n [].forEach.call(mch, (v) =>{\r\n newText = v.split(\"-\");\r\n [].forEach.call(newText, (c, indexC) =>{\r\n c = c.replace(/\\s/g, \"\");\r\n if(c.length == 1){\r\n newText[indexC] = \"0\" + c;\r\n }\r\n });\r\n newText = newText.join(\".\");\r\n dateArray.push(newText);\r\n });\r\n dataArray = newData.split(repReg);\r\n newString = \"\";\r\n [].forEach.call(dataArray, (e, indexE) =>{\r\n if(dateArray[indexE] == undefined){\r\n newString += e;\r\n }else{\r\n newString += e + dateArray[indexE];\r\n }\r\n });\r\n \r\n newData = newString;\r\n }\r\n }\r\n break;\r\n case \"4\":\r\n attrId = matchKey[0].split(\"DE\")[1].split(\"CDS\")[0];\r\n atrrIdArray = attrId.split(\"xx\");\r\n dubSpace = atrrIdArray[atrrIdArray.length -1].split(\"qq\")[1];\r\n atrrIdArray[atrrIdArray.length -1] = atrrIdArray[atrrIdArray.length -1].split(\"qq\")[0];\r\n textResult = [];\r\n idResult = [];\r\n [].forEach.call(atrrIdArray, (c) =>{\r\n indexF = this.attrSaveData.map(function(e){ return e.requestAttributeId }).indexOf(parseInt(c));\r\n textResult.push(this.attrSaveData[indexF].data.split(\"|&|\"));\r\n idResult.push(c);\r\n });\r\n\r\n attrId = parseInt(matchKey[0].split(\"CDS\")[1].split(\"CDVS\")[0]);\r\n indexF = this.attrSaveData.map(function(e){ return e.requestAttributeId }).indexOf(attrId);\r\n condField = this.attrSaveData[indexF];\r\n cond = parseInt(matchKey[0].split(\"CDVS\")[1].split(\"AF\")[0]);\r\n indexAttr = this.attrLoadData.map(function(e){ return e.id }).indexOf(attrId);\r\n resultD = [];\r\n\r\n [].forEach.call(textResult[0], (c, indexC) =>{\r\n resultD.push([]);\r\n [].forEach.call(textResult, (d) =>{\r\n if(indexF != -1 || this.attrLoadData[indexAttr].type == \"copy\"){\r\n if(this.attrLoadData[indexAttr].type == \"radio\" || this.attrLoadData[indexAttr].type == \"select\"){\r\n if(condField.data != \"\"){\r\n let nData = condField.data.split(\"|&|\");\r\n if(nData[indexC] == \"option_\" + cond){\r\n resultD[indexC].push(true);\r\n }else{\r\n resultD[indexC].push(false);\r\n }\r\n }else{\r\n resultD[indexC].push(false);\r\n }\r\n }else if(this.attrLoadData[indexAttr].type == \"checkbox\"){\r\n if(condField.data != \"\"){\r\n let nData = condField.data.split(\"|&|\");\r\n if((cond == 0 && nData[indexC] == \"true\") || (cond == 1 && nData[indexC] == \"false\")){\r\n resultD[indexC].push(true);\r\n }else{\r\n resultD[indexC].push(false);\r\n }\r\n }else{\r\n resultD[indexC].push(false);\r\n }\r\n }else if(this.attrLoadData[indexAttr].type == \"copy\" || this.attrLoadData[indexAttr].type == \"input\" || this.attrLoadData[indexAttr].type == \"date\"){\r\n if(condField.data != \"\"){\r\n let nData = condField.data.split(\"|&|\");\r\n let ndf = {data: null};\r\n ndf.data = nData[indexC];\r\n resultD[indexC].push(this.templateDrawCondition(indexAttr, cond, ndf));\r\n }else{\r\n resultD[indexC].push(false);\r\n }\r\n }else{\r\n if(cond == 0){\r\n if(d != \"\"){\r\n resultD[indexC].push(true);\r\n }else{\r\n resultD[indexC].push(false);\r\n }\r\n }else{\r\n if(d == \"\"){\r\n resultD[indexC].push(true);\r\n }else{\r\n resultD[indexC].push(false);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n });\r\n [].forEach.call(textResult[0], (c, indexC) =>{\r\n [].forEach.call(textResult, (d, indexD) =>{\r\n if(resultD[indexC][indexD]){\r\n indexAttr = this.attrLoadData.map(function(e){ return e.id }).indexOf(parseInt(atrrIdArray[indexD]));\r\n if(this.attrLoadData[indexAttr].type == \"select\"){\r\n let list = this.dataPacker(this.attrLoadData[indexAttr].selectors).list;\r\n [].forEach.call(list, (e, index) => {\r\n if(e.name == textResult[indexD][indexC]){\r\n newData += \" \" + e.value;\r\n }\r\n });\r\n }else{\r\n newData += \" \" + textResult[indexD][indexC];\r\n }\r\n }\r\n });\r\n\r\n if(indexC != textResult[0].length -1){\r\n if(dubSpace == \"1\"){\r\n newData += \", \";\r\n }else if(dubSpace == \"2\"){\r\n newData += \"
\";\r\n }\r\n }\r\n });\r\n\r\n repReg = new RegExp(/(,\\s)($|\\z|\\n)/g);\r\n newData = newData.replace(repReg, \"\");\r\n\r\n if(newData == undefined || newData == null){\r\n newData = \"\";\r\n }\r\n\r\n repReg = new RegExp(/\\d{1,2}-\\d{1,2}-\\d{4}/g);\r\n mch = newData.match(repReg);\r\n if(mch != null){\r\n dateArray = [];\r\n [].forEach.call(mch, (v) =>{\r\n newText = v.split(\"-\");\r\n [].forEach.call(newText, (c, indexC) =>{\r\n c = c.replace(/\\s/g, \"\");\r\n if(c.length == 1){\r\n newText[indexC] = \"0\" + c;\r\n }\r\n });\r\n newText = newText.join(\".\");\r\n dateArray.push(newText);\r\n });\r\n dataArray = newData.split(repReg);\r\n newString = \"\";\r\n [].forEach.call(dataArray, (e, indexE) =>{\r\n if(dateArray[indexE] == undefined){\r\n newString += e;\r\n }else{\r\n newString += e + dateArray[indexE];\r\n }\r\n });\r\n \r\n newData = newString;\r\n }\r\n break;\r\n case \"5\":\r\n newData = \"\";\r\n attrId = parseInt(matchKey[0].split(\"CS\")[1].split(\"CVS\")[0]);\r\n if(attrId == 0){\r\n attrId = parseInt(matchKey[0].split(\"CAS\")[1].split(\"CVAS\")[0]);\r\n indexF = this.attrSaveData.map(function(e){ return e.requestAttributeId }).indexOf(attrId);\r\n condField = this.attrSaveData[indexF];\r\n indexAttr = this.attrLoadData.map(function(e){ return e.id }).indexOf(attrId);\r\n cond = matchKey[0].split(\"CVAS\")[1].split(\"TL\")[0];\r\n let splitCond = cond.split(\"xx\");\r\n if(splitCond.length == 1){\r\n cond = parseInt(matchKey[0].split(\"CVAS\")[1].split(\"TL\")[0]);\r\n }\r\n }else{\r\n indexF = this.attrSaveData.map(function(e){ return e.requestAttributeId }).indexOf(attrId);\r\n condField = this.attrSaveData[indexF];\r\n indexAttr = this.attrLoadData.map(function(e){ return e.id }).indexOf(attrId);\r\n cond = matchKey[0].split(\"CVS\")[1].split(\"FS\")[0];\r\n let splitCond = cond.split(\"xx\");\r\n if(splitCond.length == 1){\r\n cond = parseInt(matchKey[0].split(\"CVS\")[1].split(\"FS\")[0]);\r\n }\r\n }\r\n resultC = false;\r\n if(indexF != -1 || this.attrLoadData[indexAttr].type == \"copy\"){\r\n if(this.attrLoadData[indexAttr].type == \"radio\" || this.attrLoadData[indexAttr].type == \"select\"){\r\n if(condField.data != \"\"){\r\n if(condField.data == \"option_\" + cond){\r\n resultC = true;\r\n }\r\n }\r\n }else if(this.attrLoadData[indexAttr].type == \"checkbox\"){\r\n if((cond == 0 && condField.data == \"true\") || (cond == 1 && condField.data == \"false\")){\r\n resultC = true;\r\n }\r\n }else if(this.attrLoadData[indexAttr].type == \"copy\" || this.attrLoadData[indexAttr].type == \"input\" || this.attrLoadData[indexAttr].type == \"date\"){\r\n resultC = this.templateDrawCondition(indexAttr, cond, condField);\r\n }else{\r\n if(cond == 0){\r\n if(condField.data != \"\"){\r\n resultC = true;\r\n }\r\n }else{\r\n if(condField.data == \"\"){\r\n resultC = true;\r\n }\r\n }\r\n }\r\n }\r\n if(resultC == true){\r\n addText = e.split(\"}#*\")[1].split(\"{\")[0];\r\n endText = e.split(\"]\")[1].split(\"*#\")[0];\r\n attrId = matchKey[0].split(\"DE\")[1].split(\"CDS\")[0];\r\n atrrIdArray = attrId.split(\"xx\");\r\n dubSpace = atrrIdArray[atrrIdArray.length -1].split(\"qq\")[1];\r\n atrrIdArray[atrrIdArray.length -1] = atrrIdArray[atrrIdArray.length -1].split(\"qq\")[0];\r\n textResult = [];\r\n idResult = [];\r\n [].forEach.call(atrrIdArray, (c) =>{\r\n indexF = this.attrSaveData.map(function(e){ return e.requestAttributeId }).indexOf(parseInt(c));\r\n textResult.push(this.attrSaveData[indexF].data.split(\"|&|\"));\r\n idResult.push(c);\r\n });\r\n \r\n attrId = parseInt(matchKey[0].split(\"CDS\")[1].split(\"CDVS\")[0]);\r\n indexF = this.attrSaveData.map(function(e){ return e.requestAttributeId }).indexOf(attrId);\r\n condField = this.attrSaveData[indexF];\r\n cond = parseInt(matchKey[0].split(\"CDVS\")[1].split(\"AF\")[0]);\r\n indexAttr = this.attrLoadData.map(function(e){ return e.id }).indexOf(attrId);\r\n resultD = [];\r\n\r\n [].forEach.call(textResult[0], (c, indexC) =>{\r\n resultD.push([]);\r\n [].forEach.call(textResult, (d) =>{\r\n if(indexF != -1){\r\n if(this.attrLoadData[indexAttr].type == \"radio\" || this.attrLoadData[indexAttr].type == \"select\"){\r\n if(condField.data != \"\"){\r\n let nData = condField.data.split(\"|&|\");\r\n if(nData[indexC] == \"option_\" + cond){\r\n resultD[indexC].push(true);\r\n }else{\r\n resultD[indexC].push(false);\r\n }\r\n }else{\r\n resultD[indexC].push(false);\r\n }\r\n }else if(this.attrLoadData[indexAttr].type == \"checkbox\"){\r\n if(condField.data != \"\"){\r\n let nData = condField.data.split(\"|&|\");\r\n if((cond == 0 && nData[indexC] == \"true\") || (cond == 1 && nData[indexC] == \"false\")){\r\n resultD[indexC].push(true);\r\n }else{\r\n resultD[indexC].push(false);\r\n }\r\n }else{\r\n resultD[indexC].push(false);\r\n }\r\n }else if(this.attrLoadData[indexAttr].type == \"copy\" || this.attrLoadData[indexAttr].type == \"input\" || this.attrLoadData[indexAttr].type == \"date\"){\r\n if(condField.data != \"\"){\r\n let nData = condField.data.split(\"|&|\");\r\n let ndf = {data: null};\r\n ndf.data = nData[indexC];\r\n resultD[indexC].push(this.templateDrawCondition(indexAttr, cond, ndf));\r\n }else{\r\n resultD[indexC].push(false);\r\n }\r\n }else{\r\n if(cond == 0){\r\n if(d != \"\"){\r\n resultD[indexC].push(true);\r\n }else{\r\n resultD[indexC].push(false);\r\n }\r\n }else{\r\n if(d == \"\"){\r\n resultD[indexC].push(true);\r\n }else{\r\n resultD[indexC].push(false);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n });\r\n [].forEach.call(textResult[0], (c, indexC) =>{\r\n [].forEach.call(textResult, (d, indexD) =>{\r\n if(resultD[indexC][indexD]){\r\n newData += \" \" + textResult[indexD][indexC];\r\n }\r\n });\r\n if(indexC != textResult[0].length -1){\r\n if(dubSpace == \"1\"){\r\n newData += \", \";\r\n }else if(dubSpace == \"2\"){\r\n newData += \"
\";\r\n }\r\n }\r\n });\r\n }\r\n\r\n repReg = new RegExp(/(,\\s)($|\\z|\\n)/g);\r\n newData = newData.replace(repReg, \"\");\r\n\r\n if(newData == undefined || newData == null){\r\n newData = \"\";\r\n }\r\n\r\n newData = addText + newData + endText;\r\n\r\n repReg = new RegExp(/\\d{1,2}-\\d{1,2}-\\d{4}/g);\r\n mch = newData.match(repReg);\r\n if(mch != null){\r\n dateArray = [];\r\n [].forEach.call(mch, (v) =>{\r\n newText = v.split(\"-\");\r\n [].forEach.call(newText, (c, indexC) =>{\r\n c = c.replace(/\\s/g, \"\");\r\n if(c.length == 1){\r\n newText[indexC] = \"0\" + c;\r\n }\r\n });\r\n newText = newText.join(\".\");\r\n dateArray.push(newText);\r\n });\r\n dataArray = newData.split(repReg);\r\n newString = \"\";\r\n [].forEach.call(dataArray, (e, indexE) =>{\r\n if(dateArray[indexE] == undefined){\r\n newString += e;\r\n }else{\r\n newString += e + dateArray[indexE];\r\n }\r\n });\r\n \r\n newData = newString;\r\n }\r\n break;\r\n case \"6\":\r\n let dateObj = new Date();\r\n let month = ('0' + (dateObj.getMonth() + 1)).slice(-2);\r\n let day = ('0' + dateObj.getDate()).slice(-2);\r\n let year = dateObj.getFullYear();\r\n newData = day + \".\" + month + \".\" + year;\r\n break;\r\n }\r\n e = e.replace(\"*#\", \"..\");\r\n e = e.replace(\"#*\", \"..\");\r\n e = e.replace(\"|*\", \"..\");\r\n e = e.replace(\"*|\", \"..\");\r\n \r\n e = e.replace(\"/\", \".\");\r\n e = e.replace(\"[\", \".\");\r\n e = e.replace(\"]\", \".\");\r\n e = e.replace(/[()]/g, \".\");\r\n e = e.replace(/[)]/g, \".\");\r\n e = e.replace(/[{]/g, \".\");\r\n e = e.replace(/[}]/g, \".\");\r\n e = e.replace(/[/]/g, \".\");\r\n repReg = new RegExp(e, \"g\");\r\n newData = \"\" + newData + \"\";\r\n this.demoEditorContent = this.demoEditorContent.replace(repReg, newData);\r\n });\r\n }\r\n\r\n templateDrawCondition(indexAttr, cond, condField){\r\n let indexF;\r\n let findElse;\r\n let nd;\r\n let vl;\r\n let resultC;\r\n if(this.attrLoadData[indexAttr].type == \"copy\"){\r\n if(this.attrLoadData[indexAttr].requestAttributes[0].type == \"column\"){\r\n let ndi = this.attrLoadData[indexAttr].requestAttributes[0].id;\r\n indexF = this.attrLoadData.map(function(e){ return e.requestAttributeId }).indexOf(ndi);\r\n indexF = this.attrSaveData.map(function(e){ return e.requestAttributeId }).indexOf(this.attrLoadData[indexF].id);\r\n }else{\r\n indexF = this.attrSaveData.map(function(e){ return e.requestAttributeId }).indexOf(this.attrLoadData[indexAttr].requestAttributes[0].id);\r\n }\r\n condField = this.attrSaveData[indexF];\r\n let splitCond = cond.toString().split(\"xx\");\r\n findElse = this.attrSaveData.filter(x => x.requestAttributeId == parseInt(splitCond[1])).map(x => x);\r\n switch(splitCond[0]){\r\n case \"2\":\r\n findElse = this.attrSaveData.filter(x => x.requestAttributeId == parseInt(splitCond[1])).map(x => x);\r\n if(splitCond[1] == \"0\"){\r\n nd = parseInt(splitCond[3]);\r\n }else{\r\n nd = parseInt(findElse[0].data);\r\n }\r\n if(splitCond[2] == \"0\" || splitCond[2] == \"2\"){\r\n if(nd < parseInt(condField.data.split(\"|&|\").length)){\r\n resultC = true;\r\n }else{\r\n resultC = false;\r\n }\r\n }else if(splitCond[2] == \"1\"){\r\n nd += parseInt(splitCond[3]); \r\n if(nd <= parseInt(condField.data.split(\"|&|\").length)){\r\n resultC = true;\r\n }else{\r\n resultC = false;\r\n }\r\n }\r\n break;\r\n case \"3\":\r\n findElse = this.attrSaveData.filter(x => x.requestAttributeId == parseInt(splitCond[1])).map(x => x);\r\n if(splitCond[1] == \"0\"){\r\n nd = parseInt(splitCond[3]);\r\n }else{\r\n nd = parseInt(findElse[0].data);\r\n }\r\n if(splitCond[2] == \"0\" || splitCond[2] == \"2\"){\r\n if(nd > parseInt(condField.data.split(\"|&|\").length)){\r\n resultC = true;\r\n }else{\r\n resultC = false;\r\n }\r\n }else if(splitCond[2] == \"1\"){\r\n nd -= parseInt(splitCond[3]); \r\n if(nd >= parseInt(condField.data.split(\"|&|\").length)){\r\n resultC = true;\r\n }else{\r\n resultC = false;\r\n }\r\n }\r\n break;\r\n case \"4\":\r\n findElse = this.attrSaveData.filter(x => x.requestAttributeId == parseInt(splitCond[1])).map(x => x);\r\n if(splitCond[1] == \"0\"){\r\n nd = parseInt(splitCond[3]);\r\n }else{\r\n nd = parseInt(findElse[0].data);\r\n }\r\n if(nd == parseInt(condField.data.split(\"|&|\").length)){\r\n resultC = true;\r\n }else{\r\n resultC = false;\r\n }\r\n break;\r\n case \"5\":\r\n findElse = this.attrSaveData.filter(x => x.requestAttributeId == parseInt(splitCond[1])).map(x => x);\r\n if(splitCond[1] == \"0\"){\r\n nd = parseInt(splitCond[3]);\r\n }else{\r\n nd = parseInt(findElse[0].data);\r\n }\r\n if(nd != parseInt(condField.data.split(\"|&|\").length)){\r\n resultC = true;\r\n }else{\r\n resultC = false;\r\n }\r\n break;\r\n };\r\n }else if(this.attrLoadData[indexAttr].type == \"input\"){\r\n cond = cond.toString();\r\n let splitCond = cond.split(\"xx\");\r\n switch(splitCond[0]){\r\n case \"0\":\r\n if(condField.data != \"\"){\r\n resultC = true;\r\n }\r\n break;\r\n case \"1\":\r\n if(condField.data == \"\"){\r\n resultC = true;\r\n }\r\n break;\r\n case \"2\":\r\n findElse = this.attrSaveData.filter(x => x.requestAttributeId == parseInt(splitCond[1])).map(x => x);\r\n if(splitCond[1] == \"0\"){\r\n nd = parseInt(splitCond[3]);\r\n }else{\r\n nd = parseInt(findElse[0].data);\r\n }\r\n if(splitCond[2] == \"0\" || splitCond[2] == \"2\"){\r\n if(nd < parseInt(condField.data)){\r\n resultC = true;\r\n }else{\r\n resultC = false;\r\n }\r\n }else if(splitCond[2] == \"1\"){\r\n nd += parseInt(splitCond[3]); \r\n if(nd <= parseInt(condField.data)){\r\n resultC = true;\r\n }else{\r\n resultC = false;\r\n }\r\n }\r\n break;\r\n case \"3\":\r\n findElse = this.attrSaveData.filter(x => x.requestAttributeId == parseInt(splitCond[1])).map(x => x);\r\n if(splitCond[1] == \"0\"){\r\n nd = parseInt(splitCond[3]);\r\n }else{\r\n nd = parseInt(findElse[0].data);\r\n }\r\n if(splitCond[2] == \"0\" || splitCond[2] == \"2\"){\r\n if(nd > parseInt(condField.data)){\r\n resultC = true;\r\n }else{\r\n resultC = false;\r\n }\r\n }else if(splitCond[2] == \"1\"){\r\n nd -= parseInt(splitCond[3]); \r\n if(nd >= parseInt(condField.data)){\r\n resultC = true;\r\n }else{\r\n resultC = false;\r\n }\r\n }\r\n break;\r\n case \"4\":\r\n findElse = this.attrSaveData.filter(x => x.requestAttributeId == parseInt(splitCond[1])).map(x => x);\r\n if(splitCond[1] == \"0\"){\r\n nd = parseInt(splitCond[3]);\r\n }else{\r\n nd = parseInt(findElse[0].data);\r\n }\r\n if(nd == parseInt(condField.data)){\r\n resultC = true;\r\n }else{\r\n resultC = false;\r\n }\r\n break;\r\n case \"5\":\r\n findElse = this.attrSaveData.filter(x => x.requestAttributeId == parseInt(splitCond[1])).map(x => x);\r\n if(splitCond[1] == \"0\"){\r\n nd = parseInt(splitCond[3]);\r\n }else{\r\n nd = parseInt(findElse[0].data);\r\n }\r\n if(nd != parseInt(condField.data)){\r\n resultC = true;\r\n }else{\r\n resultC = false;\r\n }\r\n break;\r\n }\r\n }else if(this.attrLoadData[indexAttr].type == \"date\"){\r\n let splitCond = cond.toString().split(\"xx\");\r\n switch(splitCond[0]){\r\n case \"0\":\r\n if(condField.data != \"\"){\r\n resultC = true;\r\n }\r\n break;\r\n case \"1\":\r\n if(condField.data == \"\"){\r\n resultC = true;\r\n }\r\n break;\r\n case \"2\":\r\n findElse = this.attrSaveData.filter(x => x.requestAttributeId == parseInt(splitCond[1])).map(x => x);\r\n if(findElse.length > 0){\r\n vl = JSON.parse(JSON.stringify(findElse[0].data));\r\n }\r\n if(splitCond[1] == \"0\"){\r\n nd = new Date()\r\n nd = new Date(nd.toDateString());\r\n }else if(splitCond[1] == \"1\"){\r\n nd = new Date(parseInt(splitCond[4]));\r\n }else{\r\n vl = this.dateCorector(vl);\r\n nd = new Date(vl);\r\n }\r\n vl = JSON.parse(JSON.stringify(condField.data));\r\n vl = this.dateCorector(vl);\r\n if(splitCond[2] == \"0\"){\r\n let dvl = new Date(vl);\r\n nd.setHours(0);\r\n nd.setMinutes(0);\r\n dvl.setHours(0);\r\n dvl.setMinutes(0);\r\n if(nd.getTime() < dvl.getTime()){\r\n resultC = true;\r\n }else{\r\n resultC = false;\r\n }\r\n }else if(splitCond[2] == \"1\"){\r\n let dvl = new Date(vl);\r\n nd.setHours(0);\r\n nd.setMinutes(0);\r\n dvl.setHours(0);\r\n dvl.setMinutes(0);\r\n nd.setDate(nd.getDate() + parseInt(splitCond[3])); \r\n if(nd.getTime() <= dvl.getTime()){\r\n resultC = true;\r\n }else{\r\n resultC = false;\r\n }\r\n }else if(splitCond[2] == \"2\"){\r\n let dvl = new Date(vl);\r\n nd.setHours(0);\r\n nd.setMinutes(0);\r\n dvl.setHours(0);\r\n dvl.setMinutes(0);\r\n nd.setMonth(nd.getMonth() + parseInt(splitCond[3])); \r\n if(nd.getTime() <= dvl.getTime()){\r\n resultC = true;\r\n }else{\r\n resultC = false;\r\n }\r\n }else if(splitCond[2] == \"3\"){\r\n let dvl = new Date(vl);\r\n nd.setHours(0);\r\n nd.setMinutes(0);\r\n dvl.setHours(0);\r\n dvl.setMinutes(0);\r\n nd.setFullYear(nd.getFullYear() + parseInt(splitCond[3])); \r\n if(nd.getTime() <= dvl.getTime()){\r\n resultC = true;\r\n }else{\r\n resultC = false;\r\n }\r\n }else if(splitCond[2] == \"4\"){\r\n nd.setHours(nd.getHours() + parseInt(splitCond[3])); \r\n if(nd.getTime() <= new Date(vl).getTime()){\r\n resultC = true;\r\n }else{\r\n resultC = false;\r\n }\r\n }\r\n break;\r\n case \"3\":\r\n findElse = this.attrSaveData.filter(x => x.requestAttributeId == parseInt(splitCond[1])).map(x => x);\r\n if(findElse.length > 0){\r\n vl = JSON.parse(JSON.stringify(findElse[0].data));\r\n }\r\n if(splitCond[1] == \"0\"){\r\n nd = new Date()\r\n nd = new Date(nd.toDateString());\r\n }else if(splitCond[1] == \"1\"){\r\n nd = new Date(parseInt(splitCond[4]));\r\n }else{\r\n vl = this.dateCorector(vl);\r\n nd = new Date(vl);\r\n }\r\n vl = JSON.parse(JSON.stringify(condField.data));\r\n vl = this.dateCorector(vl);\r\n if(splitCond[2] == \"0\"){\r\n let dvl = new Date(vl);\r\n nd.setHours(0);\r\n nd.setMinutes(0);\r\n dvl.setHours(0);\r\n dvl.setMinutes(0);\r\n if(nd.getTime() > dvl.getTime()){\r\n resultC = true;\r\n }else{\r\n resultC = false;\r\n }\r\n }else if(splitCond[2] == \"1\"){\r\n let dvl = new Date(vl);\r\n nd.setHours(0);\r\n nd.setMinutes(0);\r\n dvl.setHours(0);\r\n dvl.setMinutes(0);\r\n nd.setDate(nd.getDate() - parseInt(splitCond[3])); \r\n if(nd.getTime() >= dvl.getTime()){\r\n resultC = true;\r\n }else{\r\n resultC = false;\r\n }\r\n }else if(splitCond[2] == \"2\"){\r\n let dvl = new Date(vl);\r\n nd.setHours(0);\r\n nd.setMinutes(0);\r\n dvl.setHours(0);\r\n dvl.setMinutes(0);\r\n nd.setMonth(nd.getMonth() - parseInt(splitCond[3])); \r\n if(nd.getTime() >= dvl.getTime()){\r\n resultC = true;\r\n }else{\r\n resultC = false;\r\n }\r\n }else if(splitCond[2] == \"3\"){\r\n let dvl = new Date(vl);\r\n nd.setHours(0);\r\n nd.setMinutes(0);\r\n dvl.setHours(0);\r\n dvl.setMinutes(0);\r\n nd.setFullYear(nd.getFullYear() - parseInt(splitCond[3])); \r\n if(nd.getTime() >= dvl.getTime()){\r\n resultC = true;\r\n }else{\r\n resultC = false;\r\n }\r\n }else if(splitCond[2] == \"4\"){\r\n nd.setHours(nd.getHours() - parseInt(splitCond[3])); \r\n if(nd.getTime() >= new Date(vl).getTime()){\r\n resultC = true;\r\n }else{\r\n resultC = false;\r\n }\r\n }\r\n break;\r\n case \"4\":\r\n findElse = this.attrSaveData.filter(x => x.requestAttributeId == parseInt(splitCond[1])).map(x => x);\r\n if(findElse.length > 0){\r\n vl = JSON.parse(JSON.stringify(findElse[0].data));\r\n }\r\n if(splitCond[1] == \"0\"){\r\n nd = new Date()\r\n nd = new Date(nd.toDateString());\r\n }else if(splitCond[1] == \"1\"){\r\n nd = new Date(parseInt(splitCond[4]));\r\n }else{\r\n vl = this.dateCorector(vl);\r\n nd = new Date(vl);\r\n }\r\n vl = JSON.parse(JSON.stringify(condField.data));\r\n vl = this.dateCorector(vl);\r\n if(nd.getTime() == new Date(vl).getTime()){\r\n resultC = true;\r\n }else{\r\n resultC = false;\r\n }\r\n break;\r\n case \"5\":\r\n findElse = this.attrSaveData.filter(x => x.requestAttributeId == parseInt(splitCond[1])).map(x => x);\r\n if(findElse.length > 0){\r\n vl = JSON.parse(JSON.stringify(findElse[0].data));\r\n }\r\n if(splitCond[1] == \"0\"){\r\n nd = new Date()\r\n nd = new Date(nd.toDateString());\r\n }else if(splitCond[1] == \"1\"){\r\n nd = new Date(parseInt(splitCond[4]));\r\n }else{\r\n vl = this.dateCorector(vl);\r\n nd = new Date(vl);\r\n }\r\n vl = JSON.parse(JSON.stringify(condField.data));\r\n vl = this.dateCorector(vl);\r\n if(nd.getTime() != new Date(vl).getTime()){\r\n resultC = true;\r\n }else{\r\n resultC = false;\r\n }\r\n break;\r\n }\r\n }\r\n return resultC;\r\n }\r\n\r\n addTable(){\r\n this.editorQuill.getModule('better-table').insertTable(3, 3);\r\n // this.manualFormatClear();\r\n }\r\n\r\n hideTable(){\r\n this.editorQuill.insertText(this.editorQuill.getSelection().index, \"z3z3z3z\");\r\n let t1 = this.editorQuill.container.children[0].innerHTML.search(/z3z3z3z/);\r\n let t2 = this.editorQuill.container.children[0].innerHTML.slice(0, t1);\r\n let t3 = t2.split(' {\r\n if(result == undefined){\r\n return false;\r\n }\r\n this.editorCommand = true;\r\n this.editorQuill.insertText(selection.index, \"|*\");\r\n this.editorQuill.setSelection(selection.index +2);\r\n selection = this.editorQuill.getSelection();\r\n this.editorQuill.insertText(selection.index, result[1]);\r\n this.editorQuill.setSelection(selection.index, selection.length + result[1].length);\r\n selection = this.editorQuill.getSelection();\r\n this.editorQuill.format('requestKey', result[0]);\r\n this.editorQuill.setSelection(selection.index + result[1].length, 0);\r\n selection = this.editorQuill.getSelection();\r\n this.editorQuill.format('requestKey', '');\r\n this.editorQuill.insertText(selection.index, \"*|\");\r\n this.editorCommand = false;\r\n\r\n setTimeout(() => {\r\n let reg = new RegExp(/(?!\\d)\\s(cc_cursor)/g);\r\n let test = reg.test(this.editorQuill.container.children[0].innerHTML);\r\n if(test){\r\n this.editorQuill.container.children[0].innerHTML = this.editorQuill.container.children[0].innerHTML.replace(reg, \"\");\r\n }\r\n reg = new RegExp(/\\sstyle=\"background-color: initial;\"/g);\r\n test = reg.test(this.editorQuill.container.children[0].innerHTML);\r\n if(test){\r\n this.editorQuill.container.children[0].innerHTML = this.editorQuill.container.children[0].innerHTML.replace(reg, \"\");\r\n }\r\n // this.manualFormatClear();\r\n }, 500);\r\n });\r\n }\r\n }\r\n\r\n editLink(){\r\n let data = this.findEditorData();\r\n if(data == null){\r\n let confirm = this.dialog.open(InfoMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: {text: \"Не вибрано поля для редагування!\"}\r\n });\r\n confirm.afterClosed().subscribe(result => {\r\n\r\n });\r\n return false;\r\n }\r\n let key = this.editorQuill.getFormat().requestKey;\r\n if(key == undefined){\r\n return false;\r\n }\r\n let values: any = {\r\n ui: \"\",\r\n t: \"\",\r\n f: \"\",\r\n cs: \"\",\r\n cvs: \"\",\r\n fs: \"\",\r\n fls: \"\",\r\n de: \"\",\r\n cds: \"\",\r\n cdvs: \"\",\r\n af: \"\",\r\n cas: \"\",\r\n cvas: \"\",\r\n fts: \"\",\r\n dtd: \"\",\r\n cts: \"\",\r\n cws: \"\",\r\n cps: \"\",\r\n cdts: \"\",\r\n tl: \"\",\r\n };\r\n let type = key.split(\"TL\")[1].split('\"')[0];\r\n let regData = new RegExp(/>(\\S|\\w|\\s|\\d|\\W).*? {\r\n if(result == undefined){\r\n return false;\r\n }else if(result == \"remove\"){\r\n this.editorQuill.container.children[0].innerHTML = this.editorQuill.container.children[0].innerHTML.replace(data, \"\");\r\n }else{\r\n this.editorQuill.insertText(selection.index, \"zz\");\r\n let t1 = this.editorQuill.container.children[0].innerText.search(/zz/g);\r\n let t2 = this.editorQuill.container.children[0].innerText.slice(0, t1);\r\n let t3 = t2.split(\"|*\");\r\n let t4 = t3[t3.length -1].length +2;\r\n this.editorQuill.container.children[0].innerHTML = this.editorQuill.container.children[0].innerHTML.replace(/zz/, \"\");\r\n let regData = data;\r\n regData = regData.replace(\"*#\", \"..\");\r\n regData = regData.replace(\"#*\", \"..\");\r\n regData = regData.replace(\"|*\", \"..\");\r\n regData = regData.replace(\"*|\", \"..\");\r\n \r\n regData = regData.replace(\"/\", \".\");\r\n regData = regData.replace(\"[\", \".\");\r\n regData = regData.replace(\"]\", \".\");\r\n regData = regData.replace(/[{]/g, \".\");\r\n regData = regData.replace(/[}]/g, \".\");\r\n regData = new RegExp(regData);\r\n \r\n this.editorQuill.container.children[0].innerHTML = this.editorQuill.container.children[0].innerHTML.replace(regData, \"\");\r\n setTimeout(() => {\r\n this.editorQuill.setSelection(selection.index - t4, 0);\r\n selection = this.editorQuill.getSelection();\r\n this.editorCommand = true;\r\n this.editorQuill.insertText(selection.index, \"|*\");\r\n this.editorQuill.setSelection(selection.index +2);\r\n selection = this.editorQuill.getSelection();\r\n this.editorQuill.insertText(selection.index, result[1]);\r\n this.editorQuill.setSelection(selection.index, selection.length + result[1].length);\r\n selection = this.editorQuill.getSelection();\r\n this.editorQuill.format('requestKey', result[0]);\r\n this.editorQuill.setSelection(selection.index + result[1].length, 0);\r\n selection = this.editorQuill.getSelection();\r\n this.editorQuill.format('requestKey', '');\r\n this.editorQuill.insertText(selection.index, \"*|\");\r\n this.editorCommand = false;\r\n let reg = new RegExp(/(?!\\d)\\s(cc_cursor)/g);\r\n let test = reg.test(this.editorQuill.container.children[0].innerHTML);\r\n if(test){\r\n this.editorQuill.container.children[0].innerHTML = this.editorQuill.container.children[0].innerHTML.replace(reg, \"\");\r\n }\r\n reg = new RegExp(/\\sstyle=\"background-color: initial;\"/g);\r\n test = reg.test(this.editorQuill.container.children[0].innerHTML);\r\n if(test){\r\n this.editorQuill.container.children[0].innerHTML = this.editorQuill.container.children[0].innerHTML.replace(reg, \"\");\r\n }\r\n }, 100);\r\n }\r\n // this.manualFormatClear();\r\n });\r\n }\r\n }\r\n\r\n findEditorData(){\r\n let format = this.editorQuill.getFormat();\r\n let reg = new RegExp(/(?!\\d)\\s(cc_cursor)/g);\r\n let test = reg.test(this.editorQuill.container.children[0].innerHTML);\r\n if(test){\r\n this.editorQuill.container.children[0].innerHTML = this.editorQuill.container.children[0].innerHTML.replace(reg, \"\");\r\n }\r\n reg = new RegExp(/\\sstyle=\"background-color: initial;\"/g);\r\n test = reg.test(this.editorQuill.container.children[0].innerHTML);\r\n if(test){\r\n this.editorQuill.container.children[0].innerHTML = this.editorQuill.container.children[0].innerHTML.replace(reg, \"\");\r\n }\r\n let editorValue = this.editorQuill.container.children[0].innerHTML;\r\n reg = new RegExp(/[|][*]<\\w+\\s.*?(class=.key-(\\w|\\d|[-])+).>(\\w|\\d|\\s|[^<])+(<.\\w+.*?>[*][|]).*?/g);//v. 1.3.7\r\n let match = editorValue.match(reg);\r\n reg = new RegExp(/[|][*]<\\w+\\s.*?(key=.(\\w|\\d|[-])+).>(\\w|\\d|\\s|[^<])+(<.\\w+.*?>[*][|]).*?/g);//v. 2.0\r\n if(match != null){\r\n match = match.concat(editorValue.match(reg));\r\n }else{\r\n match = editorValue.match(reg);\r\n }\r\n let result = null;\r\n if(match != null){\r\n [].forEach.call(match, (e) =>{\r\n var VRegExp = new RegExp(format.requestKey, \"g\");\r\n let test = VRegExp.test(e);\r\n if(test){\r\n result = e;\r\n }\r\n });\r\n }\r\n return result;\r\n }\r\n\r\n addMenu(body){\r\n this.IsSaving = true;\r\n \r\n let content = this.editorQuill.container.children[0].innerHTML;\r\n let reg = new RegExp(/(?!\\d)\\s(cc_cursor)/g);\r\n content = content.replace(reg, \"\");\r\n\r\n reg = new RegExp(/\\sstyle=\"background-color: initial;\"/g);\r\n let test = reg.test(content);\r\n if(test){\r\n content = content.replace(reg, \"\");\r\n }\r\n\r\n let elements: any = this.langDataList.filter(x => x.langId == this.currentLocale).map(x => x);\r\n if(elements.length == 0){\r\n this.langDataList.push({langId: this.currentLocale, title: body.name, content: content});\r\n }else{\r\n elements[0].title = body.name;\r\n elements[0].content = content;\r\n }\r\n let titleString = \"\";\r\n let textString = \"\";\r\n [].forEach.call(this.langDataList, (e, indexE) =>{\r\n if(indexE != 0){\r\n titleString += \"*L*\";\r\n textString += \"*L*\";\r\n }\r\n titleString += this.admin.getDefLocale() + \"*I*\" + e.title;\r\n textString += e.content;\r\n });\r\n \r\n let json = {\r\n \"title\": titleString,\r\n \"content\": textString,\r\n \"requestTypeId\": this.requestType,\r\n }\r\n this.http.post(this.admin.getUrl() + \"Template\", json, options).subscribe(()=>{\r\n this.IsSaving = false;\r\n this.onClose(true);\r\n });\r\n }\r\n\r\n saveMenu(body){\r\n this.IsSaving = true;\r\n \r\n let content = this.editorQuill.container.children[0].innerHTML;\r\n let reg = new RegExp(/(?!\\d)\\s(cc_cursor)/g);\r\n content = content.replace(reg, \"\");\r\n // ==============================================\r\n reg = new RegExp(//g);\r\n content = content.replace(reg, \"\");\r\n reg = new RegExp(//g);\r\n content = content.replace(reg, \"\");\r\n reg = new RegExp(/style=.color.\\srgb.\\d{1,3}.\\s\\d{1,3}.\\s\\d{1,3}.../g);\r\n content = content.replace(reg, \"\");\r\n // ==============================================\r\n reg = new RegExp(/\\sstyle=\"background-color: initial;\"/g);\r\n let test = reg.test(content);\r\n if(test){\r\n content = content.replace(reg, \"\");\r\n }\r\n\r\n let elements: any = this.langDataList.filter(x => x.langId == this.currentLocale).map(x => x);\r\n if(elements.length == 0){\r\n this.langDataList.push({langId: this.currentLocale, title: body.name, content: content});\r\n }else{\r\n elements[0].title = body.name;\r\n elements[0].content = content;\r\n }\r\n let titleString = \"\";\r\n let textString = \"\";\r\n [].forEach.call(this.langDataList, (e, indexE) =>{\r\n if(indexE != 0){\r\n titleString += \"*L*\";\r\n textString += \"*L*\";\r\n }\r\n titleString += e.langId + \"*I*\" + e.title;\r\n textString += e.content;\r\n });\r\n \r\n let json = {};\r\n json = {\r\n \"id\": body.id,\r\n \"title\": titleString,\r\n \"content\": textString,\r\n \"requestTypeId\": this.requestType,\r\n }\r\n this.http.put(this.admin.getUrl() + \"Template/\" + body.id, json, options).subscribe((data)=>{\r\n if(body.typeSave){\r\n this.IsSaving = false;\r\n this.onClose(true);\r\n }else{\r\n this.editorContent = this.editorQuill.root.innerHTML;\r\n this.unChangeRegister();\r\n this.IsSaving = false;\r\n }\r\n });\r\n }\r\n\r\n onClose(save): void {\r\n if(this.editorQuill.root.innerHTML != this.editorContent){\r\n this.changeRegister();\r\n }\r\n if(isChange && !save){\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: {text: \"Увага! Документ буде закритий без збереження змін. Продовжити?\"}\r\n });\r\n confirm.afterClosed().subscribe(result => {\r\n if(result){\r\n this.unChangeRegister();\r\n this.router.navigate(['/admin/template']);\r\n }\r\n });\r\n }else{\r\n this.unChangeRegister();\r\n this.router.navigate(['/admin/template']);\r\n }\r\n }\r\n\r\n}\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Template Parse ++\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n@Component({\r\n selector: 'template-parse',\r\n templateUrl: 'template-parse.html',\r\n styleUrls: ['./admin.css'],\r\n providers: [\r\n AdminPage,\r\n {provide: MAT_DATE_LOCALE, useValue: 'uk-UA'},\r\n {provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS]},\r\n {provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS},\r\n ],\r\n})\r\n\r\nexport class TemplateParse {\r\n\r\n dbIsLoad: boolean = false;\r\n IsLoading: boolean = true;\r\n isFieldList: boolean = false;\r\n isMultipleField: boolean = false;\r\n isDublicateSelect: boolean = false;\r\n isDublicateList: boolean = false;\r\n isConditionList: boolean = false;\r\n isAdditionalCondition: boolean = false;\r\n isConditionAditionalList: boolean = false;\r\n isCVSMore: boolean = false;\r\n isOwnDate: boolean = false;\r\n isDate: boolean = false;\r\n\r\n universalIdentificator: number = 0;\r\n barValue: number = 50;\r\n\r\n typeData: any[] = [];\r\n formData: any[] = [];\r\n formAditionalData: any[] = [];\r\n conditionData: any[] = [];\r\n conditionValueData: any[] = [];\r\n conditionMore: any[] = [];\r\n conditionOn: any[] = [];\r\n fieldListSelect: any[] = [];\r\n fieldListData: any[] = [];\r\n dublicateSelect: any[] = [];\r\n dublicateData: any[] = [];\r\n conditionDublicateData: any[] = [];\r\n conditionDublicateValueData: any[] = [];\r\n conditionIsInDublicateId: any[] = [];\r\n conditionIsInDublicateData: any[] = [];\r\n conditionDublicateSpaceData: any[] = [];\r\n fieldIsInDublicateId: any[] = [];\r\n fieldAditionalData: any[] = [];\r\n conditionAditionalData: any[] = [];\r\n conditionValueAditionalData: any[] = [];\r\n fieldData: any[] = [];\r\n dublicateTextData: any[] = [];\r\n userDataTypeValue: any[] = [];\r\n\r\n barColor: ThemePalette = 'primary';\r\n barMode: ProgressSpinnerMode = 'indeterminate';\r\n typeSelect: any = \"\";\r\n formSelect: any = \"\";\r\n conditionSelect: any = \"\";\r\n conditionValueSelect: any = \"\";\r\n conditionTextSelect: any = \"\";\r\n conditionWordSelect: any = \"\";\r\n conditionPordSelect: any = \"\";\r\n conditionValueSelectM: any = \"\";\r\n conditionValueSelectMV: any = \"\";\r\n conditionValueSelectMO: any = \"\";\r\n conditionValueSelectMD: any = \"\";\r\n conditionValueSelectMT: any = \"\";\r\n fieldSelect: any = \"\";\r\n fieldTextSelect: any = \"\";\r\n conditionDublicateSelect: any = \"\";\r\n conditionDublicateValueSelect: any = \"\";\r\n conditionDublicateTextSelect: any = \"\";\r\n conditionDublicateSpaceSelect: any = \"\";\r\n formAditionalSelect: any = \"\";\r\n conditionAditionalSelect: any = \"\";\r\n conditionValueAditionalSelect: any = \"\";\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n private http: HttpClient,\r\n private admin: AdminPage,\r\n public dialog: MatDialog,\r\n ){\r\n this.IsLoading = true;\r\n \r\n let dataW: any = this.data.data;\r\n\r\n let timer = 0;\r\n if(dataW.Data != undefined){\r\n timer = parseInt(dataW.Data.TL);\r\n }\r\n\r\n setTimeout(() => {\r\n this.IsLoading = false;\r\n }, (timer +1) * 100);\r\n\r\n this.dbRequest(\"Type\", false);\r\n this.dbRequest(\"Form\", false);\r\n this.dbRequest(\"Attr\", false);\r\n this.dbRequest(\"Lib\", false);\r\n\r\n this.typeSelect = dataW.Type.toString();\r\n if(dataW.Data != undefined){\r\n this.universalIdentificator = parseInt(dataW.Data.UI);\r\n this.formSelect = parseInt(dataW.Data.F);\r\n this.conditionSelect = dataW.Data.CS;\r\n if(this.conditionSelect != \"\"){\r\n this.conditionSelect = parseInt(dataW.Data.CS);\r\n let ev: any = {};\r\n ev.value = this.conditionSelect;\r\n let intervalC = setInterval(() => {\r\n if(this.dbIsLoad){\r\n clearInterval(intervalC);\r\n this.onChange(\"CS\", ev, null);\r\n this.conditionValueSelect = dataW.Data.CVS;\r\n if(dataW.Data.CVS != \"\"){\r\n this.isConditionList = true;\r\n let split = dataW.Data.CVS.split(\"xx\");\r\n if(split.length > 1){\r\n this.IsLoading = true;\r\n this.isCVSMore = true;\r\n this.conditionValueSelect = \"option_\" + split[0];\r\n let intervalCVS = setInterval(() => {\r\n if(this.dbIsLoad){\r\n clearInterval(intervalCVS);\r\n this.IsLoading = false;\r\n let ev: any = {};\r\n ev.value = this.conditionValueSelect;\r\n this.onChange(\"CVS\", ev, null);\r\n this.IsLoading = true;\r\n let intervalCVSM = setInterval(() => {\r\n if(this.conditionMore.length > 0){\r\n clearInterval(intervalCVSM);\r\n this.IsLoading = false;\r\n if(split.length == 2){\r\n if(split[1] == \"0\" || split[1] == \"1\"){\r\n this.conditionValueSelectM = split[1];\r\n }else{\r\n this.conditionValueSelectM = parseInt(split[1]);\r\n }\r\n }else if(split.length > 2){\r\n if(split[1] == \"0\" || split[1] == \"1\"){\r\n this.conditionValueSelectM = split[1];\r\n }else{\r\n this.conditionValueSelectM = parseInt(split[1]);\r\n }\r\n let ev: any = {};\r\n ev.value = this.conditionValueSelectM;\r\n this.onChange(\"CVSM\", ev, null);\r\n this.IsLoading = true;\r\n setTimeout(() => {\r\n this.conditionValueSelectMO = split[2];\r\n this.conditionValueSelectMV = split[3];\r\n this.conditionValueSelectMD = new Date(parseInt(split[4]));\r\n this.conditionValueSelectMT = \"\";\r\n setTimeout(() => {\r\n this.conditionValueSelectMT = this.conditionValueSelectMD.getHours() + \":\" + this.conditionValueSelectMD.getMinutes();\r\n this.IsLoading = false;\r\n }, 0);\r\n }, 200);\r\n }\r\n }\r\n }, 50);\r\n }\r\n }, 50);\r\n }else{\r\n this.conditionValueSelect = \"option_\" + dataW.Data.CVS;\r\n this.IsLoading = false;\r\n }\r\n }\r\n }\r\n }, 50);\r\n }\r\n\r\n this.fieldSelect = dataW.Data.FS;\r\n if(this.fieldSelect != \"\"){\r\n this.fieldSelect = parseInt(dataW.Data.FS);\r\n let ev: any = {};\r\n ev.value = this.fieldSelect;\r\n let intervalF = setInterval(() => {\r\n if(this.dbIsLoad){\r\n clearInterval(intervalF);\r\n setTimeout(() => {\r\n this.onChange(\"FS\", ev, null);\r\n }, 50);\r\n }\r\n }, 50);\r\n }\r\n this.fieldListSelect = dataW.Data.FLS.split(\"xx\");\r\n if(this.fieldListSelect == undefined){\r\n this.fieldListSelect = [];\r\n }else if(this.fieldListSelect[0] == \"\"){\r\n this.fieldListSelect = [];\r\n }else{\r\n this.isFieldList = true;\r\n [].forEach.call(this.fieldListSelect, (e, index) =>{\r\n this.fieldListSelect[index] = parseInt(e);\r\n });\r\n }\r\n this.dublicateSelect = dataW.Data.DE.split(\"xx\");\r\n this.conditionDublicateSpaceSelect = this.dublicateSelect[this.dublicateSelect.length -1].split(\"qq\")[1];\r\n if(this.conditionDublicateSpaceSelect != \"\"){\r\n this.conditionDublicateSpaceSelect = parseInt(this.conditionDublicateSpaceSelect);\r\n }\r\n this.dublicateSelect[this.dublicateSelect.length -1] = this.dublicateSelect[this.dublicateSelect.length -1].split(\"qq\")[0];\r\n if(this.dublicateSelect == undefined){\r\n this.dublicateSelect = [];\r\n }else if(this.dublicateSelect[0] == \"\"){\r\n this.dublicateSelect = [];\r\n }else{\r\n [].forEach.call(this.dublicateSelect, (e, index) =>{\r\n this.dublicateSelect[index] = parseInt(e);\r\n });\r\n }\r\n\r\n this.fieldTextSelect = dataW.Data.FTS;\r\n this.dublicateTextData = dataW.Data.DTD.split(\"xx\");\r\n this.conditionTextSelect = dataW.Data.CTS;\r\n this.conditionWordSelect = dataW.Data.CWS;\r\n this.conditionPordSelect = dataW.Data.CPS;\r\n this.conditionDublicateTextSelect = dataW.Data.CDTS;\r\n\r\n this.formAditionalSelect = dataW.Data.AF;\r\n if(this.formAditionalSelect != \"\"){\r\n this.formAditionalSelect = parseInt(dataW.Data.AF);\r\n }\r\n if(this.conditionSelect === 0){\r\n this.isAdditionalCondition = true;\r\n this.dbRequest(\"Attr\", true);\r\n this.IsLoading = true;\r\n let intervalCAS = setInterval(() => {\r\n if(this.dbIsLoad && this.conditionAditionalData.length > 0){\r\n clearInterval(intervalCAS);\r\n this.IsLoading = false;\r\n this.conditionAditionalSelect = dataW.Data.CAS;\r\n if(this.conditionAditionalSelect != \"\"){\r\n this.conditionAditionalSelect = parseInt(dataW.Data.CAS);\r\n }\r\n let ev: any = {};\r\n ev.value = this.conditionAditionalSelect;\r\n this.onChange(\"CAS\", ev, null);\r\n this.IsLoading = true;\r\n let intervalCVAS = setInterval(() => {\r\n if(this.conditionValueAditionalData.length > 0){\r\n clearInterval(intervalCVAS);\r\n this.IsLoading = false;\r\n this.conditionValueAditionalSelect = dataW.Data.CVAS;\r\n if(dataW.Data.CVAS != \"\"){\r\n this.isConditionAditionalList = true;\r\n let split = dataW.Data.CVAS.split(\"xx\");\r\n if(split.length > 1){\r\n this.isCVSMore = true;\r\n this.conditionValueAditionalSelect = \"option_\" + split[0];\r\n let intervalCVAS2 = setInterval(() => {\r\n if(this.dbIsLoad){\r\n clearInterval(intervalCVAS2);\r\n let ev: any = {};\r\n ev.value = this.conditionValueAditionalSelect;\r\n this.onChange(\"CVAS\", ev, null);\r\n this.IsLoading = true;\r\n let intervalCVSM = setInterval(() => {\r\n if(this.conditionMore.length > 0){\r\n clearInterval(intervalCVSM);\r\n this.IsLoading = false;\r\n if(split.length == 2){\r\n if(split[1] == \"0\" || split[1] == \"1\"){\r\n this.conditionValueSelectM = split[1];\r\n }else{\r\n this.conditionValueSelectM = parseInt(split[1]);\r\n }\r\n let ev: any = {};\r\n ev.value = this.conditionValueSelectM;\r\n this.onChange(\"CVSM\", ev, null);\r\n }else if(split.length > 2){\r\n if(split[1] == \"0\" || split[1] == \"1\"){\r\n this.conditionValueSelectM = split[1];\r\n }else{\r\n this.conditionValueSelectM = parseInt(split[1]);\r\n }\r\n let ev: any = {};\r\n ev.value = this.conditionValueSelectM;\r\n this.onChange(\"CVSM\", ev, null);\r\n this.IsLoading = true;\r\n setTimeout(() => {\r\n this.conditionValueSelectMO = split[2];\r\n this.conditionValueSelectMV = split[3];\r\n this.conditionValueSelectMD = new Date(parseInt(split[4]));\r\n this.conditionValueSelectMT = \"\";\r\n setTimeout(() => {\r\n this.conditionValueSelectMT = this.conditionValueSelectMD.getHours() + \":\" + this.conditionValueSelectMD.getMinutes();\r\n this.IsLoading = false;\r\n }, 0);\r\n }, 200);\r\n }\r\n }\r\n }, 50);\r\n }\r\n }, 50);\r\n }else{\r\n this.conditionValueAditionalSelect = \"option_\" + dataW.Data.CVAS;\r\n }\r\n }\r\n }else{\r\n this.IsLoading = false;\r\n }\r\n }, 50);\r\n }\r\n }, 50);\r\n }else{\r\n this.isAdditionalCondition = false;\r\n }\r\n if(this.dublicateSelect.length > 0){\r\n this.isDublicateSelect = true;\r\n }else{\r\n this.isDublicateSelect = false;\r\n }\r\n if(this.isDublicateSelect){\r\n let intervalDC = setInterval(() => {\r\n if(this.conditionDublicateData.length > 0){\r\n if(dataW.Data.CDS != \"\"){\r\n this.conditionDublicateSelect = parseInt(dataW.Data.CDS);\r\n let ev: any = {};\r\n ev.value = this.conditionDublicateSelect;\r\n this.onChange(\"CDS\", ev, null);\r\n clearInterval(intervalDC);\r\n if(dataW.Data.CDVS != \"\"){\r\n this.conditionDublicateValueSelect = \"option_\" + dataW.Data.CDVS;\r\n }\r\n }\r\n }\r\n }, 50);\r\n }\r\n if(this.conditionDublicateValueData.length > 0){\r\n this.isDublicateList = true;\r\n }else{\r\n this.isDublicateList = false;\r\n }\r\n if(this.conditionValueData.length > 0){\r\n this.isConditionList = true;\r\n }else{\r\n this.isConditionList = false;\r\n }\r\n if(this.fieldTextSelect == \"\"){\r\n this.fieldSelect = \"\";\r\n }\r\n }\r\n }\r\n\r\n dbRequest(type, ad){\r\n switch(type){\r\n case \"Type\":\r\n this.http.get(this.admin.getUrl() + \"RequestType\").subscribe((data)=>{\r\n [].forEach.call(data, (e) => {\r\n let tableTitle = e.title.split(\"*L*\");\r\n let elements = tableTitle.filter(x => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map(x => x);\r\n if(elements.length == 0){\r\n tableTitle = tableTitle[0];\r\n }else{\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n e.tableTitle = tableTitle;\r\n\r\n this.typeData.push(e);\r\n });\r\n });\r\n break;\r\n case \"Form\":\r\n this.http.get(this.admin.getUrl() + \"RequestForm\").subscribe((data)=>{\r\n [].forEach.call(data, (e) => {\r\n [].forEach.call(e.requestTypeRequestForms, (el) => {\r\n if(el.requestTypeId.toString() == this.typeSelect){\r\n let tableTitle = e.title.split(\"*L*\");\r\n let elements = tableTitle.filter(x => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map(x => x);\r\n if(elements.length == 0){\r\n tableTitle = tableTitle[0];\r\n }else{\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n e.tableTitle = tableTitle;\r\n \r\n this.formData.push(e);\r\n }\r\n });\r\n });\r\n this.formAditionalData = JSON.parse(JSON.stringify(this.formData));\r\n let templateDateParse = {\r\n \"id\": 0,\r\n \"title\": \"*Дата подачі заяви*\",\r\n \"tableTitle\": \"*Дата подачі заяви*\",\r\n }\r\n this.formData.push(templateDateParse);\r\n });\r\n break;\r\n case \"Attr\":\r\n this.http.get(this.admin.getUrl() + \"RequestAttribute\").subscribe((data)=>{\r\n if(!ad){\r\n let ConditionArray = [];\r\n let AttrArray = [];\r\n let ConditionInDubArray = [];\r\n let ValueArray = [];\r\n let CopyPArray = [];\r\n let CopyCArray = [];\r\n [].forEach.call(data, (e) => {\r\n if(e.requestFormId.toString() == this.formSelect){\r\n let tableTitle = e.label.split(\"*L*\");\r\n let elements = tableTitle.filter(x => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map(x => x);\r\n if(elements.length == 0){\r\n tableTitle = tableTitle[0];\r\n }else{\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n e.tableTitle = tableTitle;\r\n\r\n AttrArray.push(e);\r\n if(e.type != \"column\" && e.type != \"court\" && e.type != \"order\"){\r\n ConditionArray.push(e);\r\n }\r\n if(e.type == \"copy\"){\r\n CopyPArray.push(e);\r\n }else if(e.type != \"column\" && e.type != \"checkbox\" && e.type != \"radio\" && e.type != \"order\"){\r\n ValueArray.push(e);\r\n }\r\n }\r\n });\r\n [].forEach.call(ConditionArray, (e) =>{\r\n if(e.requestAttributeId != null){\r\n let result = getParentAttr(AttrArray, e.requestAttributeId);\r\n ConditionInDubArray.push(result);\r\n }else{\r\n ConditionInDubArray.push(false);\r\n }\r\n });\r\n [].forEach.call(ConditionInDubArray, (e, index) =>{\r\n if(e != false){\r\n if(!this.conditionIsInDublicateId.some(c => c === ConditionArray[index])){\r\n this.conditionIsInDublicateId.push(e);\r\n }\r\n this.conditionIsInDublicateData.push(ConditionArray[index]);\r\n }else{\r\n this.conditionData.push(ConditionArray[index]);\r\n }\r\n });\r\n let simpleCondition = [\r\n {id: 0, type: \"checkbox\", tableTitle: \"*Перевірка додаткового поля*\"},\r\n ];\r\n [].forEach.call(simpleCondition, (e) =>{\r\n if(!this.conditionData.some(c => c.id === e.id)){\r\n this.conditionData.push(e);\r\n }\r\n });\r\n function getParentAttr(array, id){\r\n let index = array.map(function(c){ return c.id }).indexOf(id);\r\n if(array[index].type == \"copy\"){\r\n return array[index].id;\r\n }else{\r\n if(array[index].requestAttributeId != null){\r\n return getParentAttr(AttrArray, array[index].requestAttributeId);\r\n }else{\r\n return false;\r\n }\r\n }\r\n }\r\n let inDubCheck = [];\r\n [].forEach.call(ValueArray, (e) =>{\r\n if(e.requestAttributeId != null){\r\n let result = getParentAttr(AttrArray, e.requestAttributeId);\r\n inDubCheck.push(result);\r\n }else{\r\n inDubCheck.push(false);\r\n }\r\n });\r\n let newValueArray = [];\r\n let array = [[]];\r\n let indexD = -1;\r\n [].forEach.call(inDubCheck, (e, index) =>{\r\n if(e != false){\r\n if(!this.fieldIsInDublicateId.some(c => c === e)){\r\n this.fieldIsInDublicateId.push(e);\r\n indexD++;\r\n array.push([]);\r\n }\r\n array[indexD].push(ValueArray[index]);\r\n }else{\r\n newValueArray.push(ValueArray[index]);\r\n }\r\n });\r\n [].forEach.call(this.fieldIsInDublicateId, (e, index) =>{\r\n let prePosition = array[index].sort((a,b) => (a.position > b.position) ? 1 : ((b.position > a.position) ? -1 : 0));\r\n CopyCArray.push({id: e, value: prePosition});\r\n });\r\n this.fieldData = newValueArray.concat(CopyPArray);\r\n this.dublicateData = CopyCArray;\r\n }else{\r\n let ConditionArray = [];\r\n let AttrArray = [];\r\n let ConditionInDubArray = [];\r\n let ValueArray = [];\r\n [].forEach.call(data, (e) => {\r\n if(e.requestFormId.toString() == this.formAditionalSelect){\r\n let tableTitle = e.label.split(\"*L*\");\r\n let elements = tableTitle.filter(x => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map(x => x);\r\n if(elements.length == 0){\r\n tableTitle = tableTitle[0];\r\n }else{\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n e.tableTitle = tableTitle;\r\n\r\n AttrArray.push(e);\r\n if(e.type != \"column\" && e.type != \"court\" && e.type != \"order\"){\r\n ConditionArray.push(e);\r\n }\r\n if(e.type == \"copy\"){\r\n\r\n }else if(e.type != \"column\" && e.type != \"checkbox\" && e.type != \"radio\" && e.type != \"order\"){\r\n ValueArray.push(e);\r\n }\r\n }\r\n });\r\n [].forEach.call(ConditionArray, (e) =>{\r\n if(e.requestAttributeId != null){\r\n let result = getParentAttr(AttrArray, e.requestAttributeId);\r\n ConditionInDubArray.push(result);\r\n }else{\r\n ConditionInDubArray.push(false);\r\n }\r\n });\r\n this.conditionAditionalData = [];\r\n [].forEach.call(ConditionInDubArray, (e, index) =>{\r\n if(e == false){\r\n this.conditionAditionalData.push(ConditionArray[index]);\r\n }\r\n });\r\n function getParentAttr(array, id){\r\n let index = array.map(function(c){ return c.id }).indexOf(id);\r\n if(array[index].type == \"copy\"){\r\n return array[index].id;\r\n }else{\r\n if(array[index].requestAttributeId != null){\r\n return getParentAttr(AttrArray, array[index].requestAttributeId);\r\n }else{\r\n return false;\r\n }\r\n }\r\n }\r\n let inDubCheck = [];\r\n [].forEach.call(ValueArray, (e) =>{\r\n if(e.requestAttributeId != null){\r\n let result = getParentAttr(AttrArray, e.requestAttributeId);\r\n inDubCheck.push(result);\r\n }else{\r\n inDubCheck.push(false);\r\n }\r\n });\r\n let newValueArray = [];\r\n [].forEach.call(inDubCheck, (e, index) =>{\r\n if(e == false){\r\n newValueArray.push(ValueArray[index]);\r\n }\r\n });\r\n this.fieldAditionalData = newValueArray;\r\n }\r\n this.dbIsLoad = true;\r\n });\r\n break;\r\n case \"Lib\":\r\n this.http.get(this.admin.getUrl() + \"userDataTypeValue\").subscribe((data)=>{\r\n this.userDataTypeValue = [];\r\n [].forEach.call(data, (e) => {\r\n let tableTitle = e.value.split(\"*L*\");\r\n let elements = tableTitle.filter(x => x.split(\"*I*\")[0] == this.admin.getDefLocale()).map(x => x);\r\n if(elements.length == 0){\r\n tableTitle = tableTitle[0];\r\n }else{\r\n tableTitle = elements[0].split(\"*I*\")[1];\r\n }\r\n \r\n this.userDataTypeValue.push({Id: e.id, Title: tableTitle, Email: e.email, Parent: e.uerDataTypeId});\r\n });\r\n });\r\n break;\r\n }\r\n }\r\n\r\n clearAllVariables(){\r\n this.conditionSelect = \"\";\r\n this.conditionData = [];\r\n this.conditionValueSelect = \"\";\r\n this.conditionValueData = [];\r\n this.conditionTextSelect = \"\";\r\n this.conditionWordSelect = \"\";\r\n this.conditionPordSelect = \"\";\r\n\r\n this.conditionMore = [];\r\n this.conditionOn = [];\r\n this.conditionValueSelectM = \"\";\r\n this.conditionValueSelectMV = \"\";\r\n this.conditionValueSelectMO = \"\";\r\n this.conditionValueSelectMD = \"\";\r\n this.conditionValueSelectMT = \"\";\r\n \r\n this.fieldSelect = \"\";\r\n this.fieldData = [];\r\n this.fieldTextSelect = \"\";\r\n this.fieldListSelect = [];\r\n this.fieldListData = [];\r\n \r\n this.dublicateSelect = [];\r\n \r\n this.dublicateData = [];\r\n this.conditionDublicateSelect = \"\";\r\n this.conditionDublicateData = [];\r\n this.conditionDublicateValueSelect = \"\";\r\n this.conditionDublicateValueData = [];\r\n this.dublicateTextData = [];\r\n this.conditionDublicateTextSelect = \"\";\r\n \r\n this.conditionIsInDublicateId = [];\r\n this.conditionIsInDublicateData = [];\r\n\r\n this.conditionDublicateSpaceSelect = \"\";\r\n this.conditionDublicateSpaceData = [];\r\n\r\n this.fieldIsInDublicateId = [];\r\n \r\n this.formAditionalSelect = \"\";\r\n this.fieldAditionalData = [];\r\n this.conditionAditionalSelect = \"\";\r\n this.conditionAditionalData = [];\r\n this.conditionValueAditionalSelect = \"\";\r\n this.conditionValueAditionalData = [];\r\n \r\n this.isFieldList = false;\r\n this.isMultipleField = false;\r\n this.isDublicateSelect = false;\r\n this.isDublicateList = false;\r\n this.isConditionList = false;\r\n this.isAdditionalCondition = false;\r\n this.isConditionAditionalList = false;\r\n this.isCVSMore = false;\r\n this.isOwnDate = false;\r\n this.isDate = false;\r\n }\r\n\r\n onChange(type, event, indeX){\r\n let index = -1;\r\n switch(type){\r\n case \"Form\":\r\n this.formSelect = event.value;\r\n this.clearAllVariables();\r\n if(event.value !== 0){\r\n this.dbRequest(\"Attr\", false);\r\n }\r\n break;\r\n case \"CS\":\r\n if(event.value === 0){\r\n this.isConditionList = false;\r\n this.isAdditionalCondition = true;\r\n }else{\r\n this.isAdditionalCondition = false;\r\n if(event.value == \"\"){\r\n this.isConditionList = false;\r\n this.conditionValueSelect = \"\";\r\n this.conditionValueData = [];\r\n }else{\r\n this.conditionValueData = [];\r\n index = this.conditionData.map(function(e){ return e.id }).indexOf(parseInt(event.value));\r\n this.isConditionList = true;\r\n if(this.conditionData[index].type == \"radio\" || this.conditionData[index].type == \"select\"){\r\n this.conditionValueData = this.dataPacker(this.conditionData[index].selectors);\r\n }else if(this.conditionData[index].type == \"checkbox\"){\r\n this.conditionValueData = [\r\n {id: \"option_0\", label: \"Поле відмічене\"},\r\n {id: \"option_1\", label: \"Поле не відмічене\"},\r\n ];\r\n }else if(this.conditionData[index].type == \"input\"){\r\n let check = 0;\r\n if(this.conditionData[index].mask != \"\" && this.conditionData[index].mask != null){\r\n let mask = this.conditionData[index].mask.split(\"_\");\r\n if(mask[0] == \"number\"){\r\n check = 1;\r\n }\r\n }\r\n if(check == 1){\r\n this.conditionValueData = [\r\n {id: \"option_0\", label: \"Числове поле заповнене\"},\r\n {id: \"option_1\", label: \"Числове поле порожнє\"},\r\n {id: \"option_2\", label: \"Число більше\"},\r\n {id: \"option_3\", label: \"Число меньше\"},\r\n {id: \"option_4\", label: \"Число дорівнює\"},\r\n {id: \"option_5\", label: \"Число не дорівнює\"},\r\n ];\r\n }else{\r\n this.conditionValueData = [\r\n {id: \"option_0\", label: \"Текстове поле заповнене\"},\r\n {id: \"option_1\", label: \"Текстове поле порожнє\"},\r\n ];\r\n }\r\n }else if(this.conditionData[index].type == \"file\"){\r\n this.conditionValueData = [\r\n {id: \"option_0\", label: \"Файл вибрано\"},\r\n {id: \"option_1\", label: \"Файл відсутній\"},\r\n ];\r\n }else if(this.conditionData[index].type == \"date\"){\r\n this.conditionValueData = [\r\n {id: \"option_0\", label: \"Дата вказана\"},\r\n {id: \"option_1\", label: \"Дата не вказана\"},\r\n {id: \"option_2\", label: \"Дата більше\"},\r\n {id: \"option_3\", label: \"Дата меньше\"},\r\n {id: \"option_4\", label: \"Дата дорівнює\"},\r\n {id: \"option_5\", label: \"Дата не дорівнює\"},\r\n ];\r\n }else if(this.conditionData[index].type == \"editor\"){\r\n this.conditionValueData = [\r\n {id: \"option_0\", label: \"Редактор заповненний\"},\r\n {id: \"option_1\", label: \"Редактор порожній\"},\r\n ];\r\n }else if(this.conditionData[index].type == \"copy\"){\r\n this.conditionValueData = [\r\n {id: \"option_2\", label: \"К-сть дублікатів більше\"},\r\n {id: \"option_3\", label: \"К-сть дублікатів меньше\"},\r\n {id: \"option_4\", label: \"К-сть дублікатів дорівнює\"},\r\n {id: \"option_5\", label: \"К-сть дублікатів не дорівнює\"},\r\n ];\r\n }else{\r\n this.isConditionList = false;\r\n }\r\n }\r\n }\r\n this.conditionValueSelect = \"\";\r\n this.conditionValueSelectM = \"\";\r\n this.conditionValueSelectMO = \"\";\r\n this.conditionValueSelectMV = \"\";\r\n this.isCVSMore = false;\r\n this.conditionSelect = event.value;\r\n break;\r\n case \"CVS\":\r\n index = this.conditionData.map(function(e){ return e.id }).indexOf(this.conditionSelect);\r\n if(isNaN(event.value)){\r\n if(parseInt(event.value.split(\"_\")[1]) > 1){\r\n let list = [];\r\n [].forEach.call(this.conditionData, (e) =>{\r\n if(this.conditionData[index].type == \"input\" || this.conditionData[index].type == \"copy\"){\r\n if(e.type == \"input\"){\r\n if(e.mask != \"\" && e.mask != null){\r\n let mask = e.mask.split(\"_\");\r\n if(mask[0] == \"number\"){\r\n list.push(e);\r\n }\r\n }\r\n }\r\n }else if(this.conditionData[index].type == \"date\"){\r\n if(e.type == \"date\"){\r\n list.push(e);\r\n }\r\n }\r\n });\r\n this.conditionMore = [];\r\n if(this.conditionData[index].type == \"input\" || this.conditionData[index].type == \"copy\"){\r\n this.conditionMore.push(\r\n {name: \"0\", value: \"*Ввести власні дані*\"},\r\n );\r\n \r\n }else if(this.conditionData[index].type == \"date\"){\r\n this.conditionMore.push(\r\n {name: \"0\", value: \"*Поточна дата*\"},\r\n {name: \"1\", value: \"*Власна дата*\"},\r\n );\r\n }\r\n [].forEach.call(list, (e) =>{\r\n this.conditionMore.push(\r\n {name: e.id, value: e.tableTitle}\r\n );\r\n });\r\n \r\n let indexF = this.conditionMore.map(function(e){ return e.name; }).indexOf(this.conditionData[index].id);\r\n if(indexF != -1){\r\n this.conditionMore.splice(indexF, 1);\r\n }\r\n \r\n this.isCVSMore = true;\r\n if(parseInt(event.value.split(\"_\")[1]) > 3){\r\n this.conditionValueSelectMV = \"\";\r\n this.conditionValueSelectMO = \"\";\r\n this.conditionValueSelectMD = \"\";\r\n this.conditionValueSelectMT = \"\";\r\n }\r\n }else{\r\n this.isCVSMore = false;\r\n this.conditionValueSelectM = \"\";\r\n this.conditionValueSelectMV = \"\";\r\n this.conditionValueSelectMO = \"\";\r\n this.conditionValueSelectMD = \"\";\r\n this.conditionValueSelectMT = \"\";\r\n }\r\n }else{\r\n this.isCVSMore = false;\r\n this.conditionValueSelectM = \"\";\r\n this.conditionValueSelectMV = \"\";\r\n this.conditionValueSelectMO = \"\";\r\n this.conditionValueSelectMD = \"\";\r\n this.conditionValueSelectMT = \"\";\r\n }\r\n this.conditionValueSelect = event.value;\r\n break;\r\n case \"CVSM\":\r\n this.conditionValueSelectM = event.value;\r\n this.conditionValueSelectMO = \"\";\r\n this.conditionValueSelectMV = \"\";\r\n let ndCond = [];\r\n let ndSele;\r\n if(this.conditionSelect == 0){\r\n ndSele = this.conditionValueAditionalSelect;\r\n index = this.conditionData.map(function(e){ return e.id }).indexOf(this.conditionAditionalSelect);\r\n if(index == -1){\r\n index = this.conditionAditionalData.map(function(e){ return e.id }).indexOf(this.conditionAditionalSelect);\r\n ndCond = this.conditionAditionalData;\r\n }else{\r\n ndCond = this.conditionData;\r\n }\r\n }else{\r\n ndCond = this.conditionData;\r\n ndSele = this.conditionValueSelect;\r\n index = this.conditionData.map(function(e){ return e.id }).indexOf(this.conditionSelect);\r\n }\r\n if(event.value == \"1\"){\r\n this.isOwnDate = true;\r\n this.conditionValueSelectMD = \"\";\r\n this.conditionValueSelectMT = \"\";\r\n }else{\r\n this.isOwnDate = false;\r\n }\r\n this.conditionOn = [];\r\n if(ndCond[index].type == \"input\"){\r\n this.isDate = false;\r\n let check = 0;\r\n if(ndCond[index].mask != \"\" && ndCond[index].mask != null){\r\n let mask = ndCond[index].mask.split(\"_\");\r\n if(mask[0] == \"number\"){\r\n check = 1;\r\n }\r\n }\r\n if(check == 1 && event.value != \"0\"){\r\n if(ndSele.split(\"_\")[1] == \"2\" || ndSele.split(\"_\")[1] == \"3\" || ndSele.split(\"_\")[1] == \"4\" || ndSele.split(\"_\")[1] == \"5\"){\r\n if(event.value == \"0\"){\r\n this.conditionOn.push(\r\n {name: \"2\", value: \"ніж\"},\r\n )\r\n }else{\r\n this.conditionOn.push(\r\n {name: \"0\", value: \"ніж\"},\r\n {name: \"1\", value: \"на\"},\r\n )\r\n }\r\n }\r\n }else if(check == 1 && event.value == \"0\"){\r\n this.conditionOn.push(\r\n {name: \"2\", value: \"ніж\"},\r\n )\r\n }\r\n }else if(ndCond[index].type == \"copy\"){\r\n this.isDate = false;\r\n if(event.value == \"0\"){\r\n this.conditionOn.push(\r\n {name: \"2\", value: \"ніж\"},\r\n )\r\n }else{\r\n this.conditionOn.push(\r\n {name: \"0\", value: \"ніж\"},\r\n {name: \"1\", value: \"на\"},\r\n )\r\n }\r\n }else{\r\n this.isDate = true;\r\n this.conditionOn.push(\r\n {name: \"0\", value: \"ніж (строго більше чи меньше)\"},\r\n {name: \"1\", value: \"на (днів)\"},\r\n {name: \"2\", value: \"на (місяців)\"},\r\n {name: \"3\", value: \"на (років)\"},\r\n )\r\n if(ndCond[index].mask == \"time\"){\r\n this.conditionOn.push(\r\n {name: \"4\", value: \"на (годин)\"},\r\n );\r\n }\r\n }\r\n break;\r\n case \"CVSMO\":\r\n this.conditionValueSelectMO = event.value;\r\n break;\r\n case \"CVSMV\":\r\n this.conditionValueSelectMV = event.target.value;\r\n break;\r\n case \"CVSOD\":\r\n this.conditionValueSelectMD = event.value;\r\n if(this.conditionValueSelectMT == \"\"){\r\n setTimeout(() => {\r\n this.conditionValueSelectMT = \"00:00\";\r\n }, 0);\r\n this.conditionValueSelectMD = new Date(this.conditionValueSelectMD);\r\n }else{\r\n let nd = new Date(this.conditionValueSelectMD);\r\n nd.setHours(parseInt(this.conditionValueSelectMT.split(\":\")[0]));\r\n nd.setMinutes(parseInt(this.conditionValueSelectMT.split(\":\")[1]));\r\n this.conditionValueSelectMD = nd;\r\n }\r\n break;\r\n case \"CVSOT\":\r\n this.conditionValueSelectMT == \"\";\r\n setTimeout(() => {\r\n this.conditionValueSelectMT = event;\r\n }, 0);\r\n let nd = new Date(this.conditionValueSelectMD);\r\n nd.setHours(parseInt(event.split(\":\")[0]));\r\n nd.setMinutes(parseInt(event.split(\":\")[1]));\r\n this.conditionValueSelectMD = nd;\r\n break;\r\n case \"CTS\":\r\n this.conditionTextSelect = event;\r\n break;\r\n case \"CWS\":\r\n this.conditionWordSelect = event;\r\n break;\r\n case \"CPS\":\r\n this.conditionPordSelect = event;\r\n break;\r\n case \"FS\":\r\n if(event.value === \"\"){\r\n this.isFieldList = false;\r\n this.fieldListSelect = [];\r\n this.fieldListData = [];\r\n this.conditionDublicateSpaceSelect = \"\";\r\n this.conditionDublicateSpaceData = [];\r\n this.fieldSelect = event.value;\r\n }else if(event.value === \"0\" || event.value === 0){\r\n this.isFieldList = false;\r\n this.fieldSelect = \"0\";\r\n this.isMultipleField = true;\r\n [].forEach.call(this.fieldData, (e) =>{\r\n if(e.type != \"copy\" && e.type != \"court\"){\r\n this.fieldListData.push(e);\r\n }\r\n });\r\n }else{\r\n index = this.fieldData.map(function(e){ return e.id }).indexOf(parseInt(event.value));\r\n if(this.fieldData[index].type == \"court\"){\r\n this.isFieldList = true;\r\n this.fieldListData = [\r\n {id: 1, label: \"Рівень суду №1\"},\r\n {id: 2, label: \"Рівень суду №2\"},\r\n {id: 3, label: \"Рівень суду №3\"},\r\n ];\r\n }else if(this.fieldData[index].type == \"copy\"){\r\n this.conditionDublicateSpaceData.push(\r\n {id: 1, label: \"Розмежування комою\"},\r\n {id: 2, label: \"Переміщення на новий рядок\"},\r\n );\r\n }else{\r\n this.isFieldList = false;\r\n }\r\n this.fieldSelect = event.value;\r\n }\r\n index = this.conditionIsInDublicateId.map(function(e){ return e }).indexOf(parseInt(event.value));\r\n if(index == -1){\r\n this.isDublicateSelect = false;\r\n }else{\r\n this.isDublicateSelect = true;\r\n }\r\n [].forEach.call(this.conditionIsInDublicateId, (e, index) =>{\r\n if(e == event.value){\r\n this.conditionDublicateData.push(this.conditionIsInDublicateData[index]);\r\n }\r\n });\r\n break;\r\n case \"FLS\":\r\n this.fieldListSelect = event.value;\r\n break;\r\n case \"FTS\":\r\n this.fieldTextSelect = event;\r\n break;\r\n case \"DS\":\r\n this.dublicateSelect = event.value;\r\n this.dublicateTextData.length = this.dublicateSelect.length;\r\n break;\r\n case \"DTS\":\r\n this.dublicateTextData[indeX] = event;\r\n break;\r\n case \"DTP\":\r\n this.conditionDublicateSpaceSelect = event.value;\r\n break;\r\n case \"CDS\":\r\n index = this.conditionDublicateData.map(function(e){ return e.id }).indexOf(parseInt(event.value));\r\n this.isDublicateList = true;\r\n if(index == -1){\r\n this.isDublicateList = false;\r\n }else{\r\n if(this.conditionDublicateData[index].type == \"radio\" || this.conditionDublicateData[index].type == \"select\"){\r\n this.conditionDublicateValueData = this.dataPacker(this.conditionDublicateData[index].selectors);\r\n }else if(this.conditionData[index].type == \"checkbox\"){\r\n this.conditionValueData = [\r\n {id: \"option_0\", label: \"Поле відмічене\"},\r\n {id: \"option_1\", label: \"Поле не відмічене\"},\r\n ];\r\n }else if(this.conditionDublicateData[index].type == \"input\"){\r\n let check = 0;\r\n if(this.conditionDublicateData[index].mask != \"\" && this.conditionDublicateData[index].mask != null){\r\n let mask = this.conditionDublicateData[index].mask.split(\"_\");\r\n if(mask[0] == \"number\"){\r\n check = 1;\r\n }\r\n }\r\n if(check == 1){\r\n this.conditionDublicateValueData = [\r\n {id: \"option_0\", label: \"Числове поле заповнене\"},\r\n {id: \"option_1\", label: \"Числове поле порожнє\"},\r\n {id: \"option_2\", label: \"Число більше\"},\r\n {id: \"option_3\", label: \"Число меньше\"},\r\n {id: \"option_4\", label: \"Число дорівнює\"},\r\n {id: \"option_5\", label: \"Число не дорівнює\"},\r\n ];\r\n }else{\r\n this.conditionDublicateValueData = [\r\n {id: \"option_0\", label: \"Текстове поле заповнене\"},\r\n {id: \"option_1\", label: \"Текстове поле порожнє\"},\r\n ];\r\n }\r\n }else if(this.conditionDublicateData[index].type == \"file\"){\r\n this.conditionDublicateValueData = [\r\n {id: \"option_0\", label: \"Файл вибрано\"},\r\n {id: \"option_1\", label: \"Файл відсутній\"},\r\n ];\r\n }else if(this.conditionDublicateData[index].type == \"date\"){\r\n this.conditionDublicateValueData = [\r\n {id: \"option_0\", label: \"Дата вказана\"},\r\n {id: \"option_1\", label: \"Дата не вказана\"},\r\n {id: \"option_2\", label: \"Дата більше\"},\r\n {id: \"option_3\", label: \"Дата меньше\"},\r\n {id: \"option_4\", label: \"Дата дорівнює\"},\r\n {id: \"option_5\", label: \"Дата не дорівнює\"},\r\n ];\r\n }else if(this.conditionDublicateData[index].type == \"editor\"){\r\n this.conditionDublicateValueData = [\r\n {id: \"option_0\", label: \"Редактор заповненний\"},\r\n {id: \"option_1\", label: \"Редактор порожній\"},\r\n ];\r\n }else if(this.conditionDublicateData[index].type == \"copy\"){\r\n this.conditionDublicateValueData = [\r\n {id: \"option_2\", label: \"К-сть дублікатів більше\"},\r\n {id: \"option_3\", label: \"К-сть дублікатів меньше\"},\r\n {id: \"option_4\", label: \"К-сть дублікатів дорівнює\"},\r\n {id: \"option_5\", label: \"К-сть дублікатів не дорівнює\"},\r\n ];\r\n }else{\r\n this.isConditionList = false;\r\n }\r\n }\r\n this.conditionDublicateSelect = event.value;\r\n break;\r\n case \"CDVS\":\r\n this.conditionDublicateValueSelect = event.value;\r\n break;\r\n case \"CDTS\":\r\n this.conditionDublicateTextSelect = event;\r\n break;\r\n case \"AF\":\r\n this.formAditionalSelect = event.value;\r\n this.dbRequest(\"Attr\", true);\r\n break;\r\n case \"CAS\":\r\n this.isConditionAditionalList = false;\r\n if(event.value == \"\"){\r\n this.isConditionAditionalList = false;\r\n this.conditionAditionalSelect = \"\";\r\n this.conditionValueAditionalData = [];\r\n }else{\r\n index = this.conditionAditionalData.map(function(e){ return e.id }).indexOf(parseInt(event.value));\r\n this.isConditionAditionalList = true;\r\n if(this.conditionAditionalData[index].type == \"radio\" || this.conditionAditionalData[index].type == \"select\"){\r\n this.conditionValueAditionalData = this.dataPacker(this.conditionAditionalData[index].selectors);\r\n }else if(this.conditionAditionalData[index].type == \"checkbox\"){\r\n this.conditionValueAditionalData = [\r\n {id: \"option_0\", label: \"Поле відмічене\"},\r\n {id: \"option_1\", label: \"Поле не відмічене\"},\r\n ];\r\n }else if(this.conditionAditionalData[index].type == \"input\"){\r\n let check = 0;\r\n if(this.conditionAditionalData[index].mask != \"\" && this.conditionAditionalData[index].mask != null){\r\n let mask = this.conditionAditionalData[index].mask.split(\"_\");\r\n if(mask[0] == \"number\"){\r\n check = 1;\r\n }\r\n }\r\n if(check == 1){\r\n this.conditionValueAditionalData = [\r\n {id: \"option_0\", label: \"Числове поле заповнене\"},\r\n {id: \"option_1\", label: \"Числове поле порожнє\"},\r\n {id: \"option_2\", label: \"Число більше\"},\r\n {id: \"option_3\", label: \"Число меньше\"},\r\n {id: \"option_4\", label: \"Число дорівнює\"},\r\n {id: \"option_5\", label: \"Число не дорівнює\"},\r\n ];\r\n }else{\r\n this.conditionValueAditionalData = [\r\n {id: \"option_0\", label: \"Текстове поле заповнене\"},\r\n {id: \"option_1\", label: \"Текстове поле порожнє\"},\r\n ];\r\n }\r\n }else if(this.conditionAditionalData[index].type == \"file\"){\r\n this.conditionValueAditionalData = [\r\n {id: \"option_0\", label: \"Файл вибрано\"},\r\n {id: \"option_1\", label: \"Файл відсутній\"},\r\n ];\r\n }else if(this.conditionAditionalData[index].type == \"date\"){\r\n this.conditionValueAditionalData = [\r\n {id: \"option_0\", label: \"Дата вказана\"},\r\n {id: \"option_1\", label: \"Дата не вказана\"},\r\n {id: \"option_2\", label: \"Дата більше\"},\r\n {id: \"option_3\", label: \"Дата меньше\"},\r\n {id: \"option_4\", label: \"Дата дорівнює\"},\r\n {id: \"option_5\", label: \"Дата не дорівнює\"},\r\n ];\r\n }else if(this.conditionAditionalData[index].type == \"editor\"){\r\n this.conditionValueAditionalData = [\r\n {id: \"option_1\", label: \"Редактор заповненний\"},\r\n {id: \"option_0\", label: \"Редактор порожній\"},\r\n ];\r\n }else if(this.conditionAditionalData[index].type == \"copy\"){\r\n this.conditionValueAditionalData = [\r\n {id: \"option_2\", label: \"К-сть дублікатів більше\"},\r\n {id: \"option_3\", label: \"К-сть дублікатів меньше\"},\r\n {id: \"option_4\", label: \"К-сть дублікатів дорівнює\"},\r\n {id: \"option_5\", label: \"К-сть дублікатів не дорівнює\"},\r\n ];\r\n }else{\r\n this.isConditionAditionalList = false;\r\n }\r\n }\r\n this.conditionValueAditionalSelect = \"\";\r\n this.isOwnDate = false;\r\n this.conditionValueSelectM = \"\";\r\n this.conditionValueSelectMV = \"\";\r\n this.conditionValueSelectMO = \"\";\r\n this.conditionValueSelectMD = \"\";\r\n this.conditionValueSelectMT = \"\";\r\n this.isCVSMore = false;\r\n this.conditionAditionalSelect = event.value;\r\n break;\r\n case \"CVAS\":\r\n index = this.conditionAditionalData.map(function(e){ return e.id }).indexOf(this.conditionAditionalSelect);\r\n if(isNaN(event.value)){\r\n if(parseInt(event.value.split(\"_\")[1]) > 1){\r\n let list = [];\r\n [].forEach.call(this.conditionAditionalData, (e) =>{\r\n if(this.conditionAditionalData[index].type == \"input\" || this.conditionAditionalData[index].type == \"copy\"){\r\n if(e.type == \"input\"){\r\n if(e.mask != \"\" && e.mask != null){\r\n let mask = e.mask.split(\"_\");\r\n if(mask[0] == \"number\"){\r\n list.push(e);\r\n }\r\n }\r\n }\r\n }else if(this.conditionAditionalData[index].type == \"date\"){\r\n if(e.type == \"date\"){\r\n list.push(e);\r\n }\r\n }\r\n });\r\n\r\n [].forEach.call(this.conditionData, (e) =>{\r\n if(this.conditionAditionalData[index].type == \"input\" || this.conditionAditionalData[index].type == \"copy\"){\r\n if(e.type == \"input\"){\r\n if(e.mask != \"\" && e.mask != null){\r\n let mask = e.mask.split(\"_\");\r\n if(mask[0] == \"number\"){\r\n list.push(e);\r\n }\r\n }\r\n }\r\n }else if(this.conditionAditionalData[index].type == \"date\"){\r\n if(e.type == \"date\"){\r\n list.push(e);\r\n }\r\n }\r\n });\r\n\r\n this.conditionMore = [];\r\n if(this.conditionAditionalData[index].type == \"input\" || this.conditionAditionalData[index].type == \"copy\"){\r\n this.conditionMore.push(\r\n {name: \"0\", value: \"*Ввести власні дані*\"},\r\n );\r\n\r\n }else if(this.conditionAditionalData[index].type == \"date\"){\r\n this.conditionMore.push(\r\n {name: \"0\", value: \"*Поточна дата*\"},\r\n {name: \"1\", value: \"*Власна дата*\"},\r\n );\r\n }\r\n [].forEach.call(list, (e) =>{\r\n this.conditionMore.push(\r\n {name: e.id, value: e.tableTitle}\r\n );\r\n });\r\n\r\n let indexF = this.conditionMore.map(function(e){ return e.name; }).indexOf(this.conditionAditionalData[index].id);\r\n if(indexF != -1){\r\n this.conditionMore.splice(indexF, 1);\r\n }\r\n \r\n this.isCVSMore = true;\r\n if(parseInt(event.value.split(\"_\")[1]) > 3){\r\n this.conditionValueSelectMV = \"\";\r\n this.conditionValueSelectMO = \"\";\r\n this.conditionValueSelectMD = \"\";\r\n this.conditionValueSelectMT = \"\";\r\n }\r\n }else{\r\n this.isCVSMore = false;\r\n this.conditionValueSelectM = \"\";\r\n this.conditionValueSelectMV = \"\";\r\n this.conditionValueSelectMO = \"\";\r\n this.conditionValueSelectMD = \"\";\r\n this.conditionValueSelectMT = \"\";\r\n }\r\n }else{\r\n this.isCVSMore = false;\r\n this.conditionValueSelectM = \"\";\r\n this.conditionValueSelectMV = \"\";\r\n this.conditionValueSelectMO = \"\";\r\n this.conditionValueSelectMD = \"\";\r\n this.conditionValueSelectMT = \"\";\r\n }\r\n this.conditionValueAditionalSelect = event.value;\r\n break;\r\n }\r\n }\r\n\r\n dataPacker(value){\r\n let selectors = [];\r\n if(value != null){\r\n if(value.split(\"*T*\")[1].split(\"*L*\")[0] == \"lib\"){\r\n let list = [];\r\n let valList = value.split(\"*L*\")[1];\r\n [].forEach.call(this.userDataTypeValue, (e) => {\r\n if(e.Parent == parseInt(valList)){\r\n list.push(e);\r\n }\r\n });\r\n selectors = [];\r\n [].forEach.call(list, (e, index) => {\r\n selectors.push({id: \"option_\" + index, label: e.Title});\r\n });\r\n }else{\r\n if(value.split(\"*L*\")[1].length != 0){\r\n let list = value.split(\"*L*\")[1].split(\"*I*\");\r\n [].forEach.call(list, (e, index) => {\r\n let text = e.split(\"|\");\r\n let array = {\r\n id: text[0],\r\n label: text[1],\r\n };\r\n list[index] = array;\r\n });\r\n selectors = list;\r\n }\r\n }\r\n return selectors;\r\n }else{\r\n return value;\r\n }\r\n }\r\n\r\n addMenu(){\r\n let type: number = 0;\r\n let dataEnd: string = \"\";\r\n if((this.conditionSelect === 0 || this.conditionSelect > 0) && this.isDublicateSelect && this.conditionDublicateSelect != \"\"){\r\n type = 5;\r\n dataEnd = \"{\"\r\n + this.conditionTextSelect +\r\n \"}#*\"\r\n + this.conditionWordSelect +\r\n \"{\"\r\n + this.conditionDublicateTextSelect +\r\n \"}[\"\r\n + this.dublicateTextData.join(\"xx\") +\r\n \"]\"\r\n + this.conditionPordSelect +\r\n \"*#\";\r\n }else if(this.isDublicateSelect && this.conditionDublicateSelect != \"\"){\r\n type = 4;\r\n dataEnd = \"{\"\r\n + this.conditionDublicateTextSelect +\r\n \"}[\"\r\n + this.dublicateTextData.join(\"xx\") +\r\n \"]\";\r\n }else if((this.conditionSelect === 0 || this.conditionSelect > 0) && this.isDublicateSelect){\r\n type = 3;\r\n dataEnd = \"{\"\r\n + this.conditionTextSelect +\r\n \"}#*\"\r\n + this.conditionWordSelect +\r\n \"[\"\r\n + this.dublicateTextData.join(\"xx\") +\r\n \"]\"\r\n + this.conditionPordSelect +\r\n \"*#\";\r\n }else if(this.conditionSelect === 0 || this.conditionSelect > 0){\r\n type = 2;\r\n dataEnd = \"{\"\r\n + this.conditionTextSelect +\r\n \"}#*\"\r\n + this.conditionWordSelect +\r\n \"[\"\r\n + this.fieldTextSelect +\r\n \"]\"\r\n + this.conditionPordSelect +\r\n \"*#\";\r\n }else if(this.isDublicateSelect){\r\n type = 1;\r\n dataEnd = \"[\"\r\n + this.dublicateTextData.join(\"xx\") +\r\n \"]\";\r\n }else if(this.formSelect == 0){\r\n type = 6;\r\n dataEnd = \"[Дата подачі заяви]\";\r\n }else{\r\n dataEnd = \"[\"\r\n + this.fieldTextSelect +\r\n \"]\";\r\n }\r\n let cvs = \"\";\r\n if(typeof this.conditionValueSelect != \"string\"){\r\n cvs = this.conditionValueSelect.toString();\r\n this.conditionValueSelect = `option_${this.conditionValueSelect}`;\r\n }else{\r\n cvs = this.conditionValueSelect.split(\"_\")[1];\r\n }\r\n if(this.conditionValueSelect != undefined && this.conditionValueSelect != \"\"){\r\n if(this.conditionValueSelectM != \"\"){\r\n cvs += \"xx\" + this.conditionValueSelectM;\r\n if(this.conditionValueSelectMO != \"\"){\r\n cvs += \"xx\" + this.conditionValueSelectMO;\r\n }\r\n if(this.conditionValueSelectMV != \"\"){\r\n if(this.conditionValueSelectMO == \"\"){\r\n cvs += \"xx\";\r\n }\r\n cvs += \"xx\" + this.conditionValueSelectMV;\r\n }\r\n if(this.conditionValueSelectMD != \"\"){\r\n if(this.conditionValueSelectMO == \"\"){\r\n cvs += \"xx\";\r\n }\r\n if(this.conditionValueSelectMV == \"\"){\r\n cvs += \"xx\";\r\n }\r\n cvs += \"xx\" + this.conditionValueSelectMD.getTime();\r\n }\r\n }\r\n }\r\n if(cvs == undefined){\r\n cvs = \"\";\r\n }\r\n let cdvs = this.conditionDublicateValueSelect.split(\"_\")[1];\r\n if(cdvs == undefined){\r\n cdvs = \"\";\r\n }\r\n let cvas = this.conditionValueAditionalSelect.split(\"_\")[1];\r\n if(this.conditionValueAditionalSelect != undefined && this.conditionValueAditionalSelect != \"\"){\r\n if(this.conditionValueSelectM != \"\"){\r\n cvas += \"xx\" + this.conditionValueSelectM;\r\n if(this.conditionValueSelectMO != \"\"){\r\n cvas += \"xx\" + this.conditionValueSelectMO;\r\n }\r\n if(this.conditionValueSelectMV != \"\"){\r\n if(this.conditionValueSelectMO == \"\"){\r\n cvas += \"xx\";\r\n }\r\n cvas += \"xx\" + this.conditionValueSelectMV;\r\n }\r\n if(this.conditionValueSelectMD != \"\"){\r\n if(this.conditionValueSelectMO == \"\"){\r\n cvas += \"xx\";\r\n }\r\n if(this.conditionValueSelectMV == \"\"){\r\n cvas += \"xx\";\r\n }\r\n cvas += \"xx\" + this.conditionValueSelectMD.getTime();\r\n }\r\n }\r\n }\r\n if(cvas == undefined){\r\n cvas = \"\";\r\n }\r\n if(this.universalIdentificator == 0){\r\n universalIdentificatorCount++;\r\n this.universalIdentificator = universalIdentificatorCount;\r\n }\r\n let dataStart: string = \r\n \"UI\"\r\n + this.universalIdentificator +\r\n \"T\"\r\n + this.typeSelect +\r\n \"F\"\r\n + this.formSelect +\r\n \"CS\"\r\n + this.conditionSelect +\r\n \"CVS\"\r\n + cvs +\r\n \"FS\"\r\n + this.fieldSelect +\r\n \"FLS\"\r\n + this.fieldListSelect.join(\"xx\") +\r\n \"DE\"\r\n + this.dublicateSelect.join(\"xx\") + \"qq\" + this.conditionDublicateSpaceSelect +\r\n \"CDS\"\r\n + this.conditionDublicateSelect +\r\n \"CDVS\"\r\n + cdvs +\r\n \"AF\"\r\n + this.formAditionalSelect +\r\n \"CAS\"\r\n + this.conditionAditionalSelect +\r\n \"CVAS\"\r\n + cvas +\r\n \"TL\"\r\n + type +\r\n \"\";\r\n let data: string[] = [];\r\n data.push(dataStart);\r\n data.push(dataEnd);\r\n\r\n this.onClose(data);\r\n }\r\n\r\n removeMenu(){\r\n this.onClose(\"remove\");\r\n }\r\n\r\n onClose(data): void {\r\n this.dialogRef.close(data);\r\n }\r\n\r\n}","
\r\n

Управління Шаблонами

\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
У вас недостатньо прав для редагування чи видалення вибраних шиблонів!
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Внутрішня назва {{row.TableTitle}} Дата створення {{row.CreateDate}} Автор {{row.Author}}
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n

Будь-ласка зачекайте!
Триває завантаження

\r\n
\r\n
\r\n","
\r\n

{{ data.name }}

\r\n

{{ data.data.TableTitle }}

\r\n \r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n
Найменування (title): *
\r\n \r\n \r\n \r\n Обов'язково до заповнення!\r\n \r\n \r\n
\r\n
\r\n
Тип Заяви:
\r\n \r\n \r\n {{ type.TableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Текст:
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n Візуальне відображення\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{ list.Text }}\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n

Будь-ласка зачекайте!
Триває збереження

\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n

Будь-ласка зачекайте!
Триває завантаження

\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
","
\r\n

{{ data.name }}

\r\n \r\n
\r\n\r\n
\r\n
\r\n
Виберіть форму шаблону:
\r\n \r\n \r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Неможливо додати новий елемент, не вибрано тип заяви!
\r\n
\r\n\r\n
\r\n
Вибір поля шаблону:
\r\n \r\n \r\n Немає поля\r\n *Вибір декількох полів*\r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Вибір полів суду:
\r\n \r\n \r\n {{ data.label }}\r\n \r\n \r\n
\r\n
\r\n
Вибір діапазону полів:
\r\n \r\n \r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Текст поля:
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
Вибір полів дубліката:
\r\n
\r\n \r\n \r\n Немає поля\r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
\r\n
Вибір розмежування:
\r\n \r\n \r\n Без розмежування\r\n {{ data.label }}\r\n \r\n \r\n
\r\n
\r\n
Текст поля дубліката №{{i}}:
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
Умова дубліката:
\r\n \r\n \r\n Немає умови\r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Вибір умови:
\r\n \r\n \r\n Немає умови\r\n {{ data.label }}\r\n \r\n \r\n
\r\n
\r\n
Текст умови:
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
Умова відображення:
\r\n \r\n \r\n Немає умови\r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Вибір умови:
\r\n \r\n \r\n Немає умови\r\n {{ data.label }}\r\n \r\n \r\n
\r\n\r\n
\r\n
Додаткова форма:
\r\n \r\n \r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Додаткова умова:
\r\n \r\n \r\n Немає умови\r\n {{ data.tableTitle }}\r\n \r\n \r\n
\r\n
\r\n
Додатковий вибір умови:
\r\n \r\n \r\n Немає умови\r\n {{ data.label }}\r\n \r\n \r\n
\r\n\r\n
\r\n
Вимога умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ more.value }}\r\n \r\n \r\n
\r\n
\r\n
Власна дата:
\r\n
\r\n \r\n Виберіть необхідну дату\r\n \r\n \r\n \r\n \r\n \r\n Виберіть необхідний час\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
Тип умови:
\r\n \r\n \r\n Вимкнуто\r\n {{ on.value }}\r\n \r\n \r\n
\r\n
\r\n
Значення умови:
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
Текст умови:
\r\n \r\n \r\n \r\n
\r\n
\r\n
Додатковий текст:
\r\n \r\n \r\n \r\n
\r\n
\r\n
Додатковий текст:
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n

Будь-ласка зачекайте!
Триває завантаження

\r\n
\r\n
\r\n","import {SelectionModel} from '@angular/cdk/collections';\r\nimport {Component, Inject, ViewChild} from '@angular/core';\r\nimport {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\r\nimport {MatPaginator} from '@angular/material/paginator';\r\nimport {MatSort} from '@angular/material/sort';\r\nimport {MatTableDataSource} from '@angular/material/table';\r\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\r\nimport {CookieService} from 'ngx-cookie-service';\r\nimport {Router} from '@angular/router';\r\nimport {FormControl, Validators, FormGroup, FormBuilder, FormGroupDirective, NgForm} from '@angular/forms';\r\nimport {ErrorStateMatcher} from '@angular/material/core';\r\nimport {ThemePalette} from '@angular/material/core';\r\nimport {ProgressSpinnerMode} from '@angular/material/progress-spinner';\r\n\r\nimport {AdminPage} from \"./admin\";\r\nimport {ConfirmMenu} from '../confirm-menu'\r\n\r\nexport interface UserDialog {\r\n name: string;\r\n status: string;\r\n data: ItemData;\r\n}\r\n\r\nexport interface PassDialog {\r\n name: string;\r\n type: string;\r\n data: ItemData;\r\n}\r\n\r\nexport interface ItemData {\r\n Id: number;\r\n Name: string;\r\n Role: number;\r\n Block: boolean;\r\n BlockName: string;\r\n}\r\n\r\nexport interface TableFilter{\r\n column: string;\r\n value: any;\r\n}\r\n\r\nconst USER_ROLES = [\r\n {Id: 1, Name: \"Адміністратор\", NormilizedName: \"Admin\", ConcurrencyStamp: 1},\r\n {Id: 2, Name: \"Менеджер\", NormilizedName: \"Manager\", ConcurrencyStamp: 2},\r\n];\r\n\r\nconst USER_BLOCK = [\r\n {Status: false, Name: \"Відкритий\"},\r\n {Status: true, Name: \"Заблокований\"},\r\n];\r\n\r\nvar isChange = false;\r\nvar options = {};\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// User Controll ++\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n \r\n@Component({\r\n selector: 'user-control',\r\n templateUrl: 'user-control.html',\r\n styleUrls: ['admin.css'],\r\n providers: [AdminPage]\r\n})\r\n\r\nexport class UserControlPage {\r\n\r\n userData: boolean = false;\r\n IsLoading: boolean = false;\r\n blockAllow: boolean = false;\r\n unblockAllow: boolean = false;\r\n \r\n barValue: number = 50;\r\n pageSizer: number = 5;\r\n pageIndexer: number = 0;\r\n filterAll: number = 0;\r\n\r\n roleList: any[] = USER_ROLES;\r\n blockList: any[] = USER_BLOCK;\r\n loginData: any[] = [];\r\n displayedColumns: string[] = [\"Select\", \"Name\", \"Role\", \"Block\"];\r\n \r\n filter: any = [];\r\n barColor: ThemePalette = 'primary';\r\n barMode: ProgressSpinnerMode = 'indeterminate';\r\n dataSource: MatTableDataSource;\r\n selection = new SelectionModel(true, []);\r\n\r\n @ViewChild(MatPaginator, {static: true}) paginator: MatPaginator;\r\n @ViewChild(MatSort, {static: true}) sort: MatSort;\r\n\r\n constructor(\r\n private router: Router,\r\n private cookieService: CookieService,\r\n private admin: AdminPage,\r\n private http: HttpClient,\r\n public dialog: MatDialog,\r\n ){\r\n this.IsLoading = true;\r\n\r\n if(this.cookieService.get(\"access_token\") == \"\"){\r\n this.router.navigate(['/admin/login']);\r\n }\r\n\r\n if(this.cookieService.get(\"page_size\").split(\"_\")[0] == \"u\"){\r\n this.pageSizer = parseInt(this.cookieService.get(\"page_size\").split(\"_\")[1]);\r\n this.pageIndexer = parseInt(this.cookieService.get(\"page_size\").split(\"_\")[2]);\r\n }else{\r\n this.cookieService.delete(\"page_size\", \"/\");\r\n }\r\n\r\n if(this.cookieService.get(\"page_filter\") != \"\"){\r\n this.cookieService.delete(\"page_filter\", \"/\");\r\n }\r\n\r\n options = {\"headers\": new HttpHeaders({\"Authorization\": \"Bearer \" + cookieService.get(\"access_token\")})};\r\n\r\n if(parseInt(this.cookieService.get(\"cookieAllowId\").split(\"T\")[1]) == 1){\r\n this.userData = true;\r\n }\r\n\r\n this.dbRequest();\r\n\r\n this.dataSource = new MatTableDataSource(this.loginData);\r\n this.dataSource.filterPredicate = this.createFilter;\r\n }\r\n\r\n dbRequest(){\r\n this.http.get(this.admin.getUrl() + \"Account/GetUsers\", options).subscribe((data)=>{\r\n this.loginData = [];\r\n [].forEach.call(data, (e, index) => {\r\n this.loginData.push({Id: e.id, Name: e.email});\r\n [].forEach.call(USER_ROLES, (el) => {\r\n if(e.roles[0] == el.NormilizedName){\r\n this.loginData[index].Role = el.Name;\r\n };\r\n });\r\n this.loginData[index].Block = e.isLocked;\r\n if(!this.loginData[index].Block){\r\n this.loginData[index].BlockName = \"Відкритий\";\r\n }else{\r\n this.loginData[index].BlockName = \"Заблокований\";\r\n }\r\n });\r\n this.dataSource = new MatTableDataSource(this.loginData);\r\n this.paginator.pageSize = this.pageSizer;\r\n this.paginator.pageIndex = this.pageIndexer;\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.filterPredicate = this.createFilter;\r\n\r\n this.IsLoading = false;\r\n });\r\n }\r\n\r\n pageSize(){\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(\":\")[0];\r\n let secure = false;\r\n if(location.protocol == \"https:\"){\r\n secure = true;\r\n }\r\n this.cookieService.set(\"page_size\", \"u_\" + this.dataSource.paginator.pageSize.toString() + \"_\" + this.dataSource.paginator.pageIndex.toString(), expires, \"/\", local, secure);\r\n }\r\n\r\n createFilter(data: any, filter: any){\r\n let filters: TableFilter[] = filter;\r\n let check = 0;\r\n [].forEach.call(filters, (e) => {\r\n if(data[e.column]){\r\n let dataVal = data[e.column].toLowerCase();\r\n if(dataVal.includes(e.value)){\r\n check++;\r\n }\r\n }\r\n });\r\n if(check == filters.length){\r\n return true;\r\n }else{\r\n return false;\r\n }\r\n }\r\n\r\n applyFilter(filterValue: string, filterColumn: string) {\r\n if(filterValue == undefined){\r\n filterValue = \"\";\r\n }else{\r\n let index = -1;\r\n switch(filterColumn){\r\n case \"Role\":\r\n index = USER_ROLES.findIndex(x => x.Id === parseInt(filterValue));\r\n filterValue = USER_ROLES[index].Name;\r\n break;\r\n case \"BlockName\":\r\n index = USER_BLOCK.findIndex(x => x.Status === JSON.parse(filterValue));\r\n filterValue = USER_BLOCK[index].Name;\r\n break;\r\n }\r\n filterValue = filterValue.trim().toLowerCase();\r\n }\r\n let isFilter = false;\r\n [].forEach.call(this.filter, (e) => {\r\n if(e){\r\n if(e.column == filterColumn){\r\n e.value = filterValue;\r\n isFilter = true;\r\n }\r\n }\r\n });\r\n if(!isFilter){\r\n this.filter.push({\r\n column: filterColumn,\r\n value: filterValue\r\n });\r\n }\r\n\r\n this.dataSource.filter = this.filter;\r\n if(this.dataSource.filter.length == 0){\r\n this.filterAll = this.dataSource.data.length;\r\n }else{\r\n if(this.selection.selected.length == 0){\r\n this.filterAll = this.dataSource.data.length;\r\n }else{\r\n this.filterAll = this.selection.selected.length;\r\n }\r\n }\r\n \r\n if(this.dataSource.paginator){\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n isAllSelected() {\r\n if(this.selection.selected.filter(x => x.Block == false).length > 0 && this.selection.selected.filter(x => x.Block == true).length == 0){\r\n this.blockAllow = true;\r\n }else{\r\n this.blockAllow = false;\r\n }\r\n if(this.selection.selected.filter(x => x.Block == false).length == 0 && this.selection.selected.filter(x => x.Block == true).length > 0){\r\n this.unblockAllow = true;\r\n }else{\r\n this.unblockAllow = false;\r\n }\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.filterAll;\r\n return numSelected === numRows;\r\n }\r\n \r\n masterToggle() {\r\n this.isAllSelected() ? this.selection.clear() : this.dataSource.data.forEach(row => {\r\n if(this.createFilter(row, this.dataSource.filter)){\r\n this.selection.select(row);\r\n }\r\n });\r\n if(this.selection.selected.length == 0){\r\n this.filterAll = this.dataSource.data.length;\r\n }else{\r\n this.filterAll = this.selection.selected.length;\r\n }\r\n }\r\n \r\n checkboxLabel(row?: ItemData): string {\r\n if (!row) {\r\n return `${this.isAllSelected() ? 'select' : 'deselect'} all`;\r\n }\r\n return `${this.selection.isSelected(row) ? 'deselect' : 'select'} row ${row.Id + 1}`;\r\n }\r\n\r\n openMenu(status: string){\r\n let dialogRef;\r\n let text = \"\";\r\n let confirm = null;\r\n switch(status){\r\n case \"add\":\r\n case \"add\":\r\n let emptyUser = {\r\n \"Email\": \"\",\r\n \"Password\": \"\",\r\n \"ConfirmPassword\": \"\",\r\n \"Role\": 1\r\n }\r\n dialogRef = this.dialog.open(UserControlItem, {\r\n width: \"1000px\",\r\n minHeight: \"450px\",\r\n maxHeight: \"800px\",\r\n disableClose: true,\r\n data: {name: \"Створення Нового Користувача\", status: status, data: emptyUser, }\r\n });\r\n break;\r\n case \"close\":\r\n text = \"Ви дійсно хочете заблокувати користувача?\"\r\n if(this.selection.selected.length > 1){\r\n text = \"Ви дійсно хочете заблокувати користувачів?\"\r\n }\r\n confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: {text: text}\r\n });\r\n confirm.afterClosed().subscribe(result => {\r\n if(result){\r\n [].forEach.call(this.selection.selected, (e, index) => {\r\n let json = {\r\n \"Id\": e.Id,\r\n \"IsLocked\": true\r\n }\r\n this.http.post(this.admin.getUrl() + \"Account/LockUser\", json, options).subscribe((data)=>{\r\n if(index == this.selection.selected.length -1){\r\n this.refreshTable();\r\n }\r\n });\r\n });\r\n }\r\n });\r\n break;\r\n case \"open\":\r\n text = \"Ви дійсно хочете розблокувати користувача?\"\r\n if(this.selection.selected.length > 1){\r\n text = \"Ви дійсно хочете розблокувати користувачів?\"\r\n }\r\n confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: {text: text}\r\n });\r\n confirm.afterClosed().subscribe(result => {\r\n if(result){\r\n [].forEach.call(this.selection.selected, (e, index) => {\r\n let json = {\r\n \"Id\": e.Id,\r\n \"IsLocked\": false\r\n }\r\n this.http.post(this.admin.getUrl() + \"Account/LockUser\", json, options).subscribe((data)=>{\r\n if(index == this.selection.selected.length -1){\r\n this.refreshTable();\r\n }\r\n });\r\n });\r\n }\r\n });\r\n break;\r\n }\r\n if(dialogRef != null){\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.refreshTable();\r\n });\r\n }\r\n }\r\n\r\n refreshTable(){\r\n this.selection = new SelectionModel(true, []);\r\n this.dbRequest();\r\n }\r\n \r\n}\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// User Item ++\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n@Component({\r\n selector: 'user-control-item',\r\n templateUrl: 'user-control-item.html',\r\n styleUrls: ['./admin.css'],\r\n providers: [AdminPage]\r\n})\r\n\r\nexport class UserControlItem{\r\n\r\n IsSaving: boolean = false;\r\n\r\n barValue: number = 50;\r\n\r\n titleFormControl = new FormControl('', [Validators.required, Validators.email]);\r\n passForm: FormGroup;\r\n matcher = new MyErrorStateMatcher();\r\n barColor: ThemePalette = 'primary';\r\n barMode: ProgressSpinnerMode = 'indeterminate';\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: UserDialog,\r\n private http: HttpClient,\r\n private admin: AdminPage,\r\n public dialog: MatDialog,\r\n private formBuilder: FormBuilder,\r\n private cookieService: CookieService,\r\n ){\r\n this.passForm = this.formBuilder.group({\r\n 'passNormal': new FormControl(''),\r\n 'passCopy': new FormControl('')\r\n }, {\r\n validator: [\r\n this.checkPassNormal.bind(this),\r\n this.checkPassCopy.bind(this)\r\n ]\r\n });\r\n }\r\n\r\n changeRegister(){\r\n isChange = true;\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(\":\")[0];\r\n let secure = false;\r\n if(location.protocol == \"https:\"){\r\n secure = true;\r\n }\r\n this.cookieService.set(\"is_change\", \"true\", expires, \"/\", local, secure);\r\n }\r\n\r\n unChangeRegister(){\r\n isChange = false;\r\n let expires = new Date();\r\n expires.setDate(expires.getDate() + 1);\r\n let local = location.host.split(\":\")[0];\r\n let secure = false;\r\n if(location.protocol == \"https:\"){\r\n secure = true;\r\n }\r\n this.cookieService.delete(\"is_change\", \"/\", local, secure);\r\n }\r\n\r\n checkPassNormal(group: FormGroup){\r\n if(group.controls.passNormal.value.length < 6){\r\n return { passLength: true }\r\n }\r\n let re = /[0-9]/;\r\n if(!re.test(group.controls.passNormal.value)){\r\n return { passNumber: true }\r\n }\r\n re = /[a-z]/;\r\n if(!re.test(group.controls.passNormal.value)){\r\n return { passLower: true }\r\n }\r\n re = /[A-Z]/;\r\n if(!re.test(group.controls.passNormal.value)){\r\n return { passUpper: true }\r\n }\r\n re = /[!@#$%^&*]/;\r\n if(!re.test(group.controls.passNormal.value)){\r\n return { passSimbol: true }\r\n }\r\n return null;\r\n }\r\n\r\n checkPassCopy(group: FormGroup){\r\n if(group.controls.passCopy.value.length < 6){\r\n return { passLengthCopy: true }\r\n }\r\n let re = /[0-9]/;\r\n if(!re.test(group.controls.passCopy.value)){\r\n return { passNumberCopy: true }\r\n }\r\n re = /[a-z]/;\r\n if(!re.test(group.controls.passCopy.value)){\r\n return { passLowerCopy: true }\r\n }\r\n re = /[A-Z]/;\r\n if(!re.test(group.controls.passCopy.value)){\r\n return { passUpperCopy: true }\r\n }\r\n re = /[!@#$%^&*]/;\r\n if(!re.test(group.controls.passCopy.value)){\r\n return { passSimbolCopy: true }\r\n }\r\n if(group.controls.passNormal.value != group.controls.passCopy.value){\r\n return { passCheck: true }\r\n }\r\n return null;\r\n }\r\n\r\n addMenu(body){\r\n this.IsSaving = true;\r\n\r\n let json = {\r\n \"Email\": body.email,\r\n \"Password\": body.pass,\r\n }\r\n this.http.post(this.admin.getUrl() + \"Account/Register\", json, options).subscribe((dataP)=>{\r\n this.http.get(this.admin.getUrl() + \"Account/GetUsers\", options).subscribe((dataG)=>{\r\n let roles = \"admin\";\r\n if(parseInt(body.role) != 1){\r\n roles = \"manager\";\r\n }\r\n let id = 0;\r\n [].forEach.call(dataG, (e) =>{\r\n if(e.email == body.email){\r\n id = e.id;\r\n }\r\n });\r\n let jsonA = {\r\n \"Id\": id,\r\n \"Roles\": [roles],\r\n }\r\n setTimeout(() => {\r\n this.http.post(this.admin.getUrl() + \"Account/EditRoles\", jsonA, options).subscribe((dataR)=>{\r\n this.IsSaving = false;\r\n this.onClose(true);\r\n });\r\n }, 100);\r\n });\r\n });\r\n }\r\n\r\n onClose(save): void {\r\n if(isChange && !save){\r\n let confirm = this.dialog.open(ConfirmMenu, {\r\n maxWidth: \"600px\",\r\n disableClose: true,\r\n data: {text: \"Увага! Документ буде закритий без збереження змін. Продовжити?\"}\r\n });\r\n confirm.afterClosed().subscribe(result => {\r\n if(result){\r\n this.unChangeRegister();\r\n this.dialogRef.close();\r\n }\r\n });\r\n }else{\r\n this.unChangeRegister();\r\n this.dialogRef.close();\r\n }\r\n }\r\n\r\n}\r\n\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// Error State Matcher ++\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\nexport class MyErrorStateMatcher implements ErrorStateMatcher {\r\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\r\n const invalidCtrl = !!(control && control.invalid);\r\n const invalidParent = !!(control && control.parent && control.parent.invalid);\r\n \r\n return (invalidCtrl || invalidParent);\r\n }\r\n}","
\r\n

Управління Користувачами

\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
У вас недостатньо прав для створення нового користувача!
\r\n
\r\n\r\n
\r\n \r\n Користувачі\r\n \r\n \r\n \r\n Ролі\r\n \r\n Очистити фільтр\r\n {{ role.Name }}\r\n \r\n \r\n \r\n Блокування\r\n \r\n Очистити фільтр\r\n {{ block.Name }}\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Користувач {{row.Name}} Права доступу {{row.Role}} Блокування {{ row.BlockName }}
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n

Будь-ласка зачекайте!
Триває завантаження

\r\n
\r\n
\r\n","
\r\n

{{ data.name }}

\r\n \r\n
\r\n \r\n
\r\n
\r\n
Email: *
\r\n \r\n \r\n \r\n Обов'язково до заповнення!\r\n \r\n \r\n Некоректний формат email!\r\n \r\n \r\n
\r\n
\r\n
Пароль: *
\r\n \r\n \r\n \r\n Пароль не повинен бути меньше 6 символів!\r\n \r\n \r\n Пароль повинен містити цифри!\r\n \r\n \r\n Пароль повинен містити символи нижнього регістру!\r\n \r\n \r\n Пароль повинен містити символи верхнього регістру!\r\n \r\n \r\n Пароль повинен містити спеціальні символи!\r\n \r\n \r\n
\r\n
\r\n
Повторіть пароль: *
\r\n \r\n \r\n \r\n Паролі не співпадають!\r\n \r\n \r\n Пароль не повинен бути меньше 6 символів!\r\n \r\n \r\n Пароль повинен містити цифри!\r\n \r\n \r\n Пароль повинен містити символи нижнього регістру!\r\n \r\n \r\n Пароль повинен містити символи верхнього регістру!\r\n \r\n \r\n Пароль повинен містити спеціальні символи!\r\n \r\n \r\n
\r\n
\r\n
Типи: *
\r\n \r\n Адміністратор\r\n Менеджер\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n

Будь-ласка зачекайте!
Триває збереження

\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { environment } from '../environments/environment';\n\n@Component({\n selector: 'app-root',\n templateUrl: 'app.component.html',\n styleUrls: ['app.component.css'],\n})\nexport class AppComponent implements OnInit {\n\n constructor(\n private router: Router,\n ){\n this.router.navigated = false;\n let linkCkecker: any = location.pathname.split(\"/wab\");\n if(linkCkecker.length > 1){\n linkCkecker = linkCkecker[1];\n }\n this.router.navigate(['/' + linkCkecker]);\n }\n\n ngOnInit() {\n if(window.location.hostname != \"localhost\"){\n if(location.protocol === 'http:'){\n window.location.href = location.href.replace('http', 'https');\n }\n }\n }\n\n}\n\n","","import { Component } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Router, ActivatedRoute, Event, NavigationEnd } from '@angular/router';\r\n\r\nimport { IndexPage } from '.';\r\n\r\nexport interface DialogData {\r\n name: string;\r\n status: string;\r\n data: ItemData;\r\n}\r\n\r\nexport interface ItemData {\r\n Id: number;\r\n Text: string;\r\n Link: string;\r\n Lang: string;\r\n}\r\n\r\nexport interface LangData {\r\n id: number;\r\n name: string;\r\n}\r\n\r\n@Component({\r\n selector: 'article',\r\n templateUrl: 'article.html',\r\n styleUrls: ['main.css'],\r\n})\r\nexport class ArticlePage {\r\n isGrayscale = false;\r\n isFontscale = false;\r\n\r\n currentLocale: string = '';\r\n\r\n pageText: any[] = [];\r\n menuList: any[] = [];\r\n\r\n dataBase: ItemData = { Id: 0, Text: '', Link: '', Lang: '' };\r\n articleCode: any = 0;\r\n\r\n constructor(\r\n private router: Router,\r\n public dialog: MatDialog,\r\n private indexPage: IndexPage,\r\n private route: ActivatedRoute\r\n ) {\r\n router.events.subscribe((event: Event) => {\r\n if (event instanceof NavigationEnd) {\r\n this.pageLoad();\r\n }\r\n });\r\n\r\n // console.log(this.route);\r\n // console.log(this.route.snapshot.params['link']);\r\n\r\n if (this.route.snapshot.params['link'] == '') {\r\n this.router.navigate(['/']);\r\n } else {\r\n this.pageLoad();\r\n }\r\n }\r\n\r\n pageLoad() {\r\n this.articleCode = this.route.snapshot.params['link'];\r\n this.isGrayscale = this.indexPage.getUserHelp('gs');\r\n this.isFontscale = this.indexPage.getUserHelp('fs');\r\n this.currentLocale = this.indexPage.getLocale();\r\n\r\n let interval = setInterval(() => {\r\n if (this.indexPage.getDBStatus()) {\r\n clearInterval(interval);\r\n this.menuList = this.indexPage.getList('Menu');\r\n let indexF = this.menuList\r\n .map(function (x) {\r\n return x.Link;\r\n })\r\n .indexOf(this.articleCode);\r\n if (indexF != -1) {\r\n this.dataBase = {\r\n Id: this.menuList[indexF].Id,\r\n Text: this.menuList[indexF].Text,\r\n Link: this.menuList[indexF].Link,\r\n Lang: this.menuList[indexF].Lang,\r\n };\r\n let articleElementRef = document.querySelector('.article-block');\r\n if (articleElementRef != null) {\r\n articleElementRef.innerHTML = this.dataBase.Text;\r\n }\r\n }\r\n }\r\n }, 50);\r\n }\r\n\r\n getListText() {\r\n if (this.currentLocale != this.indexPage.getLocale()) {\r\n this.currentLocale = this.indexPage.getLocale();\r\n this.menuList = this.indexPage.getList('Menu');\r\n let indexF = this.menuList\r\n .map(function (x) {\r\n return x.Link;\r\n })\r\n .indexOf(this.articleCode);\r\n if (indexF != -1) {\r\n this.dataBase = {\r\n Id: this.menuList[indexF].Id,\r\n Text: this.menuList[indexF].Text,\r\n Link: this.menuList[indexF].Link,\r\n Lang: this.menuList[indexF].Lang,\r\n };\r\n let articleElementRef = document.querySelector('.article-block');\r\n if (articleElementRef != null) {\r\n articleElementRef.innerHTML = this.dataBase.Text;\r\n }\r\n }\r\n }\r\n return this.dataBase;\r\n }\r\n\r\n getPageText(type) {\r\n return this.indexPage.getPageElement(type);\r\n }\r\n}\r\n","\r\n
\r\n
{{getListText().Text}}
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
{{getPageText(\"footer\")}}
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
{{getPageText(\"footer\")}}
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
{{getPageText(\"footer\")}}
\r\n
","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { MatDatetimePickerInputEvent } from '@angular-material-components/datetime-picker';\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\nimport { TranslateService } from '@ngx-translate/core';\nimport { DatePipe } from '@angular/common';\n\n\nconst daysInMonthMap = new Map([\n [1, 31], // Січень\n [2, 29], // Лютий (в звичайному році)\n [3, 31], // Березень\n [4, 30], // Квітень\n [5, 31], // Травень\n [6, 30], // Червень\n [7, 31], // Липень\n [8, 31], // Серпень\n [9, 30], // Вересень\n [10, 31], // Жовтень\n [11, 30], // Листопад\n [12, 31], // Грудень\n]);\n\n\n@Component({\n selector: 'app-date-time-picker',\n templateUrl: './date-time-picker.component.html',\n styleUrls: ['../../main.css'],\n providers: [DatePipe],\n})\nexport class DateTimePickerComponent implements OnInit {\n\n\n maxDate: Date = new Date();\n\n minDate: Date = new Date(this.maxDate.getFullYear() - 70, this.maxDate.getMonth(), this.maxDate.getDate());\n\n stepHour: number = 1;\n stepMinute: number = 1;\n stepSecond: number = 1;\n\n error: string = '';\n\n\n @Input() disabled: boolean;\n\n @Input() max: any;\n @Input() id: string | number;\n @Input() dublicate: string | number;\n\n @Input() value: Date | undefined;\n\n @Input() isTime: boolean;\n\n @Input() required: boolean;\n\n @Output() dateChange: EventEmitter | MatDatetimePickerInputEvent | {\n value: Date\n } | null> = new EventEmitter;\n\n\n constructor(private translateService: TranslateService,\n ) {\n }\n\n ngOnInit(): void {\n setTimeout(() => {\n if (this.value) {\n this.setValueToVisibleInput(this.value, this.isTime);\n }\n }, 250);\n }\n\n setFormatError(format: string) {\n if (!format) {\n return;\n }\n\n this.translateService.get(['Common.dateFormat', 'Common.impossible']).subscribe((translation: {\n 'Common.dateFormat': string,\n 'Common.impossible': string,\n }) => {\n this.error = translation['Common.dateFormat'] + format + translation['Common.impossible'];\n });\n }\n\n removeError() {\n this.error = '';\n }\n\n\n dateInput(event: any, isTime?: boolean) {\n this.removeError();\n const inputValue: string = event.target.value;\n\n const dateAndTime = inputValue.split(', ');\n\n // Розбиваємо введене значення на частини (день, місяць, рік)\n const dateParts = dateAndTime[0].split('.');\n\n let month = parseInt(dateParts[1]);\n let monthLength = daysInMonthMap.get(month) || 31;\n\n if (dateParts.length === 1 && dateParts[0]) { // Якщо введено лише одну частину (день)\n this.validateDay(dateParts[0], event, monthLength);\n }\n if (dateParts.length === 2 && dateParts[1]) { // Якщо введено дві частини (день і місяць)\n this.validateDay(dateParts[0], event, monthLength);\n this.validateMonth(dateParts[1], event);\n }\n if (dateParts.length === 3 && dateParts[2]) { // Якщо введено всі три частини (день, місяць, рік)\n this.validateDay(dateParts[0], event, monthLength);\n this.validateMonth(dateParts[1], event);\n this.validateYear(dateParts, event);\n }\n\n if (!isTime || !dateAndTime[1]) {\n return;\n }\n\n const timeParts = dateAndTime[1].split(':');\n\n if (timeParts.length === 1 && timeParts[0]) {\n this.validateHour(timeParts[0], event);\n }\n if (timeParts.length === 2 && timeParts[1]) {\n this.validateHour(timeParts[0], event);\n this.validateMinute(timeParts, event);\n }\n if (timeParts.length === 3 && timeParts[2]) {\n this.validateHour(timeParts[0], event);\n this.validateMinute(timeParts, event);\n this.validateSecond(timeParts, event);\n }\n }\n\n validateDay(day: string, event: any, monthLength: number) {\n const dayValue = parseInt(day);\n if (monthLength && dayValue > monthLength) {\n this.setFormatError(event.target.value);\n event.target.value = dayValue;\n return;\n }\n\n if (day.length === 1 && !isNaN(dayValue) && dayValue >= 0 && dayValue <= 3) {\n return;\n }\n if (day.length === 2 && !isNaN(dayValue) && dayValue >= 1 && dayValue <= monthLength) {\n return;\n }\n this.setFormatError(event.target.value);\n event.target.value = event.target.value.slice(0, -1);\n }\n\n validateMonth(month: string, event: any) {\n let monthValue = parseInt(month);\n if (month.length === 1 && !isNaN(monthValue) && monthValue >= 0 && monthValue <= 1) {\n return;\n }\n if (month.length === 2 && !isNaN(monthValue) && monthValue >= 1 && monthValue <= 12) {\n return;\n }\n this.setFormatError(event.target.value);\n event.target.value = event.target.value.slice(0, -1);\n }\n\n validateYear(parts: string[], event: any) {\n const year = parts[2];\n const month = parts[1];\n const day = parts[0];\n const yearValue = parseInt(year);\n const monthValue = parseInt(month);\n const dayValue = parseInt(day);\n\n if (year.length === 1 && !isNaN(yearValue) && yearValue >= 1 && yearValue <= 2) {\n return;\n }\n if (year.length === 2 && !isNaN(yearValue) && (yearValue === 19 || yearValue === 20)) {\n return;\n }\n const minFullYear = this.minDate.getFullYear();\n const maxFullYear = this.maxDate.getFullYear();\n const start = parseInt(String(minFullYear).slice(0, -1));\n const end = parseInt(String(maxFullYear).slice(0, -1));\n\n if (year.length === 3 && !isNaN(yearValue) && yearValue >= start && yearValue <= end) {\n return;\n }\n\n const isLeapYear = year?.length === 4\n && (yearValue % 4 === 0 && yearValue % 100 !== 0) || (yearValue % 400 === 0);\n\n if (!isLeapYear && monthValue === 2 && dayValue > 28) {\n this.setFormatError(event.target.value);\n let split = event.target.value.split('.');\n delete split[2];\n event.target.value = split.join('.');\n return;\n }\n const inputDate = new Date(yearValue, monthValue - 1, dayValue).getTime();\n\n if (\n year.length === 4\n && !isNaN(yearValue)\n && yearValue >= minFullYear\n && yearValue <= maxFullYear\n && this.maxDate.getTime() >= inputDate) {\n return;\n }\n this.setFormatError(event.target.value);\n event.target.value = event.target.value.slice(0, -1);\n }\n\n validateHour(hour: string, event: any) {\n let hourValue = parseInt(hour);\n\n if (hour.length === 1 && hourValue >= 0 && hourValue <= 2) {\n return;\n }\n\n if (hour.length === 2 && hourValue >= 0 && hourValue <= 24) {\n return;\n }\n\n this.setFormatError(event.target.value);\n event.target.value = event.target.value.slice(0, -1);\n }\n\n validateMinute(timeParts: string[], event: any) {\n let hour = parseInt(timeParts[0]);\n let minute = timeParts[1];\n let minuteValue = parseInt(minute);\n\n if (minute?.length === 1 && ((minuteValue >= 0 && minuteValue <= 6 && hour !== 24) || (hour === 24 && minuteValue === 0))) {\n return;\n }\n\n if (minute?.length === 2 && ((minuteValue >= 0 && minuteValue <= 60 && hour !== 24) || (hour === 24 && minuteValue === 0))) {\n return;\n }\n\n this.setFormatError(event.target.value);\n event.target.value = event.target.value.slice(0, -1);\n }\n\n validateSecond(timeParts: string[], event: any) {\n const hour = parseInt(timeParts[0]);\n const second = timeParts[2];\n const secondValue = parseInt(second);\n\n if (second?.length === 1 && ((secondValue >= 0 && secondValue <= 6 && hour !== 24) || (hour === 24 && secondValue === 0))) {\n return;\n }\n\n if (second?.length === 2 && ((secondValue >= 0 && secondValue <= 60 && hour !== 24) || (hour === 24 && secondValue === 0))) {\n return;\n }\n\n this.setFormatError(event.target.value);\n event.target.value = event.target.value.slice(0, -1);\n }\n\n\n emitDate(event: MatDatepickerInputEvent | MatDatetimePickerInputEvent | { value: Date }) {\n if (this.error || !event.value) {\n return;\n }\n\n this.dateChange.emit(event);\n }\n\n validateDate(event: any) {\n\n let value: string = event.target.value;\n\n if (this.error) {\n event.target.value = '';\n } else {\n this.emitDate({ value: this.parseDateString(value) });\n }\n }\n\n transformToFormatDate(date: Date, isTime?: boolean) {\n const day = String(date.getDate()).padStart(2, '0');\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const year = String(date.getFullYear()).padStart(4, '0');\n const transformed = `${day}.${month}.${year}`;\n\n if (!isTime) {\n return transformed;\n }\n\n const hours = String(date.getHours()).padStart(2, '0');\n const minutes = String(date.getMinutes()).padStart(2, '0');\n const seconds = String(date.getSeconds()).padStart(2, '0');\n\n return transformed + `, ${hours}:${minutes}:${seconds}`;\n }\n\n\n parseDateString(dateString: string, isTime: boolean = false): Date {\n const parts = dateString.split(/[.,: ]/);\n\n if ((isTime && parts.length < 6) || (!isTime && parts.length < 3)) {\n console.error('Invalid date string format');\n return;\n }\n\n const day = parseInt(parts[0], 10);\n const month = parseInt(parts[1], 10) - 1; // місяці починаються з 0\n const year = parseInt(parts[2], 10);\n let hours = 0, minutes = 0, seconds = 0;\n\n if (isTime) {\n hours = parseInt(parts[3], 10);\n minutes = parseInt(parts[4], 10);\n seconds = parseInt(parts[5], 10);\n }\n\n return new Date(year, month, day, hours, minutes, seconds);\n }\n\n\n setValueToVisibleInput(value: string | Date, isTime?: boolean) {\n const visibleDateTimeInput = document.getElementById('visibleDateTimeInput' + this.id + this.dublicate) as HTMLInputElement;\n if (value instanceof Date) {\n value = this.transformToFormatDate(value, isTime);\n }\n visibleDateTimeInput.value = value;\n }\n\n dateChangeHandler($event: MatDatetimePickerInputEvent, isTime: boolean) {\n this.removeError();\n let s = this.transformToFormatDate($event.value, isTime);\n this.setValueToVisibleInput(s, isTime);\n this.emitDate($event);\n }\n}\n","\n \n {{ ((isTime ? 'Common.selectDateAndTime' : 'Common.selectDate') | translate) }}\n \n \n \n \n \n \n\n{{ error }}\n","import {Component, Inject} from '@angular/core';\r\nimport {MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\r\n\r\nexport interface DialogData {\r\n text: string;\r\n button: any[];\r\n ish: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'confirm-menu',\r\n templateUrl: 'confirm-menu.html',\r\n styleUrls: ['menu.css']\r\n})\r\n\r\nexport class ConfirmMenu {\r\n\r\n isH2: boolean = false;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n ){\r\n if(this.data.button == undefined){\r\n this.data.button = [];\r\n }\r\n\r\n this.isH2 = this.data.ish;\r\n }\r\n\r\n accept() {\r\n this.dialogRef.close(true);\r\n }\r\n \r\n cancel() {\r\n this.dialogRef.close(false);\r\n }\r\n \r\n}","
\r\n
\r\n

{{ data.text }}

\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport * as signalR from '@aspnet/signalr';\nimport { enc, SHA256 } from 'crypto-js';\nimport { v4 } from 'uuid';\n\nimport {\n DiiaHashFile,\n DiiaMobileSignSaveData,\n DiiaNavigationTransferData,\n DiiaStatus,\n FilesData,\n} from '../interfaces/diia-interfaces';\nimport { IndexedDBService } from '../services/indexed-db.service';\n\n@Component({\n selector: 'app-diia-qr-page',\n templateUrl: './diia-qr-page.component.html',\n styleUrls: ['./diia-qr-page.component.css'],\n})\nexport class DiiaQrPageComponent implements OnInit {\n public transferData: DiiaNavigationTransferData;\n public status: DiiaStatus = DiiaStatus.notconnected;\n // public statusConst: any = DiiaStatusConst;\n public diiaLink: string = '';\n public error: string = '';\n public timer: number = 0;\n public timeDisplay: string = '03:00';\n public files: FilesData[] = [];\n\n // private backendLink: string = 'https://doc.it-artel.ua:89/wai';\n private backendLink: string = location.href.includes('wai') ? '/wai' : '';\n private hubConnection: signalR.HubConnection = null!;\n private requestId: string = '';\n private linkTimer: any = null;\n private singnedFiles: string = '';\n\n constructor(\n private router: Router,\n private indexedDBService: IndexedDBService\n ) {\n if (window.location.hostname == 'localhost') {\n this.backendLink = 'https://doc.it-artel.ua:89/wai';\n }\n\n const navigation = this.router.getCurrentNavigation();\n if (navigation && navigation.extras?.state?.fileEx) {\n this.transferData = navigation.extras.state as DiiaNavigationTransferData;\n } else {\n this.router.navigate(['/']).catch(console.error);\n }\n }\n\n async ngOnInit() {\n try {\n await this.connect();\n } catch (error) {\n console.error(error);\n }\n }\n\n public async connect() {\n try {\n this.hubConnection = new signalR.HubConnectionBuilder()\n .withUrl(this.backendLink + '/api/diiaHub', {\n skipNegotiation: true,\n transport: signalR.HttpTransportType.WebSockets,\n })\n .build();\n\n await this.hubConnection.start();\n this.status = DiiaStatus.wait;\n\n await this.loadFiles(this.transferData.base64Array);\n\n await this.getLink();\n } catch (error) {\n this.setError(`ERROR: ${error}`);\n }\n\n // If you have problem on server, return error\n this.hubConnection.onclose((result: any) => {\n this.setError(`ERROR: ${result}`);\n this.status = DiiaStatus.notconnected;\n });\n }\n\n public async getLink() {\n this.clearData();\n\n // Get hash of files to send\n const filesHashes: DiiaHashFile[] = await this.calculateHash();\n // console.log('inside get link', filesHashes);\n\n // Subscribe on server messages\n try {\n await this.hubConnection.send('Subscribe', this.requestId, filesHashes);\n this.status = DiiaStatus.subscribe;\n } catch (error) {\n this.setError('ERROR: ' + error);\n }\n\n // Listen for link from server and convert to QR\n this.hubConnection.on('ReceiveLink', (link) => {\n this.status = DiiaStatus.link;\n // console.log(link);\n this.diiaLink = link;\n this.startLinkTimer();\n });\n\n // Get final signed files\n this.hubConnection.on('ReceiveFiles', (result: any) => {\n if (result.error) {\n this.status = DiiaStatus.connected;\n this.setError('ERROR: ' + result.error);\n } else {\n this.singnedFiles = result;\n this.status = DiiaStatus.sign;\n this.router\n .navigate(['/signed-document'], {\n state: {\n ...this.transferData,\n singnedFiles: this.singnedFiles,\n files: this.files,\n },\n })\n .then(() => this.close())\n .catch();\n }\n });\n }\n\n private startLinkTimer() {\n this.timer = 179;\n clearInterval(this.linkTimer);\n this.linkTimer = setInterval(() => {\n this.timer--;\n\n const minutes = Math.floor(this.timer / 60);\n const seconds = this.timer % 60;\n\n this.timeDisplay = `${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;\n\n if (this.timer === 0) {\n clearInterval(this.linkTimer);\n this.clearData();\n this.status = DiiaStatus.wait;\n this.close();\n this.connect().catch(console.error);\n }\n }, 1000);\n }\n\n private setError(error: string) {\n this.clearData();\n this.status = DiiaStatus.error;\n\n this.error = error;\n setTimeout(() => {\n this.error = '';\n this.status = DiiaStatus.notconnected;\n }, 5000);\n }\n\n public close() {\n // Close connection to server\n this.hubConnection\n .stop()\n .then(() => console.log('Connection successfully closed'))\n .catch((err) => console.error('Error while closing the connection: ', err));\n\n this.status = DiiaStatus.notconnected;\n this.clearData();\n }\n\n /**\n * Load file to sign\n */\n public async loadFiles(files: string[]) {\n if (files.length) {\n this.files = files.map((fileData: string, index) => {\n const mime = fileData.split(';')[0].split(':')[1];\n const data = fileData.split(',')[1];\n return {\n name: this.transferData.fileEx[index],\n mime,\n data,\n };\n });\n this.indexedDBService\n .saveData({ files: this.files, ...this.transferData })\n .then(() => {\n console.log('Data saved successfully');\n })\n .catch((error) => console.error('Error saving data:', error));\n\n this.status = DiiaStatus.connected;\n }\n console.log('inside load files', files, this.files);\n }\n\n private clearData() {\n this.requestId = v4();\n this.diiaLink = '';\n this.timer = 0;\n clearInterval(this.linkTimer);\n this.linkTimer = null;\n }\n\n private calculateHash(): Promise {\n return new Promise((resolve) => {\n const fileHashes: DiiaHashFile[] = this.files.map((file: FilesData) => {\n file.hash = SHA256(file.data).toString(enc.Hex);\n return {\n fileName: file.name,\n fileHash: file.hash,\n } as DiiaHashFile;\n });\n\n resolve(fileHashes);\n });\n }\n\n isMobile() {\n return window.innerWidth < 400;\n }\n}\n","
\n
\n
\n \"dia\"\n
\n
\n \n
Loading...\n
\n
\n {{ 'Common.diaSub1' | translate }}\n \n {{ 'Common.diaSub2' | translate }}\n \n {{ 'Common.diaSub3' | translate }}\n
\n {{ 'Common.qrWarning' | translate }}\n {{ timeDisplay }}\n
\n
\n
\n\n
\n\n
\n","import {Component} from '@angular/core';\r\nimport {MatDialogRef} from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'document-save',\r\n templateUrl: 'document-save.html',\r\n styleUrls: ['menu.css']\r\n})\r\n\r\nexport class DocumentSave {\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n ){\r\n\r\n }\r\n\r\n save(type){\r\n this.dialogRef.close(type);\r\n }\r\n \r\n cancel() {\r\n this.dialogRef.close(false);\r\n }\r\n \r\n}","
\r\n
\r\n

{{ 'Common.fileSave' | translate }}

\r\n {{ 'Common.selectFileFormat' | translate }}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
","import {Component, Inject} from '@angular/core';\r\nimport {MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\r\nimport {MatDialog} from '@angular/material/dialog';\r\n\r\nimport {IndexPage} from '.';\r\n\r\ndeclare var EndUser: any;\r\n\r\nexport interface DialogData {\r\n file: any;\r\n fileEx: string;\r\n}\r\n\r\nconst SIGN_WIDGET_PARENT_ID = \"sign-widget-parent\";\r\nconst SIGN_WIDGET_ID = \"sign-widget\";\r\nconst SIGN_WIDGET_URI = (document.getElementById(\"singKey\")).value;\r\n\r\nvar euSign = null;\r\nvar exFile = \"\";\r\nvar docWriteAllow: boolean = false;\r\n\r\n@Component({\r\n selector: 'etsp',\r\n templateUrl: 'etsp.html',\r\n styleUrls: ['menu.css'],\r\n providers: [IndexPage]\r\n})\r\n\r\nexport class ETSPMenu {\r\n\r\n fileName: any = \"\";\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n public dialog: MatDialog,\r\n ){\r\n exFile = this.data.fileEx;\r\n }\r\n\r\n ngAfterViewInit(){\r\n euSign = new EndUser(\r\n \tSIGN_WIDGET_PARENT_ID, \r\n \tSIGN_WIDGET_ID, \r\n \tSIGN_WIDGET_URI,\r\n EndUser.FormType.ReadPKey\r\n );\r\n \r\n euSign.ReadPrivateKey().then(function (){\r\n (document.getElementById('documentAllow')).value = 'true';\r\n docWriteAllow = true;\r\n }).catch(function(e){\r\n alert('Виникла помилка при зчитуванні ос. ключа. ' + 'Опис помилки: ' + (e.message || e));\r\n });\r\n }\r\n\r\n onSign(){\r\n let signArray = [];\r\n [].forEach.call(this.data.file, (e, indexE) =>{\r\n var data = (document.getElementById('textAreaData' + indexE)).value;\r\n data = data.split(\",\")[1];\r\n var external = false;\r\n var asBase64String = true;\r\n var signAlgo = EndUser.SignAlgo.DSTU4145WithGOST34311;\r\n var signType = EndUser.SignType.CAdES_X_Long;\r\n let dataLength = this.data.file.length;\r\n let dialog = this.dialogRef;\r\n \r\n let uint8Array = Uint8Array.from(atob(data), c => c.charCodeAt(0));\r\n \r\n euSign.SignData(uint8Array, external, asBase64String, signAlgo, null, signType).then(function(sign){\r\n (document.getElementById('textAreaSign' + indexE)).value = sign;\r\n signArray.push(sign);\r\n if(indexE == dataLength -1){\r\n dialog.close(signArray);\r\n }\r\n }).catch(function(e){\r\n alert('Виникла помилка при підписі даних. ' + 'Опис помилки: ' + (e.message || e));\r\n });\r\n\r\n });\r\n };\r\n\r\n close(){\r\n this.dialogRef.close(false);\r\n }\r\n \r\n}","
\r\n
\r\n
\r\n

\r\n {{ 'Common.etspTitle' | translate }}\r\n

\r\n
\r\n \r\n
\r\n\r\n
{{ 'Common.etsp' | translate }}
\r\n\r\n
\r\n\r\n\t
\r\n\t\tДані для підпису:\r\n\t\t
\r\n\t\t\r\n\t\t
\r\n\t\tПідпис\\Підписані дані:\r\n
\r\n\t\t\r\n\t\t
\r\n \r\n \r\n\t
\r\n \r\n
\r\n \r\n \r\n
\r\n
","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { MatDialog } from '@angular/material/dialog';\nimport { AES, enc } from 'crypto-ts';\nimport { TranslateService } from '@ngx-translate/core';\n\nimport { IndexPage } from '.';\nimport { RequestDialog } from './request-dialog';\nimport { InfoMenu } from './info-menu';\nimport { TooltipMenu } from './tooltip-menu';\n\n@Component({\n selector: 'home',\n templateUrl: 'home.html',\n styleUrls: ['main.css'],\n})\nexport class HomePage {\n isGrayscale: boolean = false;\n isFontscale: boolean = false;\n\n requestHover: number = 0;\n sliderHover: number = 0;\n sliderHoverPre: number = 0;\n\n currentLocale: string = '';\n siteKey: string = (document.getElementById('googleKey')).value;\n\n requestList: any[] = [];\n sliderList: any[] = [];\n linkList: any[] = [];\n langList: any[] = [];\n\n captcha: any = null;\n userFile: any = null;\n saveMethod: any = null;\n\n constructor(\n private router: Router,\n private indexPage: IndexPage,\n public dialog: MatDialog,\n private translateService: TranslateService\n ) {\n this.isGrayscale = this.indexPage.getUserHelp('gs');\n this.isFontscale = this.indexPage.getUserHelp('fs');\n this.currentLocale = this.indexPage.getLocale();\n\n let interval = setInterval(() => {\n if (this.indexPage.getDBStatus()) {\n clearInterval(interval);\n this.requestList = this.indexPage.getList('Request');\n this.sliderList = this.indexPage.getList('Slider');\n this.linkList = this.indexPage.getList('Link');\n this.langList = this.indexPage.getList('Lang');\n this.saveMethod = this.indexPage.getSaveMethod();\n\n if (this.saveMethod == undefined || this.saveMethod == null || this.saveMethod == '') {\n this.saveMethod = '0';\n }\n }\n }, 50);\n }\n\n getGrayScale() {\n if (this.isGrayscale != this.indexPage.getUserHelp('gs')) {\n this.isGrayscale = this.indexPage.getUserHelp('gs');\n }\n return this.isGrayscale;\n }\n\n getFontScale() {\n if (this.isFontscale != this.indexPage.getUserHelp('fs')) {\n this.isFontscale = this.indexPage.getUserHelp('fs');\n }\n return this.isFontscale;\n }\n\n getListText(type) {\n if (this.currentLocale != this.indexPage.getLocale()) {\n this.currentLocale = this.indexPage.getLocale();\n switch (type) {\n case 'Request':\n this.requestList = this.indexPage.getList('Request');\n case 'Slider':\n this.sliderList = this.indexPage.getList('Slider');\n case 'Link':\n this.linkList = this.indexPage.getList('Link');\n }\n }\n switch (type) {\n case 'Request':\n return this.requestList;\n case 'Slider':\n return this.sliderList;\n case 'Link':\n this.linkList.sort((a: any, b: any) => ('' + a.Lang).localeCompare('' + b.Lang));\n return this.linkList;\n }\n }\n\n getPageText(type) {\n return this.indexPage.getPageElement(type);\n }\n\n onTooltip(text) {\n let button = '';\n this.translateService.get('Common', { value: 'close' }).subscribe((res: string) => {\n button = res;\n });\n\n if (typeof button != 'string') {\n let array: any = button;\n button = array.close;\n }\n\n let minWidth = '200px';\n let maxWidth = '400px';\n if (text.length > 150 && text.length < 300) {\n maxWidth = '600px';\n } else if (text.length > 300 && text.length < 600) {\n maxWidth = '800px';\n } else if (text.length > 600) {\n minWidth = '80%';\n maxWidth = '1000px';\n }\n let confirm = this.dialog.open(TooltipMenu, {\n minWidth: minWidth,\n maxWidth: maxWidth,\n disableClose: true,\n data: { text: text, button: button },\n });\n confirm.afterClosed().subscribe((result) => {\n if (!result) {\n this.router.navigate(['/']);\n }\n });\n }\n\n onHover(type, index) {\n switch (type) {\n case 'request':\n this.requestHover = index;\n break;\n case 'slider':\n if (\n (index == -1 && this.sliderHover > 0) ||\n (index == 1 && this.sliderHover < this.sliderList.length - 1)\n ) {\n this.sliderHoverPre = this.sliderHover;\n this.sliderHover = this.sliderHover + index;\n }\n break;\n case 'sliderButton':\n this.sliderHoverPre = this.sliderHover;\n this.sliderHover = index;\n break;\n }\n }\n\n getSliderPos(parent) {\n let left = this.sliderHover * parent.offsetWidth * -1;\n let styles = {\n left: left + 'px',\n };\n return styles;\n }\n\n getWidth(parent) {\n return { width: parent.offsetWidth + 'px' };\n }\n\n resolved(captchaResponse: string) {\n this.captcha = captchaResponse;\n }\n\n scrollToRequestForm() {\n let element = document.getElementById('request-form');\n if (element.offsetHeight == 0) {\n element = document.getElementById('request-form-mobile');\n }\n let y = element.getBoundingClientRect().top + window.pageYOffset - 200;\n window.scrollTo({ top: y, behavior: 'smooth' });\n setTimeout(() => {\n element = document.getElementById('request-code-normal');\n element.focus();\n }, 500);\n }\n\n getUserFile(event) {\n this.userFile = event;\n }\n\n resetUserFile(event) {\n this.userFile = null;\n }\n\n openRequest(id, doc) {\n let disclaimerHide = this.getPageText('discLink');\n if (disclaimerHide == 'true') {\n let data = {\n requestId: id,\n saveForm: 0,\n };\n this.router.navigateByUrl('/request', { state: data });\n } else {\n let disclaimerText = this.getPageText('discText');\n let disclaimerBox = this.getPageText('discCond');\n let confirm = this.dialog.open(RequestDialog, {\n maxWidth: '80%',\n minHeight: '100px',\n disableClose: true,\n data: { text: disclaimerText, box: disclaimerBox, key: this.siteKey, doc: doc },\n });\n confirm.afterClosed().subscribe((result) => {\n if (result) {\n let data = {\n requestId: id,\n saveForm: 0,\n };\n this.router.navigateByUrl('/request', { state: data });\n }\n });\n }\n }\n\n restoreRequest(key) {\n if (window.location.hostname == 'localhost') {\n //--\n this.captcha = 'localhost';\n } //--\n if (this.captcha != null) {\n // console.log(this.indexPage.getSaveMethod().toString());\n if (this.indexPage.getSaveMethod().toString() == '1') {\n let files = this.userFile.files;\n var output = null;\n for (var i = 0, f; (f = files[i]); i++) {\n var reader = new FileReader();\n reader.onload = (function (theFile) {\n return function (e) {\n output = JSON.parse(e.target.result as any);\n };\n })(f);\n reader.readAsText(f);\n }\n let interval = setInterval(() => {\n if (output != null) {\n clearInterval(interval);\n let code: any = AES.decrypt(output.id, 'IT.Artel_Kimonix');\n code = code.toString(enc.Utf8);\n // console.log(code);\n\n code = code.split('|');\n let access = false;\n\n let userRequest = this.indexPage.getList('User');\n let indexX = userRequest\n .map(function (x) {\n return x.Id;\n })\n .indexOf(parseInt(code[1]));\n if (indexX == -1) {\n access = false;\n } else {\n let now = new Date();\n let date = new Date(userRequest[indexX].Date);\n now.setHours(0);\n now.setMinutes(0);\n now.setSeconds(0);\n date.setHours(0);\n date.setMinutes(0);\n date.setSeconds(0);\n\n let page = this.indexPage.getList('Page');\n let count = page.filter((x) => x.Type == 'requestTimer').map((x) => x);\n now.setDate(now.getDate() + parseInt(count[0].Text));\n if (now.getTime() < date.getTime()) {\n access = false;\n } else {\n access = true;\n }\n }\n if (access) {\n let data = {\n requestId: code[0],\n saveForm: code[1],\n saveData: output.data,\n skip: output.skip || [],\n };\n this.router.navigateByUrl('/request', { state: data });\n } else {\n let text = '';\n this.translateService\n .get('Common', { value: 'formNotFound' })\n .subscribe((res: string) => {\n text = res;\n });\n\n if (typeof text != 'string') {\n let array: any = text;\n text = array.formNotFound;\n }\n this.dialog.open(InfoMenu, {\n width: '80%',\n maxWidth: '600px',\n disableClose: true,\n data: { text: text },\n });\n }\n }\n }, 50);\n } else {\n // console.log(\"L1\");\n // console.log(key);\n // console.log(key.value);\n let code: any = AES.decrypt(key.value, 'IT.Artel_Kimonix');\n // console.log(\"L2\");\n code = code.toString(enc.Utf8);\n code = code.split('|');\n let access = false;\n\n let userRequest = this.indexPage.getList('User');\n let indexX = userRequest\n .map(function (x) {\n return x.Id;\n })\n .indexOf(parseInt(code[1]));\n if (indexX == -1) {\n access = false;\n } else {\n let now = new Date();\n let date = new Date(userRequest[indexX].Date);\n now.setHours(0);\n now.setMinutes(0);\n now.setSeconds(0);\n date.setHours(0);\n date.setMinutes(0);\n date.setSeconds(0);\n\n let page = this.indexPage.getList('Page');\n let count = page.filter((x) => x.Type == 'requestTimer').map((x) => x);\n now.setDate(now.getDate() + parseInt(count[0].Text));\n if (now.getTime() < date.getTime()) {\n access = false;\n } else {\n access = true;\n }\n }\n if (access) {\n let data = {\n requestId: code[0],\n saveForm: code[1],\n };\n this.router.navigateByUrl('/request', { state: data });\n } else {\n let text = '';\n this.translateService\n .get('Common', { value: 'formNotFound' })\n .subscribe((res: string) => {\n text = res;\n });\n\n if (typeof text != 'string') {\n let array: any = text;\n text = array.formNotFound;\n }\n this.dialog.open(InfoMenu, {\n width: '80%',\n maxWidth: '600px',\n disableClose: true,\n data: { text: text },\n });\n }\n }\n }\n }\n}\n","
\r\n
\r\n

{{getPageText(\"infoTitle\")}}

\r\n
\r\n {{getPageText(\"infoText\")}}\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
{{request.Title}}
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
{{request.Title}}
\r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n {{ 'Common.toRestoreForm' | translate }}\r\n
\r\n\r\n

{{ 'Common.restoreForm' | translate }}

\r\n \r\n \r\n \r\n \r\n
\r\n \r\n attachment\r\n {{ 'Common.selectFile' | translate }} \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n {{ 'Common.send' | translate }}\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n {{ 'Common.toRestoreForm' | translate }}\r\n
\r\n\r\n

{{ 'Common.restoreForm' | translate }}

\r\n \r\n \r\n \r\n \r\n
\r\n \r\n attachment\r\n {{ 'Common.selectFile' | translate }} \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n {{ 'Common.send' | translate }}\r\n
\r\n \r\n\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n \r\n \r\n \r\n
{{getPageText(\"footer\")}}
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
{{getPageText(\"footer\")}}
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
{{getPageText(\"footer\")}}
\r\n
\r\n","import { Component } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { TranslateService } from '@ngx-translate/core';\nimport { CookieService } from 'ngx-cookie-service';\n\nexport interface LangData {\n name: string;\n text: string;\n}\n\n@Component({\n selector: 'index',\n templateUrl: 'index.html',\n styleUrls: ['main.css'],\n})\nexport class IndexPage {\n isGrayscale: boolean = false;\n isFontscale: boolean = false;\n menuStatus: boolean = false;\n isDBLoad: boolean = false;\n isLocaleOpen: boolean = false;\n DBLoadError: boolean = false;\n\n menuProgress: number = 0;\n\n url: string =\n window.location.origin + (document.getElementById('siteLink')).value + 'api/';\n defaultLocale: string = 'uk';\n currentLocale: string = '';\n\n menuList: any[] = [];\n menuListLang: any[] = [];\n requestList: any[] = [];\n sliderList: any[] = [];\n linkList: any[] = [];\n pageText: any[] = [];\n localeList: any[] = [];\n requestForm: any[] = [];\n requestAttr: any[] = [];\n userRequest: any[] = [];\n userDataTypeValue: any[] = [];\n requestTemplate: any[] = [];\n requestRegion: any[] = [];\n requestCity: any[] = [];\n requestCourt: any[] = [];\n pollList: any[] = [];\n\n options: any = null;\n\n constructor(\n private http: HttpClient,\n private translateService: TranslateService,\n private cookieService: CookieService\n ) {\n if (window.location.hostname === 'localhost') {\n //--\n // this.url = \"https://poshuk-rishen.it-artel.ua:88/wab/api/\";\n // this.url = 'https://doc.it-artel.ua:89/wai/api/';\n this.url = 'https://usaid.it-artel.ua:10443/api/';\n } //--\n\n this.translateService.setDefaultLang(this.defaultLocale);\n if (!this.cookieService.get('lang')) {\n this.currentLocale = this.defaultLocale;\n this.translateService.use(this.currentLocale);\n let expires = new Date();\n expires.setDate(expires.getDate() + 1);\n this.cookieService.set('lang', this.currentLocale, expires, '/');\n } else {\n this.currentLocale = this.cookieService.get('lang');\n this.translateService.use(this.currentLocale);\n }\n this.options = {\n headers: new HttpHeaders({\n Authorization: 'Bearer ' + this.cookieService.get('access_token'),\n }),\n };\n this.dbRequest('Type');\n this.dbRequest('Lib');\n\n let interval = setInterval(() => {\n if (this.getDBStatus()) {\n clearInterval(interval);\n this.menuListLang = this.getList('Menu');\n this.menuListLang.sort((a: any, b: any) => ('' + a.Lang).localeCompare('' + b.Lang));\n }\n }, 50);\n }\n\n dbRequest(type) {\n switch (type) {\n case 'Type':\n this.isDBLoad = false;\n document.querySelector('html').classList.add('cdk-global-scrollblock');\n try {\n this.http.get(this.url + 'RequestType').subscribe((data) => {\n this.requestList = [];\n [].forEach.call(data, (e) => {\n if (e.isActual == false) {\n this.requestList.push({\n Title: e.title,\n Text: e.desk,\n Image: e.picture,\n Link: e.id,\n Doc: e.doc,\n });\n }\n });\n this.dbRequest('Form');\n });\n } catch {\n this.DBLoadError = true;\n }\n break;\n case 'Form':\n try {\n this.http.get(this.url + 'RequestForm').subscribe((data) => {\n this.requestForm = [];\n [].forEach.call(data, (e) => {\n if (e.isActual == false) {\n if (e.requestTypeRequestForms.length > 0) {\n this.requestForm.push({\n Id: e.id,\n Title: e.title,\n Condition: e.condition,\n Type: e.requestTypeRequestForms[0].requestTypeId,\n Position: e.requestTypeRequestForms[0].sortNember,\n });\n this.requestAttr.push(e.requestAttributes);\n }\n }\n });\n this.dbRequest('Template');\n });\n } catch {\n this.DBLoadError = true;\n }\n break;\n case 'Template':\n try {\n this.http.get(this.url + 'Template').subscribe((data) => {\n this.requestTemplate = [];\n [].forEach.call(data, (e) => {\n if (e.isActual == false) {\n this.requestTemplate.push(e);\n }\n });\n this.dbRequest('Region');\n });\n } catch {\n this.DBLoadError = true;\n }\n break;\n case 'Region':\n try {\n this.http.get(this.url + 'Region').subscribe((data) => {\n this.requestRegion = [];\n [].forEach.call(data, (e) => {\n if (e.isActual == false) {\n this.requestRegion.push(e);\n }\n });\n this.dbRequest('City');\n });\n } catch {\n this.DBLoadError = true;\n }\n break;\n case 'City':\n try {\n this.http.get(this.url + 'City').subscribe((data) => {\n this.requestCity = [];\n [].forEach.call(data, (e) => {\n this.requestCity.push(e);\n });\n this.dbRequest('Court');\n });\n } catch {\n this.DBLoadError = true;\n }\n break;\n case 'Court':\n try {\n this.http.get(this.url + 'Court').subscribe((data) => {\n this.requestCourt = [];\n [].forEach.call(data, (e) => {\n this.requestCourt.push(e);\n });\n this.dbRequest('New');\n });\n } catch {\n this.DBLoadError = true;\n }\n break;\n case 'New':\n try {\n this.http.get(this.url + 'New').subscribe((data) => {\n this.sliderList = [];\n [].forEach.call(data, (e) => {\n let date: any = '';\n if (e.date != '' && e.date != null && e.date != undefined) {\n date = e.date.split('T')[0].split('-');\n if (this.currentLocale == 'uk' || this.currentLocale == 'ru') {\n date = date.reverse();\n }\n date = date.join('.');\n }\n if (e.isActual == false) {\n this.sliderList.push({\n Id: e.id,\n Title: e.title,\n Text: e.text,\n Date: date,\n Image: e.image,\n Link: e.link,\n });\n }\n });\n this.dbRequest('Page');\n });\n } catch {\n this.DBLoadError = true;\n }\n break;\n case 'Page':\n try {\n this.http.get(this.url + 'PageElement').subscribe((data) => {\n this.linkList = [];\n this.pageText = [];\n this.menuList = [];\n this.localeList = [];\n [].forEach.call(data, (e) => {\n if (e.type == 'footer') {\n this.pageText.push({ Type: 'footer', Text: e.text, Lang: e.lang });\n } else if (e.type == 'disclaimer') {\n this.pageText.push({ Type: 'discText', Text: e.text, Lang: e.lang });\n this.pageText.push({ Type: 'discCond', Text: e.title, Lang: e.lang });\n this.pageText.push({ Type: 'discLink', Text: e.link, Lang: e.lang });\n } else if (e.type == 'sendDisclaimer') {\n this.pageText.push({ Type: 'sendDiscText', Text: e.text, Lang: e.lang });\n this.pageText.push({ Type: 'sendDiscLink', Text: e.link, Lang: e.lang });\n } else if (e.type == 'pollEmail') {\n this.pageText.push({ Type: 'pollEmail', Text: e.text, Lang: null });\n } else if (e.type == 'request') {\n this.pageText.push({ Type: 'request', Text: e.text, Lang: e.lang });\n } else if (e.type == 'requestInfo') {\n this.pageText.push({ Type: 'requestInfo', Text: e.text, Lang: e.lang });\n } else if (e.type == 'requestEdit') {\n this.pageText.push({ Type: 'requestEdit', Text: e.text, Lang: e.lang });\n } else if (e.type == 'saveMethod') {\n this.pageText.push({ Type: 'saveMethod', Text: e.title, Lang: null });\n } else if (e.type == 'requestTimer') {\n this.pageText.push({ Type: 'requestTimer', Text: e.title, Lang: null });\n } else if (e.type == 'requestTooltip') {\n this.pageText.push({ Type: 'requestTooltip', Text: e.title, Lang: null });\n } else if (e.type == 'poll') {\n if (e.isActual == false) {\n this.pollList.push({\n Id: e.id,\n Title: e.title,\n Text: e.text,\n Type: e.link,\n Star: e.image,\n });\n }\n } else if (e.type == 'skip') {\n this.pageText.push({ Type: 'skipA', Text: e.link.split('||')[0], Lang: e.lang });\n this.pageText.push({ Type: 'skipB', Text: e.link.split('||')[1], Lang: e.lang });\n this.pageText.push({ Type: 'skipD', Text: e.title, Lang: e.lang });\n this.pageText.push({ Type: 'skipI', Text: e.text, Lang: e.lang });\n let boolS = false;\n if (e.link.split('||')[2] != '') {\n boolS = JSON.parse(e.link.split('||')[2]);\n }\n this.pageText.push({ Type: 'skipS', Text: boolS, Lang: e.lang });\n } else if (e.type == 'info') {\n this.pageText.push({ Type: 'infoTitle', Text: e.title, Lang: e.lang });\n this.pageText.push({ Type: 'infoText', Text: e.text, Lang: e.lang });\n } else if (e.type == 'link') {\n if (e.isActual == false) {\n this.linkList.push({\n Id: e.id,\n Type: e.type,\n Title: e.title,\n Link: e.link,\n Image: e.image,\n Lang: e.lang,\n });\n }\n } else if (e.type == 'page') {\n if (e.isActual == false) {\n this.menuList.push({\n Id: e.id,\n Title: e.title,\n Text: e.text,\n Link: e.link,\n });\n }\n } else if (e.type == 'lang') {\n let titleArray = e.title.split('|&|');\n let textArray = e.text.split('|&|');\n [].forEach.call(titleArray, (e, indexE) => {\n this.localeList.push({\n Type: e.type,\n Title: titleArray[indexE],\n Text: textArray[indexE],\n });\n });\n }\n });\n document.getElementById('load').classList.add('load-finish');\n document.querySelector('html').classList.remove('cdk-global-scrollblock');\n this.isDBLoad = true;\n this.dbRequest('Data');\n });\n } catch {\n this.DBLoadError = true;\n }\n break;\n case 'Data':\n try {\n this.http.get(this.url + 'UserRequest').subscribe((data) => {\n // console.log(data);\n this.userRequest = [];\n let userRequestListRemove = [];\n\n [].forEach.call(data, (e) => {\n let date = new Date(e.createAt);\n date.setHours(0);\n date.setMinutes(0);\n date.setSeconds(0);\n\n let ca = new Date(e.createdAt);\n ca.setHours(0);\n ca.setMinutes(0);\n ca.setSeconds(0);\n ca.setMilliseconds(0);\n let timer = this.pageText.filter((x) => x.Type == 'requestTimer').map((x) => x);\n ca.setDate(ca.getDate() + parseInt(timer[0].Text));\n\n let dt = new Date();\n dt.setHours(0);\n dt.setMinutes(0);\n dt.setSeconds(0);\n dt.setMilliseconds(0);\n\n if (ca.getTime() < dt.getTime() && e.isActual == false) {\n userRequestListRemove.push(e);\n } else {\n this.userRequest.push({ Id: e.id, Date: e.createdAt });\n }\n });\n if (userRequestListRemove.length > 0) {\n [].forEach.call(userRequestListRemove, (c) => {\n this.http\n .delete(this.getUrl() + 'UserRequest/' + c.id, this.options)\n .subscribe((data) => {});\n });\n }\n // console.log(this.userRequest);\n });\n } catch {\n this.DBLoadError = true;\n }\n break;\n case 'Lib':\n try {\n this.http.get(this.url + 'userDataTypeValue').subscribe((data) => {\n this.userDataTypeValue = [];\n [].forEach.call(data, (e) => {\n this.userDataTypeValue.push({\n Id: e.id,\n Title: e.value,\n Email: e.email,\n Parent: e.uerDataTypeId,\n });\n });\n });\n } catch {\n this.DBLoadError = true;\n }\n break;\n }\n }\n\n openLocale(isMobile) {\n this.isLocaleOpen = !this.isLocaleOpen;\n if (isMobile) {\n document.getElementById('lang-selector-mobile').style.maxHeight =\n this.localeList.length * 64 + 'px';\n } else {\n document.getElementById('lang-selector').style.maxHeight = this.localeList.length * 32 + 'px';\n }\n }\n\n changeLocale(code) {\n this.currentLocale = code;\n this.translateService.use(this.currentLocale);\n let expires = new Date();\n expires.setDate(expires.getDate() + 1);\n this.cookieService.set('lang', this.currentLocale, expires, '/');\n\n this.menuListLang = this.getList('Menu');\n this.menuListLang.sort((a: any, b: any) => ('' + a.Lang).localeCompare('' + b.Lang));\n }\n\n switchMenu() {\n if (this.menuProgress == 0) {\n this.menuStatus = !this.menuStatus;\n this.menuProgress = 1;\n } else {\n this.menuProgress = 0;\n setTimeout(() => {\n this.menuStatus = !this.menuStatus;\n }, 600);\n }\n }\n\n refreshUser() {\n this.dbRequest('Data');\n }\n\n getDBStatus() {\n return this.isDBLoad;\n }\n\n getLocale() {\n return this.currentLocale;\n }\n\n getUrl() {\n return this.url;\n }\n\n getSaveMethod() {\n return this.pageText.filter((x) => x.Type == 'saveMethod').map((x) => x.Text);\n }\n\n getList(type) {\n let data: any;\n switch (type) {\n case 'Lib':\n data = [];\n [].forEach.call(this.userDataTypeValue, (e) => {\n let dataItem = JSON.parse(JSON.stringify(e));\n let langDataList = [];\n let titleList = e.Title.split('*L*');\n [].forEach.call(titleList, (c) => {\n if (c.split('*I*').length == 1) {\n c = this.defaultLocale + '*I*' + c;\n }\n langDataList.push({\n langId: c.split('*I*')[0],\n title: c.split('*I*')[1],\n });\n });\n let elements = langDataList.filter((x) => x.langId == this.currentLocale).map((x) => x);\n if (elements.length == 0) {\n elements = langDataList.filter((x) => x.langId == this.defaultLocale).map((x) => x);\n }\n dataItem.Title = elements[0].title;\n\n data.push(dataItem);\n });\n return data;\n case 'Menu':\n data = [];\n [].forEach.call(this.menuList, (e) => {\n let dataItem = JSON.parse(JSON.stringify(e));\n let langDataList = [];\n let titleList = e.Title.split('*L*');\n let textList: any = '';\n if (e.Text != null && e.Text != undefined) {\n textList = e.Text.split('*L*');\n }\n [].forEach.call(titleList, (c, indexE) => {\n if (c.split('*I*').length == 1) {\n c = this.defaultLocale + '*I*' + c;\n }\n langDataList.push({\n langId: c.split('*I*')[0],\n title: c.split('*I*')[1],\n text: textList[indexE],\n });\n });\n let elements = langDataList.filter((x) => x.langId == this.currentLocale).map((x) => x);\n if (elements.length == 0) {\n elements = langDataList.filter((x) => x.langId == this.defaultLocale).map((x) => x);\n }\n dataItem.Title = elements[0].title;\n dataItem.Text = elements[0].text;\n\n data.push(dataItem);\n });\n return data;\n case 'Request':\n data = [];\n [].forEach.call(this.requestList, (e) => {\n let dataItem = JSON.parse(JSON.stringify(e));\n let langDataList = [];\n let titleList = e.Title.split('*L*');\n let textList: any = '';\n let docList: any = '';\n if (e.Text != null && e.Text != undefined) {\n textList = e.Text.split('*L*');\n }\n if (e.Doc != null && e.Doc != undefined) {\n docList = e.Doc.split('*L*');\n }\n [].forEach.call(titleList, (c, indexE) => {\n if (c.split('*I*').length == 1) {\n c = this.defaultLocale + '*I*' + c;\n }\n langDataList.push({\n langId: c.split('*I*')[0],\n title: c.split('*I*')[1],\n text: textList[indexE],\n doc: docList[indexE],\n });\n });\n let elements = langDataList.filter((x) => x.langId == this.currentLocale).map((x) => x);\n if (elements.length == 0) {\n elements = langDataList.filter((x) => x.langId == this.defaultLocale).map((x) => x);\n }\n dataItem.Title = elements[0].title;\n dataItem.Text = elements[0].text;\n dataItem.Doc = elements[0].doc;\n\n data.push(dataItem);\n });\n return data;\n case 'Form':\n data = [];\n [].forEach.call(this.requestForm, (e) => {\n let dataItem = JSON.parse(JSON.stringify(e));\n let langDataList = [];\n let titleList = e.Title.split('*L*');\n [].forEach.call(titleList, (c) => {\n if (c.split('*I*').length == 1) {\n c = this.defaultLocale + '*I*' + c;\n }\n langDataList.push({\n langId: c.split('*I*')[0],\n title: c.split('*I*')[1],\n });\n });\n let elements = langDataList.filter((x) => x.langId == this.currentLocale).map((x) => x);\n if (elements.length == 0) {\n elements = langDataList.filter((x) => x.langId == this.defaultLocale).map((x) => x);\n }\n dataItem.Title = elements[0].title;\n data.push(dataItem);\n });\n return data;\n case 'Attr':\n data = [];\n let attArray = JSON.parse(JSON.stringify(this.requestAttr));\n let dataLiner = this.dataLiner(attArray, true);\n [].forEach.call(dataLiner, (e) => {\n let langDataList = [];\n let titleList = e.label.split('*L*');\n let descriptionList: any = [''];\n if (e.description != null && e.description != undefined) {\n descriptionList = e.description.split('*L*');\n }\n let dialogList: any = [''];\n if (e.dialog != null && e.dialog != undefined) {\n dialogList = e.dialog.split('*L*');\n }\n let tooltipList: any = [''];\n if (e.tooltip != null && e.tooltip != undefined) {\n tooltipList = e.tooltip.split('*L*');\n }\n let placeholderList: any = [''];\n if (e.placeholder != null && e.placeholder != undefined) {\n placeholderList = e.placeholder.split('*L*');\n }\n [].forEach.call(titleList, (c) => {\n if (c.split('*I*').length == 1) {\n c = this.defaultLocale + '*I*' + c;\n }\n\n let descriptionValue = '';\n let descriptionElement = descriptionList\n .filter((x) => x.split('*I*')[0] == this.currentLocale)\n .map((x) => x);\n if (descriptionElement.length == 0) {\n descriptionElement = descriptionList\n .filter((x) => x.split('*I*')[0] == this.defaultLocale)\n .map((x) => x);\n if (descriptionElement.length != 0) {\n descriptionValue = descriptionElement[0].split('*I*')[1];\n }\n } else {\n descriptionValue = descriptionElement[0].split('*I*')[1];\n }\n\n let dialogValue = '';\n let dialogElement = dialogList\n .filter((x) => x.split('*I*')[0] == this.currentLocale)\n .map((x) => x);\n if (dialogElement.length == 0) {\n dialogElement = dialogList\n .filter((x) => x.split('*I*')[0] == this.defaultLocale)\n .map((x) => x);\n if (dialogElement.length != 0) {\n dialogValue = dialogElement[0].split('*I*')[1];\n }\n } else {\n dialogValue = dialogElement[0].split('*I*')[1];\n }\n\n let tooltipValue = '';\n let tooltipElement = tooltipList\n .filter((x) => x.split('*I*')[0] == this.currentLocale)\n .map((x) => x);\n if (tooltipElement.length == 0) {\n tooltipElement = tooltipList\n .filter((x) => x.split('*I*')[0] == this.defaultLocale)\n .map((x) => x);\n if (tooltipElement.length != 0) {\n tooltipValue = tooltipElement[0].split('*I*')[1];\n }\n } else {\n tooltipValue = tooltipElement[0].split('*I*')[1];\n }\n\n let placeholderValue = '';\n let placeholderElement = placeholderList\n .filter((x) => x.split('*I*')[0] == this.currentLocale)\n .map((x) => x);\n if (placeholderElement.length == 0) {\n placeholderElement = placeholderList\n .filter((x) => x.split('*I*')[0] == this.defaultLocale)\n .map((x) => x);\n if (placeholderElement.length != 0) {\n placeholderValue = placeholderElement[0].split('*I*')[1];\n }\n } else {\n placeholderValue = placeholderElement[0].split('*I*')[1];\n }\n langDataList.push({\n langId: c.split('*I*')[0],\n label: c.split('*I*')[1],\n description: descriptionValue,\n dialog: dialogValue,\n tooltip: tooltipValue,\n placeholder: placeholderValue,\n });\n });\n let elements = langDataList.filter((x) => x.langId == this.currentLocale).map((x) => x);\n if (elements.length == 0) {\n elements = langDataList.filter((x) => x.langId == this.defaultLocale).map((x) => x);\n }\n if (elements[0].label != undefined) {\n e.label = elements[0].label;\n }\n if (elements[0].description != undefined) {\n e.description = elements[0].description;\n }\n if (e.type != 'order') {\n if (elements[0].dialog != undefined) {\n e.dialog = elements[0].dialog;\n }\n }\n if (elements[0].tooltip != undefined) {\n e.tooltip = elements[0].tooltip;\n }\n if (elements[0].placeholder != undefined) {\n e.placeholder = elements[0].placeholder;\n }\n });\n return attArray;\n case 'Template':\n data = [];\n [].forEach.call(this.requestTemplate, (e) => {\n let dataItem = JSON.parse(JSON.stringify(e));\n let langDataList = [];\n let titleList = e.title.split('*L*');\n [].forEach.call(titleList, (c) => {\n if (c.split('*I*').length == 1) {\n c = this.defaultLocale + '*I*' + c;\n }\n langDataList.push({\n langId: c.split('*I*')[0],\n title: c.split('*I*')[1],\n });\n });\n let elements = langDataList.filter((x) => x.langId == this.currentLocale).map((x) => x);\n if (elements.length == 0) {\n elements = langDataList.filter((x) => x.langId == this.defaultLocale).map((x) => x);\n }\n dataItem.Title = elements[0].title;\n\n data.push(dataItem);\n });\n return data;\n case 'Region':\n data = [];\n [].forEach.call(this.requestRegion, (e) => {\n let dataItem = JSON.parse(JSON.stringify(e));\n let langDataList = [];\n let titleList = e.title.split('*L*');\n [].forEach.call(titleList, (c) => {\n if (c.split('*I*').length == 1) {\n c = this.defaultLocale + '*I*' + c;\n }\n langDataList.push({\n langId: c.split('*I*')[0],\n title: c.split('*I*')[1],\n });\n });\n let elements = langDataList.filter((x) => x.langId == this.currentLocale).map((x) => x);\n if (elements.length == 0) {\n elements = langDataList.filter((x) => x.langId == this.defaultLocale).map((x) => x);\n }\n dataItem.title = elements[0].title;\n\n data.push(dataItem);\n });\n return data;\n case 'City':\n data = [];\n [].forEach.call(this.requestCity, (e) => {\n let dataItem = JSON.parse(JSON.stringify(e));\n let langDataList = [];\n let titleList = e.title.split('*L*');\n [].forEach.call(titleList, (c) => {\n if (c.split('*I*').length == 1) {\n c = this.defaultLocale + '*I*' + c;\n }\n langDataList.push({\n langId: c.split('*I*')[0],\n title: c.split('*I*')[1],\n });\n });\n let elements = langDataList.filter((x) => x.langId == this.currentLocale).map((x) => x);\n if (elements.length == 0) {\n elements = langDataList.filter((x) => x.langId == this.defaultLocale).map((x) => x);\n }\n dataItem.title = elements[0].title;\n\n data.push(dataItem);\n });\n return data;\n case 'Court':\n data = [];\n [].forEach.call(this.requestCourt, (e) => {\n let dataItem = JSON.parse(JSON.stringify(e));\n let langDataList = [];\n let titleList = e.title.split('*L*');\n [].forEach.call(titleList, (c) => {\n if (c.split('*I*').length == 1) {\n c = this.defaultLocale + '*I*' + c;\n }\n langDataList.push({\n langId: c.split('*I*')[0],\n title: c.split('*I*')[1],\n });\n });\n let elements = langDataList.filter((x) => x.langId == this.currentLocale).map((x) => x);\n if (elements.length == 0) {\n elements = langDataList.filter((x) => x.langId == this.defaultLocale).map((x) => x);\n }\n dataItem.title = elements[0].title;\n\n data.push(dataItem);\n });\n return data;\n case 'Slider':\n data = [];\n [].forEach.call(this.sliderList, (e) => {\n let dataItem = JSON.parse(JSON.stringify(e));\n let langDataList = [];\n let titleList = e.Title.split('*L*');\n let textList: any = '';\n if (e.Text != null && e.Text != undefined) {\n textList = e.Text.split('*L*');\n }\n [].forEach.call(titleList, (c, indexE) => {\n if (c.split('*I*').length == 1) {\n c = this.defaultLocale + '*I*' + c;\n }\n langDataList.push({\n langId: c.split('*I*')[0],\n title: c.split('*I*')[1],\n text: textList[indexE],\n });\n });\n let elements = langDataList.filter((x) => x.langId == this.currentLocale).map((x) => x);\n if (elements.length == 0) {\n elements = langDataList.filter((x) => x.langId == this.defaultLocale).map((x) => x);\n }\n dataItem.Title = elements[0].title;\n dataItem.Text = elements[0].text;\n\n data.push(dataItem);\n });\n return data;\n case 'Link':\n data = [];\n [].forEach.call(this.linkList, (e) => {\n let dataItem = JSON.parse(JSON.stringify(e));\n let langDataList = [];\n let titleList = e.Title.split('*L*');\n [].forEach.call(titleList, (c, indexE) => {\n if (c.split('*I*').length == 1) {\n c = this.defaultLocale + '*I*' + c;\n }\n langDataList.push({\n langId: c.split('*I*')[0],\n title: c.split('*I*')[1],\n });\n });\n let elements = langDataList.filter((x) => x.langId == this.currentLocale).map((x) => x);\n if (elements.length == 0) {\n elements = langDataList.filter((x) => x.langId == this.defaultLocale).map((x) => x);\n }\n dataItem.Title = elements[0].title;\n data.push(dataItem);\n });\n return data;\n case 'Page':\n return this.pageText;\n case 'Lang':\n return this.localeList;\n case 'User':\n return this.userRequest;\n case 'Poll':\n data = [];\n [].forEach.call(this.pollList, (e) => {\n let dataItem = JSON.parse(JSON.stringify(e));\n let langDataList = [];\n let titleList = e.Title.split('*L*');\n let textList: any = '';\n if (e.Text != null && e.Text != undefined) {\n textList = e.Text.split('*L*');\n }\n [].forEach.call(titleList, (c, indexE) => {\n if (c.split('*I*').length == 1) {\n c = this.defaultLocale + '*I*' + c;\n }\n langDataList.push({\n langId: c.split('*I*')[0],\n title: c.split('*I*')[1],\n text: textList[indexE],\n });\n });\n let elements = langDataList.filter((x) => x.langId == this.currentLocale).map((x) => x);\n if (elements.length == 0) {\n elements = langDataList.filter((x) => x.langId == this.defaultLocale).map((x) => x);\n }\n dataItem.Title = elements[0].title;\n dataItem.Text = elements[0].text;\n\n data.push(dataItem);\n });\n return data;\n }\n return [];\n }\n\n dataLiner(array, allow) {\n let result = [];\n if (array == null) {\n return result;\n }\n [].forEach.call(array, (e) => {\n if (Array.isArray(e)) {\n let column = this.dataLiner(e, allow);\n [].forEach.call(column, (c) => {\n result.push(c);\n });\n } else {\n if (e.type == 'column' || e.type == 'copy') {\n let column = this.dataLiner(e.columns, allow);\n if (allow) {\n result.push(e);\n }\n [].forEach.call(column, (c) => {\n result.push(c);\n });\n } else {\n result.push(e);\n }\n }\n });\n result.sort(function (a, b) {\n return parseInt(a.position) - parseInt(b.position);\n });\n return result;\n }\n\n getPageElement(type) {\n if (this.pageText == undefined) {\n return false;\n }\n let elements = this.pageText.filter((x) => x.Type == type).map((x) => x);\n let indexX = elements\n .map(function (x) {\n return x.Lang;\n })\n .indexOf(this.currentLocale);\n if (indexX == -1) {\n indexX = elements\n .map(function (x) {\n return x.Lang;\n })\n .indexOf(this.defaultLocale);\n }\n if (indexX == -1) {\n return false;\n }\n return elements[indexX].Text;\n }\n\n getPollSettings() {\n return this.pageText.filter((x) => x.Type == 'pollEmail').map((x) => x.Text);\n }\n\n getUserHelp(type) {\n switch (type) {\n case 'gs':\n return this.isGrayscale;\n case 'fs':\n return this.isFontscale;\n }\n }\n\n setUserHelp(type) {\n switch (type) {\n case 'gs':\n this.isGrayscale = !this.isGrayscale;\n break;\n case 'fs':\n this.isFontscale = !this.isFontscale;\n break;\n }\n }\n\n hideHeaderMobileForDiiaQrPage() {\n return location.pathname.includes('diia-qr') && window.innerWidth < 400;\n }\n}\n","
\n
\n
\n
\n \n {{ 'Common.' + data.Title | translate }}\n
\n
\n \n
\n \n \n \n
\n
\n\n
\n
\n \n \n \n
\n
\n \n
\n
\n
\n \n
{{data.Title}}
\n
\n
\n
\n
\n \n {{ 'Common.' + data.Title | translate }}\n
\n
\n
\n
\n
\n\n\n\n
\n
accessible
\n
sort_by_alpha
\n
\n\n
\n \n
\n
\n
\n
\n
\n
\n

\n Вибачте, але сайт тимчасово не доступний.\n
\n Зачекайте деякий час та спробуйте знову.\n

\n
\n
\n","import {Component, Inject} from '@angular/core';\r\nimport {MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\r\n\r\nexport interface DialogData {\r\n text: string;\r\n}\r\n\r\n@Component({\r\n selector: 'info-menu',\r\n templateUrl: 'info-menu.html',\r\n styleUrls: ['menu.css']\r\n})\r\n\r\nexport class InfoMenu {\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n ){\r\n\r\n }\r\n \r\n close() {\r\n this.dialogRef.close();\r\n }\r\n \r\n}","
\r\n
\r\n

{{ data.text }}

\r\n
\r\n
\r\n \r\n
\r\n
","export interface DiiaNavigationTransferData {\n base64Array: any[],\n fileEx: string,\n pdfHtml: any\n blob: Blob[]\n attachments: EmailAttachment[]\n mailingData: {\n userEmail: string\n newEmailList: any[]\n title: string\n }\n}\n\nexport interface DiiaMobileSignSaveData extends DiiaNavigationTransferData{\n files: FilesData[]\n}\n\nexport interface DiiaSignedNavigationTransferData extends DiiaMobileSignSaveData{\n singnedFiles: string\n}\nexport interface EmailAttachment {\n FileName: string,\n Content: any,\n KeyData: string,\n Password: string,\n}\nexport interface EmailRequestBody{\n courtId?:number,\n EmailAdresses: string[],\n Subject: string,\n TextBody: string\n Attachments: EmailAttachment[],\n}\n\nexport enum DiiaStatus {\n notconnected = 'notconnected',\n wait = 'wait',\n connected = 'connected',\n subscribe = 'subscribe',\n link = 'link',\n sign = 'sign',\n save = 'save',\n error = 'error',\n}\n\nexport const DiiaStatusConst = {\n notconnected: 'Not Connected',\n wait: 'Wait for File',\n connected: 'Connected',\n subscribe: 'Subscribe',\n link: 'Diia Signer Link',\n sign: 'Signatures Files Get',\n save: 'Files Saved',\n error: 'Error',\n};\n\nexport interface FilesData {\n name: string;\n mime: string;\n data: string;\n hash?: string;\n}\n\nexport interface DiiaHashFile {\n fileName: string;\n fileHash: string;\n}\n\nexport interface DiiaSignFiles {\n signedItems: DiiaSignFile[];\n}\n\nexport interface DiiaSignFile {\n name: string;\n signature: string;\n}\n\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { HttpClient } from '@angular/common/http';\nimport { forkJoin } from 'rxjs';\n\nimport { IndexedDBService } from '../services/indexed-db.service';\nimport { DiiaMobileSignSaveData, DiiaSignedNavigationTransferData } from '../interfaces/diia-interfaces';\n\n@Component({\n selector: 'app-loading',\n template: '

{{error}}

',\n})\nexport class LoadingComponent implements OnInit {\n\n private backendLink: string = location.href.includes('wai') ? '/wai' : '';\n error: string = '';\n\n constructor(\n private router: Router,\n private indexedDBService: IndexedDBService,\n private http: HttpClient,\n private route: ActivatedRoute) {\n console.log('constructor');\n }\n\n ngOnInit(): void {\n const fetchDbData = this.indexedDBService.fetchData();\n const id = this.route.snapshot.params['id'];\n const fetchServerData = this.http.get(`${this.backendLink}/api/sign-receiver?id=${id}`);\n\n forkJoin({ dbData: fetchDbData, serverData: fetchServerData }).subscribe(\n ({ dbData, serverData }: { dbData: DiiaMobileSignSaveData[], serverData: { result: string } }) => {\n console.log('Дані з бази даних:', dbData);\n console.log('Відповідь від сервера:', serverData);\n\n const state: DiiaSignedNavigationTransferData = { ...dbData.pop(), singnedFiles: serverData.result };\n\n this.router.navigate(['/signed-document'], { state })\n },\n error => {\n console.error('Помилка:', error);\n this.error = JSON.stringify(error);\n },\n );\n }\n\n}\n","import {NgModule} from '@angular/core';\r\nimport {A11yModule} from '@angular/cdk/a11y';\r\nimport {DragDropModule} from '@angular/cdk/drag-drop';\r\nimport {PortalModule} from '@angular/cdk/portal';\r\nimport {ScrollingModule} from '@angular/cdk/scrolling';\r\nimport {CdkStepperModule} from '@angular/cdk/stepper';\r\nimport {CdkTableModule} from '@angular/cdk/table';\r\nimport {CdkTreeModule} from '@angular/cdk/tree';\r\nimport {MatAutocompleteModule} from '@angular/material/autocomplete';\r\nimport {MatBadgeModule} from '@angular/material/badge';\r\nimport {MatBottomSheetModule} from '@angular/material/bottom-sheet';\r\nimport {MatButtonModule} from '@angular/material/button';\r\nimport {MatButtonToggleModule} from '@angular/material/button-toggle';\r\nimport {MatCardModule} from '@angular/material/card';\r\nimport {MatCheckboxModule} from '@angular/material/checkbox';\r\nimport {MatChipsModule} from '@angular/material/chips';\r\nimport {MatStepperModule} from '@angular/material/stepper';\r\nimport {MatDatepickerModule} from '@angular/material/datepicker';\r\nimport {MatDialogModule} from '@angular/material/dialog';\r\nimport {MatDividerModule} from '@angular/material/divider';\r\nimport {MatExpansionModule} from '@angular/material/expansion';\r\nimport {MatGridListModule} from '@angular/material/grid-list';\r\nimport {MatIconModule} from '@angular/material/icon';\r\nimport {MatInputModule} from '@angular/material/input';\r\nimport {MatListModule} from '@angular/material/list';\r\nimport {MatMenuModule} from '@angular/material/menu';\r\nimport {MatNativeDateModule, MatRippleModule} from '@angular/material/core';\r\nimport {MatPaginatorModule} from '@angular/material/paginator';\r\nimport {MatProgressBarModule} from '@angular/material/progress-bar';\r\nimport {MatProgressSpinnerModule} from '@angular/material/progress-spinner';\r\nimport {MatRadioModule} from '@angular/material/radio';\r\nimport {MatSelectModule} from '@angular/material/select';\r\nimport {MatSidenavModule} from '@angular/material/sidenav';\r\nimport {MatSliderModule} from '@angular/material/slider';\r\nimport {MatSlideToggleModule} from '@angular/material/slide-toggle';\r\nimport {MatSnackBarModule} from '@angular/material/snack-bar';\r\nimport {MatSortModule} from '@angular/material/sort';\r\nimport {MatTableModule} from '@angular/material/table';\r\nimport {MatTabsModule} from '@angular/material/tabs';\r\nimport {MatToolbarModule} from '@angular/material/toolbar';\r\nimport {MatTooltipModule} from '@angular/material/tooltip';\r\nimport {MatTreeModule} from '@angular/material/tree';\r\n\r\n@NgModule({\r\n exports: [\r\n A11yModule,\r\n CdkStepperModule,\r\n CdkTableModule,\r\n CdkTreeModule,\r\n DragDropModule,\r\n MatAutocompleteModule,\r\n MatBadgeModule,\r\n MatBottomSheetModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatStepperModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatNativeDateModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatTreeModule,\r\n PortalModule,\r\n ScrollingModule,\r\n ]\r\n})\r\nexport class DemoMaterialModule {}","import {Component} from '@angular/core';\r\nimport {MatDialog} from '@angular/material/dialog';\r\nimport {HttpClient} from '@angular/common/http';\r\nimport {CookieService} from 'ngx-cookie-service';\r\nimport {Router, ActivatedRoute, Event, NavigationEnd} from '@angular/router';\r\n\r\nimport {IndexPage} from '.';\r\n\r\nexport interface DialogData {\r\n name: string;\r\n status: string;\r\n data: ItemData;\r\n}\r\n\r\nexport interface ItemData {\r\n Id: number;\r\n Title: string;\r\n Text: string;\r\n Link: string;\r\n Date: string;\r\n Image: string;\r\n Lang: string;\r\n}\r\n\r\nexport interface LangData {\r\n id: number;\r\n name: string;\r\n}\r\n \r\n@Component({\r\n selector: 'news-user',\r\n templateUrl: 'news.html',\r\n styleUrls: ['main.css'],\r\n})\r\n\r\nexport class NewsUserPage {\r\n\r\n isGrayscale = false;\r\n isFontscale = false;\r\n \r\n currentLocale: string = \"\";\r\n \r\n sliderList: any[] = [];\r\n \r\n dataBase: ItemData = {Id: 0, Title: \"\", Image: \"\", Date: \"\", Text: \"\", Link: \"\", Lang: \"\"};\r\n newCode: any;\r\n \r\n constructor(\r\n private router: Router,\r\n private indexPage: IndexPage,\r\n public dialog: MatDialog,\r\n private route: ActivatedRoute,\r\n ){\r\n router.events.subscribe( (event: Event) => {\r\n if (event instanceof NavigationEnd) {\r\n this.pageLoad();\r\n }\r\n });\r\n\r\n if(this.route.snapshot.params['link'] == ''){\r\n this.router.navigate(['/']);\r\n }else{\r\n this.pageLoad();\r\n }\r\n }\r\n\r\n pageLoad(){\r\n this.newCode = parseInt(this.route.snapshot.params['link']);\r\n this.isGrayscale = this.indexPage.getUserHelp(\"gs\");\r\n this.isFontscale = this.indexPage.getUserHelp(\"fs\");\r\n this.currentLocale = this.indexPage.getLocale();\r\n \r\n let interval = setInterval(() => {\r\n if(this.indexPage.getDBStatus()){\r\n clearInterval(interval);\r\n this.sliderList = this.indexPage.getList(\"Slider\");\r\n let indexF = this.sliderList.map(function(x){ return x.Id; }).indexOf(this.newCode);\r\n if(indexF != -1){\r\n this.dataBase = {Id: this.sliderList[indexF].Id, Title: this.sliderList[indexF].Title, Text: this.sliderList[indexF].Text, Link: this.sliderList[indexF].Link, Lang: this.sliderList[indexF].Lang, Date: this.sliderList[indexF].Date, Image: this.sliderList[indexF].Image};\r\n let newElementRef = document.querySelector(\".new-text\");\r\n if(newElementRef != null){\r\n newElementRef.innerHTML = this.dataBase.Text;\r\n }\r\n }\r\n }\r\n }, 50);\r\n }\r\n\r\n getListText(){\r\n if(this.currentLocale != this.indexPage.getLocale()){\r\n this.currentLocale = this.indexPage.getLocale();\r\n this.sliderList = this.indexPage.getList(\"Slider\");\r\n let indexF = this.sliderList.map(function(x){ return x.Id; }).indexOf(this.newCode);\r\n if(indexF != -1){\r\n this.dataBase = {Id: this.sliderList[indexF].Id, Title: this.sliderList[indexF].Title, Text: this.sliderList[indexF].Text, Link: this.sliderList[indexF].Link, Lang: this.sliderList[indexF].Lang, Date: this.sliderList[indexF].Date, Image: this.sliderList[indexF].Image};\r\n let newElementRef = document.querySelector(\".new-text\");\r\n if(newElementRef != null){\r\n newElementRef.innerHTML = this.dataBase.Text;\r\n }\r\n }\r\n }\r\n return this.dataBase;\r\n }\r\n\r\n getPageText(type){\r\n return this.indexPage.getPageElement(type);\r\n }\r\n\r\n}","\r\n
\r\n
\r\n

{{getListText().Title}}

\r\n \r\n
{{getListText().Text}}
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
{{getPageText(\"footer\")}}
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
{{getPageText(\"footer\")}}
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
{{getPageText(\"footer\")}}
\r\n
","import {Component, Inject} from '@angular/core';\r\nimport {MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\r\n\r\nexport interface DialogData {\r\n code: string;\r\n}\r\n\r\n@Component({\r\n selector: 'request-code-menu',\r\n templateUrl: 'request-code-menu.html',\r\n styleUrls: ['menu.css']\r\n})\r\n\r\nexport class RequestCodeMenu {\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n ){\r\n\r\n }\r\n\r\n close() {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n home(){\r\n this.dialogRef.close(false);\r\n }\r\n\r\n buffer(event){\r\n const selBox = document.createElement('textarea');\r\n selBox.style.position = 'fixed';\r\n selBox.style.left = '0';\r\n selBox.style.top = '0';\r\n selBox.style.opacity = '0';\r\n selBox.value = event.value;\r\n document.body.appendChild(selBox);\r\n selBox.focus();\r\n selBox.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(selBox);\r\n }\r\n \r\n}","
\r\n
{{ 'Common.saveFormSuccess' | translate }}
\r\n
\r\n
{{ 'Common.unicCode' | translate }}
\r\n \r\n \r\n \r\n
\r\n \r\n
{{ 'Common.formContinueText' | translate }}
\r\n
\r\n \r\n \r\n
\r\n
","import { Component, Inject } from \"@angular/core\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\n\r\nexport interface DialogData {\r\n text: string;\r\n box: string;\r\n doc: string;\r\n key: string;\r\n}\r\n\r\n@Component({\r\n selector: \"request-dialog\",\r\n templateUrl: \"request-dialog.html\",\r\n styleUrls: [\"menu.css\"],\r\n})\r\nexport class RequestDialog {\r\n captcha: any = null;\r\n check = false;\r\n error = false;\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: DialogData) {\r\n if (window.location.hostname == \"localhost\") {\r\n //--\r\n this.captcha = \"localhost\";\r\n this.check = true;\r\n } //--\r\n setTimeout(() => {\r\n document.getElementById(\"request\").classList.remove(\"captcha-hide\");\r\n }, 500);\r\n }\r\n\r\n close() {\r\n this.dialogRef.close(false);\r\n }\r\n\r\n checkBoxChange(event) {\r\n this.check = event.checked;\r\n }\r\n\r\n resolved(captchaResponse: string) {\r\n this.captcha = captchaResponse;\r\n }\r\n\r\n openRequestForm() {\r\n if (this.captcha != null && this.check) {\r\n this.dialogRef.close(true);\r\n } else {\r\n this.error = true;\r\n setTimeout(() => {\r\n this.error = false;\r\n }, 2000);\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
{{data.text}}
\r\n
{{data.doc}}
\r\n \r\n {{data.box}}\r\n \r\n
\r\n \r\n
\r\n
{{ 'Common.allFieldError' | translate }}
\r\n
{{ 'Common.send' | translate }}
\r\n
\r\n","import { Component, ElementRef, ViewChild, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport * as Quill from 'quill';\nimport { STEPPER_GLOBAL_OPTIONS } from '@angular/cdk/stepper';\nimport QuillBetterTable from 'quill-better-table';\nimport { MatDialog } from '@angular/material/dialog';\nimport { HttpClient } from '@angular/common/http';\nimport { ThemePalette } from '@angular/material/core';\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner';\nimport { saveAs } from 'file-saver';\nimport {\n Document,\n Packer,\n Paragraph,\n TextRun,\n AlignmentType,\n Table,\n WidthType,\n TableRow,\n TableCell,\n} from 'docx';\nimport * as pdfMake from 'pdfmake/build/pdfmake';\nimport * as pdfFonts from 'pdfmake/build/vfs_fonts';\nimport * as htmlToPdfmake from 'html-to-pdfmake';\n\nimport { IndexPage } from '.';\nimport { DocumentSave } from './document-save';\nimport { InfoMenu } from './info-menu';\nimport { RequestPoll } from './request-poll';\nimport { Router } from '@angular/router';\nimport { DiiaNavigationTransferData } from './interfaces/diia-interfaces';\n\nexport interface DialogData {\n name: string;\n text: string;\n content: any[];\n order: any[];\n emailId: number;\n emailList: any[];\n attachment: any[];\n templateEmail: any[];\n}\n\n@Component({\n selector: 'request-edit',\n templateUrl: 'request-edit.html',\n styleUrls: ['main.css'],\n providers: [\n {\n provide: STEPPER_GLOBAL_OPTIONS,\n useValue: { displayDefaultIndicatorType: false },\n },\n IndexPage,\n ],\n})\nexport class RequestEdit {\n userEmailError: boolean = false;\n isSending: boolean = false;\n isLoading: boolean = false;\n\n barValue: number = 50;\n requestEmail: number = 0;\n\n requestTitle: string = '';\n requestText: string = '';\n\n requestEmailList: any[] = [];\n editorQuill: any[] = [];\n label: any[];\n docSaveList: any[];\n\n editorQuillPrint: any;\n fileEx: any = null;\n barColor: ThemePalette = 'primary';\n barMode: ProgressSpinnerMode = 'indeterminate';\n\n @ViewChild('userEmail', { static: false }) userEmail: ElementRef;\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\n public dialog: MatDialog,\n private indexPage: IndexPage,\n private http: HttpClient,\n private router: Router\n ) {\n this.requestTitle = this.data.name;\n this.requestText = this.data.text;\n this.requestTitle = this.data.name;\n\n this.requestEmail = this.data.emailId;\n this.requestEmailList = this.data.emailList;\n this.label = [];\n [].forEach.call(this.data.order, (e) => {\n let tableTitle = e.title.split('*L*');\n let elements = tableTitle\n .filter((x) => x.split('*I*')[0] == this.indexPage.defaultLocale)\n .map((x) => x);\n if (elements.length == 0) {\n tableTitle = tableTitle[0];\n } else {\n tableTitle = elements[0].split('*I*')[1];\n }\n this.label.push(tableTitle);\n });\n }\n\n ngAfterViewInit() {\n let toolbarOptions = [\n ['bold', 'italic'],\n [{ align: '' }, { align: 'center' }, { align: 'right' }, { align: 'justify' }],\n ];\n this.editorQuill = [];\n this.editorQuillPrint = document.getElementById('editorQuillPrint');\n [].forEach.call(this.data.content, (e, indexE) => {\n Quill.register({ 'modules/better-table': QuillBetterTable }, true);\n\n let element = document.getElementById('editorQuill' + indexE);\n let editor = new Quill.default(element, {\n modules: {\n toolbar: toolbarOptions,\n table: false,\n 'better-table': {},\n keyboard: {\n bindings: QuillBetterTable.keyboardBindings,\n 'list autofill': {\n prefix: /^\\s*(T{1,1}\\.|\\*)$/,\n },\n },\n },\n placeholder: 'Текст шаблону',\n theme: 'snow',\n });\n this.editorQuill.push(editor);\n this.editorQuill[indexE].container.children[0].innerHTML = e;\n });\n }\n\n getPageText(type) {\n return this.indexPage.getPageElement(type);\n }\n\n createFile(callback) {\n if (this.userEmail.nativeElement.value == '' && callback != 'save') {\n this.userEmailError = true;\n return false;\n } else {\n this.userEmailError = false;\n }\n\n this.editorQuillPrint.innerHTML = '';\n let docArray: any[] = [];\n this.docSaveList = [];\n [].forEach.call(this.editorQuill, (e, indexE) => {\n this.editorQuillPrint.innerHTML = e.container.children[0].innerHTML;\n let reg = new RegExp(/<.span>/gi);\n let test = reg.test(this.editorQuillPrint.innerHTML);\n if (test) {\n this.editorQuillPrint.innerHTML = this.editorQuillPrint.innerHTML.replace(reg, '');\n }\n reg = new RegExp(/
/gi);\n test = reg.test(this.editorQuillPrint.innerHTML);\n if (test) {\n this.editorQuillPrint.innerHTML = this.editorQuillPrint.innerHTML.replace(reg, '');\n }\n\n let paragraffArray: any[] = [];\n\n [].forEach.call(document.getElementById('editorQuillPrint').children, (e) => {\n let align = AlignmentType.LEFT;\n if (e.classList.contains('ql-align-center')) {\n align = AlignmentType.CENTER;\n } else if (e.classList.contains('ql-align-right')) {\n align = AlignmentType.RIGHT;\n }\n let childArray = [];\n let removeAll = [];\n if (e.children.length > 0) {\n [].forEach.call(e.children, (c, indexC) => {\n if (c.nodeName == 'STRONG') {\n childArray.push(new TextRun({ text: c.innerHTML, bold: true }));\n } else if (c.nodeName == 'ITALIC') {\n childArray.push(new TextRun({ text: c.innerHTML, italics: true }));\n } else if (c.nodeName == 'SPAN') {\n childArray.push(new TextRun({ text: c.innerHTML }));\n } else if (c.nodeName == 'TABLE') {\n let rowsArray: TableRow[] = [];\n let colsSize = [];\n let parentSize = parseInt(c.style.width.split('px')[0]);\n [].forEach.call(c.children, (d) => {\n if (d.nodeName == 'TBODY') {\n [].forEach.call(d.children, (f) => {\n let cellArray = [];\n [].forEach.call(f.children, (g, indexG) => {\n let tableAlign = AlignmentType.LEFT;\n if (g.children[0].classList.contains('ql-align-center')) {\n tableAlign = AlignmentType.CENTER;\n } else if (g.children[0].classList.contains('ql-align-right')) {\n tableAlign = AlignmentType.RIGHT;\n }\n let tableChild = [];\n let removeTable = [];\n [].forEach.call(g.children[0].children, (s, indexS) => {\n if (s.nodeName == 'STRONG') {\n tableChild.push(new TextRun({ text: s.innerHTML, bold: true }));\n } else if (s.nodeName == 'ITALIC') {\n tableChild.push(new TextRun({ text: s.innerHTML, italics: true }));\n } else if (s.nodeName == 'SPAN') {\n tableChild.push(new TextRun({ text: s.innerHTML }));\n }\n removeTable.push(s);\n });\n [].forEach.call(removeTable, (r) => {\n g.children[0].removeChild(r);\n });\n cellArray.push(\n new TableCell({\n children: [\n new Paragraph({\n text: g.children[0].innerHTML,\n alignment: tableAlign,\n children: tableChild,\n }),\n ],\n width: { size: colsSize[indexG], type: WidthType.PERCENTAGE },\n })\n );\n });\n rowsArray.push(\n new TableRow({\n children: cellArray,\n })\n );\n });\n } else if (d.nodeName == 'COLGROUP') {\n [].forEach.call(d.children, (f) => {\n colsSize.push(f.width / parentSize);\n });\n }\n });\n paragraffArray.push(\n new Table({ width: { size: 100, type: WidthType.PERCENTAGE }, rows: rowsArray })\n );\n }\n removeAll.push(c);\n });\n [].forEach.call(removeAll, (r) => {\n e.removeChild(r);\n });\n }\n paragraffArray.push(\n new Paragraph({ text: e.innerHTML, alignment: align, children: childArray })\n );\n });\n\n const doc = new Document();\n\n doc.addSection({\n properties: {},\n children: paragraffArray,\n });\n docArray.push(doc);\n });\n\n let base64Array: any[] = [];\n let blobArray: any[] = [];\n this.fileEx = [];\n\n let expectedIterations = docArray.length;\n\n let completedIterations = 0;\n\n docArray.forEach((e) => {\n Packer.toBlob(e).then((blob) => {\n let reader = new FileReader();\n let timeInMs = Date.now();\n this.fileEx.push('request' + timeInMs + '.docx');\n blob = this.blobToFile(blob, this.fileEx[this.fileEx.length - 1]);\n reader.readAsDataURL(blob);\n\n reader.onloadend = function () {\n base64Array.push(reader.result);\n blobArray.push(blob);\n\n completedIterations++;\n\n if (completedIterations === expectedIterations) {\n this.documentSender(callback, base64Array, blobArray);\n }\n }.bind(this);\n });\n });\n }\n\n documentSender(callback, base64Array, blob) {\n let confirm = null;\n switch (callback) {\n case 'mail':\n this.email(base64Array, false);\n break;\n case 'secure':\n const state: DiiaNavigationTransferData = {\n blob,\n base64Array,\n fileEx: this.fileEx,\n pdfHtml: this.generatePdfHtml(),\n attachments: this.data.attachment,\n mailingData: {\n title: this.data.name,\n newEmailList: this.data.templateEmail,\n userEmail: this.userEmail.nativeElement.value,\n },\n };\n this.router\n .navigate(['/diia-qr'], { state })\n .then(() => this.dialogRef.close())\n .catch(console.error);\n // confirm = this.dialog.open(ETSPMenu, {\n // minWidth: '80%',\n // maxWidth: '1000px',\n // disableClose: true,\n // data: { file: base64Array, fileEx: this.fileEx },\n // });\n // confirm.afterClosed().subscribe(result => {\n // if (result != false && result != true) {\n // this.email(result, true);\n // } else if (result == true) {\n // this.dialogRef.close(true);\n // }\n // });\n break;\n case 'save':\n confirm = this.dialog.open(DocumentSave, {\n width: '600px',\n maxWidth: '90vw',\n disableClose: true,\n data: {},\n });\n confirm.afterClosed().subscribe(async (result) => {\n switch (result) {\n case 'docx':\n [].forEach.call(blob, (e, indexE) => {\n // let repReg = new RegExp(//, \"g\");\n // e = e.replace(repReg, \"\");\n\n saveAs(e, this.fileEx[indexE]);\n });\n break;\n case 'rtf':\n [].forEach.call(blob, (e, indexE) => {\n // let repReg = new RegExp(//, \"g\");\n // e = e.replace(repReg, \"\");\n\n let ex = this.fileEx[indexE].replace('docx', 'rtf');\n var blobRtf = new Blob([e], { type: 'text/rtf;charset=utf-8' });\n saveAs(blobRtf, ex);\n });\n break;\n case 'pdf':\n // pdfMake.createPdf(this.generatePdf()).download();\n const blobPdf = await new Promise((resolve, reject) => {\n pdfMake.createPdf(this.generatePdf()).getDataUrl((dataUrl: string) => {\n fetch(dataUrl)\n .then((res) => res.blob())\n .then(resolve)\n .catch(reject);\n });\n });\n let ex = this.fileEx[0].replace('docx', 'pdf');\n\n saveAs(blobPdf, ex);\n break;\n }\n this.pollDialog();\n });\n break;\n }\n }\n\n generatePdfHtml() {\n let pdfHtml: string = '';\n this.editorQuill.forEach((element, index) => {\n if (index > 0) {\n pdfHtml += \"
\";\n }\n pdfHtml += element.container.children[0].innerHTML;\n });\n\n return pdfHtml;\n }\n generatePdf() {\n pdfMake.vfs = pdfFonts.pdfMake.vfs;\n const html = htmlToPdfmake(this.generatePdfHtml(), {\n styles: {\n 'ql-editor': { alignment: 'left', lineHeight: 1.42, margin: [0, 0, 0, 0] },\n 'ql-align-right': { alignment: 'right', margin: [0, 0, 0, 0] },\n 'ql-align-left': { alignment: 'left', margin: [0, 0, 0, 0] },\n 'ql-align-center': { alignment: 'center', margin: [0, 0, 0, 0] },\n 'html-p': { margin: [0, 0, 0, 0] },\n },\n defaultStyles: {\n p: {\n margin: [0, 0, 0, 0],\n },\n },\n });\n const doc: any = {\n content: html,\n styles: {\n 'ql-editor': { alignment: 'left', lineHeight: 1.42, margin: [0, 0, 0, 0] },\n 'ql-align-right': { alignment: 'right', margin: [0, 0, 0, 0] },\n 'ql-align-left': { alignment: 'left', margin: [0, 0, 0, 0] },\n 'ql-align-center': { alignment: 'center', margin: [0, 0, 0, 0] },\n 'html-p': { margin: [0, 0, 0, 0] },\n },\n };\n\n return doc;\n }\n\n email(docs, secure) {\n [].forEach.call(docs, (e, indexE) => {\n this.isSending = true;\n let newEmailList = [];\n this.requestEmail = 0;\n if (secure) {\n this.fileEx[indexE] += '.p7s';\n }\n let document = e.split(',');\n if (document.length == 1) {\n document = document[0];\n } else {\n document = document[1];\n }\n\n if (this.data.templateEmail[indexE].email != null) {\n newEmailList.push(this.data.templateEmail[indexE].email);\n } else {\n this.requestEmail = this.data.templateEmail[indexE].court;\n }\n // newEmailList.push(this.userEmail.nativeElement.value);\n let attachments = [\n {\n FileName: this.fileEx[indexE],\n Content: document,\n KeyData: '',\n Password: '',\n },\n ];\n attachments = attachments.concat(this.data.attachment);\n let addDoc = '';\n [].forEach.call(this.data.attachment, (e, indexE) => {\n if (indexE != 0) {\n addDoc += ', ';\n }\n addDoc += e.FileName;\n });\n if (addDoc != '') {\n addDoc = '\\nДодаткові документи: ' + addDoc;\n }\n // console.log(attachments);\n let json = {\n courtId: this.requestEmail,\n EmailAdresses: newEmailList,\n Subject: 'Створена нова заява в категорії: \"' + this.data.name + '\"',\n TextBody:\n 'Заява: ' +\n this.fileEx[indexE] +\n addDoc +\n '\\nEmail користувача: ' +\n this.userEmail.nativeElement.value,\n Attachments: attachments,\n };\n // console.log(json);\n // return;\n this.http.post(this.indexPage.getUrl() + 'email', json).subscribe((data) => {\n // console.log(\"Post data:\");\n // console.log(data);\n if (indexE == docs.length - 1) {\n this.isSending = false;\n ///////////////////////////////////////////////\n this.pollDialog(true);\n // let counter = 10;\n // let interval = setInterval(() => {\n // let pollTitle = this.indexPage.getList(\"Poll\").filter(x => x.Type == \"0\").map(x => x.Title)[0];\n // console.log(\"Title:\");\n // console.log(pollTitle);\n // if(pollTitle != undefined){\n // clearInterval(interval);\n // counter = 10;\n // console.log(\"poll call\");\n // let pollconfirm = this.dialog.open(RequestPoll, {\n // minWidth: \"80%\",\n // maxWidth: \"1000px\",\n // disableClose: true,\n // data: {pollTitle}\n // });\n // pollconfirm.afterClosed().subscribe(result => {\n // console.log(\"poll edit close\");\n // let pollthanks = this.dialog.open(InfoMenu, {\n // width: \"80%\",\n // maxWidth: \"600px\",\n // disableClose: true,\n // data: {text: result}\n // });\n // pollthanks.afterClosed().subscribe(result => {\n // this.dialogRef.close(true);\n // });\n // });\n // }else if(counter == 0){\n // clearInterval(interval);\n // console.error(\"Title not load\");\n // }\n // counter--;\n // }, 50);\n ///////////////////////////////////////////////\n // this.dialogRef.close(true);\n }\n });\n });\n }\n\n pollDialog(close: boolean = false) {\n let counter = 10;\n let interval = setInterval(() => {\n let pollTitle = this.indexPage\n .getList('Poll')\n .filter((x) => x.Type == '0')\n .map((x) => x.Title)[0];\n // console.log(\"Title:\");\n // console.log(pollTitle);\n if (pollTitle != undefined) {\n clearInterval(interval);\n counter = 10;\n // console.log('poll call');\n let pollconfirm = this.dialog.open(RequestPoll, {\n minWidth: '80%',\n maxWidth: '1000px',\n disableClose: true,\n data: { pollTitle },\n });\n pollconfirm.afterClosed().subscribe((result) => {\n // console.log('poll edit close');\n // console.log(result);\n if (result) {\n let pollthanks = this.dialog.open(InfoMenu, {\n width: '80%',\n maxWidth: '600px',\n disableClose: true,\n data: { text: result },\n });\n pollthanks.afterClosed().subscribe((result) => {\n if (close) {\n this.dialogRef.close(true);\n }\n });\n }\n });\n } else if (counter == 0) {\n clearInterval(interval);\n console.error('Title not load');\n }\n counter--;\n }, 50);\n }\n\n blobToFile(theBlob: Blob, fileName: string) {\n var b: any = theBlob;\n b.lastModifiedDate = new Date();\n b.name = fileName;\n\n return theBlob;\n }\n\n print() {\n this.isLoading = true;\n this.editorQuillPrint.innerHTML = '';\n [].forEach.call(this.editorQuill, (e, indexE) => {\n if (indexE > 0) {\n this.editorQuillPrint.innerHTML += \"
\";\n }\n\n // let repReg = new RegExp(//, \"g\");\n // e.container.children[0].innerHTML = e.container.children[0].innerHTML.replace(repReg, \"\");\n\n this.editorQuillPrint.innerHTML += e.container.children[0].innerHTML;\n });\n\n var printWindow = window.open('', 'PRINT', 'height=400,width=600');\n\n printWindow.document.write('');\n printWindow.document.write(\n ''\n );\n\n printWindow.document.write(\n ''\n );\n\n printWindow.document.write('');\n printWindow.document.write(document.getElementById('print-section').innerHTML);\n printWindow.document.write('');\n\n printWindow.document.close();\n printWindow.focus();\n\n setTimeout(() => {\n this.isLoading = false;\n printWindow.print();\n this.pollDialog();\n }, 500);\n }\n\n sendDisclaimer(event) {\n if (event.selectedStep.state == 'complete') {\n let interval = setInterval(() => {\n if (this.getPageText('sendDiscLink') != false) {\n clearInterval(interval);\n let disclaimerHide = this.getPageText('sendDiscLink');\n if (disclaimerHide == 'false' || disclaimerHide == false) {\n let disclaimerText = this.getPageText('sendDiscText');\n\n this.dialog.open(InfoMenu, {\n width: '80%',\n maxWidth: '600px',\n disableClose: true,\n data: { text: disclaimerText },\n });\n }\n }\n }, 50);\n }\n }\n\n close() {\n this.dialogRef.close();\n }\n}\n","
\n
\n

{{ requestTitle }}

\n \n
\n\n
{{ requestText }}
\n\n \n \n
\n
\n
\n \n \n
\n
\n
{{ 'Common.callbackEmail' | translate }}
\n \n \n \n \n {{ 'Common.emailUserError' | translate }}\n \n
\n \n \n \n
\n
\n {{ 'Common.save' | translate }}\n \"download\"\n
\n
\n {{ 'Common.print' | translate }}\n \"print\"\n
\n
\n
\n {{ 'Common.singSend' | translate }} \"dia\"\n
\n
\n
\n \n article\n \n \n thumb_up\n \n
\n\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n \n

\n {{ 'Common.wait' | translate }}\n
\n {{ 'Common.isSend' | translate }}\n

\n
\n
\n\n
\n
\n \n

\n {{ 'Common.wait' | translate }}\n
\n {{ 'Common.isLoad' | translate }}\n

\n
\n
\n","import { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { IndexPage } from '.';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ThickUnderline } from 'docx';\r\n\r\nexport interface DialogData {\r\n pollTitle: string;\r\n}\r\n\r\n@Component({\r\n selector: 'request-poll',\r\n templateUrl: 'request-poll.html',\r\n styleUrls: ['menu.css'],\r\n providers: [IndexPage],\r\n})\r\nexport class RequestPoll {\r\n isGrayscale: boolean = false;\r\n isFontscale: boolean = false;\r\n isSending: boolean = false;\r\n isAsk: boolean = false;\r\n isFinish: boolean = false;\r\n\r\n starPoll: number = 0;\r\n currentStar: number = 0;\r\n\r\n mainPoll: string = '';\r\n mainFinish: string = '';\r\n askPoll: string = '';\r\n askFinish: string = '';\r\n pollComment: string = '';\r\n\r\n sidePoll: string[] = [];\r\n starCount: number[] = Array(5).fill(0);\r\n answerList: string[] = [];\r\n\r\n private testInterval: any = null;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n private indexPage: IndexPage,\r\n private http: HttpClient,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData\r\n ) {\r\n // console.log(this.data);\r\n this.mainPoll = this.data.pollTitle;\r\n\r\n this.testInterval = setInterval(() => {\r\n // console.log(this.indexPage.getList('Poll'));\r\n // console.log(this.indexPage.pollList);\r\n\r\n if (this.indexPage.getList('Poll').length != 0) {\r\n clearInterval(this.testInterval);\r\n this.isGrayscale = this.indexPage.getUserHelp('gs');\r\n this.isFontscale = this.indexPage.getUserHelp('fs');\r\n [].forEach.call(this.indexPage.getList('Poll'), (x) => {\r\n // console.log(x);\r\n\r\n switch (x.Type) {\r\n case '0':\r\n // this.mainPoll = x.Title;\r\n this.mainFinish = x.Text;\r\n this.starPoll = parseInt(x.Star);\r\n break;\r\n case '1':\r\n this.askPoll = x.Title;\r\n this.askFinish = x.Text;\r\n break;\r\n case '2':\r\n this.sidePoll.push(x.Title);\r\n break;\r\n }\r\n });\r\n }\r\n // console.log('poll open');\r\n }, 50);\r\n }\r\n\r\n commentWrite(value: string) {\r\n this.pollComment = value;\r\n // console.log(this.pollComment);\r\n }\r\n\r\n close() {\r\n clearInterval(this.testInterval);\r\n // console.log('poll close');\r\n // this.dialogRef.close(false);\r\n this.dialogRef.close(this.mainFinish);\r\n // this.dialogRef.close(true);\r\n }\r\n\r\n starClick(value) {\r\n this.currentStar = value;\r\n }\r\n\r\n askClick(value) {\r\n // console.log(value);\r\n if (value == 0) {\r\n this.isAsk = true;\r\n } else {\r\n this.isFinish = true;\r\n }\r\n }\r\n\r\n sideClick(text) {\r\n let index = this.answerList\r\n .map(function (x) {\r\n return x;\r\n })\r\n .indexOf(text);\r\n if (index == -1) {\r\n this.answerList.push(text);\r\n } else {\r\n this.answerList.splice(index);\r\n }\r\n }\r\n\r\n send() {\r\n // console.log('poll send');\r\n try {\r\n let json = {\r\n courtId: 0,\r\n EmailAdresses: this.indexPage.getPollSettings(),\r\n Subject: 'Новий відгук по сервісу',\r\n TextBody:\r\n 'Оцінка: ' +\r\n (6 - this.currentStar) +\r\n '\\nЗауваження:\\n' +\r\n this.answerList.join('\\n') +\r\n '\\nКоментар: ' +\r\n this.pollComment,\r\n Attachments: [],\r\n };\r\n this.http.post(this.indexPage.getUrl() + 'email', json).subscribe((data) => {\r\n // console.log(data);\r\n // console.log('poll send');\r\n // this.dialogRef.close(true);\r\n // this.dialogRef.close(this.mainFinish || null);\r\n });\r\n } catch (error) {\r\n // console.log('poll error', error);\r\n // this.dialogRef.close(this.mainFinish || null);\r\n }\r\n this.close();\r\n }\r\n}\r\n","
\r\n \r\n\r\n
{{ mainPoll }}
\r\n
    \r\n \r\n
\r\n\r\n
\r\n
{{ askPoll }}
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n {{ data }}\r\n
\r\n
\r\n\r\n
{{ askFinish }}
\r\n\r\n \r\n\r\n = starPoll && currentStar != 0)\"\r\n class=\"button\"\r\n (click)=\"send()\"\r\n >\r\n {{ 'Common.send' | translate }}\r\n
\r\n\r\n\r\n\r\n","import { Component, ElementRef, ViewChild, HostListener, NgZone } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { HttpClient } from '@angular/common/http';\nimport { CookieService } from 'ngx-cookie-service';\nimport { Router } from '@angular/router';\nimport {\n NativeDateAdapter,\n DateAdapter,\n MAT_DATE_FORMATS,\n MAT_DATE_LOCALE,\n} from '@angular/material/core';\nimport {\n MAT_MOMENT_DATE_FORMATS,\n MAT_MOMENT_DATE_ADAPTER_OPTIONS,\n} from '@angular/material-moment-adapter';\nimport { ThemePalette } from '@angular/material/core';\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner';\nimport { MatDialog } from '@angular/material/dialog';\nimport { FileInput } from 'ngx-material-file-input';\nimport { AES, enc } from 'crypto-ts';\nimport { TranslateService } from '@ngx-translate/core';\n\nimport { IndexPage } from '.';\nimport { InfoMenu } from './info-menu';\nimport { TooltipMenu } from './tooltip-menu';\nimport { RequestEdit } from './request-edit';\nimport { RequestCodeMenu } from './request-code-menu';\nimport { ConfirmMenu } from './confirm-menu';\n\nexport class CustomDateAdapter extends NativeDateAdapter {\n parse(value: any): Date | null {\n if (typeof value === 'string' && value.indexOf('.') > -1) {\n const str = value.split('.');\n\n const year = Number(str[2]);\n const month = Number(str[1]) - 1;\n const date = Number(str[0]);\n\n return new Date(year, month, date);\n }\n const timestamp = typeof value === 'number' ? value : Date.parse(value);\n return isNaN(timestamp) ? null : new Date(timestamp);\n }\n\n format(date: Date, displayFormat: Object): string {\n date = new Date(\n Date.UTC(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds()\n )\n );\n displayFormat = Object.assign({}, displayFormat, { timeZone: 'utc' });\n\n const dtf = new Intl.DateTimeFormat(this.locale, displayFormat);\n return dtf.format(date).replace(/[\\u200e\\u200f]/g, '');\n }\n}\n\n@Component({\n selector: 'request',\n templateUrl: 'request.html',\n styleUrls: ['main.css'],\n providers: [\n { provide: MAT_DATE_LOCALE, useValue: 'uk-UA' },\n {\n provide: DateAdapter,\n useClass: CustomDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },\n ],\n})\nexport class UserRequest {\n scrollStop: boolean = false;\n isLoad: boolean = false;\n isSave: boolean = false;\n isGrayscale: boolean = false;\n isFontscale: boolean = false;\n finishForm: boolean = false;\n isDBLoad: boolean = false;\n isDataRestore: boolean = false;\n isMobile: boolean = false;\n programScroll: boolean = false;\n isSafari: boolean = false;\n dataIsRestoring: boolean = false;\n\n private isStore: boolean = false;\n\n userRequestId: number = 0;\n loadValue: number = 50;\n descriptionId: number = 0;\n descriptionPreId: number = 0;\n formCounter: number = 0;\n formCurrent: number = 0;\n courtLoad: number = 0;\n mobileMenuWidth: number = 0;\n\n currentLocale: string = '';\n currentLang: string;\n demoEditorContent: string[] = [];\n\n requestForm: any[];\n requestAttr: any[];\n libraryCourt: any[] = new Array(3);\n userRequest: any[];\n userDataType: any[];\n userDataValue: any[];\n templateData: any[];\n formConditionList: any[];\n attributesBase: any[];\n attributesChild: any[];\n attributesParent: any[];\n nestableList: any[];\n nestableArray: any[];\n nestableBackUp: any[] = [];\n selectorList: any[] = [];\n counterArray: any[] = [];\n formFinisher: any[] = [];\n formDisplay: any[] = [];\n isSkipForm: number[] = [];\n demoEditorArray: any[] = [];\n columnFixArray: any[] = [];\n orderData: any[] = [];\n postArray: any = [];\n putArray: any = [];\n regionList: any[] = [];\n cityArray: any[] = [];\n cityList: any[] = [];\n courtArray: any[] = [];\n courtList: any[] = [];\n\n data: any;\n loadColor: ThemePalette = 'primary';\n loadMode: ProgressSpinnerMode = 'indeterminate';\n titleFormControl = new FormControl();\n description: any;\n orderSelect: any;\n editorQuill: any;\n requestType: any = { title: '' };\n maskLimitPatterns = { A: { pattern: new RegExp('.') } };\n\n private saveTimer: any = null;\n\n @ViewChild('editorQuill', { static: false }) editorElementRef: ElementRef;\n @ViewChild('editorQuillPrint', { static: false }) editorQuillPrint: ElementRef;\n\n constructor(\n private http: HttpClient,\n private cookieService: CookieService,\n private router: Router,\n private indexPage: IndexPage,\n public dialog: MatDialog,\n private translateService: TranslateService,\n private ngZone: NgZone\n ) {\n if (this.router.getCurrentNavigation().extras.skipLocationChange == false) {\n this.router.navigate(['/']);\n } else {\n this.isLoad = true;\n\n this.changeDescription(null, true, 0);\n this.data = this.router.getCurrentNavigation().extras.state;\n let restoreData = this.readDataStore();\n // console.log(restoreData);\n // console.log(this.data);\n\n if (!this.data.saveData && restoreData) {\n let text = '';\n this.translateService.get('Common', { value: 'oldFormDetect' }).subscribe((res: string) => {\n if (typeof res != 'string') {\n let array: any = res;\n text = array.oldFormDetect;\n }\n });\n\n let buttonL = '';\n this.translateService.get('Common', { value: 'restoreForm' }).subscribe((res: string) => {\n if (typeof res != 'string') {\n let array: any = res;\n buttonL = array.restoreForm;\n }\n });\n let buttonR = '';\n this.translateService.get('Common', { value: 'newForm' }).subscribe((res: string) => {\n if (typeof res != 'string') {\n let array: any = res;\n buttonR = array.newForm;\n }\n });\n\n let minWidth = '400px';\n let maxWidth = '600px';\n if (text.length > 300 && text.length < 600) {\n maxWidth = '800px';\n } else if (text.length > 600) {\n minWidth = '80%';\n maxWidth = '1000px';\n }\n this.dialog\n .open(ConfirmMenu, {\n minWidth: minWidth,\n maxWidth: maxWidth,\n disableClose: true,\n data: { text: text, button: [buttonL, buttonR] },\n })\n .afterClosed()\n .subscribe((result) => {\n if (result) {\n this.data.saveData = restoreData.data;\n this.data.saveForm = restoreData.form;\n if (restoreData.skip && restoreData.skip.length) {\n this.isSkipForm = restoreData.skip;\n }\n this.requestStart();\n } else {\n localStorage.removeItem(`USAidRequest_${this.data.requestId}`);\n this.requestStart();\n }\n });\n } else {\n if (this.data.skip && this.data.skip.length) {\n this.isSkipForm = this.data.skip;\n }\n this.requestStart();\n }\n }\n }\n\n private requestStart() {\n this.currentLang = this.cookieService.get('lang');\n this.isGrayscale = this.indexPage.getUserHelp('gs');\n this.isFontscale = this.indexPage.getUserHelp('fs');\n\n this.currentLocale = this.indexPage.getLocale();\n\n let requestList: any = this.indexPage.getList('Request');\n // console.log(requestList);\n\n this.requestType = requestList.filter((x) => x.Link == this.data.requestId).map((x) => x);\n this.requestType = this.requestType[0];\n\n requestList = this.indexPage.getList('Form');\n this.requestForm = requestList.filter((x) => x.Type == this.requestType.Link).map((x) => x);\n this.requestForm.sort((a, b) =>\n a.Position > b.Position ? 1 : b.Position > a.Position ? -1 : 0\n );\n\n requestList = this.indexPage.getList('Attr');\n this.requestAttr = [];\n requestList = requestList.filter((x) => x.length != 0).map((x) => x);\n [].forEach.call(this.requestForm, (e) => {\n let array = requestList.filter((x) => x[0].requestFormId == e.Id).map((x) => x);\n if (array.length != 0) {\n [].forEach.call(array, (c) => {\n c.sort((a, b) => (a.position > b.position ? 1 : b.position > a.position ? -1 : 0));\n });\n this.requestAttr.push(array[0]);\n }\n });\n\n var ua = navigator.userAgent.toLowerCase();\n if (ua.indexOf('safari') != -1) {\n if (ua.indexOf('chrome') > -1) {\n } else {\n this.isSafari = true;\n }\n }\n\n // console.log(this.requestForm);\n // console.log(this.requestType);\n\n this.templateData = this.indexPage.getList('Template');\n // console.log(this.templateData);\n // console.log(JSON.stringify(this.templateData, null, 2));\n\n this.regionList = this.indexPage.getList('Region');\n this.regionList.unshift({ id: 0, title: ' ', email: '' });\n this.libraryCourt[0] = [];\n this.libraryCourt[1] = [];\n this.libraryCourt[2] = [];\n this.cityArray = this.indexPage.getList('City');\n this.courtArray = this.indexPage.getList('Court');\n\n if (this.data.saveForm != '0') {\n if (this.indexPage.getSaveMethod().toString() == '1') {\n this.userRequest = this.data.saveData;\n this.isDBLoad = true;\n } else {\n this.dbRequest();\n }\n } else {\n this.isDataRestore = true;\n this.isDBLoad = true;\n this.isLoad = true;\n }\n\n // console.log(this.userRequest);\n\n this.buildAttr();\n this.formSkipApply();\n }\n\n emailFormControl = new FormControl('', [Validators.email]);\n\n @HostListener('window:resize', ['$event'])\n onResize(event) {\n this.mobileChecker();\n }\n\n getGrayScale() {\n if (this.isGrayscale != this.indexPage.getUserHelp('gs')) {\n this.isGrayscale = this.indexPage.getUserHelp('gs');\n }\n return this.isGrayscale;\n }\n\n getFontScale() {\n if (this.isFontscale != this.indexPage.getUserHelp('fs')) {\n this.isFontscale = this.indexPage.getUserHelp('fs');\n this.onScroll([null, 0, null]);\n }\n return this.isFontscale;\n }\n\n getPageText(type) {\n return this.indexPage.getPageElement(type);\n }\n\n getListText(type) {\n let requestList: any;\n if (this.currentLocale != this.indexPage.getLocale()) {\n this.currentLocale = this.indexPage.getLocale();\n requestList = this.indexPage.getList('Request');\n this.requestType = requestList.filter((x) => x.Link == this.data.requestId).map((x) => x);\n this.requestType = this.requestType[0];\n\n requestList = this.indexPage.getList('Form');\n this.requestForm = requestList.filter((x) => x.Type == this.requestType.Link).map((x) => x);\n this.requestForm.sort((a, b) =>\n a.Position > b.Position ? 1 : b.Position > a.Position ? -1 : 0\n );\n\n requestList = this.indexPage.getList('Attr');\n this.requestAttr = [];\n [].forEach.call(this.requestForm, (e) => {\n let array = requestList.filter((x) => x[0].requestFormId == e.Id).map((x) => x);\n if (array.length != 0) {\n [].forEach.call(array, (c) => {\n c.sort((a, b) => (a.position > b.position ? 1 : b.position > a.position ? -1 : 0));\n });\n this.requestAttr.push(array[0]);\n }\n });\n this.localeUpdate();\n }\n switch (type) {\n case 'Type':\n return this.requestType;\n case 'Form':\n return this.requestForm;\n }\n }\n\n columnSlide(side, item) {\n let dataLiner = this.dataLiner(this.nestableArray, true);\n let element = dataLiner.filter((x) => x.id == item.id).map((x) => x);\n if (element.length > 0) {\n let count = element[0].description;\n if (side < 0) {\n if (count - 1 >= 0) {\n element[0].description--;\n }\n } else {\n if (element[0].columns.length > count + 1) {\n element[0].description++;\n }\n }\n }\n }\n\n localeUpdate() {\n let datalinerNes = this.dataLiner(this.nestableArray, true);\n let datalinerAttr = this.dataLiner(this.requestAttr, true);\n [].forEach.call(datalinerNes, (e) => {\n let item = datalinerAttr.filter((x) => x.id == e.id).map((x) => x);\n e.label = item[0].label;\n e.tooltip = item[0].tooltip;\n e.description = item[0].description;\n e.dialog = item[0].dialog;\n e.placeholder = item[0].placeholder;\n });\n }\n\n mobileChecker() {\n let element = document.querySelector('.rq-additional-menu-mobile') as HTMLElement;\n if (element == null) {\n this.isMobile = false;\n return false;\n }\n if (element.offsetHeight > 0 && !this.isMobile) {\n this.mobileMenuWidth = element.offsetWidth;\n this.isMobile = true;\n } else if (element.offsetHeight == 0 && this.isMobile) {\n this.isMobile = false;\n }\n }\n\n buildAttr() {\n this.attributesBase = [];\n this.attributesChild = [];\n this.attributesParent = [];\n this.nestableArray = [];\n this.formFinisher = [];\n\n [].forEach.call(this.requestAttr, (e, index) => {\n this.attributesBase.push([]);\n this.attributesChild.push([]);\n this.attributesParent.push([]);\n\n this.nestableList = [];\n [].forEach.call(e, (c) => {\n if (e.requestAttributeId != null || c.requestAttributeId != undefined) {\n let array = [];\n array.push(c);\n if (!this.attributesBase[index].some((d) => d === c.requestAttributeId)) {\n this.attributesBase[index].push(c.requestAttributeId);\n this.attributesChild[index].push(array);\n } else {\n let indexF = this.attributesBase[index].indexOf(c.requestAttributeId);\n this.attributesChild[index][indexF] = this.attributesChild[index][indexF].concat(array);\n }\n } else {\n this.attributesParent[index].push(c);\n }\n });\n this.nestableArray.push(this.dataFormer(this.attributesParent[index], index, null));\n this.nestableList = [];\n });\n setTimeout(() => {\n this.isLoad = false;\n this.mobileChecker();\n this.buildNesteData();\n }, 500);\n }\n\n buildNesteData() {\n this.counterArray = [];\n this.formDisplay = [];\n this.formConditionList = [];\n [].forEach.call(this.nestableArray, (e, indexE) => {\n if (indexE == 0) {\n this.formFinisher.push(true);\n } else {\n this.formFinisher.push(false);\n // this.formFinisher.push(true);\n }\n this.counterArray.push([]);\n if (\n this.requestForm[indexE].Condition != '' &&\n this.requestForm[indexE].Condition != null &&\n this.requestForm[indexE].Condition != undefined\n ) {\n this.formConditionList.push({ form: indexE, cond: this.requestForm[indexE].Condition });\n this.formConditionUnPacker(this.requestForm[indexE].Condition, null);\n } else {\n this.formDisplay.push(true);\n }\n let afterHide = false;\n [].forEach.call(e, (c) => {\n if (c.type == 'column' || c.type == 'copy') {\n let array = this.dataLiner(c.columns, true);\n this.buildNestableChild(array, indexE);\n let dispCheck = false;\n [].forEach.call(array, (a) => {\n if (a.display) {\n dispCheck = true;\n return;\n }\n });\n this.counterArray[indexE].push({ id: c.id, display: dispCheck, next: false });\n } else {\n if (afterHide) {\n this.counterArray[indexE].push({ id: c.id, display: false, next: false });\n } else {\n if (c.display == false || c.disabled == true) {\n this.counterArray[indexE].push({ id: c.id, display: false, next: false });\n } else {\n this.counterArray[indexE].push({ id: c.id, display: true, next: false });\n }\n }\n }\n if (c.disabled == true) {\n c.required = false;\n }\n if (c.required == true && c.type != 'column' && c.type != 'copy') {\n afterHide = true;\n }\n });\n });\n // console.log(this.counterArray);\n\n let arrayLiner = this.dataLiner(this.nestableArray, true);\n\n [].forEach.call(arrayLiner, (e) => {\n this.conditionControl(e);\n });\n }\n\n buildNestableChild(arrayStart, index) {\n let afterHide = false;\n [].forEach.call(arrayStart, (e) => {\n if (e.type == 'column' || e.type == 'copy') {\n let array = this.dataLiner(e.columns, true);\n this.buildNestableChild(array, index);\n }\n if (afterHide) {\n this.counterArray[index].push({ id: e.id, display: false, next: false });\n } else {\n if (e.display == false || e.disabled == true) {\n this.counterArray[index].push({ id: e.id, display: false, next: false });\n } else {\n this.counterArray[index].push({ id: e.id, display: true, next: false });\n }\n if (e.disabled == true) {\n e.required = false;\n }\n }\n if (e.required == true && e.type != 'column') {\n afterHide = true;\n }\n });\n }\n\n applyRestoreData() {\n this.dataIsRestoring = true;\n let array = this.dataLiner(this.nestableArray, true);\n let dub = [];\n let number = [];\n let data = [];\n [].forEach.call(array, (e) => {\n let dataArray = [];\n let indexF = this.userRequest.map((c) => c.requestAttributeId).indexOf(e.id);\n let dubId = this.getDublicateId(array, e.id);\n // console.log(indexF);\n // console.log(dubId);\n // console.log(dataArray);\n\n if (typeof dubId === 'number') {\n if (indexF != -1) {\n dub.push(dubId);\n dataArray.push({ id: e.id, data: this.userRequest[indexF].data });\n number.push(this.userRequest[indexF].data.split('|&|').length);\n }\n }\n\n if (indexF != -1) {\n if (e.id == this.userRequest[indexF].requestAttributeId) {\n if (e.type == 'date') {\n if (e.value != '') {\n if (this.userRequest[indexF].data.split('|&|').length == 1) {\n let value = this.userRequest[indexF].data.split('-');\n e.value = new Date(parseInt(value[2]), parseInt(value[1]) - 1, parseInt(value[0]));\n if (e.mask != 'time') {\n e.placeholder = '';\n } else {\n let time = this.userRequest[indexF].data.split(' ');\n if (time.length > 1) {\n e.placeholder = time[1];\n e.value.setHours(parseInt(time[1].split(':')[0]));\n e.value.setMinutes(parseInt(time[1].split(':')[1]));\n }\n }\n } else {\n e.value = this.userRequest[indexF].data;\n e.placeholder = '';\n }\n } else {\n let value = this.userRequest[indexF].data.split('-');\n e.value = new Date(parseInt(value[2]), parseInt(value[1]) - 1, parseInt(value[0]));\n if (e.mask != 'time') {\n e.placeholder = '';\n } else {\n let time = this.userRequest[indexF].data.split(' ');\n if (time.length > 1) {\n e.placeholder = time[1];\n e.value.setHours(parseInt(time[1].split(':')[0]));\n e.value.setMinutes(parseInt(time[1].split(':')[1]));\n }\n }\n }\n setTimeout(() => {\n this.onChange(e, e, true);\n }, 0);\n } else if (e.type == 'file') {\n try {\n let arr = JSON.parse(this.userRequest[indexF].data);\n let flArr = [];\n arr.map((fl) => {\n let fileSplter = fl.split('&FILE&');\n let newFile = new FileInput([\n {\n lastModified: null,\n name: fileSplter[0],\n size: null,\n type: fileSplter[0] + '&FILE&' + fileSplter[1] + '&FILE&' + fileSplter[2],\n slice: null,\n } as any,\n ]);\n flArr.push(newFile);\n });\n e.value = flArr;\n e.value.push(null);\n } catch {\n e.value = this.userRequest[indexF].data;\n }\n } else if (e.type == 'checkbox') {\n if (this.userRequest[indexF].data == '' || this.userRequest[indexF].data == null) {\n e.value = false;\n } else {\n e.value = JSON.parse(this.userRequest[indexF].data);\n }\n } else if (e.type == 'court') {\n let courtData = this.userRequest[indexF].data.split('_');\n if (courtData.length == 1) {\n courtData = ['0', '0', '0'];\n } else {\n this.cityList = this.cityArray\n .filter((x) => x.regionId == parseInt(courtData[0]))\n .map((x) => x);\n setTimeout(() => {\n this.courtList = this.courtArray\n .filter((x) => x.cityId == parseInt(courtData[1]))\n .map((x) => x);\n }, 100);\n }\n e.value = [parseInt(courtData[0]), parseInt(courtData[1]), parseInt(courtData[2])];\n } else {\n e.value = this.userRequest[indexF].data;\n }\n }\n }\n if (dataArray.length > 0) {\n data = [...data, ...dataArray];\n }\n });\n\n // this.formDisplay.map((x) => {\n // x = true;\n // });\n this.formFinisher.map((x) => {\n x = true;\n });\n // console.log(array);\n // console.log(this.nestableArray);\n\n this.isDataRestore = true;\n\n let dataLiner = this.dataLiner(this.nestableArray, true);\n // console.log(dataLiner);\n\n let check = 0;\n this.formCounter = 0;\n [].forEach.call(this.formFinisher, (e, indexE) => {\n [].forEach.call(this.counterArray[indexE], (c) => {\n let element = array.filter((x) => x.id == c.id).map((x) => x);\n if (element.length != 0) {\n if (\n element[0].value != '' &&\n element[0].value != null &&\n element[0].value != undefined &&\n (element[0].clone == null || element[0].clone == '')\n ) {\n check = indexE;\n }\n }\n });\n });\n\n // console.log(check);\n\n [].forEach.call(this.formFinisher, (e, indexE) => {\n if (indexE == 0) {\n e = true;\n }\n if (indexE < check) {\n e = true;\n this.formCounter++;\n }\n });\n // console.log(this.formCounter);\n // console.log(this.formFinisher);\n // console.log(this.formDisplay);\n // console.log(this.formConditionList);\n\n // if (\n // this.requestForm[indexE].Condition != '' &&\n // this.requestForm[indexE].Condition != null &&\n // this.requestForm[indexE].Condition != undefined\n // ) {\n // this.formConditionList.push({ form: indexE, cond: this.requestForm[indexE].Condition });\n // this.formConditionUnPacker(this.requestForm[indexE].Condition, null);\n // } else {\n // this.formDisplay.push(true);\n // }\n\n [].forEach.call(this.formConditionList, (e) => {\n this.formConditionUnPacker(e.cond, e.form);\n });\n\n // console.log(array);\n // return;\n\n [].forEach.call(array, (e) => {\n this.conditionControl(e);\n });\n\n this.isLoad = false;\n\n this.previewDublicate('load', dub, null, number, data, null);\n }\n\n getDublicateId(array, id) {\n let index = array.map((c) => c.id).indexOf(id);\n if (array[index].type === 'copy') {\n return array[index].id;\n } else {\n if (array[index].requestAttributeId != null) {\n return this.getDublicateId(array, array[index].requestAttributeId);\n } else {\n return false;\n }\n }\n }\n\n formConditionUnPacker(value, index) {\n let condition: any = [];\n if (value != null && typeof value === 'string') {\n let list = value.split('*I*');\n [].forEach.call(list, (e, index) => {\n let text = e.split('|');\n if (text.length > 10) {\n if (Number.isInteger(parseInt(text[1]))) {\n text[0] = text[0] + '|' + text[1];\n text.splice(1, 1);\n }\n if (Number.isInteger(parseInt(text[4]))) {\n text[3] = text[3] + '|' + text[4];\n text.splice(4, 1);\n }\n }\n let array: any = {\n formT: text[0],\n target: text[1],\n condition: text[2],\n else: text[3],\n formF: text[4],\n field: text[5],\n on: text[6],\n value: text[7],\n date: text[8],\n };\n if (array.formT == undefined) {\n array.formT = '';\n }\n if (array.target == undefined) {\n array.target = '';\n }\n if (array.condition == undefined) {\n array.condition = '';\n }\n if (array.else == undefined) {\n array.else = '';\n }\n if (array.formF == undefined) {\n array.formF = '';\n }\n if (array.field == undefined) {\n array.field = '';\n }\n if (array.on == undefined) {\n array.on = '';\n }\n if (array.value == undefined) {\n array.value = '';\n }\n if (array.date == undefined) {\n array.date = '';\n }\n list[index] = array;\n });\n condition = list;\n this.formConditionControl(condition, index);\n }\n }\n\n formConditionControl(condition, index) {\n let value = '';\n let elseC = [];\n let result = [];\n let nd;\n let vl;\n let findElse;\n let arrayLiner = this.dataLiner(this.nestableArray, false);\n [].forEach.call(condition, (e) => {\n let target = arrayLiner.filter((x) => x.id == parseInt(e.target)).map((x) => x);\n value = target[0].value;\n elseC.push(e.else);\n\n switch (e.condition) {\n case 'empty':\n if (value == '' || value == null) {\n result.push(true);\n } else {\n result.push(false);\n }\n break;\n case 'fill':\n if (value == '' || value == null) {\n result.push(false);\n } else {\n result.push(true);\n }\n break;\n case 'morenumber':\n findElse = arrayLiner.filter((x) => x.id == parseInt(e.field)).map((x) => x);\n if (e.field == '0') {\n nd = parseInt(e.value);\n } else {\n nd = parseInt(findElse[0].value);\n }\n if (e.on == '0' || e.on == '2') {\n if (nd < parseInt(value)) {\n result.push(true);\n } else {\n result.push(false);\n }\n } else if (e.on == '1') {\n nd += parseInt(e.value);\n if (nd <= parseInt(value)) {\n result.push(true);\n } else {\n result.push(false);\n }\n }\n break;\n case 'lessnumber':\n findElse = arrayLiner.filter((x) => x.id == parseInt(e.field)).map((x) => x);\n if (e.field == '0') {\n nd = parseInt(e.value);\n } else {\n nd = parseInt(findElse[0].value);\n }\n if (e.on == '0' || e.on == '2') {\n if (nd > parseInt(value)) {\n result.push(true);\n } else {\n result.push(false);\n }\n } else if (e.on == '1') {\n nd -= parseInt(e.value);\n if (nd >= parseInt(value)) {\n result.push(true);\n } else {\n result.push(false);\n }\n }\n break;\n case 'isnumber':\n findElse = arrayLiner.filter((x) => x.id == parseInt(e.field)).map((x) => x);\n if (e.field == '0') {\n nd = parseInt(e.value);\n } else {\n nd = parseInt(findElse[0].value);\n }\n if (nd == parseInt(value)) {\n result.push(true);\n } else {\n result.push(false);\n }\n break;\n case 'notnumber':\n findElse = arrayLiner.filter((x) => x.id == parseInt(e.field)).map((x) => x);\n if (e.field == '0') {\n nd = parseInt(e.value);\n } else {\n nd = parseInt(findElse[0].value);\n }\n if (nd != parseInt(value)) {\n result.push(true);\n } else {\n result.push(false);\n }\n break;\n case 'check':\n if (value == '' || value == null) {\n result.push(false);\n } else {\n result.push(true);\n }\n break;\n case 'uncheck':\n if (value == '' || value == null) {\n result.push(true);\n } else {\n result.push(false);\n }\n break;\n case 'file':\n if (value == '' || value == null) {\n result.push(false);\n } else {\n result.push(true);\n }\n break;\n case 'nofile':\n if (value == '' || value == null) {\n result.push(true);\n } else {\n result.push(false);\n }\n break;\n case 'date':\n if (value == '' || value == null) {\n result.push(false);\n } else {\n result.push(true);\n }\n break;\n case 'nodate':\n if (value == '' || value == null) {\n result.push(true);\n } else {\n result.push(false);\n }\n break;\n case 'moredate':\n findElse = arrayLiner.filter((x) => x.id == parseInt(e.field)).map((x) => x);\n if (findElse.length > 0) {\n vl = findElse[0].value;\n }\n if (e.field == '0') {\n nd = new Date();\n nd = new Date(nd.toDateString());\n } else if (e.field == '1') {\n nd = new Date(this.dateCorector(e.date));\n } else {\n nd = new Date(vl);\n }\n if (e.on == '0') {\n let dvl = new Date(value);\n nd.setHours(0);\n nd.setMinutes(0);\n dvl.setHours(0);\n dvl.setMinutes(0);\n if (nd.getTime() < dvl.getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n } else if (e.on == '1') {\n let dvl = new Date(value);\n nd.setHours(0);\n nd.setMinutes(0);\n dvl.setHours(0);\n dvl.setMinutes(0);\n nd.setDate(nd.getDate() + parseInt(e.value));\n if (nd.getTime() <= dvl.getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n } else if (e.on == '2') {\n let dvl = new Date(value);\n nd.setHours(0);\n nd.setMinutes(0);\n dvl.setHours(0);\n dvl.setMinutes(0);\n nd.setMonth(nd.getMonth() + parseInt(e.value));\n if (nd.getTime() <= dvl.getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n } else if (e.on == '3') {\n let dvl = new Date(value);\n nd.setHours(0);\n nd.setMinutes(0);\n dvl.setHours(0);\n dvl.setMinutes(0);\n nd.setFullYear(nd.getFullYear() + parseInt(e.value));\n if (nd.getTime() <= dvl.getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n } else if (e.on == '4') {\n nd.setHours(nd.getHours() + parseInt(e.value));\n if (nd.getTime() <= new Date(value).getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n }\n break;\n case 'lessdate':\n findElse = arrayLiner.filter((x) => x.id == parseInt(e.field)).map((x) => x);\n if (findElse.length > 0) {\n vl = findElse[0].value;\n }\n if (e.field == '0') {\n nd = new Date();\n nd = new Date(nd.toDateString());\n } else if (e.field == '1') {\n nd = new Date(this.dateCorector(e.date));\n } else {\n nd = new Date(vl);\n }\n if (e.on == '0') {\n let dvl = new Date(value);\n nd.setHours(0);\n nd.setMinutes(0);\n dvl.setHours(0);\n dvl.setMinutes(0);\n if (nd.getTime() > dvl.getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n } else if (e.on == '1') {\n let dvl = new Date(value);\n nd.setHours(0);\n nd.setMinutes(0);\n dvl.setHours(0);\n dvl.setMinutes(0);\n nd.setDate(nd.getDate() - parseInt(e.value));\n if (nd.getTime() >= dvl.getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n } else if (e.on == '2') {\n let dvl = new Date(value);\n nd.setHours(0);\n nd.setMinutes(0);\n dvl.setHours(0);\n dvl.setMinutes(0);\n nd.setMonth(nd.getMonth() - parseInt(e.value));\n if (nd.getTime() >= dvl.getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n } else if (e.on == '3') {\n let dvl = new Date(value);\n nd.setHours(0);\n nd.setMinutes(0);\n dvl.setHours(0);\n dvl.setMinutes(0);\n nd.setFullYear(nd.getFullYear() - parseInt(e.value));\n if (nd.getTime() >= dvl.getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n } else if (e.on == '4') {\n nd.setHours(nd.getHours() - parseInt(e.value));\n if (nd.getTime() >= new Date(value).getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n }\n break;\n case 'isdate':\n findElse = arrayLiner.filter((x) => x.id == parseInt(e.field)).map((x) => x);\n if (findElse.length > 0) {\n vl = findElse[0].value;\n }\n if (e.field == '0') {\n nd = new Date();\n nd = new Date(nd.toDateString());\n } else if (e.field == '1') {\n nd = new Date(this.dateCorector(e.date));\n } else {\n nd = new Date(vl);\n }\n if (nd.getTime() == new Date(value).getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n break;\n case 'notdate':\n findElse = arrayLiner.filter((x) => x.id == parseInt(e.field)).map((x) => x);\n if (findElse.length > 0) {\n vl = findElse[0].value;\n }\n if (e.field == '0') {\n nd = new Date();\n nd = new Date(nd.toDateString());\n } else if (e.field == '1') {\n nd = new Date(this.dateCorector(e.date));\n } else {\n nd = new Date(vl);\n }\n if (nd.getTime() != new Date(value).getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n break;\n default: //select+radio\n if (value == '' || value == null) {\n result.push(false);\n } else if (value == e.condition) {\n result.push(true);\n } else {\n result.push(false);\n }\n break;\n }\n });\n let display = true;\n let finResult = [];\n let finIndex = 0;\n if (result.length == 1) {\n display = result[0];\n finResult.push([display]);\n } else if (result.length > 1) {\n finResult.push([]);\n [].forEach.call(result, (e, index) => {\n if (elseC[index] != '') {\n if (elseC[index] == 'and') {\n finResult[finIndex].push(e);\n } else if (elseC[index] == 'or') {\n finResult.push([]);\n finIndex++;\n finResult[finIndex].push(e);\n }\n } else {\n finResult[finIndex].push(e);\n }\n });\n }\n let disResult = [];\n if (finResult.length > 0) {\n [].forEach.call(finResult, (e) => {\n disResult.push(\n e\n .map(function (x) {\n return x;\n })\n .indexOf(false)\n );\n });\n display = false;\n [].forEach.call(disResult, (e) => {\n if (e == -1) {\n display = true;\n }\n });\n } else {\n display = false;\n }\n\n this.onScroll([null, index, null]);\n\n if (index == null) {\n this.formDisplay.push(display);\n } else {\n this.formDisplay[index] = display;\n }\n }\n\n displayCheker(id, index) {\n let target = this.counterArray[index].filter((x) => x.id == id).map((x) => x);\n if (target == null || target.length == 0) {\n return false;\n }\n return target[0].display;\n }\n\n dataFormer(array, mainIndex, result) {\n [].forEach.call(array, (e) => {\n let index = this.attributesBase[mainIndex].indexOf(e.id);\n let column = null;\n column = new Array(1).fill([]);\n let columns = null;\n if (index != -1) {\n columns = this.dataFormer(this.attributesChild[mainIndex][index], mainIndex, column);\n }\n\n if (e.selectors == null && (e.type == 'radio' || e.type == 'select')) {\n e.selectors = e.selectors = '*T*custom*L*option_0|empty|';\n }\n let position = 0;\n if (e.position != undefined) {\n position = e.position;\n }\n\n let selectors = null;\n if (e.type != 'date') {\n selectors = this.dataPacker('unpack', 'selectors', e.selectors);\n } else {\n if ((e.selectors != null && e.selectors != '') || e.selctors == true) {\n columns = new Date();\n } else {\n columns = null;\n }\n selectors = e.selectors;\n }\n\n let json = {\n id: e.id,\n requestAttributeId: e.requestAttributeId,\n requestFormId: e.requestFormId,\n requestForm: null,\n required: e.required,\n label: e.label.split('$$').join('\\n'),\n description: e.description,\n placeholder: e.placeholder,\n key: e.key,\n type: e.type,\n mask: e.type === 'file' && !Array.isArray(e.mask) ? [''] : e.mask,\n tooltip: e.tooltip,\n disabled: e.disabled,\n display: e.display,\n condition: this.dataPacker('unpack', 'condition', e.condition),\n dialog: e.dialog,\n selectors: selectors,\n columns: columns,\n value: e.type === 'file' ? [''] : '',\n dublicate: -1,\n position: position,\n clone: e.clone,\n dub: e.dub,\n aligment: e.aligment,\n };\n if (e.type == 'court') {\n json.selectors = { type: 'court', list: [null, null, null] };\n }\n\n if (e.type == 'column') {\n if (e.mask == 'slide') {\n json.description = 0;\n }\n }\n\n let keys = [];\n if (result != null) {\n let key = parseInt(json.key.split('_')[1].split('|')[1]);\n if (json.key.split('_')[1].split('|')[1] == undefined) {\n key = 0;\n json.key = json.key + '|' + 0;\n }\n keys.push(json);\n if (result.length < key + 1) {\n let count = key + 1 - result.length;\n for (let i = 0; i < count; i++) {\n result.push([]);\n }\n }\n if (result[key].length > 0) {\n result[key] = result[key].concat(keys);\n } else {\n result[key] = keys;\n }\n } else {\n this.nestableList.push(json);\n }\n });\n if (result == null) {\n this.nestableList.sort(function (a, b) {\n return parseInt(a.position) - parseInt(b.position);\n });\n return this.nestableList;\n } else {\n [].forEach.call(result, (e) => {\n e.sort(function (a, b) {\n return parseInt(a.position) - parseInt(b.position);\n });\n });\n return result;\n }\n }\n\n dataLiner(array, allow) {\n let result = [];\n if (array == null) {\n return result;\n }\n [].forEach.call(array, (e) => {\n if (Array.isArray(e)) {\n let column = this.dataLiner(e, allow);\n [].forEach.call(column, (c) => {\n result.push(c);\n });\n } else {\n if (e.type == 'column' || e.type == 'copy') {\n let column = this.dataLiner(e.columns, allow);\n if (allow) {\n result.push(e);\n }\n [].forEach.call(column, (c) => {\n result.push(c);\n });\n } else {\n result.push(e);\n }\n }\n });\n result.sort(function (a, b) {\n return parseInt(a.position) - parseInt(b.position);\n });\n return result;\n }\n\n dataPacker(type, group, value) {\n if (type == 'pack') {\n switch (group) {\n case 'selectors':\n if (value != null) {\n let list = [];\n if (value.list == undefined) {\n return value;\n }\n [].forEach.call(value.list, (e) => {\n list.push(e.name + '|' + e.value + '|' + e.dialog);\n });\n return '*T*' + value.type + '*L*' + list.join('*I*');\n }\n break;\n case 'condition':\n if (value != null) {\n let list = [];\n [].forEach.call(value, (e) => {\n list.push(\n e.target +\n '|' +\n e.condition +\n '|' +\n e.else +\n '|' +\n e.field +\n '|' +\n e.on +\n '|' +\n e.value +\n '|' +\n e.date\n );\n });\n return list.join('*I*');\n }\n break;\n }\n } else {\n switch (group) {\n case 'selectors':\n let selectors = {\n type: 'custom',\n list: [],\n id: 0,\n };\n let lib = this.indexPage.getList('Lib');\n if (value != null && value.list == undefined) {\n selectors.type = value.split('*T*')[1].split('*L*')[0];\n if (selectors.type == 'lib') {\n let list = [];\n let valList = value.split('*L*')[1];\n [].forEach.call(lib, (e) => {\n if (e.Parent == parseInt(valList)) {\n list.push(e);\n }\n });\n selectors.list = [];\n [].forEach.call(list, (e, index) => {\n selectors.list.push({ name: 'option_' + index, value: e.Title, email: e.Email });\n });\n } else {\n if (value.split('*L*')[1].length != 0) {\n let list = value.split('*L*')[1].split('*I*');\n [].forEach.call(list, (e, index) => {\n let text = e.split('|');\n let array = {\n name: text[0],\n value: text[1],\n dialog: text[2],\n };\n list[index] = array;\n });\n selectors.list = list;\n }\n }\n return selectors;\n } else {\n if (value != null && value.id != 0) {\n if (value.type == 'lib') {\n selectors.type = value.type;\n let list = [];\n if (!isNaN(value.list[0])) {\n selectors.id = value.list[0];\n } else {\n selectors.id = parseInt(value.list[0].name);\n }\n [].forEach.call(lib, (e) => {\n if (e.Parent == selectors.id) {\n list.push(e);\n }\n });\n selectors.list = [];\n [].forEach.call(list, (e, index) => {\n selectors.list.push({ name: 'option_' + index, value: e.Title, email: e.Email });\n });\n return selectors;\n }\n } else {\n return value;\n }\n }\n break;\n case 'condition':\n let condition = [];\n if (value != null && typeof value === 'string') {\n let list = value.split('*I*');\n [].forEach.call(list, (e, index) => {\n let text = e.split('|');\n if (text.length > 7) {\n if (Number.isInteger(parseInt(text[1]))) {\n text[0] = text[0] + '|' + text[1];\n text.splice(1, 1);\n }\n if (Number.isInteger(parseInt(text[4]))) {\n text[3] = text[3] + '|' + text[4];\n text.splice(4, 1);\n }\n }\n let array: any = {\n target: text[0],\n condition: text[1],\n else: text[2],\n field: text[3],\n on: text[4],\n value: text[5],\n date: text[6],\n };\n if (array.target == undefined) {\n array.target = '';\n }\n if (array.condition == undefined) {\n array.condition = '';\n }\n if (array.else == undefined) {\n array.else = '';\n }\n if (array.field == undefined) {\n array.field = '';\n }\n if (array.on == undefined) {\n array.on = '';\n }\n if (array.value == undefined) {\n array.value = '';\n }\n if (array.date == undefined) {\n array.date = '';\n }\n list[index] = array;\n });\n condition = list;\n return condition;\n } else {\n return value;\n }\n break;\n }\n return null;\n }\n }\n\n conditionControl(change) {\n let send = true;\n let onChange = null;\n let naIndex = [0, 0];\n // console.log(change);\n\n // console.log(this.counterArray);\n\n [].forEach.call(this.counterArray, (e, indexE) => {\n let indexF = e.map((x) => x.id).indexOf(change.id);\n if (indexF != -1) {\n naIndex[0] = indexE;\n naIndex[1] = indexF;\n }\n });\n // console.log(naIndex);\n\n let array = this.dataLiner(this.nestableArray[naIndex[0]], true);\n // console.log(array);\n // console.log(this.nestableArray[naIndex[0]]);\n\n let itemList = array.filter((x) => x.condition != null).map((x) => x);\n if (change.dublicate == undefined) {\n change.dublicate = -1;\n }\n // console.log(itemList);\n [].forEach.call(itemList, (e) => {\n if (e.dublicate == change.dublicate || change.dublicate == -1) {\n e.condition = this.dataPacker('unpack', 'condition', e.condition);\n [].forEach.call(e.condition, (c) => {\n if (c.field == undefined) {\n c.field = '';\n }\n if (\n change.key.split('|')[0] == c.target.split('|')[0] ||\n change.key.split('|')[0] == c.field.split('|')[0]\n ) {\n onChange = [];\n onChange.push(e);\n onChange.push(naIndex[0]);\n onChange.push(naIndex[1]);\n send = false;\n this.conditionSwitch(e, onChange, false);\n }\n });\n }\n });\n // console.log(onChange);\n\n if (send) {\n onChange = [];\n onChange.push(change);\n onChange.push(naIndex[0]);\n onChange.push(naIndex[1]);\n if (onChange != null) {\n this.onScroll(onChange);\n }\n }\n }\n\n conditionSwitch(target, onChange, returner) {\n let value = '';\n let elseC = [];\n let result = [];\n let nd;\n let vl;\n let findElse;\n let array = this.dataLiner(this.nestableArray[onChange[1]], true);\n [].forEach.call(target.condition, (e) => {\n let findChange = array\n .filter((x) => x.key.split('|')[0] == e.target.split('|')[0])\n .map((x) => x);\n if (findChange.length == 0) {\n return false;\n }\n value = findChange[0].value;\n elseC.push(e.else);\n switch (e.condition) {\n case 'empty':\n if (value == '' || value == null) {\n result.push(true);\n } else {\n result.push(false);\n }\n break;\n case 'fill':\n if (value == '' || value == null) {\n result.push(false);\n } else {\n result.push(true);\n }\n break;\n case 'emptyE':\n if (value == '' || value == null) {\n result.push(true);\n } else {\n result.push(false);\n }\n break;\n case 'fillE':\n if (value == '' || value == null) {\n result.push(false);\n } else {\n result.push(true);\n }\n break;\n case 'morenumber':\n findElse = array\n .filter((x) => x.key.split('|')[0] == e.field.split('|')[0])\n .map((x) => x);\n if (e.field == '0') {\n nd = parseInt(e.value);\n } else {\n nd = parseInt(findElse[0].value);\n }\n if (e.on == '0' || e.on == '2') {\n if (nd < parseInt(value)) {\n result.push(true);\n } else {\n result.push(false);\n }\n } else if (e.on == '1') {\n nd += parseInt(e.value);\n if (nd <= parseInt(value)) {\n result.push(true);\n } else {\n result.push(false);\n }\n }\n break;\n case 'lessnumber':\n findElse = array\n .filter((x) => x.key.split('|')[0] == e.field.split('|')[0])\n .map((x) => x);\n if (e.field == '0') {\n nd = parseInt(e.value);\n } else {\n nd = parseInt(findElse[0].value);\n }\n if (e.on == '0' || e.on == '2') {\n if (nd > parseInt(value)) {\n result.push(true);\n } else {\n result.push(false);\n }\n } else if (e.on == '1') {\n nd -= parseInt(e.value);\n if (nd >= parseInt(value)) {\n result.push(true);\n } else {\n result.push(false);\n }\n }\n break;\n case 'isnumber':\n findElse = array\n .filter((x) => x.key.split('|')[0] == e.field.split('|')[0])\n .map((x) => x);\n if (e.field == '0') {\n nd = parseInt(e.value);\n } else {\n nd = parseInt(findElse[0].value);\n }\n if (nd == parseInt(value)) {\n result.push(true);\n } else {\n result.push(false);\n }\n break;\n case 'notnumber':\n findElse = array\n .filter((x) => x.key.split('|')[0] == e.field.split('|')[0])\n .map((x) => x);\n if (e.field == '0') {\n nd = parseInt(e.value);\n } else {\n nd = parseInt(findElse[0].value);\n }\n if (nd != parseInt(value)) {\n result.push(true);\n } else {\n result.push(false);\n }\n break;\n case 'check':\n if (value == '' || value == null) {\n result.push(false);\n } else {\n result.push(true);\n }\n break;\n case 'uncheck':\n if (value == '' || value == null) {\n result.push(true);\n } else {\n result.push(false);\n }\n break;\n case 'file':\n if (value == '' || value == null) {\n result.push(false);\n } else {\n result.push(true);\n }\n break;\n case 'nofile':\n if (value == '' || value == null) {\n result.push(true);\n } else {\n result.push(false);\n }\n break;\n case 'date':\n if (value == '' || value == null) {\n result.push(false);\n } else {\n result.push(true);\n }\n break;\n case 'nodate':\n if (value == '' || value == null) {\n result.push(true);\n } else {\n result.push(false);\n }\n break;\n case 'moredate':\n findElse = array\n .filter((x) => x.key.split('|')[0] == e.field.split('|')[0])\n .map((x) => x);\n if (findElse.length > 0) {\n vl = findElse[0].value;\n }\n if (e.field == '0') {\n nd = new Date();\n nd = new Date(nd.toDateString());\n } else if (e.field == '1') {\n nd = new Date(this.dateCorector(e.date));\n } else {\n nd = new Date(vl);\n }\n if (e.on == '0') {\n let dvl = new Date(value);\n nd.setHours(0);\n nd.setMinutes(0);\n dvl.setHours(0);\n dvl.setMinutes(0);\n if (nd.getTime() < dvl.getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n } else if (e.on == '1') {\n let dvl = new Date(value);\n nd.setHours(0);\n nd.setMinutes(0);\n dvl.setHours(0);\n dvl.setMinutes(0);\n nd.setDate(nd.getDate() + parseInt(e.value));\n if (nd.getTime() <= dvl.getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n } else if (e.on == '2') {\n let dvl = new Date(value);\n nd.setHours(0);\n nd.setMinutes(0);\n dvl.setHours(0);\n dvl.setMinutes(0);\n nd.setMonth(nd.getMonth() + parseInt(e.value));\n if (nd.getTime() <= dvl.getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n } else if (e.on == '3') {\n let dvl = new Date(value);\n nd.setHours(0);\n nd.setMinutes(0);\n dvl.setHours(0);\n dvl.setMinutes(0);\n nd.setFullYear(nd.getFullYear() + parseInt(e.value));\n if (nd.getTime() <= dvl.getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n } else if (e.on == '4') {\n nd.setHours(nd.getHours() + parseInt(e.value));\n if (nd.getTime() <= new Date(value).getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n }\n break;\n case 'lessdate':\n findElse = array\n .filter((x) => x.key.split('|')[0] == e.field.split('|')[0])\n .map((x) => x);\n if (findElse.length > 0) {\n vl = findElse[0].value;\n }\n if (e.field == '0') {\n nd = new Date();\n nd = new Date(nd.toDateString());\n } else if (e.field == '1') {\n nd = new Date(this.dateCorector(e.date));\n } else {\n nd = new Date(vl);\n }\n if (e.on == '0') {\n let dvl = new Date(value);\n nd.setHours(0);\n nd.setMinutes(0);\n dvl.setHours(0);\n dvl.setMinutes(0);\n if (nd.getTime() > dvl.getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n } else if (e.on == '1') {\n let dvl = new Date(value);\n nd.setHours(0);\n nd.setMinutes(0);\n dvl.setHours(0);\n dvl.setMinutes(0);\n nd.setDate(nd.getDate() - parseInt(e.value));\n if (nd.getTime() >= dvl.getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n } else if (e.on == '2') {\n let dvl = new Date(value);\n nd.setHours(0);\n nd.setMinutes(0);\n dvl.setHours(0);\n dvl.setMinutes(0);\n nd.setMonth(nd.getMonth() - parseInt(e.value));\n if (nd.getTime() >= dvl.getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n } else if (e.on == '3') {\n let dvl = new Date(value);\n nd.setHours(0);\n nd.setMinutes(0);\n dvl.setHours(0);\n dvl.setMinutes(0);\n nd.setFullYear(nd.getFullYear() - parseInt(e.value));\n if (nd.getTime() >= dvl.getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n } else if (e.on == '4') {\n nd.setHours(nd.getHours() - parseInt(e.value));\n if (nd.getTime() >= new Date(value).getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n }\n break;\n case 'isdate':\n findElse = array\n .filter((x) => x.key.split('|')[0] == e.field.split('|')[0])\n .map((x) => x);\n if (findElse.length > 0) {\n vl = findElse[0].value;\n }\n if (e.field == '0') {\n nd = new Date();\n nd = new Date(nd.toDateString());\n } else if (e.field == '1') {\n nd = new Date(this.dateCorector(e.date));\n } else {\n nd = new Date(vl);\n }\n if (nd.getTime() == new Date(value).getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n break;\n case 'notdate':\n findElse = array\n .filter((x) => x.key.split('|')[0] == e.field.split('|')[0])\n .map((x) => x);\n if (findElse.length > 0) {\n vl = findElse[0].value;\n }\n if (e.field == '0') {\n nd = new Date();\n nd = new Date(nd.toDateString());\n } else if (e.field == '1') {\n nd = new Date(this.dateCorector(e.date));\n } else {\n nd = new Date(vl);\n }\n if (nd.getTime() != new Date(value).getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n break;\n default: //select+radio\n if (value == '' || value == null) {\n result.push(false);\n } else if (value == e.condition) {\n result.push(true);\n } else {\n result.push(false);\n }\n break;\n }\n });\n\n let display = true;\n let finResult = [];\n let finIndex = 0;\n if (result.length == 1) {\n display = result[0];\n finResult.push([display]);\n } else if (result.length > 1) {\n finResult.push([]);\n [].forEach.call(result, (e, index) => {\n if (elseC[index] != '') {\n if (elseC[index] == 'and') {\n finResult[finIndex].push(e);\n } else if (elseC[index] == 'or') {\n finResult.push([]);\n finIndex++;\n finResult[finIndex].push(e);\n }\n } else {\n finResult[finIndex].push(e);\n }\n });\n }\n let disResult = [];\n if (finResult.length > 0) {\n [].forEach.call(finResult, (e) => {\n disResult.push(\n e\n .map(function (x) {\n return x;\n })\n .indexOf(false)\n );\n });\n display = false;\n [].forEach.call(disResult, (e) => {\n if (e == -1) {\n display = true;\n }\n });\n } else {\n display = false;\n }\n\n if (returner) {\n return display;\n } else {\n target.display = display;\n if (onChange != null) {\n onChange[0] = target;\n onChange[2] = target.position;\n this.onScroll(onChange);\n }\n }\n }\n\n dateCorector(date) {\n let nd = date.split('-');\n return nd[1] + '-' + nd[0] + '-' + nd[2];\n }\n\n courtClick(type) {\n this.courtLoad = type;\n }\n\n changeDescription(data, clear, pose) {\n if (this.descriptionId != 0) {\n this.descriptionPreId = pose;\n }\n\n let clearData = { Title: '', Text: '' };\n\n this.translateService.get('Common', { value: 'deskTitle' }).subscribe((res: string) => {\n clearData.Title = res;\n });\n\n if (typeof clearData.Title != 'string') {\n let array: any = clearData.Title;\n clearData.Title = array.deskTitle;\n }\n\n this.translateService.get('Common', { value: 'deskText' }).subscribe((res: string) => {\n clearData.Text = res;\n });\n\n if (typeof clearData.Text != 'string') {\n let array: any = clearData.Text;\n clearData.Text = array.deskText;\n }\n\n let requestTooltip = this.indexPage.getList('Page');\n requestTooltip = requestTooltip.filter((x) => x.Type == 'requestTooltip').map((x) => x);\n requestTooltip = requestTooltip[0].Text;\n\n if (requestTooltip == 'true') {\n clearData.Title = '';\n clearData.Text = '';\n }\n\n if (clear) {\n data = clearData;\n }\n let element = document.getElementById('descPanel');\n let elementCont = document.getElementById('descContentPanel' + this.descriptionPreId);\n if (this.descriptionId == 0) {\n this.descriptionPreId = this.descriptionId;\n }\n if (element == null) {\n this.description = data;\n } else {\n if (this.descriptionId == 0) {\n elementCont.classList.add('desc-anim');\n } else {\n if (!elementCont.classList.contains('desc-anim')) {\n elementCont.classList.add('desc-anim');\n }\n element.classList.add('desc-anim');\n }\n this.description = data;\n if (this.descriptionId == 0) {\n this.description = clearData;\n element.classList.remove('desc-anim');\n } else {\n elementCont.classList.remove('desc-anim');\n }\n return true;\n }\n }\n\n changeCourt(type, event, item) {\n switch (type) {\n case 'region':\n if (event == 0) {\n item.selectors.list = new Array(3).fill(null);\n item.value = new Array(3).fill(0);\n this.regionList = this.indexPage.getList('Region');\n } else {\n this.courtLoad = 0;\n this.cityList = this.cityArray.filter((x) => x.regionId == event).map((x) => x);\n item.selectors.list[0] = event;\n }\n break;\n case 'city':\n this.courtLoad = 1;\n this.courtList = this.courtArray.filter((x) => x.cityId == event).map((x) => x);\n item.selectors.list[1] = event;\n break;\n case 'court':\n this.courtLoad = 2;\n item.selectors.list[2] = event;\n break;\n }\n }\n\n inputValidator(event: any) {\n const pattern = /[^\\d\\s]/;\n if (!pattern.test(event.data)) {\n event.target.value = event.target.value.replace(/[\\d\\s]/g, '');\n }\n }\n\n resetFile(value, input) {\n input.value = null;\n }\n\n removeFile(input: any, index: number) {\n input.value.splice(index, 1);\n input.mask.splice(index, 1);\n [].forEach.call(this.formConditionList, (e) => {\n this.formConditionUnPacker(e.cond, e.form);\n });\n this.cloneControl(input);\n this.dubControl(input);\n this.onScroll([null, 0, null]);\n }\n\n onChange(value, input, system, index?: number) {\n if (this.isLoad) {\n return false;\n }\n if (value == '') {\n input.value = '';\n } else {\n if (input.type == 'radio' || input.type == 'select') {\n input.value = value.value;\n } else if (input.type == 'checkbox') {\n input.value = value.checked;\n } else if (input.type == 'date') {\n if (typeof value === 'string') {\n input.placeholder = value;\n } else {\n if (value.value == null) {\n input.value = '';\n } else {\n input.value = value.value;\n }\n if (input.value == '') {\n input.placeholder = '';\n } else {\n if (input.placeholder == '' || input.placeholder == null) {\n input.placeholder = '00:00';\n }\n }\n }\n if (input.placeholder != '' && input.placeholder != null) {\n let nd = new Date(input.value);\n nd.setHours(parseInt(input.placeholder.split(':')[0]));\n nd.setMinutes(parseInt(input.placeholder.split(':')[1]));\n input.value = nd;\n }\n } else if (input.type == 'file') {\n if (value === null) {\n input.mask = [''];\n } else {\n let fileData: File = null;\n let previewUrl: any = null;\n let ex: string = '';\n let name: string = '';\n\n fileData = value.files[0];\n\n let array = fileData.name.split('.');\n ex = array[array.length - 1];\n let allowFormats = [\n 'jpeg',\n 'jpg',\n 'png',\n 'pdf',\n 'rtf',\n 'doc',\n 'docx',\n 'bmp',\n 'webp',\n 'gif',\n 'xlsx',\n 'xls',\n ];\n if (!allowFormats.some((x) => x === ex)) {\n value = null;\n input.mask = [''];\n\n let text = '';\n this.translateService\n .get('Common', { value: 'formatError' })\n .subscribe((res: string) => {\n text = res;\n });\n\n if (typeof text != 'string') {\n let array: any = text;\n text = array.formatError;\n }\n\n this.dialog\n .open(InfoMenu, {\n minWidth: '400px',\n maxWidth: '800px',\n disableClose: true,\n data: { text: text + ' ' + allowFormats.join(', ') },\n })\n .afterClosed()\n .subscribe((result) => {\n input.value[index] = null;\n });\n return false;\n } else {\n // console.log(true);\n }\n array.splice(-1, 1);\n name = array.join('.');\n\n var mimeType = fileData.type;\n if (mimeType.match(/image\\/*/) != null) {\n var reader = new FileReader();\n reader.readAsDataURL(fileData);\n reader.onload = (_event) => {\n previewUrl = reader.result;\n };\n }\n\n if (mimeType.match(/text.*/) != null) {\n var reader = new FileReader();\n reader.readAsText(fileData);\n reader.onload = (_event) => {\n previewUrl = reader.result;\n };\n }\n\n if (mimeType.match(/application.*/) != null) {\n var reader = new FileReader();\n reader.readAsDataURL(fileData);\n reader.onload = (_event) => {\n previewUrl = reader.result;\n };\n }\n\n let interval = setInterval(() => {\n if (previewUrl != null) {\n clearInterval(interval);\n input.mask[index] = previewUrl;\n }\n }, 50);\n }\n\n input.value[index] = value;\n setTimeout(() => {\n input.value.push(null);\n }, 0);\n } else if (input.type == 'court') {\n let court = new Array(3).fill(0);\n if (input.value != '') {\n [].forEach.call(input.value, (e, index) => {\n court[index] = parseInt(e);\n });\n }\n court[this.courtLoad] = value.value;\n let reqCheck = false;\n if (this.courtLoad == 0) {\n if (input.required && court[1] != 0) {\n reqCheck = true;\n }\n court[1] = 0;\n court[2] = 0;\n this.cityList = [];\n this.courtList = [];\n } else if (this.courtLoad == 1) {\n court[2] = 0;\n this.courtList = [];\n }\n\n if (reqCheck) {\n input.value = '';\n this.onDialog(input, value);\n }\n input.value = court;\n if (court[2] == 0) {\n system = true;\n } else {\n system = false;\n }\n } else {\n input.value = value;\n }\n }\n [].forEach.call(this.formConditionList, (e) => {\n this.formConditionUnPacker(e.cond, e.form);\n });\n this.cloneControl(input);\n this.dubControl(input);\n if (!system) {\n this.onDialog(input, value);\n }\n if (this.saveTimer) {\n clearTimeout(this.saveTimer);\n this.saveTimer = null;\n }\n if (value || (!value && input && input.type == ('editor' || 'input'))) {\n this.saveTimer = setTimeout(() => {\n clearTimeout(this.saveTimer);\n this.saveTimer = null;\n // AutoSave Form\n this.isStore = true;\n this.saveDataFormer(true);\n }, 5000);\n }\n }\n\n cloneControl(input) {\n let dataLiner = this.dataLiner(this.nestableArray, false);\n let target = dataLiner\n .filter((x) => x.clone != null && x.clone != undefined && x.clone != '')\n .map((x) => x);\n if (target.length > 0) {\n [].forEach.call(target, (e) => {\n if (e.type == input.type) {\n if (parseInt(e.clone.split('|')[1]) == input.id) {\n e.value = input.value;\n }\n }\n });\n }\n }\n\n dubControl(input) {\n let dataLiner = this.dataLiner(this.nestableArray, false);\n if (input.dub != null && input.dub != undefined && input.dub != '') {\n let dubData: string[] = input.dub.split('|');\n let target = dataLiner.find(\n (x) => x.id === parseInt(dubData[1]) && x.requestFormId === parseInt(dubData[0])\n );\n if (target.type === input.type) {\n if (target.value == input.value) {\n input.dubError = true;\n } else {\n input.dubError = false;\n }\n }\n } else {\n let target = dataLiner\n .filter((x) => x.dub != null && x.dub != undefined && x.dub != '')\n .map((x) => x);\n if (target.length > 0) {\n [].forEach.call(target, (e) => {\n if (e.type === input.type) {\n let dubData: string[] = e.dub.split('|');\n if (parseInt(dubData[0]) === input.requestFormId && parseInt(dubData[1]) === input.id) {\n if (e.value == input.value) {\n e.dubError = true;\n } else {\n e.dubError = false;\n }\n }\n }\n });\n }\n }\n }\n\n onDialog(input, value) {\n if (value == null) {\n this.conditionControl(input);\n return false;\n }\n let text = '';\n let arrayLiner = this.dataLiner(this.nestableArray, true);\n if (value.checked != null) {\n let target = arrayLiner.filter((x) => x.id === input.id).map((x) => x);\n if (target[0] == undefined) {\n return false;\n }\n if (value.checked && target[0].dialog != '') {\n let linkChecker = target[0].dialog.split('@@');\n if (linkChecker.length > 1) {\n let newText = linkChecker[0];\n let linkArray = linkChecker[1].split('&&');\n newText += \"\" + linkArray[0] + '';\n newText += linkChecker[2];\n text = newText;\n } else {\n text = target[0].dialog;\n }\n }\n } else if (input.key.split('_')[0] == 'date') {\n let target = arrayLiner.filter((x) => x.id === input.id).map((x) => x);\n if (target[0].dialog != '' && target[0].dialog != null) {\n let linkChecker = target[0].dialog.split('@@');\n if (linkChecker.length > 1) {\n let newText = linkChecker[0];\n let linkArray = linkChecker[1].split('&&');\n newText += \"\" + linkArray[0] + '';\n newText += linkChecker[2];\n text = newText;\n } else {\n text = target[0].dialog;\n }\n }\n } else if (value.source != null && input.key.split('_')[0] != 'court') {\n let target = arrayLiner.filter((x) => x.id === input.id).map((x) => x);\n let array: any = this.dataPacker('unpack', 'selectors', target[0].selectors);\n let index = array.list\n .map(function (e) {\n return e.name;\n })\n .indexOf(value.value);\n if (index != -1) {\n if (\n array.list[index].dialog != '' &&\n array.list[index].dialog != null &&\n array.list[index].dialog != undefined\n ) {\n let linkChecker = array.list[index].dialog.split('@@');\n if (linkChecker.length > 1) {\n let newText = linkChecker[0];\n let linkArray = linkChecker[1].split('&&');\n newText += \"\" + linkArray[0] + '';\n newText += linkChecker[2];\n text = newText;\n } else {\n text = array.list[index].dialog;\n }\n }\n }\n }\n if (text != '' && text != undefined) {\n let buttonL = '';\n this.translateService.get('Common', { value: 'backToForm' }).subscribe((res: string) => {\n buttonL = res;\n });\n\n if (typeof buttonL != 'string') {\n let array: any = buttonL;\n buttonL = array.backToForm;\n }\n\n let buttonR = '';\n this.translateService.get('Common', { value: 'formFinish' }).subscribe((res: string) => {\n buttonR = res;\n });\n\n if (typeof buttonR != 'string') {\n let array: any = buttonR;\n buttonR = array.formFinish;\n }\n\n let minWidth = '400px';\n let maxWidth = '600px';\n if (text.length > 300 && text.length < 600) {\n maxWidth = '800px';\n } else if (text.length > 600) {\n minWidth = '80%';\n maxWidth = '1000px';\n }\n this.dialog\n .open(ConfirmMenu, {\n minWidth: minWidth,\n maxWidth: maxWidth,\n disableClose: true,\n data: { text: text, button: [buttonL, buttonR], ish: false },\n })\n .afterClosed()\n .subscribe((result) => {\n if (result) {\n this.conditionControl(input);\n } else {\n this.router.navigate(['/']);\n }\n });\n } else {\n this.conditionControl(input);\n }\n }\n\n onTooltip(text) {\n if (text == 'skip') {\n text = this.getPageText('skipD');\n }\n\n let button = this.getPageText('skipA');\n\n let minWidth = '200px';\n let maxWidth = '400px';\n if (text.length > 150 && text.length < 300) {\n maxWidth = '600px';\n } else if (text.length > 300 && text.length < 600) {\n maxWidth = '800px';\n } else if (text.length > 600) {\n minWidth = '80%';\n maxWidth = '1000px';\n }\n this.dialog\n .open(TooltipMenu, {\n minWidth: minWidth,\n maxWidth: maxWidth,\n disableClose: true,\n data: { text: text, button: button },\n })\n .afterClosed()\n .subscribe((result) => {\n if (!result) {\n this.router.navigate(['/']);\n }\n });\n }\n\n onScroll(onChange) {\n // return;\n if (onChange[0] != null) {\n let target = this.counterArray[onChange[1]]\n .filter((x) => x.id == onChange[0].id)\n .map((x) => x);\n\n if (target.length == 0) {\n return false;\n }\n\n let arrayLiner = this.dataLiner(this.nestableArray, true);\n\n if (onChange[0].type == 'column' || onChange[0].type == 'copy') {\n let dataLiner = this.dataLiner(onChange[0].columns, false);\n let displayArray = [];\n [].forEach.call(dataLiner, (e) => {\n let targetD = this.counterArray[onChange[1]].filter((x) => x.id == e.id).map((x) => x);\n if (targetD.length > 0) {\n displayArray.push(targetD[0].display);\n }\n });\n let index = displayArray\n .map(function (x) {\n return x;\n })\n .indexOf(true);\n\n if (index == -1) {\n target[0].display = false;\n } else {\n target[0].display = true;\n }\n\n if (!onChange[0].display) {\n target[0].display = false;\n [].forEach.call(dataLiner, (e) => {\n let targetD = this.counterArray[onChange[1]].filter((x) => x.id == e.id).map((x) => x);\n if (targetD.length > 0) {\n targetD[0].display = false;\n targetD[0].next = true;\n }\n });\n }\n\n target = [];\n }\n\n if (target.length != 0 && target != null && target != undefined) {\n if (onChange[0].display == false || onChange[0].disabled == true) {\n target[0].display = false;\n } else {\n let selector = arrayLiner.filter((x) => x.id == target[0].id).map((x) => x);\n let parent = arrayLiner\n .filter((x) => x.id == selector[0].requestAttributeId)\n .map((x) => x);\n if (parent.length > 0) {\n if (parent[0].display) {\n target[0].display = true;\n } else {\n target[0].display = false;\n target[0].next = true;\n }\n } else {\n target[0].display = true;\n }\n }\n }\n\n let scroll = true;\n let allow = true;\n [].forEach.call(this.counterArray[onChange[1]], (c, indexC) => {\n let targetN = arrayLiner.filter((x) => x.id == c.id).map((x) => x);\n\n let parent = arrayLiner.filter((x) => x.id == targetN[0].requestAttributeId).map((x) => x);\n if (parent.length > 0) {\n if (parent[0].display) {\n if (\n targetN[0].display == false &&\n targetN[0].required == true &&\n targetN[0].disabled == false\n ) {\n this.counterArray[onChange[1]][indexC].next = true;\n } else {\n this.counterArray[onChange[1]][indexC].next = false;\n }\n } else {\n this.counterArray[onChange[1]][indexC + 1].next = false;\n }\n } else {\n if (\n targetN[0].display == false &&\n targetN[0].required == true &&\n targetN[0].disabled == false\n ) {\n this.counterArray[onChange[1]][indexC].next = true;\n } else {\n this.counterArray[onChange[1]][indexC].next = false;\n }\n }\n\n if (targetN[0].mask == 'email_1') {\n if (this.emailFormControl.hasError('email')) {\n scroll = false;\n allow = false;\n }\n }\n\n if (allow) {\n if (\n targetN[0].required == true &&\n targetN[0].type != 'column' &&\n targetN[0].type != 'copy'\n ) {\n if (targetN[0].value == null || targetN[0].value == '') {\n if (this.counterArray[onChange[1]][indexC].next != true) {\n scroll = false;\n }\n } else {\n if (this.counterArray[onChange[1]].length < indexC + 1) {\n let selector = arrayLiner\n .filter((x) => x.id == this.counterArray[onChange[1]][indexC + 1].id)\n .map((x) => x);\n let parent = arrayLiner\n .filter((x) => x.id == selector[0].requestAttributeId)\n .map((x) => x);\n if (parent.length > 0) {\n if (parent[0].display) {\n this.counterArray[onChange[1]][indexC + 1].display = true;\n } else {\n this.counterArray[onChange[1]][indexC + 1].display = false;\n this.counterArray[onChange[1]][indexC + 1].next = true;\n }\n } else {\n this.counterArray[onChange[1]][indexC + 1].display = true;\n }\n this.counterArray[onChange[1]][indexC + 1].display = true;\n }\n }\n }\n }\n });\n\n if (!allow) {\n return false;\n }\n\n [].forEach.call(this.counterArray, (e, indexE) => {\n let afterHide = false;\n [].forEach.call(e, (c, indexC) => {\n let target = arrayLiner.filter((x) => x.id == c.id).map((x) => x);\n if (target.length != 0 && target != null && target != undefined) {\n let preAfter = null;\n if (target[0].type == 'column' || target[0].type == 'copy') {\n preAfter = afterHide;\n afterHide = false;\n }\n\n if (afterHide) {\n this.counterArray[indexE][indexC].display = false;\n } else {\n if (target[0].type == 'column' || target[0].type == 'copy') {\n let dataLiner = this.dataLiner(target[0].columns, false);\n let displayArray = [];\n [].forEach.call(dataLiner, (e) => {\n let targetD = this.counterArray[indexE].filter((x) => x.id == e.id).map((x) => x);\n if (targetD.length > 0) {\n displayArray.push(targetD[0].display);\n }\n });\n let index = displayArray\n .map(function (x) {\n return x;\n })\n .indexOf(true);\n if (index == -1) {\n this.counterArray[indexE][indexC].display = false;\n } else {\n this.counterArray[indexE][indexC].display = true;\n }\n if (onChange[0].id == target[0].id) {\n if (!onChange[0].display) {\n this.counterArray[indexE][indexC].display = false;\n [].forEach.call(dataLiner, (e) => {\n let targetD = this.counterArray[indexE]\n .filter((x) => x.id == e.id)\n .map((x) => x);\n if (targetD.length > 0) {\n targetD[0].display = false;\n targetD[0].next = true;\n }\n });\n }\n }\n let dispCheck = false;\n [].forEach.call(dataLiner, (a) => {\n if (a.display) {\n dispCheck = true;\n return;\n }\n });\n\n let condCheck = true;\n if (\n target[0].condition != null &&\n target[0].condition != undefined &&\n target[0].condition != ''\n ) {\n condCheck = this.conditionSwitch(\n target[0],\n [target[0], onChange[1], onChange[2]],\n true\n );\n }\n\n if (!condCheck) {\n target[0].display = condCheck;\n } else {\n target[0].display = dispCheck;\n }\n } else {\n if (target[0].display == false || target[0].disabled == true) {\n this.counterArray[indexE][indexC].display = false;\n } else {\n let selector = arrayLiner\n .filter((x) => x.id == this.counterArray[indexE][indexC].id)\n .map((x) => x);\n let parent = arrayLiner\n .filter((x) => x.id == selector[0].requestAttributeId)\n .map((x) => x);\n if (parent.length > 0) {\n if (parent[0].display) {\n this.counterArray[indexE][indexC].display = true;\n } else {\n this.counterArray[indexE][indexC].display = false;\n }\n } else {\n this.counterArray[indexE][indexC].display = true;\n }\n }\n }\n }\n\n if (target[0].type == 'column' || target[0].type == 'copy') {\n if (preAfter != null) {\n afterHide = preAfter;\n preAfter = null;\n }\n }\n if (\n target[0].required == true &&\n target[0].display == true &&\n (target[0].value == null || target[0].value == '')\n ) {\n if (target[0].type != 'column' || target[0].type == 'copy') {\n let parent = arrayLiner\n .filter((x) => x.id == target[0].requestAttributeId)\n .map((x) => x);\n if (parent.length > 0) {\n if (parent[0].display) {\n afterHide = true;\n } else {\n afterHide = false;\n }\n } else {\n afterHide = true;\n }\n }\n }\n }\n });\n });\n\n // console.log(this.formFinisher);\n // console.log(onChange[1] + 1);\n\n if (onChange[1] + 1 < this.nestableArray.length) {\n if (scroll && this.formCounter >= onChange[1]) {\n this.formFinisher[onChange[1] + 1] = true;\n\n for (let i = onChange[1] + 1; i < this.formDisplay.length; i++) {\n if (!this.formDisplay[i + 1]) {\n } else {\n this.formFinisher[i + 1] = true;\n this.onScroll([this.nestableArray[this.formCounter][0], i + 1, 0]);\n break;\n }\n }\n } else {\n if (!this.formDisplay[onChange[1] + 1]) {\n // this.formFinisher[onChange[1] +1] = true;\n } else {\n if (!this.isDataRestore) {\n this.formFinisher[onChange[1] + 1] = false;\n }\n }\n\n // if(onChange[1] +1 == this.nestableArray.length -1){\n // this.formFinisher[onChange[1] +1] = true;\n // }\n }\n }\n // if (!this.isDataRestore) {\n // this.applyRestoreData();\n // }\n }\n // return;\n let interval = setInterval(() => {\n if (this.isDBLoad) {\n this.columnFixer();\n if (!this.isDataRestore) {\n this.applyRestoreData();\n }\n clearInterval(interval);\n setTimeout(() => {\n let formElem = document.getElementById('form' + onChange[1]);\n if (formElem != null) {\n let childHeight = 0;\n [].forEach.call(formElem.childNodes, (e) => {\n if (e.classList) {\n if (e.classList.contains('layout-padding')) {\n [].forEach.call(e.childNodes, (c) => {\n if (c.offsetHeight != undefined) {\n childHeight += c.offsetHeight;\n if (c.offsetHeight != 0) {\n childHeight += 20;\n }\n }\n });\n e.style.height = childHeight + 'px';\n }\n }\n });\n }\n }, 0);\n }\n }, 50);\n }\n\n @HostListener('window:scroll', ['$event'])\n onScrolls(event) {\n if (this.programScroll) {\n event.preventDefault();\n return false;\n }\n\n if (this.isMobile) {\n let mobileForm = document.querySelector('.rq-additional-menu-mobile');\n if (window.scrollY > 100) {\n if (!mobileForm.classList.contains('rq-ad-mm-shadow')) {\n mobileForm.classList.add('rq-ad-mm-shadow');\n }\n } else if (window.scrollY <= 100) {\n if (mobileForm.classList.contains('rq-ad-mm-shadow')) {\n mobileForm.classList.remove('rq-ad-mm-shadow');\n }\n }\n if (this.isSafari) {\n if (window.scrollY > 100) {\n mobileForm.classList.add('safari-style-menu');\n (mobileForm as HTMLElement).style.width = this.mobileMenuWidth + 'px';\n (document.querySelector('.rq-body') as HTMLElement).style.marginTop = '180px';\n } else {\n mobileForm.classList.remove('safari-style-menu');\n (mobileForm as HTMLElement).style.width = 'auto';\n (document.querySelector('.rq-body') as HTMLElement).style.marginTop = '0px';\n }\n }\n }\n\n if (!this.scrollStop) {\n let index = 0;\n if (this.requestForm != undefined) {\n [].forEach.call(this.requestForm, (e, indexE) => {\n let element = document.getElementById('form' + indexE);\n if (element != null) {\n let elemPosition = (Math.floor(element.getBoundingClientRect().top) - 400) * -1;\n if (elemPosition != 400) {\n if (elemPosition > -100) {\n index = indexE;\n return false;\n }\n }\n }\n });\n }\n if (this.formCurrent != index) {\n this.formCurrent = index;\n if (this.isMobile) {\n let element = document.querySelector('.rq-additional-menu-mobile') as HTMLElement;\n let val = 0;\n let parent = document.querySelector('.rq-form-mobile') as HTMLElement;\n let newIndex = 0;\n let blockIndex = 0;\n [].forEach.call(parent.children, (e, indexE) => {\n if (e.classList.contains('none') && index > indexE) {\n blockIndex++;\n }\n });\n newIndex = index;\n newIndex -= blockIndex;\n val = newIndex * 416;\n element.scrollTo({ left: val, behavior: 'smooth' });\n this.programScroll = true;\n setTimeout(() => {\n this.programScroll = false;\n }, 500);\n } else {\n let element = document.querySelector('.rq-form') as HTMLElement;\n element.style.transform =\n 'translateY(' + this.formCurrent * ((4 / (this.nestableArray.length / 4)) * -6) + '%)';\n }\n if (this.descriptionId != 0) {\n this.descriptionId = 0;\n this.changeDescription(null, true, 0);\n }\n }\n }\n }\n\n columnFixer() {\n let columnArray = document.querySelectorAll('.colST1');\n let arrayList = [];\n [].forEach.call(columnArray, (e) => {\n if (e.offsetHeight == 0) {\n return false;\n }\n if (!this.columnFixArray.some((x) => x === e)) {\n this.columnFixArray.push(e);\n } else {\n return false;\n }\n [].forEach.call(e.children, (c) => {\n if (c.classList.contains('flex')) {\n [].forEach.call(c.children, (d, indexD) => {\n arrayList.push([]);\n [].forEach.call(d.children, (f) => {\n arrayList[indexD].push(f);\n });\n });\n }\n });\n });\n if (arrayList.length == 0) {\n return false;\n }\n let arrayIndex = { index: 0, length: 0 };\n [].forEach.call(arrayList, (e, indexE) => {\n if (e.length > arrayIndex.length) {\n arrayIndex.index = indexE;\n }\n });\n [].forEach.call(arrayList[arrayIndex.index], (e, indexE) => {\n let elseIndex = 0;\n if (arrayIndex.index == 0) {\n elseIndex = 1;\n }\n if (e.offsetHeight == 0 || arrayList[elseIndex][indexE].offsetHeight == 0) {\n return false;\n }\n if (e.offsetHeight > arrayList[elseIndex][indexE].offsetHeight) {\n arrayList[elseIndex][indexE].style.height = e.offsetHeight + 20 + 'px';\n } else {\n e.style.height = arrayList[elseIndex][indexE].offsetHeight + 20 + 'px';\n }\n });\n }\n\n nextFormOpen(index) {\n if (this.formCounter + 1 < this.nestableArray.length) {\n this.formCounter = index + 1;\n for (let i = index; i < this.formDisplay.length; i++) {\n if (!this.formDisplay[i + 1]) {\n this.formCounter++;\n } else {\n break;\n }\n }\n if (this.formCounter + 1 >= this.nestableArray.length) {\n this.finishForm = true;\n }\n this.onScroll([this.nestableArray[this.formCounter][0], this.formCounter, 0]);\n setTimeout(() => {\n this.scrollToForm(this.formCounter);\n }, 100);\n }\n this.deskLoad(null, null, null);\n // AutoSave Form\n this.isStore = true;\n this.saveDataFormer(true);\n }\n\n nextFormSkip(index) {\n if (\n this.isSkipForm\n .map(function (x) {\n return x;\n })\n .indexOf(index)\n ) {\n this.isSkipForm.push(index);\n }\n if (this.nestableBackUp.length == 0) {\n this.nestableBackUp = JSON.parse(JSON.stringify(this.dataLiner(this.nestableArray, true)));\n }\n let dataLiner = this.dataLiner(this.nestableArray[index], true);\n [].forEach.call(dataLiner, (e, indexE) => {\n e.required = false;\n });\n this.onScroll([this.nestableArray[this.formCounter][0], this.formCounter, 0]);\n this.deskLoad(null, null, null);\n // AutoSave Form\n this.isStore = true;\n this.saveDataFormer(true);\n }\n\n private formSkipApply() {\n // console.log(this.isSkipForm);\n // console.log(this.formCounter);\n\n if (this.isSkipForm && this.isSkipForm.length) {\n this.formCounter = this.isSkipForm[this.isSkipForm.length - 1];\n\n if (this.nestableBackUp.length == 0) {\n this.nestableBackUp = JSON.parse(JSON.stringify(this.dataLiner(this.nestableArray, true)));\n }\n let dataLiner = this.dataLiner(this.nestableArray[this.formCounter], true);\n [].forEach.call(dataLiner, (e) => {\n e.required = false;\n });\n\n let interval = setInterval(() => {\n if (!this.isLoad) {\n clearInterval(interval);\n setTimeout(() => {\n this.scrollToForm(this.formCounter);\n }, 100);\n }\n }, 50);\n }\n }\n\n formSkipCancel() {\n [].forEach.call(this.isSkipForm, (e) => {\n let dataLiner = this.dataLiner(this.nestableArray[e], true);\n [].forEach.call(dataLiner, (c, indexC) => {\n let targetD = this.nestableBackUp.filter((x) => x.id == c.id).map((x) => x);\n if (targetD.length != 0) {\n c.required = targetD[0].required;\n }\n });\n this.onScroll([this.nestableArray[e][0], e, 0]);\n });\n this.formCounter = this.isSkipForm[0];\n this.isSkipForm = [];\n this.deskLoad(null, null, null);\n }\n\n openTemplate() {\n let templateEmail = [];\n let emailArray = [];\n let emailIndex = 0;\n let attachments = [];\n let emailFails = false;\n try {\n // console.log(this.nestableArray[this.nestableArray.length - 1]);\n\n [].forEach.call(this.nestableArray[this.nestableArray.length - 1], (e) => {\n if (e.type == 'order') {\n this.orderData = [];\n this.demoEditorArray = [];\n let templateArray = e.mask.split('*|*');\n let emailDialog = e.dialog.split('*E*');\n let emailFields = emailDialog[1].split('*D*');\n // console.log(templateArray);\n\n [].forEach.call(templateArray, (c, indexC) => {\n let template = c.split('XX')[0];\n let condArray = c.split('XX')[1].split('&&');\n let cond = [];\n [].forEach.call(condArray, (s) => {\n let condList = s.split('|');\n if (condList[0] != '') {\n condList[0] = parseInt(condList[0]);\n }\n if (condList[1] != '') {\n condList[1] = parseInt(condList[1]);\n }\n if (condList[3] != '') {\n condList[3] = parseInt(condList[3]);\n }\n if (condList[5] != '') {\n condList[5] = parseInt(condList[5]);\n }\n if (condList[6] != '') {\n condList[6] = parseInt(condList[6]);\n }\n let value: any = {\n formT: condList[0],\n target: condList[1],\n condition: condList[2],\n field: condList[3],\n date: condList[4],\n on: condList[5],\n value: condList[6],\n else: condList[7],\n };\n cond.push(value);\n });\n let check;\n if (cond[0].formT == '') {\n check = true;\n } else {\n check = this.templateConditionControl(cond, indexC);\n }\n // console.log(check);\n\n let dataLiner = this.dataLiner(this.nestableArray, false);\n let emailElement = dataLiner\n .filter((x) => x.id == parseInt(emailFields[indexC]))\n .map((x) => x)[0];\n let fomrIndex = this.requestForm\n .map(function (x) {\n return x.Id;\n })\n .indexOf(emailElement.requestFormId);\n if (!this.formDisplay[fomrIndex] && check) {\n check = false;\n }\n if (check) {\n // console.log(template);\n\n template = this.templateData.find((x) => x.id == parseInt(template));\n // console.log(JSON.stringify(template, null, 2));\n // console.log(template);\n // return;\n this.orderData.push(template);\n this.buildDemoText(template);\n if (emailElement != undefined) {\n let emailValue = '';\n let isCourt = false;\n if (emailElement.type == 'input') {\n emailValue = emailElement.value;\n } else if (emailElement.type == 'court') {\n isCourt = true;\n emailIndex = emailElement.selectors.list[2];\n if (emailIndex == null) {\n emailIndex = emailElement.value[2];\n }\n templateEmail.push({ id: template.id, email: null, court: emailIndex });\n } else if (emailElement.type == 'select') {\n let indexX = emailElement.selectors.list\n .map(function (x) {\n return x.name;\n })\n .indexOf(emailElement.value);\n emailValue = emailElement.selectors.list[indexX].email;\n }\n if (emailValue != '') {\n emailArray.push(emailValue);\n templateEmail.push({ id: template.id, email: emailValue, court: null });\n } else if (!isCourt) {\n emailFails = true;\n }\n }\n }\n });\n }\n });\n } catch (err) {\n // console.log(err);\n // ============================\n let dataerr = null;\n if (err.length > 0) {\n dataerr = err[0];\n }\n let json = {\n Type: 'Log',\n Title: 'request',\n Text: err,\n Link: dataerr,\n Lang: null,\n };\n this.http\n .post(this.indexPage.getUrl() + 'PageElement', json, this.indexPage.options)\n .subscribe((data) => {\n // console.log(data);\n });\n // ============================\n\n let text = '';\n this.translateService.get('Common', { value: 'templateError' }).subscribe((res: string) => {\n text = res;\n });\n\n if (typeof text != 'string') {\n let array: any = text;\n text = array.templateError;\n }\n\n this.dialog.open(InfoMenu, {\n width: '80%',\n maxWidth: '600px',\n disableClose: true,\n data: { text: text },\n });\n return false;\n }\n\n if (emailFails) {\n let text = '';\n this.translateService.get('Common', { value: 'emptyEmailField' }).subscribe((res: string) => {\n text = res;\n });\n\n if (typeof text != 'string') {\n let array: any = text;\n text = array.emptyEmailField;\n }\n\n this.dialog.open(InfoMenu, {\n width: '80%',\n maxWidth: '600px',\n disableClose: true,\n data: { text: text },\n });\n return false;\n }\n\n let dataLiner = this.dataLiner(this.nestableArray, false);\n [].forEach.call(dataLiner, (e) => {\n if (e.type == 'file') {\n // console.log(e);\n if (Array.isArray(e.value) && e.value.length && e.value[0]) {\n e.value.map((vl, ivl) => {\n if (vl) {\n let name = '';\n let content = '';\n name = vl.fileNames;\n if (e.mask[ivl] != '' && e.mask[ivl] != null && e.mask[ivl] != undefined) {\n if (e.mask[ivl].split(',').length > 1) {\n content = e.mask[ivl].split(',')[1];\n }\n }\n if (name != '') {\n if (vl != '') {\n let typeSpliter = vl.files[0].type.split('&FILE&');\n if (typeSpliter.length > 1) {\n name = typeSpliter[0];\n content = typeSpliter[1].split('base64,')[1];\n }\n }\n attachments.push({\n FileName: name,\n Content: content,\n KeyData: '',\n Password: '',\n });\n }\n }\n });\n }\n // let name = \"\";\n // if (e.value != \"\" && e.value != null && e.value != undefined) {\n // name = e.value.fileNames;\n // }\n // let content = \"\";\n // if (e.mask != \"\" && e.mask != null && e.mask != undefined) {\n // if (e.mask.split(\",\").length > 1) {\n // content = e.mask.split(\",\")[1];\n // }\n // }\n // if (name != \"\") {\n // if (e.value != \"\") {\n // let typeSpliter = e.value.files[0].type.split(\"&FILE&\");\n // if (typeSpliter.length > 1) {\n // name = typeSpliter[0];\n // content = typeSpliter[1].split(\"base64,\")[1];\n // }\n // }\n // attachments.push({\n // FileName: name,\n // Content: content,\n // KeyData: \"\",\n // Password: \"\",\n // });\n // }\n }\n });\n\n // console.log(attachments);\n\n let minWidth = '80%';\n let maxWidth = '1000px';\n\n let text = this.indexPage.getList('Page');\n text = text.filter((x) => x.Type == 'requestEdit').map((x) => x);\n text = text[0].Text;\n\n let interval = setInterval(() => {\n if (this.demoEditorArray.length != 0) {\n clearInterval(interval);\n let confirm = this.dialog.open(RequestEdit, {\n minWidth: minWidth,\n maxWidth: maxWidth,\n disableClose: true,\n data: {\n name: this.requestType.Title,\n text: text,\n content: this.demoEditorArray,\n order: this.orderData,\n emailId: emailIndex,\n emailList: emailArray,\n attachment: attachments,\n templateEmail: templateEmail,\n },\n });\n confirm.afterClosed().subscribe((result) => {\n if (result == true) {\n let text = '';\n this.translateService\n .get('Common', { value: 'formSuccess' })\n .subscribe((res: string) => {\n text = res;\n });\n\n if (typeof text != 'string') {\n let array: any = text;\n text = array.formSuccess;\n }\n\n let minWidth = '400px';\n let maxWidth = '400px';\n if (text.length > 150 && text.length < 300) {\n maxWidth = '600px';\n } else if (text.length > 300 && text.length < 600) {\n maxWidth = '800px';\n } else if (text.length > 600) {\n minWidth = '80%';\n maxWidth = '1000px';\n }\n let confirm = this.dialog.open(InfoMenu, {\n minWidth: minWidth,\n maxWidth: maxWidth,\n disableClose: true,\n data: { text: text },\n });\n confirm.afterClosed().subscribe((result) => {\n this.router.navigate(['/']);\n });\n }\n });\n }\n }, 50);\n }\n\n templateConditionControl(condition, index) {\n let value = '';\n let elseC = [];\n let result = [];\n let nd;\n let vl;\n let findElse;\n let arrayLiner = this.dataLiner(this.nestableArray, true);\n [].forEach.call(condition, (e) => {\n let target = arrayLiner.filter((x) => x.id == parseInt(e.target)).map((x) => x);\n let copyCount = 0;\n if (target[0].type == 'copy') {\n if (target[0].columns.length == 1) {\n let check = false;\n [].forEach.call(target[0].columns[0], (c) => {\n if (c.value != '') {\n check = true;\n return false;\n }\n });\n if (check) {\n copyCount = 1;\n }\n } else {\n copyCount = target[0].columns.length;\n }\n } else {\n value = target[0].value;\n }\n elseC.push(e.else);\n\n switch (e.condition) {\n case 'empty':\n if (value == '' || value == null) {\n result.push(true);\n } else {\n result.push(false);\n }\n break;\n case 'fill':\n if (value == '' || value == null) {\n result.push(false);\n } else {\n result.push(true);\n }\n break;\n case 'morenumber':\n findElse = arrayLiner.filter((x) => x.id == parseInt(e.field)).map((x) => x);\n if (e.field == '0') {\n nd = parseInt(e.value);\n } else {\n nd = parseInt(findElse[0].value);\n }\n if (e.on == '0' || e.on == '2') {\n if (nd < parseInt(value)) {\n result.push(true);\n } else {\n result.push(false);\n }\n } else if (e.on == '1') {\n nd += parseInt(e.value);\n if (nd <= parseInt(value)) {\n result.push(true);\n } else {\n result.push(false);\n }\n }\n break;\n case 'lessnumber':\n findElse = arrayLiner.filter((x) => x.id == parseInt(e.field)).map((x) => x);\n if (e.field == '0') {\n nd = parseInt(e.value);\n } else {\n nd = parseInt(findElse[0].value);\n }\n if (e.on == '0' || e.on == '2') {\n if (nd > parseInt(value)) {\n result.push(true);\n } else {\n result.push(false);\n }\n } else if (e.on == '1') {\n nd -= parseInt(e.value);\n if (nd >= parseInt(value)) {\n result.push(true);\n } else {\n result.push(false);\n }\n }\n break;\n case 'isnumber':\n findElse = arrayLiner.filter((x) => x.id == parseInt(e.field)).map((x) => x);\n if (e.field == '0') {\n nd = parseInt(e.value);\n } else {\n nd = parseInt(findElse[0].value);\n }\n if (nd == parseInt(value)) {\n result.push(true);\n } else {\n result.push(false);\n }\n break;\n case 'notnumber':\n findElse = arrayLiner.filter((x) => x.id == parseInt(e.field)).map((x) => x);\n if (e.field == '0') {\n nd = parseInt(e.value);\n } else {\n nd = parseInt(findElse[0].value);\n }\n if (nd != parseInt(value)) {\n result.push(true);\n } else {\n result.push(false);\n }\n break;\n case 'check':\n if (value == '' || value == null) {\n result.push(false);\n } else {\n result.push(true);\n }\n break;\n case 'uncheck':\n if (value == '' || value == null) {\n result.push(true);\n } else {\n result.push(false);\n }\n break;\n case 'file':\n if (value == '' || value == null) {\n result.push(false);\n } else {\n result.push(true);\n }\n break;\n case 'nofile':\n if (value == '' || value == null) {\n result.push(true);\n } else {\n result.push(false);\n }\n break;\n case 'date':\n if (value == '' || value == null) {\n result.push(false);\n } else {\n result.push(true);\n }\n break;\n case 'nodate':\n if (value == '' || value == null) {\n result.push(true);\n } else {\n result.push(false);\n }\n break;\n case 'moredate':\n findElse = arrayLiner.filter((x) => x.id == parseInt(e.field)).map((x) => x);\n if (findElse.length > 0) {\n vl = findElse[0].value;\n }\n if (e.field == '0') {\n nd = new Date();\n nd = new Date(nd.toDateString());\n } else if (e.field == '1') {\n nd = new Date(this.dateCorector(e.date));\n } else {\n nd = new Date(vl);\n }\n if (e.on == '0') {\n let dvl = new Date(value);\n nd.setHours(0);\n nd.setMinutes(0);\n dvl.setHours(0);\n dvl.setMinutes(0);\n if (nd.getTime() < dvl.getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n } else if (e.on == '1') {\n let dvl = new Date(value);\n nd.setHours(0);\n nd.setMinutes(0);\n dvl.setHours(0);\n dvl.setMinutes(0);\n nd.setDate(nd.getDate() + parseInt(e.value));\n if (nd.getTime() <= dvl.getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n } else if (e.on == '2') {\n let dvl = new Date(value);\n nd.setHours(0);\n nd.setMinutes(0);\n dvl.setHours(0);\n dvl.setMinutes(0);\n nd.setMonth(nd.getMonth() + parseInt(e.value));\n if (nd.getTime() <= dvl.getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n } else if (e.on == '3') {\n let dvl = new Date(value);\n nd.setHours(0);\n nd.setMinutes(0);\n dvl.setHours(0);\n dvl.setMinutes(0);\n nd.setFullYear(nd.getFullYear() + parseInt(e.value));\n if (nd.getTime() <= dvl.getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n } else if (e.on == '4') {\n nd.setHours(nd.getHours() + parseInt(e.value));\n if (nd.getTime() <= new Date(value).getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n }\n break;\n case 'lessdate':\n findElse = arrayLiner.filter((x) => x.id == parseInt(e.field)).map((x) => x);\n if (findElse.length > 0) {\n vl = findElse[0].value;\n }\n if (e.field == '0') {\n nd = new Date();\n nd = new Date(nd.toDateString());\n } else if (e.field == '1') {\n nd = new Date(this.dateCorector(e.date));\n } else {\n nd = new Date(vl);\n }\n if (e.on == '0') {\n let dvl = new Date(value);\n nd.setHours(0);\n nd.setMinutes(0);\n dvl.setHours(0);\n dvl.setMinutes(0);\n if (nd.getTime() > dvl.getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n } else if (e.on == '1') {\n let dvl = new Date(value);\n nd.setHours(0);\n nd.setMinutes(0);\n dvl.setHours(0);\n dvl.setMinutes(0);\n nd.setDate(nd.getDate() - parseInt(e.value));\n if (nd.getTime() >= dvl.getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n } else if (e.on == '2') {\n let dvl = new Date(value);\n nd.setHours(0);\n nd.setMinutes(0);\n dvl.setHours(0);\n dvl.setMinutes(0);\n nd.setMonth(nd.getMonth() - parseInt(e.value));\n if (nd.getTime() >= dvl.getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n } else if (e.on == '3') {\n let dvl = new Date(value);\n nd.setHours(0);\n nd.setMinutes(0);\n dvl.setHours(0);\n dvl.setMinutes(0);\n nd.setFullYear(nd.getFullYear() - parseInt(e.value));\n if (nd.getTime() >= dvl.getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n } else if (e.on == '4') {\n nd.setHours(nd.getHours() - parseInt(e.value));\n if (nd.getTime() >= new Date(value).getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n }\n break;\n case 'isdate':\n findElse = arrayLiner.filter((x) => x.id == parseInt(e.field)).map((x) => x);\n if (findElse.length > 0) {\n vl = findElse[0].value;\n }\n if (e.field == '0') {\n nd = new Date();\n nd = new Date(nd.toDateString());\n } else if (e.field == '1') {\n nd = new Date(this.dateCorector(e.date));\n } else {\n nd = new Date(vl);\n }\n if (nd.getTime() == new Date(value).getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n break;\n case 'notdate':\n findElse = arrayLiner.filter((x) => x.id == parseInt(e.field)).map((x) => x);\n if (findElse.length > 0) {\n vl = findElse[0].value;\n }\n if (e.field == '0') {\n nd = new Date();\n nd = new Date(nd.toDateString());\n } else if (e.field == '1') {\n nd = new Date(this.dateCorector(e.date));\n } else {\n nd = new Date(vl);\n }\n if (nd.getTime() != new Date(value).getTime()) {\n result.push(true);\n } else {\n result.push(false);\n }\n break;\n case 'morecopy':\n if (copyCount > parseInt(e.value)) {\n result.push(true);\n } else {\n result.push(false);\n }\n break;\n case 'lesscopy':\n if (copyCount < parseInt(e.value)) {\n result.push(true);\n } else {\n result.push(false);\n }\n break;\n case 'iscopy':\n if (copyCount == parseInt(e.value)) {\n result.push(true);\n } else {\n result.push(false);\n }\n break;\n case 'notcopy':\n if (copyCount != parseInt(e.value)) {\n result.push(true);\n } else {\n result.push(false);\n }\n break;\n default: //select+radio\n if (value == '' || value == null) {\n result.push(false);\n } else if (value == e.condition) {\n result.push(true);\n } else {\n result.push(false);\n }\n break;\n }\n });\n\n let display = true;\n let finResult = [];\n let finIndex = 0;\n if (result.length == 1) {\n display = result[0];\n finResult.push([display]);\n } else if (result.length > 1) {\n finResult.push([]);\n [].forEach.call(result, (e, index) => {\n if (elseC[index] != '') {\n if (elseC[index] == 'and') {\n finResult[finIndex].push(e);\n } else if (elseC[index] == 'or') {\n finResult.push([]);\n finIndex++;\n finResult[finIndex].push(e);\n }\n } else {\n finResult[finIndex].push(e);\n }\n });\n }\n let disResult = [];\n if (finResult.length > 0) {\n [].forEach.call(finResult, (e) => {\n disResult.push(\n e\n .map(function (x) {\n return x;\n })\n .indexOf(false)\n );\n });\n display = false;\n [].forEach.call(disResult, (e) => {\n if (e == -1) {\n display = true;\n }\n });\n } else {\n display = false;\n }\n\n return display;\n }\n\n saveForm() {\n this.isSave = true;\n this.saveDataFormer(true);\n }\n\n saveFormContinue(dataLiner) {\n if (this.saveTimer) {\n clearTimeout(this.saveTimer);\n this.saveTimer = null;\n }\n\n // let dataLiner = this.saveDataFormer();\n let json = {\n requestTypeId: this.requestType.Link,\n };\n if (this.userRequestId == 0) {\n this.http.post(this.indexPage.getUrl() + 'UserRequest', json).subscribe((data) => {\n let nd: any = data;\n this.userRequestId = nd.id;\n this.prepareData(dataLiner, null);\n });\n } else {\n this.http.get(this.indexPage.getUrl() + 'UserRequest').subscribe((data) => {\n let nd: any = data;\n [].forEach.call(nd, (e) => {\n if (e.id == this.userRequestId) {\n this.prepareData(dataLiner, e);\n }\n });\n });\n }\n }\n\n prepareData(array, data) {\n // console.log(array);\n this.postArray = [];\n this.putArray = [];\n [].forEach.call(array, (e) => {\n if (data == null) {\n if (e.data != '' && e.data != undefined && e.data != null) {\n this.postArray.push({ id: 0, data: e.data, rId: e.requestAttributeId });\n }\n } else {\n if (e.data != '' && e.data != undefined && e.data != null) {\n let indexF = data.userDatas\n .map(function (x) {\n return x.id;\n })\n .indexOf(e.requestAttributeId);\n if (indexF == -1) {\n this.postArray.push({ id: 0, data: e.data, rId: e.requestAttributeId });\n } else {\n this.putArray.push({\n id: data.userDatas[indexF].id,\n data: e.data,\n rId: e.requestAttributeId,\n });\n }\n }\n }\n });\n if (this.indexPage.getSaveMethod().toString() == '1') {\n if (this.isStore) {\n this.writeDataStore();\n } else {\n this.writeDataFile();\n this.writeDataStore();\n }\n } else {\n this.writeData('put', 0);\n }\n }\n\n writeData(type, index) {\n let array = [];\n if (type == 'post') {\n array = this.postArray;\n } else {\n array = this.putArray;\n }\n if (array.length == index) {\n if (type == 'post') {\n this.isSave = false;\n let code = AES.encrypt(\n this.requestType.Link + '|' + this.userRequestId.toString(),\n 'IT.Artel_Kimonix'\n ).toString();\n let minWidth = '80%';\n let maxWidth = '800px';\n let confirm = this.dialog.open(RequestCodeMenu, {\n minWidth: minWidth,\n maxWidth: maxWidth,\n disableClose: true,\n data: { code: code },\n });\n confirm.afterClosed().subscribe((result) => {\n this.indexPage.refreshUser();\n if (!result) {\n this.router.navigate(['/']);\n }\n });\n } else {\n this.writeData('post', 0);\n }\n return false;\n }\n let e = array[index];\n if (type == 'post') {\n let json = {\n data: e.data,\n requestAttributeId: e.rId,\n userRequestId: this.userRequestId,\n };\n this.http.post(this.indexPage.getUrl() + 'UserData', json).subscribe((data) => {\n this.writeData('post', index + 1);\n });\n } else if (type == 'put') {\n let jsonC = {\n id: e.id,\n data: e.data,\n requestAttributeId: e.rId,\n userRequestId: this.userRequestId,\n };\n this.http.put(this.indexPage.getUrl() + 'UserData/' + e.id, jsonC).subscribe((data) => {\n this.writeData('put', index + 1);\n });\n }\n }\n\n writeDataFile() {\n let code = AES.encrypt(\n this.requestType.Link + '|' + this.userRequestId.toString(),\n 'IT.Artel_Kimonix'\n ).toString();\n let dataArray = { id: code, data: [], skip: this.isSkipForm };\n [].forEach.call(this.putArray, (x) => {\n let json = {\n data: x.data,\n requestAttributeId: x.rId,\n userRequestId: this.userRequestId,\n };\n dataArray.data.push(json);\n });\n [].forEach.call(this.postArray, (x) => {\n let json = {\n id: x.id,\n data: x.data,\n requestAttributeId: x.rId,\n userRequestId: this.userRequestId,\n };\n dataArray.data.push(json);\n });\n\n let json = JSON.stringify(dataArray);\n var a = document.createElement('a');\n var file = new Blob([json], { type: 'text/plain' });\n a.href = URL.createObjectURL(file);\n let timeInMs = Date.now();\n a.download = 'Пошук рішень: збережена форма №' + timeInMs + '.json';\n // a.click();\n\n let text = '';\n this.translateService.get('Common', { value: 'saveToFile' }).subscribe((res: string) => {\n text = res;\n });\n\n if (typeof text != 'string') {\n let array: any = text;\n text = array.saveToFile;\n }\n\n let buttonL = '';\n this.translateService.get('Common', { value: 'fileSave' }).subscribe((res: string) => {\n buttonL = res;\n });\n\n if (typeof buttonL != 'string') {\n let array: any = buttonL;\n buttonL = array.fileSave;\n }\n\n let buttonR = '';\n this.translateService.get('Common', { value: 'close' }).subscribe((res: string) => {\n buttonR = res;\n });\n\n if (typeof buttonR != 'string') {\n let array: any = buttonR;\n buttonR = array.close;\n }\n\n this.isSave = false;\n let minWidth = '80%';\n let maxWidth = '800px';\n // let confirm = this.dialog.open(InfoMenu, {\n let confirm = this.dialog.open(ConfirmMenu, {\n minWidth: minWidth,\n maxWidth: maxWidth,\n disableClose: true,\n data: { text: text, button: [buttonL, buttonR] },\n });\n confirm.afterClosed().subscribe((result) => {\n this.indexPage.refreshUser();\n if (!result) {\n // this.router.navigate(['/']);\n } else {\n a.click();\n // setTimeout(() => {\n // this.router.navigate(['/']);\n // }, 1000);\n }\n });\n }\n\n private writeDataStore() {\n let code = AES.encrypt(\n this.requestType.Link + '|' + this.userRequestId.toString(),\n 'IT.Artel_Kimonix'\n ).toString();\n let dataArray = { id: code, data: [], skip: this.isSkipForm };\n [].forEach.call(this.putArray, (x) => {\n let json = {\n data: x.data,\n requestAttributeId: x.rId,\n userRequestId: this.userRequestId,\n };\n dataArray.data.push(json);\n });\n [].forEach.call(this.postArray, (x) => {\n let json = {\n id: x.id,\n data: x.data,\n requestAttributeId: x.rId,\n userRequestId: this.userRequestId,\n };\n dataArray.data.push(json);\n });\n\n let json = JSON.stringify(dataArray);\n // json = AES.encrypt(json, \"IT.Artel_Kimonix\").toString();\n\n this.isStore = false;\n\n localStorage.setItem(`USAidRequest_${this.data.requestId}`, json);\n }\n\n private readDataStore() {\n let localData: string = localStorage.getItem(`USAidRequest_${this.data.requestId}`);\n\n // console.log(localData);\n\n if (localData) {\n try {\n // let json: any = AES.decrypt(localData, \"IT.Artel_Kimonix\").toString(enc.Utf8);\n // json = JSON.parse(json);\n let json = JSON.parse(localData);\n\n let code: any = AES.decrypt(json.id, 'IT.Artel_Kimonix');\n code = code.toString(enc.Utf8);\n code = code.split('|');\n json.form = code[1];\n\n return json;\n } catch {\n console.error('Error unpack request');\n }\n }\n }\n\n scrollToForm(index) {\n this.scrollStop = true;\n let element = document.getElementById('form' + index);\n let toLeft = false;\n if (this.formCurrent > index) {\n toLeft = true;\n }\n this.formCurrent = index;\n let y = element.getBoundingClientRect().top + window.pageYOffset - 200;\n window.scrollTo({ top: y, behavior: 'smooth' });\n this.programScroll = true;\n setTimeout(() => {\n this.programScroll = false;\n }, 500);\n setTimeout(() => {\n this.scrollStop = false;\n }, 500);\n if (this.isMobile) {\n let element = document.querySelector('.rq-additional-menu-mobile') as HTMLElement;\n let val = 0;\n let parent = document.querySelector('.rq-form-mobile') as HTMLElement;\n let newIndex = 0;\n let blockIndex = 0;\n [].forEach.call(parent.children, (e, indexE) => {\n if (e.classList.contains('none') && index > indexE) {\n blockIndex++;\n }\n });\n newIndex = index;\n newIndex -= blockIndex;\n val = newIndex * 416;\n element.scrollTo({ left: val, behavior: 'smooth' });\n this.programScroll = true;\n setTimeout(() => {\n this.programScroll = false;\n }, 500);\n } else {\n let element = document.querySelector('.rq-form') as HTMLElement;\n element.style.transform =\n 'translateY(' + this.formCurrent * ((4 / (this.nestableArray.length / 4)) * -6) + '%)';\n }\n }\n\n openMobileDesk() {\n let element = document.querySelector('.rq-additional-menu-mobile-desk');\n if (element.classList.contains('close')) {\n element.classList.remove('close');\n } else {\n element.classList.add('close');\n }\n }\n\n deskLoad(item, elem, event) {\n if (this.formCurrent != elem) {\n if (this.descriptionId != 0) {\n this.descriptionId = 0;\n this.changeDescription(null, true, 0);\n let element = document.querySelector('.rq-additional-menu-mobile-button');\n element.classList.add('close');\n element.classList.remove('rq-mb-anim');\n }\n return false;\n }\n if (this.descriptionId == item.id) {\n return false;\n }\n\n if (this.isMobile) {\n let element = document.querySelector('.rq-additional-menu-mobile-button');\n if (item.description != '' && item.description != null && item.description != undefined) {\n if (element.classList.contains('close')) {\n element.classList.remove('close');\n element.classList.remove('rq-mb-anim');\n } else {\n element.classList.remove('rq-mb-anim');\n element.classList.add('rq-mb-anim');\n }\n } else {\n if (!element.classList.contains('close')) {\n element.classList.add('close');\n element.classList.remove('rq-mb-anim');\n }\n }\n }\n\n let ds = document.getElementById('desk' + elem);\n let pr = document.getElementById('form' + elem);\n let diffN = event.target.getBoundingClientRect().top - pr.getBoundingClientRect().top;\n ds.style.top = diffN + 'px';\n ds.style.height = event.target.offsetHeight + 'px';\n\n if (item.description != '' && item.description != null && this.descriptionId != item.id) {\n this.descriptionId = item.id;\n this.changeDescription(\n { Title: 'Роз’яснення: ' + item.label.split('@@')[0], Text: item.description },\n false,\n elem\n );\n } else {\n if (this.descriptionId != 0) {\n this.descriptionId = 0;\n this.changeDescription(null, true, 0);\n }\n }\n }\n\n getFormChild(element) {\n let result = null;\n if (element.classList.contains('child')) {\n element = element.parentNode.parentNode.parentNode.parentNode;\n result = this.getFormChild(element);\n } else {\n result = element;\n }\n return result;\n }\n\n previewDublicate(type, item, index, number, data, formIndex) {\n // console.log('type', type);\n // console.log('item', item);\n // console.log('index', index);\n // console.log('number', number);\n // console.log('data', data);\n // console.log('formIndex', formIndex);\n let target = null;\n let array = [];\n let column = [];\n let liner = this.dataLiner(this.nestableArray, true);\n switch (type) {\n case 'add':\n target = liner.filter((x) => x.id === item.id).map((x) => x);\n array = JSON.parse(JSON.stringify(target[0].columns[0]));\n column = this.dataLiner(array, true);\n [].forEach.call(column, (e, index) => {\n if (e.value != '') {\n column[index].value = '';\n }\n column[index].dublicate = target[0].columns.length;\n });\n // console.log(array);\n array.filter((field) => field.type === 'file').map((field) => (field.value = ['']));\n\n target[0].columns.push(array);\n [].forEach.call(column, (e) => {\n this.conditionControl(e);\n });\n break;\n case 'load':\n let numbers = [];\n let items = [];\n\n [].forEach.call(item, (e, index) => {\n if (!items.some((c) => c === e)) {\n items.push(e);\n numbers.push(number[index]);\n }\n });\n if (items.length == 0) {\n return false;\n }\n // console.log('numbers', numbers);\n // console.log('items', items);\n\n target = liner.filter((x) => x.id === items[0]).map((x) => x);\n // console.log(target);\n let dubData: any = this.userRequest.filter((c) => c.requestAttributeId === items[0].id); //++\n // console.log('dubData', dubData);\n\n array = JSON.parse(JSON.stringify(target[0].columns[0]));\n let child = this.dataLiner(array, true);\n array = array.concat(child);\n array = [...new Set(array)];\n // console.log(\"array\", array);\n\n let datas = [];\n for (let i = 0; i < numbers[0]; i++) {\n let newData = [];\n if (i == 0) {\n newData = array;\n } else {\n newData = JSON.parse(JSON.stringify(array));\n }\n let arrays = this.dataLiner(newData, true);\n [].forEach.call(arrays, (e, indexD) => {\n e.dublicate = i;\n });\n let rebuildData = [];\n [].forEach.call(newData, (nd) => {\n // let array = newData.filter((x) => x.requestAttributeId == nd.id).map((x) => x);\n // console.log(\"array\", array);\n let arrayN = [];\n\n let dubData: any = this.userRequest.filter((c) => c.requestAttributeId === nd.id);\n // console.log('dubData', dubData);\n dubData.shift();\n // console.log('dubData', dubData);\n if (dubData && dubData.length) {\n arrayN.push({ ...nd, ...{ value: dubData[0].data, dublicate: i + 1 } });\n } else {\n arrayN.push({\n ...nd,\n ...{ value: nd.type === 'file' ? [''] : null, dublicate: i + 1 },\n });\n }\n // console.log(arrayN[0].value);\n\n rebuildData = rebuildData.concat(arrayN);\n });\n\n // rebuildData = newData.filter((el) => {\n // return rebuildData.indexOf(el) < 0;\n // });\n // console.log(rebuildData);\n\n newData = rebuildData;\n datas.push(newData);\n }\n let values = [];\n // console.log(datas);\n\n [].forEach.call(datas, (e, index) => {\n // console.log(e);\n\n values.push(this.dataLiner(e, false));\n // console.log(values);\n // console.log(data);\n [].forEach.call(values[index], (c) => {\n // let indexC = data.map((w) => w.id).indexOf(c.id);\n // console.log(c);\n // console.log(indexD);\n // console.log(data[indexC]);\n // console.log(data[indexC][indexD]);\n // if (data[indexC] != undefined) {\n // console.log(c.value);\n if (c.value) {\n // if(data[indexC][0] != undefined){\n if (c.type == 'date') {\n // if (c.value.split(\"|&|\").length > 1) {\n let vl = c.value.split(' ');\n let value = vl[0].split('-');\n if (Array.isArray(e)) {\n let field = e.find((field) => field.id === c.id);\n field.value = new Date(\n parseInt(value[2]),\n parseInt(value[1]) - 1,\n parseInt(value[0])\n );\n if (vl.length > 1) {\n field.placeholder = vl[1];\n field.value.setHours(parseInt(vl[1].split(':')[0]));\n field.value.setMinutes(parseInt(vl[1].split(':')[1]));\n }\n } else {\n e.value = new Date(\n parseInt(value[2]),\n parseInt(value[1]) - 1,\n parseInt(value[0])\n );\n if (vl.length > 1) {\n e.placeholder = vl[1];\n e.value.setHours(parseInt(vl[1].split(':')[0]));\n e.value.setMinutes(parseInt(vl[1].split(':')[1]));\n }\n }\n\n // setTimeout(() => {\n // this.onChange(c, c, true);\n // }, 0);\n // } else {\n // if(Array.isArray(e)){\n // let field = e.find(field => field.id === c.id)\n // // field.value = new Date(c.value);\n // field.value = c.value;\n // }else{\n // // e.value = new Date(c.value);\n // e.value = c.value;\n // e.placeholder = \"\";\n // }\n\n // // setTimeout(() => {\n // // this.onChange(c, c, true);\n // // }, 0);\n // }\n // console.log(c.value);\n // console.log(e.value);\n\n // let value = c.value.split(\"|&|\")[index].split(\"-\");\n // e.value = new Date(parseInt(value[2]), parseInt(value[1]) - 1, parseInt(value[0]));\n // let time = c.value.split(\"|&|\")[index].split(\" \");\n // if (time.length > 1) {\n // e.placeholder = time[1];\n // e.value.setHours(parseInt(time[1].split(\":\")[0]));\n // e.value.setMinutes(parseInt(time[1].split(\":\")[1]));\n // }\n // setTimeout(() => {\n // this.onChange(c, c, true);\n // }, 0);\n } else if (c.type == 'file' && !Array.isArray(c.value)) {\n // let value = data[indexC].data.split(\"|&|\")[index];\n let value = c.value.split('|&|')[index];\n let vlArr = [];\n // console.log(value);\n try {\n value = JSON.parse(value);\n } catch {}\n\n value.map((vl) => {\n let fileSplter = vl.split('&FILE&');\n let newFile = new FileInput([\n {\n lastModified: null,\n name: fileSplter[0],\n size: null,\n type: fileSplter[0] + '&FILE&' + fileSplter[1] + '&FILE&' + fileSplter[2],\n slice: null,\n } as any,\n ]);\n vlArr.push(newFile);\n });\n c.value = vlArr;\n if (vlArr.length) {\n c.value.push(null);\n }\n // let fileSplter = value.split(\"&FILE&\");\n // let newFile = new FileInput([\n // {\n // lastModified: null,\n // name: fileSplter[0],\n // size: null,\n // type: fileSplter[0] + \"&FILE&\" + fileSplter[1] + \"&FILE&\" + fileSplter[2],\n // slice: null,\n // } as any,\n // ]);\n // c.value = newFile;\n } else if (c.type == 'checkbox') {\n // c.value = JSON.parse(data[indexC].data.split(\"|&|\")[index]);\n c.value = JSON.parse(c.value.split('|&|')[index]);\n } else {\n try {\n // c.value = data[indexC].data.split(\"|&|\")[index];\n c.value = c.value.split('|&|')[index];\n } catch {}\n }\n // console.log(c.value);\n // }\n }\n });\n });\n\n let oldData: any = target[0].columns[0];\n datas = [oldData].concat(datas); //++\n // console.log(\"datas\", datas);\n target[0].columns = datas;\n break;\n case 'remove':\n target = liner.filter((x) => x.id === item.id).map((x) => x);\n target[0].columns.splice(index, 1);\n break;\n }\n this.onScroll([null, formIndex, null]);\n }\n\n saveDataFormer(isFunc, match = null) {\n let finish = false;\n let array = this.dataLiner(this.nestableArray, false);\n\n let attrSaveData = [];\n // console.log(this.nestableArray);\n // console.log(array);\n\n [].forEach.call(array, (e) => {\n // console.log(e);\n finish = false;\n if (e.type != 'column' && e.type != 'copy') {\n if (!attrSaveData.some((x) => x.requestAttributeId === e.id)) {\n let vlArr = [];\n let value = '';\n if (e.type == 'date' && e.value != '') {\n if (e.value._i == undefined) {\n e.value = new Date(e.value);\n value =\n e.value.getDate() + '-' + (e.value.getMonth() + 1) + '-' + e.value.getFullYear();\n if (e.mask == 'time' && e.placeholder != '' && e.placeholder != null) {\n value += ' ' + e.placeholder;\n }\n } else {\n value = e.value._i.date + '-' + (e.value._i.month + 1) + '-' + e.value._i.year;\n if (e.mask == 'time' && e.placeholder != '' && e.placeholder != null) {\n value += ' ' + e.placeholder;\n }\n }\n finish = true;\n } else if (e.type == 'court') {\n if (e.value != '') {\n value = e.value.join('_');\n }\n finish = true;\n } else if (e.type == 'file') {\n // console.log(e.value);\n vlArr = [];\n if (Array.isArray(e.value) && e.value.length && e.value[0]) {\n e.value.map((vl, ivl) => {\n if (vl) {\n if (vl.files == undefined) {\n value = e.value;\n } else {\n let fileData: File = null;\n let previewUrl: any = null;\n let ex: string = '';\n let name: string = '';\n\n fileData = vl.files[0];\n\n let array = fileData.name.split('.');\n ex = array[array.length - 1];\n array.splice(-1, 1);\n name = array.join('.');\n\n var mimeType = fileData.type;\n if (mimeType.match(/image\\/*/) != null && mimeType.match(/base64/) == null) {\n var reader = new FileReader();\n reader.readAsDataURL(fileData);\n reader.onload = (_event) => {\n previewUrl = reader.result;\n };\n } else if (\n mimeType.match(/text.*/) != null &&\n mimeType.match(/base64/) == null\n ) {\n var reader = new FileReader();\n reader.readAsText(fileData);\n reader.onload = (_event) => {\n previewUrl = reader.result;\n };\n } else if (\n mimeType.match(/application.*/) != null &&\n mimeType.match(/base64/) == null\n ) {\n var reader = new FileReader();\n reader.readAsDataURL(fileData);\n reader.onload = (_event) => {\n previewUrl = reader.result;\n };\n } else {\n let fileSplter = fileData.type.split('&FILE&');\n\n name = fileSplter[0];\n previewUrl = fileSplter[1];\n mimeType = fileSplter[2];\n }\n\n let interval = setInterval(() => {\n if (previewUrl != null) {\n clearInterval(interval);\n vlArr.push(\n name.split(`.${ex}`)[0] +\n '.' +\n ex +\n '&FILE&' +\n previewUrl +\n '&FILE&' +\n mimeType\n );\n if (e.value.length - 1 === ivl) {\n finish = true;\n }\n }\n }, 50);\n }\n }\n });\n // }\n // if (e.value != \"\" && e.value != null && e.value != undefined) {\n // if (e.value.files == undefined) {\n // value = e.value;\n // } else {\n // let fileData: File = null;\n // let previewUrl: any = null;\n // let ex: string = \"\";\n // let name: string = \"\";\n\n // fileData = e.value.files[0];\n\n // let array = fileData.name.split(\".\");\n // ex = array[array.length - 1];\n // array.splice(-1, 1);\n // name = array.join(\".\");\n\n // var mimeType = fileData.type;\n // if (mimeType.match(/image\\/*/) != null && mimeType.match(/base64/) == null) {\n // var reader = new FileReader();\n // reader.readAsDataURL(fileData);\n // reader.onload = (_event) => {\n // previewUrl = reader.result;\n // };\n // } else if (mimeType.match(/text.*/) != null && mimeType.match(/base64/) == null) {\n // var reader = new FileReader();\n // reader.readAsText(fileData);\n // reader.onload = (_event) => {\n // previewUrl = reader.result;\n // };\n // } else if (mimeType.match(/application.*/) != null && mimeType.match(/base64/) == null) {\n // var reader = new FileReader();\n // reader.readAsDataURL(fileData);\n // reader.onload = (_event) => {\n // previewUrl = reader.result;\n // };\n // } else {\n // let fileSplter = fileData.type.split(\"&FILE&\");\n\n // name = fileSplter[0];\n // previewUrl = fileSplter[1];\n // mimeType = fileSplter[2];\n // }\n\n // let interval = setInterval(() => {\n // if (previewUrl != null) {\n // clearInterval(interval);\n // value = name + \".\" + ex + \"&FILE&\" + previewUrl + \"&FILE&\" + mimeType;\n // finish = true;\n // }\n // }, 50);\n // }\n } else {\n value = '';\n finish = true;\n }\n } else if (e.type == 'checkbox') {\n if (e.value == '' || e.value == null) {\n value = 'false';\n } else {\n value = e.value.toString();\n }\n finish = true;\n } else {\n if (e.mask == '+00 (000) 00-00-000' && e.value != '' && e.value != null) {\n var i = 0,\n v = e.value.toString();\n let result = e.mask.replace(/\\d/g, (_) => v[i++]);\n value = result;\n } else {\n if (e.value == null) {\n value = '';\n } else {\n value = e.value.toString();\n }\n }\n finish = true;\n }\n if (!e.display) {\n value = '';\n }\n let interval = setInterval(() => {\n if (finish) {\n clearInterval(interval);\n attrSaveData.push({\n requestAttributeId: e.id,\n data: e.type === 'file' && vlArr.length ? JSON.stringify(vlArr) : value,\n });\n }\n }, 50);\n } else {\n let vlArr = [];\n let value = '';\n if (e.type == 'date' && e.value != '') {\n if (e.value._i == undefined) {\n e.value = new Date(e.value);\n value =\n e.value.getDate() + '-' + (e.value.getMonth() + 1) + '-' + e.value.getFullYear();\n if (e.mask == 'time' && e.placeholder != '' && e.placeholder != null) {\n value += ' ' + e.placeholder;\n }\n } else {\n value = e.value._i.date + '-' + (e.value._i.month + 1) + '-' + e.value._i.year;\n if (e.mask == 'time' && e.placeholder != '' && e.placeholder != null) {\n value += ' ' + e.placeholder;\n }\n }\n finish = true;\n } else if (e.type == 'court') {\n value = e.value.join('_');\n finish = true;\n } else if (e.type == 'file') {\n if (Array.isArray(e.value) && e.value.length && e.value[0]) {\n e.value.map((vl, ivl) => {\n if (vl) {\n if (vl.files == undefined) {\n value = e.value;\n } else {\n let fileData: File = null;\n let previewUrl: any = null;\n let ex: string = '';\n let name: string = '';\n\n fileData = vl.files[0];\n\n let array = fileData.name.split('.');\n ex = array[array.length - 1];\n array.splice(-1, 1);\n name = array.join('.');\n\n var mimeType = fileData.type;\n if (mimeType.match(/image\\/*/) != null) {\n var reader = new FileReader();\n reader.readAsDataURL(fileData);\n reader.onload = (_event) => {\n previewUrl = reader.result;\n };\n }\n\n if (mimeType.match(/text.*/) != null) {\n var reader = new FileReader();\n reader.readAsText(fileData);\n reader.onload = (_event) => {\n previewUrl = reader.result;\n };\n }\n\n if (mimeType.match(/application.*/) != null) {\n var reader = new FileReader();\n reader.readAsDataURL(fileData);\n reader.onload = (_event) => {\n previewUrl = reader.result;\n };\n }\n\n let interval = setInterval(() => {\n if (previewUrl != null) {\n clearInterval(interval);\n vlArr.push(name + '.' + ex + '&FILE&' + previewUrl + '&FILE&' + mimeType);\n if (e.value.length - 1 === ivl) {\n finish = true;\n }\n }\n }, 50);\n }\n }\n });\n // }\n // if (e.value != \"\") {\n // if (e.value.files == undefined) {\n // value = e.value;\n // } else {\n // let fileData: File = null;\n // let previewUrl: any = null;\n // let ex: string = \"\";\n // let name: string = \"\";\n\n // fileData = e.value.files[0];\n\n // let array = fileData.name.split(\".\");\n // ex = array[array.length - 1];\n // array.splice(-1, 1);\n // name = array.join(\".\");\n\n // var mimeType = fileData.type;\n // if (mimeType.match(/image\\/*/) != null) {\n // var reader = new FileReader();\n // reader.readAsDataURL(fileData);\n // reader.onload = (_event) => {\n // previewUrl = reader.result;\n // };\n // }\n\n // if (mimeType.match(/text.*/) != null) {\n // var reader = new FileReader();\n // reader.readAsText(fileData);\n // reader.onload = (_event) => {\n // previewUrl = reader.result;\n // };\n // }\n\n // if (mimeType.match(/application.*/) != null) {\n // var reader = new FileReader();\n // reader.readAsDataURL(fileData);\n // reader.onload = (_event) => {\n // previewUrl = reader.result;\n // };\n // }\n\n // let interval = setInterval(() => {\n // if (previewUrl != null) {\n // clearInterval(interval);\n // value = name + \".\" + ex + \"&FILE&\" + previewUrl + \"&FILE&\" + mimeType;\n // finish = true;\n // }\n // }, 50);\n // }\n } else {\n value = '';\n finish = true;\n }\n } else if (e.type == 'checkbox') {\n if (e.value == '' || e.value == null) {\n value = 'false';\n } else {\n value = e.value.toString();\n }\n finish = true;\n } else {\n if (e.mask == '+00 (000) 00-00-000' && e.value != '' && e.value != null) {\n var i = 0,\n v = e.value.toString();\n let result = e.mask.replace(/\\d/g, (_) => v[i++]);\n value = result;\n } else {\n if (e.value == null) {\n value = '';\n } else {\n value = e.value.toString();\n }\n }\n finish = true;\n }\n if (!e.display) {\n value = '';\n }\n let interval = setInterval(() => {\n if (finish) {\n clearInterval(interval);\n let index = attrSaveData\n .map(function (x) {\n return x.requestAttributeId;\n })\n .indexOf(e.id);\n attrSaveData[index].data =\n attrSaveData[index].data +\n '|&|' +\n (e.type === 'file' && vlArr.length ? JSON.stringify(vlArr) : value);\n }\n }, 50);\n }\n }\n });\n let returnInterval = setInterval(() => {\n // console.log(attrSaveData);\n if (attrSaveData.length >= array.length) {\n clearInterval(returnInterval);\n if (isFunc) {\n this.saveFormContinue(attrSaveData);\n } else {\n this.buildDemoTextContinue(attrSaveData, match);\n }\n }\n }, 50);\n }\n\n buildDemoText(template) {\n // this.demoEditorContent = '';\n // this.demoEditorContent = template.content;\n this.demoEditorContent.push(template.content);\n let index: number = this.demoEditorContent.length - 1;\n let reg = new RegExp(/(?!\\d)\\s(cc_cursor)/g);\n let test = reg.test(this.demoEditorContent[index]);\n if (test) {\n this.demoEditorContent[index] = this.demoEditorContent[index].replace(reg, '');\n }\n reg = new RegExp(/\\sstyle=\"background-color: initial;\"/g);\n test = reg.test(this.demoEditorContent[index]);\n if (test) {\n this.demoEditorContent[index] = this.demoEditorContent[index].replace(reg, '');\n }\n reg = new RegExp(\n /[|][*]<\\w+\\s.*?(class=.key-(\\w|\\d|[-])+).>(\\w|\\d|\\s|[^<])+(<.\\w+.*?>[*][|]).*?/g\n ); //v. 1.3.7\n let match = this.demoEditorContent[index].match(reg);\n reg = new RegExp(/[|][*]<\\w+\\s.*?(key=.(\\w|\\d|[-])+).>(\\w|\\d|\\s|[^<])+(<.\\w+.*?>[*][|]).*?/g); //v. 2.0\n if (match != null) {\n match = match.concat(this.demoEditorContent[index].match(reg)) as any;\n } else {\n match = this.demoEditorContent[index].match(reg);\n }\n if (match == null) {\n return false;\n }\n\n this.saveDataFormer(false, match);\n }\n\n buildDemoTextContinue(attrSaveData, match) {\n // console.log('attrSaveData', attrSaveData);\n // console.log('match', match);\n\n let deaIndex: number = this.demoEditorArray.length;\n\n let attrLoadData = this.dataLiner(this.nestableArray, true);\n [].forEach.call(match, (e) => {\n if (e == null) {\n return false;\n }\n let regKey = new RegExp(/\"key-(\\S|\\w|\\s|\\d|\\W).*?\"/); //v. 1.3.7\n let matchKey = e.match(regKey);\n regKey = new RegExp(/key=.(\\S|\\w|\\s|\\d|\\W).*?\"/); //v. 2.0\n if (matchKey != null) {\n matchKey = matchKey.concat(e.match(regKey));\n } else {\n matchKey = e.match(regKey);\n }\n let type = matchKey[0].split('TL')[1].split('\"')[0];\n let indexF = -1;\n let attrId;\n let newData = '';\n let repReg = null;\n let addText = '';\n let endText = '';\n let condField;\n let cond;\n let resultC;\n let resultD;\n let atrrIdArray;\n let textResult;\n let idResult;\n let indexAttr;\n let listInd;\n let newText: any;\n let test: boolean;\n let dubSpace = '';\n let mch;\n let dateArray;\n let dataArray;\n let newString;\n let newDate;\n let text;\n let fileSplter;\n switch (type) {\n case '0':\n text = '';\n attrId = parseInt(matchKey[0].split('FS')[1].split('FLS')[0]);\n if (attrId == 0) {\n attrId = matchKey[0].split('FLS')[1].split('DE')[0];\n if (attrId != '') {\n let multipleList = attrId.split('xx');\n [].forEach.call(multipleList, (c, indexC) => {\n indexF = attrSaveData\n .map(function (e) {\n return e.requestAttributeId;\n })\n .indexOf(parseInt(c));\n indexAttr = attrLoadData\n .map(function (e) {\n return e.id;\n })\n .indexOf(parseInt(c));\n if (indexC > 0) {\n text += ' ';\n }\n if (indexAttr != -1) {\n if (attrLoadData[indexAttr].type == 'select') {\n let list = this.dataPacker(\n 'unpack',\n 'selectors',\n attrLoadData[indexAttr].selectors\n ).list;\n [].forEach.call(list, (e) => {\n if (e.name == attrSaveData[indexF].data) {\n let array = [];\n try {\n array = JSON.parse(e.value);\n } catch {\n array = e.value;\n }\n if (Array.isArray(array) && array.length && array[0]) {\n array = array.map((vl) => {\n fileSplter = vl.split('&FILE&');\n return fileSplter[0];\n });\n text += array.join(', ');\n } else {\n fileSplter = e.value.split('&FILE&');\n text += fileSplter[0];\n }\n // console.log(text);\n }\n });\n } else {\n let array = [];\n try {\n array = JSON.parse(attrSaveData[indexF].data);\n } catch {\n array = attrSaveData[indexF].data;\n }\n if (Array.isArray(array) && array.length && array[0]) {\n array = array.map((vl) => {\n fileSplter = vl.split('&FILE&');\n return fileSplter[0];\n });\n text += array.join(', ');\n } else {\n fileSplter = attrSaveData[indexF].data.split('&FILE&');\n text += fileSplter[0];\n }\n // console.log(text);\n }\n }\n });\n }\n } else {\n indexF = attrSaveData\n .map(function (e) {\n return e.requestAttributeId;\n })\n .indexOf(attrId);\n indexAttr = attrLoadData\n .map(function (e) {\n return e.id;\n })\n .indexOf(attrId);\n if (indexAttr != -1) {\n if (attrLoadData[indexAttr].type == 'select') {\n let list = this.dataPacker(\n 'unpack',\n 'selectors',\n attrLoadData[indexAttr].selectors\n ).list;\n [].forEach.call(list, (e) => {\n if (e.name == attrSaveData[indexF].data) {\n let array = [];\n try {\n array = JSON.parse(e.value);\n } catch {\n array = e.value;\n }\n if (Array.isArray(array) && array.length && array[0]) {\n array = array.map((vl) => {\n fileSplter = vl.split('&FILE&');\n return fileSplter[0];\n });\n text = array.join(', ');\n } else {\n fileSplter = e.value.split('&FILE&');\n text = fileSplter[0];\n }\n // console.log(text);\n }\n });\n } else {\n let array = [];\n try {\n array = JSON.parse(attrSaveData[indexF].data);\n } catch {\n array = attrSaveData[indexF].data;\n }\n if (Array.isArray(array) && array.length && array[0]) {\n array = array.map((vl) => {\n fileSplter = vl.split('&FILE&');\n return fileSplter[0];\n });\n text = array.join(', ');\n } else {\n fileSplter = attrSaveData[indexF].data.split('&FILE&');\n text = fileSplter[0];\n }\n // console.log(text);\n }\n }\n attrId = matchKey[0].split('FLS')[1].split('DE')[0];\n if (attrId != '') {\n let courtList = attrId.split('xx');\n let courtData = attrSaveData[indexF].data.split('_');\n text = '';\n [].forEach.call(courtData, (c, indexC) => {\n switch (indexC) {\n case 0:\n listInd = courtList\n .map(function (e) {\n return parseInt(e);\n })\n .indexOf(1);\n if (listInd != -1) {\n listInd = this.regionList.filter((x) => x.id === parseInt(c)).map((x) => x);\n if (listInd.length != 0) {\n text += listInd[0].title;\n }\n }\n break;\n case 1:\n listInd = courtList\n .map(function (e) {\n return parseInt(e);\n })\n .indexOf(2);\n if (listInd != -1) {\n listInd = this.cityList.filter((x) => x.id === parseInt(c)).map((x) => x);\n if (listInd.length != 0) {\n text += listInd[0].title;\n }\n }\n break;\n case 2:\n listInd = courtList\n .map(function (e) {\n return parseInt(e);\n })\n .indexOf(3);\n if (listInd != -1) {\n listInd = this.courtList.filter((x) => x.id === parseInt(c)).map((x) => x);\n if (listInd.length != 0) {\n text += listInd[0].title;\n }\n }\n break;\n }\n });\n }\n }\n\n newData = text;\n\n if (newData == undefined || newData == null) {\n newData = '';\n }\n\n repReg = new RegExp(/\\d{1,2}-\\d{1,2}-\\d{4}/g);\n mch = newData.match(repReg);\n if (mch != null) {\n dateArray = [];\n [].forEach.call(mch, (v) => {\n newText = v.split('-');\n [].forEach.call(newText, (c, indexC) => {\n c = c.replace(/\\s/g, '');\n if (c.length == 1) {\n newText[indexC] = '0' + c;\n }\n });\n newText = newText.join('.');\n dateArray.push(newText);\n });\n dataArray = newData.split(repReg);\n newString = '';\n [].forEach.call(dataArray, (e, indexE) => {\n if (dateArray[indexE] == undefined) {\n newString += e;\n } else {\n newString += e + dateArray[indexE];\n }\n });\n\n newData = newString;\n }\n\n break;\n case '1':\n attrId = matchKey[0].split('DE')[1].split('CDS')[0];\n atrrIdArray = attrId.split('xx');\n dubSpace = atrrIdArray[atrrIdArray.length - 1].split('qq')[1];\n atrrIdArray[atrrIdArray.length - 1] = atrrIdArray[atrrIdArray.length - 1].split('qq')[0];\n textResult = [];\n [].forEach.call(atrrIdArray, (c) => {\n let filter = attrSaveData\n .filter((x) => x.requestAttributeId === parseInt(c))\n .map((x) => x);\n indexF = attrSaveData.map((e) => e.requestAttributeId).indexOf(parseInt(c));\n if (filter.length > 1) {\n let array = [];\n [].forEach.call(filter, (x) => {\n array = array.concat(x.data.split('|&|'));\n });\n textResult.push(array);\n } else {\n textResult.push(attrSaveData[indexF].data.split('|&|'));\n }\n // textResult.push(attrSaveData[indexF].data.split(\"|&|\"));\n });\n // console.log(e);\n // console.log(dubSpace);\n // console.log(textResult);\n\n [].forEach.call(textResult[0], (c, indexC) => {\n [].forEach.call(textResult, (d, indexD) => {\n indexAttr = attrLoadData\n .map(function (e) {\n return e.id;\n })\n .indexOf(parseInt(atrrIdArray[indexD]));\n if (indexAttr != -1) {\n if (attrLoadData[indexAttr].type == 'select') {\n let list = this.dataPacker(\n 'unpack',\n 'selectors',\n attrLoadData[indexAttr].selectors\n ).list;\n [].forEach.call(list, (e) => {\n if (e.name == textResult[indexD][indexC]) {\n let array = [];\n try {\n array = JSON.parse(e.value);\n } catch {\n array = e.value;\n }\n if (Array.isArray(array) && array.length && array[0]) {\n array = array.map((vl) => {\n fileSplter = vl.split('&FILE&');\n return fileSplter[0];\n });\n newData += ' ' + array.join(', ');\n } else {\n fileSplter = e.value.split('&FILE&');\n newData += ' ' + fileSplter[0];\n }\n // console.log(newData);\n }\n });\n } else {\n let array = [];\n try {\n array = JSON.parse(textResult[indexD][indexC]);\n } catch {\n array = textResult[indexD][indexC];\n }\n if (Array.isArray(array) && array.length && array[0]) {\n array = array.map((vl) => {\n fileSplter = vl.split('&FILE&');\n return fileSplter[0];\n });\n newData += ' ' + array.join(', ');\n } else {\n // console.log(textResult);\n // console.log(textResult[indexD]);\n // console.log(textResult[indexD][indexC]);\n if (textResult[indexD][indexC]) {\n fileSplter = textResult[indexD][indexC].split('&FILE&');\n newData += ' ' + fileSplter[0];\n }\n }\n // console.log(newData);\n }\n }\n });\n if (indexC != textResult[0].length - 1) {\n if (dubSpace == '1') {\n newData += ', ';\n } else if (dubSpace == '2') {\n newData += '\\n';\n }\n }\n });\n\n repReg = new RegExp(/(,\\s)($|\\z|\\n)/g);\n newData = newData.replace(repReg, '');\n\n if (newData == undefined || newData == null) {\n newData = '';\n }\n\n repReg = new RegExp(/\\d{1,2}-\\d{1,2}-\\d{4}/g);\n mch = newData.match(repReg);\n if (mch != null) {\n dateArray = [];\n [].forEach.call(mch, (v) => {\n newText = v.split('-');\n [].forEach.call(newText, (c, indexC) => {\n c = c.replace(/\\s/g, '');\n if (c.length == 1) {\n newText[indexC] = '0' + c;\n }\n });\n newText = newText.join('.');\n dateArray.push(newText);\n });\n dataArray = newData.split(repReg);\n newString = '';\n [].forEach.call(dataArray, (e, indexE) => {\n if (dateArray[indexE] == undefined) {\n newString += e;\n } else {\n newString += e + dateArray[indexE];\n }\n });\n\n newData = newString;\n }\n break;\n case '2':\n attrId = parseInt(matchKey[0].split('CS')[1].split('CVS')[0]);\n if (attrId == 0) {\n attrId = parseInt(matchKey[0].split('CAS')[1].split('CVAS')[0]);\n indexF = attrSaveData\n .map(function (e) {\n return e.requestAttributeId;\n })\n .indexOf(attrId);\n condField = attrSaveData[indexF];\n indexAttr = attrLoadData\n .map(function (e) {\n return e.id;\n })\n .indexOf(attrId);\n cond = matchKey[0].split('CVAS')[1].split('TL')[0];\n let splitCond = cond.split('xx');\n if (splitCond.length == 1) {\n cond = parseInt(matchKey[0].split('CVAS')[1].split('TL')[0]);\n }\n } else {\n indexF = attrSaveData\n .map(function (e) {\n return e.requestAttributeId;\n })\n .indexOf(attrId);\n condField = attrSaveData[indexF];\n indexAttr = attrLoadData\n .map(function (e) {\n return e.id;\n })\n .indexOf(attrId);\n cond = matchKey[0].split('CVS')[1].split('FS')[0];\n let splitCond = cond.split('xx');\n if (splitCond.length == 1) {\n cond = parseInt(matchKey[0].split('CVS')[1].split('FS')[0]);\n }\n }\n resultC = false;\n if (indexF != -1 || attrLoadData[indexAttr].type == 'copy') {\n if (\n attrLoadData[indexAttr].type == 'radio' ||\n attrLoadData[indexAttr].type == 'select'\n ) {\n if (condField.data != '') {\n if (condField.data == 'option_' + cond) {\n resultC = true;\n }\n }\n } else if (attrLoadData[indexAttr].type == 'checkbox') {\n if (\n (cond == 0 && condField.data == 'true') ||\n (cond == 1 && condField.data == 'false')\n ) {\n resultC = true;\n }\n } else if (\n attrLoadData[indexAttr].type == 'copy' ||\n attrLoadData[indexAttr].type == 'input' ||\n attrLoadData[indexAttr].type == 'date'\n ) {\n resultC = this.templateDrawCondition(\n indexAttr,\n cond,\n condField,\n attrSaveData,\n attrLoadData\n );\n } else {\n if (cond == 0) {\n if (condField.data != '') {\n resultC = true;\n }\n } else {\n if (condField.data == '') {\n resultC = true;\n }\n }\n }\n }\n if (resultC == true) {\n addText = e.split('#*')[1].split('[')[0];\n endText = e.split(']')[1].split('*#')[0];\n text = '';\n attrId = matchKey[0].split('FS')[1].split('FLS')[0];\n if (parseInt(attrId) === 0) {\n attrId = matchKey[0].split('FLS')[1].split('DE')[0];\n if (attrId != '') {\n let multipleList = attrId.split('xx');\n [].forEach.call(multipleList, (c, indexC) => {\n indexF = attrSaveData\n .map(function (e) {\n return e.requestAttributeId;\n })\n .indexOf(parseInt(c));\n if (indexC > 0) {\n text += ' ';\n }\n indexAttr = attrLoadData\n .map(function (e) {\n return e.id;\n })\n .indexOf(parseInt(c));\n if (indexAttr != -1) {\n if (attrLoadData[indexAttr].type == 'select') {\n let list = this.dataPacker(\n 'unpack',\n 'selectors',\n attrLoadData[indexAttr].selectors\n ).list;\n [].forEach.call(list, (e) => {\n if (e.name == attrSaveData[indexF].data) {\n let array = [];\n try {\n array = JSON.parse(e.value);\n } catch {\n array = e.value;\n }\n if (Array.isArray(array) && array.length && array[0]) {\n array = array.map((vl) => {\n fileSplter = vl.split('&FILE&');\n return fileSplter[0];\n });\n text += array.join(', ');\n } else {\n fileSplter = e.value.split('&FILE&');\n text += fileSplter[0];\n }\n // console.log(text);\n }\n });\n } else {\n let array = [];\n try {\n array = JSON.parse(attrSaveData[indexF].data);\n } catch {\n array = attrSaveData[indexF].data;\n }\n if (Array.isArray(array) && array.length && array[0]) {\n array = array.map((vl) => {\n fileSplter = vl.split('&FILE&');\n return fileSplter[0];\n });\n text += array.join(', ');\n } else {\n fileSplter = attrSaveData[indexF].data.split('&FILE&');\n text += fileSplter[0];\n }\n // console.log(text);\n }\n }\n });\n }\n } else if (attrId !== '') {\n attrId = parseInt(attrId);\n indexF = attrSaveData\n .map(function (e) {\n return e.requestAttributeId;\n })\n .indexOf(attrId);\n indexAttr = attrLoadData\n .map(function (e) {\n return e.id;\n })\n .indexOf(attrId);\n if (indexAttr != -1) {\n if (attrLoadData[indexAttr].type == 'select') {\n let list = this.dataPacker(\n 'unpack',\n 'selectors',\n attrLoadData[indexAttr].selectors\n ).list;\n [].forEach.call(list, (e) => {\n if (e.name == attrSaveData[indexF].data) {\n let array = [];\n try {\n array = JSON.parse(e.value);\n } catch {\n array = e.value;\n }\n if (Array.isArray(array) && array.length && array[0]) {\n array = array.map((vl) => {\n fileSplter = vl.split('&FILE&');\n return fileSplter[0];\n });\n text = array.join(', ');\n } else {\n fileSplter = e.value.split('&FILE&');\n text = fileSplter[0];\n }\n // console.log(text);\n }\n });\n } else {\n let array = [];\n try {\n array = JSON.parse(attrSaveData[indexF].data);\n } catch {\n array = attrSaveData[indexF].data;\n }\n if (Array.isArray(array) && array.length && array[0]) {\n array = array.map((vl) => {\n fileSplter = vl.split('&FILE&');\n return fileSplter[0];\n });\n text = array.join(', ');\n } else {\n fileSplter = attrSaveData[indexF].data.split('&FILE&');\n text = fileSplter[0];\n }\n // console.log(text);\n }\n }\n attrId = matchKey[0].split('FLS')[1].split('DE')[0];\n\n if (attrId != '') {\n let courtList = attrId.split('xx');\n let courtData = attrSaveData[indexF].data.split('_');\n text = '';\n [].forEach.call(courtData, (c, indexC) => {\n let courtIndex = -1;\n switch (indexC) {\n case 0:\n listInd = courtList\n .map(function (e) {\n return parseInt(e);\n })\n .indexOf(1);\n if (listInd != -1) {\n listInd = this.regionList.filter((x) => x.id === parseInt(c)).map((x) => x);\n if (listInd.length != 0) {\n text += listInd[0].title;\n }\n }\n break;\n case 1:\n listInd = courtList\n .map(function (e) {\n return parseInt(e);\n })\n .indexOf(2);\n if (listInd != -1) {\n listInd = this.cityList.filter((x) => x.id === parseInt(c)).map((x) => x);\n if (listInd.length != 0) {\n text += listInd[0].title;\n }\n }\n break;\n case 2:\n listInd = courtList\n .map(function (e) {\n return parseInt(e);\n })\n .indexOf(3);\n if (listInd != -1) {\n listInd = this.courtList.filter((x) => x.id === parseInt(c)).map((x) => x);\n if (listInd.length != 0) {\n text += listInd[0].title;\n }\n }\n break;\n }\n });\n }\n }\n\n if (newData == undefined || newData == null) {\n newData = '';\n }\n\n newData = addText + text + endText;\n\n repReg = new RegExp(/\\d{1,2}-\\d{1,2}-\\d{4}/g);\n mch = newData.match(repReg);\n if (mch != null) {\n dateArray = [];\n [].forEach.call(mch, (v) => {\n newText = v.split('-');\n [].forEach.call(newText, (c, indexC) => {\n c = c.replace(/\\s/g, '');\n if (c.length == 1) {\n newText[indexC] = '0' + c;\n }\n });\n newText = newText.join('.');\n dateArray.push(newText);\n });\n dataArray = newData.split(repReg);\n newString = '';\n [].forEach.call(dataArray, (e, indexE) => {\n if (dateArray[indexE] == undefined) {\n newString += e;\n } else {\n newString += e + dateArray[indexE];\n }\n });\n\n newData = newString;\n }\n }\n break;\n case '3':\n attrId = parseInt(matchKey[0].split('CS')[1].split('CVS')[0]);\n if (attrId == 0) {\n attrId = parseInt(matchKey[0].split('CAS')[1].split('CVAS')[0]);\n indexF = attrSaveData\n .map(function (e) {\n return e.requestAttributeId;\n })\n .indexOf(attrId);\n condField = attrSaveData[indexF];\n indexAttr = attrLoadData\n .map(function (e) {\n return e.id;\n })\n .indexOf(attrId);\n cond = matchKey[0].split('CVAS')[1].split('TL')[0];\n let splitCond = cond.split('xx');\n if (splitCond.length == 1) {\n cond = parseInt(matchKey[0].split('CVAS')[1].split('TL')[0]);\n }\n } else {\n indexF = attrSaveData\n .map(function (e) {\n return e.requestAttributeId;\n })\n .indexOf(attrId);\n condField = attrSaveData[indexF];\n indexAttr = attrLoadData\n .map(function (e) {\n return e.id;\n })\n .indexOf(attrId);\n cond = matchKey[0].split('CVS')[1].split('FS')[0];\n let splitCond = cond.split('xx');\n if (splitCond.length == 1) {\n cond = parseInt(matchKey[0].split('CVS')[1].split('FS')[0]);\n }\n }\n resultC = false;\n if (indexF != -1 || attrLoadData[indexAttr].type == 'copy') {\n if (\n attrLoadData[indexAttr].type == 'radio' ||\n attrLoadData[indexAttr].type == 'select'\n ) {\n if (condField.data != '') {\n if (condField.data == 'option_' + cond) {\n resultC = true;\n }\n }\n } else if (attrLoadData[indexAttr].type == 'checkbox') {\n if (\n (cond == 0 && condField.data == 'true') ||\n (cond == 1 && condField.data == 'false')\n ) {\n resultC = true;\n }\n } else if (\n attrLoadData[indexAttr].type == 'copy' ||\n attrLoadData[indexAttr].type == 'input' ||\n attrLoadData[indexAttr].type == 'date'\n ) {\n resultC = this.templateDrawCondition(\n indexAttr,\n cond,\n condField,\n attrSaveData,\n attrLoadData\n );\n } else {\n if (cond == 0) {\n if (condField.data != '') {\n resultC = true;\n }\n } else {\n if (condField.data == '') {\n resultC = true;\n }\n }\n }\n }\n if (resultC == true) {\n addText = e.split('#*')[1].split('[')[0];\n endText = e.split(']')[1].split('*#')[0];\n attrId = matchKey[0].split('DE')[1].split('CDS')[0];\n let atrrIdArray = attrId.split('xx');\n dubSpace = atrrIdArray[atrrIdArray.length - 1].split('qq')[1];\n atrrIdArray[atrrIdArray.length - 1] =\n atrrIdArray[atrrIdArray.length - 1].split('qq')[0];\n let textResult = [];\n // [].forEach.call(atrrIdArray, (c) => {\n // indexF = attrSaveData.map((e) => e.requestAttributeId).indexOf(parseInt(c));\n // textResult.push(attrSaveData[indexF].data.split(\"|&|\"));\n // });\n [].forEach.call(atrrIdArray, (c) => {\n let filter = attrSaveData\n .filter((x) => x.requestAttributeId === parseInt(c))\n .map((x) => x);\n indexF = attrSaveData.map((e) => e.requestAttributeId).indexOf(parseInt(c));\n if (filter.length > 1) {\n let array = [];\n [].forEach.call(filter, (x) => {\n array = array.concat(x.data.split('|&|'));\n });\n textResult.push(array);\n } else {\n textResult.push(attrSaveData[indexF].data.split('|&|'));\n }\n });\n // console.log(e);\n // console.log(dubSpace);\n // console.log(textResult);\n [].forEach.call(textResult[0], (c, indexC) => {\n [].forEach.call(textResult, (d, indexD) => {\n indexAttr = attrLoadData\n .map(function (e) {\n return e.id;\n })\n .indexOf(parseInt(atrrIdArray[indexD]));\n if (indexAttr != -1) {\n if (attrLoadData[indexAttr].type == 'select') {\n let list = this.dataPacker(\n 'unpack',\n 'selectors',\n attrLoadData[indexAttr].selectors\n ).list;\n [].forEach.call(list, (e) => {\n if (e.name == textResult[indexD][indexC]) {\n let array = [];\n try {\n array = JSON.parse(e.value);\n } catch {\n array = e.value;\n }\n if (Array.isArray(array) && array.length && array[0]) {\n array = array.map((vl) => {\n fileSplter = vl.split('&FILE&');\n return fileSplter[0];\n });\n newData += ' ' + array.join(', ');\n } else {\n fileSplter = e.value.split('&FILE&');\n newData += ' ' + fileSplter[0];\n }\n // console.log(newData);\n }\n });\n } else {\n let array = [];\n try {\n array = JSON.parse(textResult[indexD][indexC]);\n } catch {\n array = textResult[indexD][indexC];\n }\n if (Array.isArray(array) && array.length && array[0]) {\n array = array.map((vl) => {\n fileSplter = vl.split('&FILE&');\n return fileSplter[0];\n });\n newData += ' ' + array.join(', ');\n } else {\n fileSplter = textResult[indexD][indexC].split('&FILE&');\n newData += ' ' + fileSplter[0];\n }\n // console.log(newData);\n }\n }\n });\n if (indexC != textResult[0].length - 1) {\n if (dubSpace == '1') {\n newData += ', ';\n } else if (dubSpace == '2') {\n newData += '\\n';\n }\n }\n });\n\n repReg = new RegExp(/(,\\s)($|\\z|\\n)/g);\n newData = newData.replace(repReg, '');\n\n if (newData == undefined || newData == null) {\n newData = '';\n }\n\n newData = addText + newData + endText;\n\n repReg = new RegExp(/\\d{1,2}-\\d{1,2}-\\d{4}/g);\n mch = newData.match(repReg);\n if (mch != null) {\n dateArray = [];\n [].forEach.call(mch, (v) => {\n newText = v.split('-');\n [].forEach.call(newText, (c, indexC) => {\n c = c.replace(/\\s/g, '');\n if (c.length == 1) {\n newText[indexC] = '0' + c;\n }\n });\n newText = newText.join('.');\n dateArray.push(newText);\n });\n dataArray = newData.split(repReg);\n newString = '';\n [].forEach.call(dataArray, (e, indexE) => {\n if (dateArray[indexE] == undefined) {\n newString += e;\n } else {\n newString += e + dateArray[indexE];\n }\n });\n\n newData = newString;\n }\n }\n break;\n case '4':\n attrId = matchKey[0].split('DE')[1].split('CDS')[0];\n atrrIdArray = attrId.split('xx');\n dubSpace = atrrIdArray[atrrIdArray.length - 1].split('qq')[1];\n atrrIdArray[atrrIdArray.length - 1] = atrrIdArray[atrrIdArray.length - 1].split('qq')[0];\n textResult = [];\n idResult = [];\n [].forEach.call(atrrIdArray, (c) => {\n indexF = attrSaveData\n .map(function (e) {\n return e.requestAttributeId;\n })\n .indexOf(parseInt(c));\n textResult.push(attrSaveData[indexF].data.split('|&|'));\n idResult.push(c);\n });\n\n attrId = parseInt(matchKey[0].split('CDS')[1].split('CDVS')[0]);\n indexF = attrSaveData\n .map(function (e) {\n return e.requestAttributeId;\n })\n .indexOf(attrId);\n condField = attrSaveData[indexF];\n cond = parseInt(matchKey[0].split('CDVS')[1].split('AF')[0]);\n indexAttr = attrLoadData\n .map(function (e) {\n return e.id;\n })\n .indexOf(attrId);\n resultD = [];\n\n [].forEach.call(textResult[0], (c, indexC) => {\n resultD.push([]);\n [].forEach.call(textResult, (d) => {\n if (indexF != -1 || attrLoadData[indexAttr].type == 'copy') {\n if (\n attrLoadData[indexAttr].type == 'radio' ||\n attrLoadData[indexAttr].type == 'select'\n ) {\n if (condField.data != '') {\n let nData = condField.data.split('|&|');\n if (nData[indexC] == 'option_' + cond) {\n resultD[indexC].push(true);\n } else {\n resultD[indexC].push(false);\n }\n } else {\n resultD[indexC].push(false);\n }\n } else if (attrLoadData[indexAttr].type == 'checkbox') {\n if (condField.data != '') {\n let nData = condField.data.split('|&|');\n if (\n (cond == 0 && nData[indexC] == 'true') ||\n (cond == 1 && nData[indexC] == 'false')\n ) {\n resultD[indexC].push(true);\n } else {\n resultD[indexC].push(false);\n }\n } else {\n resultD[indexC].push(false);\n }\n } else if (\n attrLoadData[indexAttr].type == 'copy' ||\n attrLoadData[indexAttr].type == 'input' ||\n attrLoadData[indexAttr].type == 'date'\n ) {\n if (condField.data != '') {\n let nData = condField.data.split('|&|');\n let ndf;\n ndf.data = nData[indexC];\n resultD[indexC].push(\n this.templateDrawCondition(indexAttr, cond, ndf, attrSaveData, attrLoadData)\n );\n } else {\n resultD[indexC].push(false);\n }\n } else {\n if (cond == 0) {\n if (d != '') {\n resultD[indexC].push(true);\n } else {\n resultD[indexC].push(false);\n }\n } else {\n if (d == '') {\n resultD[indexC].push(true);\n } else {\n resultD[indexC].push(false);\n }\n }\n }\n }\n });\n });\n [].forEach.call(textResult[0], (c, indexC) => {\n [].forEach.call(textResult, (d, indexD) => {\n if (resultD[indexC][indexD]) {\n indexAttr = attrLoadData\n .map(function (e) {\n return e.id;\n })\n .indexOf(parseInt(atrrIdArray[indexD]));\n if (indexAttr != -1) {\n if (attrLoadData[indexAttr].type == 'select') {\n let list = this.dataPacker(\n 'unpack',\n 'selectors',\n attrLoadData[indexAttr].selectors\n ).list;\n [].forEach.call(list, (e) => {\n if (e.name == textResult[indexD][indexC]) {\n let array = [];\n try {\n array = JSON.parse(e.value);\n } catch {\n array = e.value;\n }\n if (Array.isArray(array) && array.length && array[0]) {\n array = array.map((vl) => {\n fileSplter = vl.split('&FILE&');\n return fileSplter[0];\n });\n newData += ' ' + array.join(', ');\n } else {\n fileSplter = e.value.split('&FILE&');\n newData += ' ' + fileSplter[0];\n }\n // console.log(newData);\n }\n });\n } else {\n let array = [];\n try {\n array = JSON.parse(textResult[indexD][indexC]);\n } catch {\n array = textResult[indexD][indexC];\n }\n if (Array.isArray(array) && array.length && array[0]) {\n array = array.map((vl) => {\n fileSplter = vl.split('&FILE&');\n return fileSplter[0];\n });\n newData += ' ' + array.join(', ');\n } else {\n fileSplter = textResult[indexD][indexC].split('&FILE&');\n newData += ' ' + fileSplter[0];\n }\n // console.log(newData);\n }\n }\n }\n });\n if (indexC != textResult[0].length - 1) {\n if (dubSpace == '1') {\n newData += ', ';\n } else if (dubSpace == '2') {\n newData += '\\n';\n }\n }\n });\n\n repReg = new RegExp(/(,\\s)($|\\z|\\n)/g);\n newData = newData.replace(repReg, '');\n\n if (newData == undefined || newData == null) {\n newData = '';\n }\n\n repReg = new RegExp(/\\d{1,2}-\\d{1,2}-\\d{4}/g);\n mch = newData.match(repReg);\n if (mch != null) {\n dateArray = [];\n [].forEach.call(mch, (v) => {\n newText = v.split('-');\n [].forEach.call(newText, (c, indexC) => {\n c = c.replace(/\\s/g, '');\n if (c.length == 1) {\n newText[indexC] = '0' + c;\n }\n });\n newText = newText.join('.');\n dateArray.push(newText);\n });\n dataArray = newData.split(repReg);\n newString = '';\n [].forEach.call(dataArray, (e, indexE) => {\n if (dateArray[indexE] == undefined) {\n newString += e;\n } else {\n newString += e + dateArray[indexE];\n }\n });\n\n newData = newString;\n }\n break;\n case '5':\n newData = '';\n attrId = parseInt(matchKey[0].split('CS')[1].split('CVS')[0]);\n if (attrId == 0) {\n attrId = parseInt(matchKey[0].split('CAS')[1].split('CVAS')[0]);\n indexF = attrSaveData\n .map(function (e) {\n return e.requestAttributeId;\n })\n .indexOf(attrId);\n condField = attrSaveData[indexF];\n indexAttr = attrLoadData\n .map(function (e) {\n return e.id;\n })\n .indexOf(attrId);\n cond = matchKey[0].split('CVAS')[1].split('TL')[0];\n let splitCond = cond.split('xx');\n if (splitCond.length == 1) {\n cond = parseInt(matchKey[0].split('CVAS')[1].split('TL')[0]);\n }\n } else {\n indexF = attrSaveData\n .map(function (e) {\n return e.requestAttributeId;\n })\n .indexOf(attrId);\n condField = attrSaveData[indexF];\n indexAttr = attrLoadData\n .map(function (e) {\n return e.id;\n })\n .indexOf(attrId);\n cond = matchKey[0].split('CVS')[1].split('FS')[0];\n let splitCond = cond.split('xx');\n if (splitCond.length == 1) {\n cond = parseInt(matchKey[0].split('CVS')[1].split('FS')[0]);\n }\n }\n resultC = false;\n if (indexF != -1 || attrLoadData[indexAttr].type == 'copy') {\n if (\n attrLoadData[indexAttr].type == 'radio' ||\n attrLoadData[indexAttr].type == 'select'\n ) {\n if (condField.data != '') {\n if (condField.data == 'option_' + cond) {\n resultC = true;\n }\n }\n } else if (attrLoadData[indexAttr].type == 'checkbox') {\n if (\n (cond == 0 && condField.data == 'true') ||\n (cond == 1 && condField.data == 'false')\n ) {\n resultC = true;\n }\n } else if (\n attrLoadData[indexAttr].type == 'copy' ||\n attrLoadData[indexAttr].type == 'input' ||\n attrLoadData[indexAttr].type == 'date'\n ) {\n resultC = this.templateDrawCondition(\n indexAttr,\n cond,\n condField,\n attrSaveData,\n attrLoadData\n );\n } else {\n if (cond == 0) {\n if (condField.data != '') {\n resultC = true;\n }\n } else {\n if (condField.data == '') {\n resultC = true;\n }\n }\n }\n }\n if (resultC == true) {\n addText = e.split('}#*')[1].split('{')[0];\n endText = e.split(']')[1].split('*#')[0];\n attrId = matchKey[0].split('DE')[1].split('CDS')[0];\n atrrIdArray = attrId.split('xx');\n dubSpace = atrrIdArray[atrrIdArray.length - 1].split('qq')[1];\n atrrIdArray[atrrIdArray.length - 1] =\n atrrIdArray[atrrIdArray.length - 1].split('qq')[0];\n textResult = [];\n idResult = [];\n [].forEach.call(atrrIdArray, (c) => {\n indexF = attrSaveData\n .map(function (e) {\n return e.requestAttributeId;\n })\n .indexOf(parseInt(c));\n textResult.push(attrSaveData[indexF].data.split('|&|'));\n idResult.push(c);\n });\n\n attrId = parseInt(matchKey[0].split('CDS')[1].split('CDVS')[0]);\n indexF = attrSaveData\n .map(function (e) {\n return e.requestAttributeId;\n })\n .indexOf(attrId);\n condField = attrSaveData[indexF];\n cond = parseInt(matchKey[0].split('CDVS')[1].split('AF')[0]);\n indexAttr = attrLoadData\n .map(function (e) {\n return e.id;\n })\n .indexOf(attrId);\n resultD = [];\n\n [].forEach.call(textResult[0], (c, indexC) => {\n resultD.push([]);\n [].forEach.call(textResult, (d) => {\n if (indexF != -1) {\n if (\n attrLoadData[indexAttr].type == 'radio' ||\n attrLoadData[indexAttr].type == 'select'\n ) {\n if (condField.data != '') {\n let nData = condField.data.split('|&|');\n if (nData[indexC] == 'option_' + cond) {\n resultD[indexC].push(true);\n } else {\n resultD[indexC].push(false);\n }\n } else {\n resultD[indexC].push(false);\n }\n } else if (attrLoadData[indexAttr].type == 'checkbox') {\n if (condField.data != '') {\n let nData = condField.data.split('|&|');\n if (\n (cond == 0 && nData[indexC] == 'true') ||\n (cond == 1 && nData[indexC] == 'false')\n ) {\n resultD[indexC].push(true);\n } else {\n resultD[indexC].push(false);\n }\n } else {\n resultD[indexC].push(false);\n }\n } else if (\n attrLoadData[indexAttr].type == 'copy' ||\n attrLoadData[indexAttr].type == 'input' ||\n attrLoadData[indexAttr].type == 'date'\n ) {\n if (condField.data != '') {\n let nData = condField.data.split('|&|');\n let ndf;\n ndf.data = nData[indexC];\n resultD[indexC].push(\n this.templateDrawCondition(indexAttr, cond, ndf, attrSaveData, attrLoadData)\n );\n } else {\n resultD[indexC].push(false);\n }\n } else {\n if (cond == 0) {\n if (d != '') {\n resultD[indexC].push(true);\n } else {\n resultD[indexC].push(false);\n }\n } else {\n if (d == '') {\n resultD[indexC].push(true);\n } else {\n resultD[indexC].push(false);\n }\n }\n }\n }\n });\n });\n [].forEach.call(textResult[0], (c, indexC) => {\n [].forEach.call(textResult, (d, indexD) => {\n if (resultD[indexC][indexD]) {\n let array = [];\n try {\n array = JSON.parse(textResult[indexD][indexC]);\n } catch {\n array = textResult[indexD][indexC];\n }\n if (Array.isArray(array) && array.length && array[0]) {\n array = array.map((vl) => {\n fileSplter = vl.split('&FILE&');\n return fileSplter[0];\n });\n newData += ' ' + array.join(', ');\n } else {\n fileSplter = textResult[indexD][indexC].split('&FILE&');\n newData += ' ' + fileSplter[0];\n }\n // console.log(newData);\n }\n });\n if (indexC != textResult[0].length - 1) {\n if (dubSpace == '1') {\n newData += ', ';\n } else if (dubSpace == '2') {\n newData += '\\n';\n }\n }\n });\n }\n\n repReg = new RegExp(/(,\\s)($|\\z|\\n)/g);\n newData = newData.replace(repReg, '');\n\n if (newData == undefined || newData == null) {\n newData = '';\n }\n\n newData = addText + newData + endText;\n\n repReg = new RegExp(/\\d{1,2}-\\d{1,2}-\\d{4}/g);\n mch = newData.match(repReg);\n if (mch != null) {\n dateArray = [];\n [].forEach.call(mch, (v) => {\n newText = v.split('-');\n [].forEach.call(newText, (c, indexC) => {\n c = c.replace(/\\s/g, '');\n if (c.length == 1) {\n newText[indexC] = '0' + c;\n }\n });\n newText = newText.join('.');\n dateArray.push(newText);\n });\n dataArray = newData.split(repReg);\n newString = '';\n [].forEach.call(dataArray, (e, indexE) => {\n if (dateArray[indexE] == undefined) {\n newString += e;\n } else {\n newString += e + dateArray[indexE];\n }\n });\n\n newData = newString;\n }\n break;\n case '6':\n let dateObj = new Date();\n let month = ('0' + (dateObj.getMonth() + 1)).slice(-2);\n let day = ('0' + dateObj.getDate()).slice(-2);\n let year = dateObj.getFullYear();\n newData = day + '.' + month + '.' + year;\n break;\n }\n e = e.replace('*#', '..');\n e = e.replace('#*', '..');\n e = e.replace('|*', '..');\n e = e.replace('*|', '..');\n\n e = e.replace('/', '.');\n e = e.replace('[', '.');\n e = e.replace(']', '.');\n e = e.replace(/[()]/g, '.');\n e = e.replace(/[)]/g, '.');\n e = e.replace(/[{]/g, '.');\n e = e.replace(/[}]/g, '.');\n repReg = new RegExp(e, 'g');\n\n this.demoEditorContent[deaIndex] = this.demoEditorContent[deaIndex].replace(repReg, newData);\n });\n\n this.demoEditorArray.push(this.demoEditorContent[deaIndex]);\n }\n\n templateDrawCondition(indexAttr, cond, condField, attrSaveData, attrLoadData) {\n let indexF;\n let findElse;\n let nd;\n let vl;\n let resultC;\n if (attrLoadData[indexAttr].type == 'copy') {\n let condField = { data: null };\n condField.data = '';\n [].forEach.call(attrLoadData[indexAttr].columns, (e, indexE) => {\n if (indexE > 0) {\n condField.data += '|&|';\n }\n condField.data += e.value;\n });\n\n let splitCond = cond.toString().split('xx');\n\n findElse = attrSaveData\n .filter((x) => x.requestAttributeId == parseInt(splitCond[1]))\n .map((x) => x);\n\n switch (splitCond[0]) {\n case '2':\n findElse = attrSaveData\n .filter((x) => x.requestAttributeId == parseInt(splitCond[1]))\n .map((x) => x);\n if (splitCond[1] == '0') {\n nd = parseInt(splitCond[3]);\n } else {\n nd = parseInt(findElse[0].data);\n }\n if (splitCond[2] == '0' || splitCond[2] == '2') {\n if (nd < parseInt(condField.data.split('|&|').length)) {\n resultC = true;\n } else {\n resultC = false;\n }\n } else if (splitCond[2] == '1') {\n nd += parseInt(splitCond[3]);\n if (nd <= parseInt(condField.data.split('|&|').length)) {\n resultC = true;\n } else {\n resultC = false;\n }\n }\n break;\n case '3':\n findElse = attrSaveData\n .filter((x) => x.requestAttributeId == parseInt(splitCond[1]))\n .map((x) => x);\n if (splitCond[1] == '0') {\n nd = parseInt(splitCond[3]);\n } else {\n nd = parseInt(findElse[0].data);\n }\n if (splitCond[2] == '0' || splitCond[2] == '2') {\n if (nd > parseInt(condField.data.split('|&|').length)) {\n resultC = true;\n } else {\n resultC = false;\n }\n } else if (splitCond[2] == '1') {\n nd -= parseInt(splitCond[3]);\n if (nd >= parseInt(condField.data.split('|&|').length)) {\n resultC = true;\n } else {\n resultC = false;\n }\n }\n break;\n case '4':\n findElse = attrSaveData\n .filter((x) => x.requestAttributeId == parseInt(splitCond[1]))\n .map((x) => x);\n if (splitCond[1] == '0') {\n nd = parseInt(splitCond[3]);\n } else {\n nd = parseInt(findElse[0].data);\n }\n if (nd == parseInt(condField.data.split('|&|').length)) {\n resultC = true;\n } else {\n resultC = false;\n }\n break;\n case '5':\n findElse = attrSaveData\n .filter((x) => x.requestAttributeId == parseInt(splitCond[1]))\n .map((x) => x);\n if (splitCond[1] == '0') {\n nd = parseInt(splitCond[3]);\n } else {\n nd = parseInt(findElse[0].data);\n }\n if (nd != parseInt(condField.data.split('|&|').length)) {\n resultC = true;\n } else {\n resultC = false;\n }\n break;\n }\n } else if (attrLoadData[indexAttr].type == 'input') {\n cond = cond.toString();\n let splitCond = cond.split('xx');\n switch (splitCond[0]) {\n case '0':\n if (condField.data != '') {\n resultC = true;\n }\n break;\n case '1':\n if (condField.data == '') {\n resultC = true;\n }\n break;\n case '2':\n findElse = attrSaveData\n .filter((x) => x.requestAttributeId == parseInt(splitCond[1]))\n .map((x) => x);\n if (splitCond[1] == '0') {\n nd = parseInt(splitCond[3]);\n } else {\n nd = parseInt(findElse[0].data);\n }\n if (splitCond[2] == '0' || splitCond[2] == '2') {\n if (nd < parseInt(condField.data)) {\n resultC = true;\n } else {\n resultC = false;\n }\n } else if (splitCond[2] == '1') {\n nd += parseInt(splitCond[3]);\n if (nd <= parseInt(condField.data)) {\n resultC = true;\n } else {\n resultC = false;\n }\n }\n break;\n case '3':\n findElse = attrSaveData\n .filter((x) => x.requestAttributeId == parseInt(splitCond[1]))\n .map((x) => x);\n if (splitCond[1] == '0') {\n nd = parseInt(splitCond[3]);\n } else {\n nd = parseInt(findElse[0].data);\n }\n if (splitCond[2] == '0' || splitCond[2] == '2') {\n if (nd > parseInt(condField.data)) {\n resultC = true;\n } else {\n resultC = false;\n }\n } else if (splitCond[2] == '1') {\n nd -= parseInt(splitCond[3]);\n if (nd >= parseInt(condField.data)) {\n resultC = true;\n } else {\n resultC = false;\n }\n }\n break;\n case '4':\n findElse = attrSaveData\n .filter((x) => x.requestAttributeId == parseInt(splitCond[1]))\n .map((x) => x);\n if (splitCond[1] == '0') {\n nd = parseInt(splitCond[3]);\n } else {\n nd = parseInt(findElse[0].data);\n }\n if (nd == parseInt(condField.data)) {\n resultC = true;\n } else {\n resultC = false;\n }\n break;\n case '5':\n findElse = attrSaveData\n .filter((x) => x.requestAttributeId == parseInt(splitCond[1]))\n .map((x) => x);\n if (splitCond[1] == '0') {\n nd = parseInt(splitCond[3]);\n } else {\n nd = parseInt(findElse[0].data);\n }\n if (nd != parseInt(condField.data)) {\n resultC = true;\n } else {\n resultC = false;\n }\n break;\n }\n } else if (attrLoadData[indexAttr].type == 'date') {\n let splitCond = cond.toString().split('xx');\n switch (splitCond[0]) {\n case '0':\n if (condField.data != '') {\n resultC = true;\n }\n break;\n case '1':\n if (condField.data == '') {\n resultC = true;\n }\n break;\n case '2':\n findElse = attrSaveData\n .filter((x) => x.requestAttributeId == parseInt(splitCond[1]))\n .map((x) => x);\n if (findElse.length > 0) {\n vl = JSON.parse(JSON.stringify(findElse[0].data));\n }\n if (splitCond[1] == '0') {\n nd = new Date();\n nd = new Date(nd.toDateString());\n } else if (splitCond[1] == '1') {\n nd = new Date(parseInt(splitCond[4]));\n } else {\n vl = this.dateCorector(vl);\n nd = new Date(vl);\n }\n vl = JSON.parse(JSON.stringify(condField.data));\n vl = this.dateCorector(vl);\n if (splitCond[2] == '0') {\n let dvl = new Date(vl);\n nd.setHours(0);\n nd.setMinutes(0);\n dvl.setHours(0);\n dvl.setMinutes(0);\n if (nd.getTime() < dvl.getTime()) {\n resultC = true;\n } else {\n resultC = false;\n }\n } else if (splitCond[2] == '1') {\n let dvl = new Date(vl);\n nd.setHours(0);\n nd.setMinutes(0);\n dvl.setHours(0);\n dvl.setMinutes(0);\n nd.setDate(nd.getDate() + parseInt(splitCond[3]));\n if (nd.getTime() <= dvl.getTime()) {\n resultC = true;\n } else {\n resultC = false;\n }\n } else if (splitCond[2] == '2') {\n let dvl = new Date(vl);\n nd.setHours(0);\n nd.setMinutes(0);\n dvl.setHours(0);\n dvl.setMinutes(0);\n nd.setMonth(nd.getMonth() + parseInt(splitCond[3]));\n if (nd.getTime() <= dvl.getTime()) {\n resultC = true;\n } else {\n resultC = false;\n }\n } else if (splitCond[2] == '3') {\n let dvl = new Date(vl);\n nd.setHours(0);\n nd.setMinutes(0);\n dvl.setHours(0);\n dvl.setMinutes(0);\n nd.setFullYear(nd.getFullYear() + parseInt(splitCond[3]));\n if (nd.getTime() <= dvl.getTime()) {\n resultC = true;\n } else {\n resultC = false;\n }\n } else if (splitCond[2] == '4') {\n nd.setHours(nd.getHours() + parseInt(splitCond[3]));\n if (nd.getTime() <= new Date(vl).getTime()) {\n resultC = true;\n } else {\n resultC = false;\n }\n }\n break;\n case '3':\n findElse = attrSaveData\n .filter((x) => x.requestAttributeId == parseInt(splitCond[1]))\n .map((x) => x);\n if (findElse.length > 0) {\n vl = JSON.parse(JSON.stringify(findElse[0].data));\n }\n if (splitCond[1] == '0') {\n nd = new Date();\n nd = new Date(nd.toDateString());\n } else if (splitCond[1] == '1') {\n nd = new Date(parseInt(splitCond[4]));\n } else {\n vl = this.dateCorector(vl);\n nd = new Date(vl);\n }\n vl = JSON.parse(JSON.stringify(condField.data));\n vl = this.dateCorector(vl);\n if (splitCond[2] == '0') {\n let dvl = new Date(vl);\n nd.setHours(0);\n nd.setMinutes(0);\n dvl.setHours(0);\n dvl.setMinutes(0);\n if (nd.getTime() > dvl.getTime()) {\n resultC = true;\n } else {\n resultC = false;\n }\n } else if (splitCond[2] == '1') {\n let dvl = new Date(vl);\n nd.setHours(0);\n nd.setMinutes(0);\n dvl.setHours(0);\n dvl.setMinutes(0);\n nd.setDate(nd.getDate() - parseInt(splitCond[3]));\n if (nd.getTime() >= dvl.getTime()) {\n resultC = true;\n } else {\n resultC = false;\n }\n } else if (splitCond[2] == '2') {\n let dvl = new Date(vl);\n nd.setHours(0);\n nd.setMinutes(0);\n dvl.setHours(0);\n dvl.setMinutes(0);\n nd.setMonth(nd.getMonth() - parseInt(splitCond[3]));\n if (nd.getTime() >= dvl.getTime()) {\n resultC = true;\n } else {\n resultC = false;\n }\n } else if (splitCond[2] == '3') {\n let dvl = new Date(vl);\n nd.setHours(0);\n nd.setMinutes(0);\n dvl.setHours(0);\n dvl.setMinutes(0);\n nd.setFullYear(nd.getFullYear() - parseInt(splitCond[3]));\n if (nd.getTime() >= dvl.getTime()) {\n resultC = true;\n } else {\n resultC = false;\n }\n } else if (splitCond[2] == '4') {\n nd.setHours(nd.getHours() - parseInt(splitCond[3]));\n if (nd.getTime() >= new Date(vl).getTime()) {\n resultC = true;\n } else {\n resultC = false;\n }\n }\n break;\n case '4':\n findElse = attrSaveData\n .filter((x) => x.requestAttributeId == parseInt(splitCond[1]))\n .map((x) => x);\n if (findElse.length > 0) {\n vl = JSON.parse(JSON.stringify(findElse[0].data));\n }\n if (splitCond[1] == '0') {\n nd = new Date();\n nd = new Date(nd.toDateString());\n } else if (splitCond[1] == '1') {\n nd = new Date(parseInt(splitCond[4]));\n } else {\n vl = this.dateCorector(vl);\n nd = new Date(vl);\n }\n vl = JSON.parse(JSON.stringify(condField.data));\n vl = this.dateCorector(vl);\n if (nd.getTime() == new Date(vl).getTime()) {\n resultC = true;\n } else {\n resultC = false;\n }\n break;\n case '5':\n findElse = attrSaveData\n .filter((x) => x.requestAttributeId == parseInt(splitCond[1]))\n .map((x) => x);\n if (findElse.length > 0) {\n vl = JSON.parse(JSON.stringify(findElse[0].data));\n }\n if (splitCond[1] == '0') {\n nd = new Date();\n nd = new Date(nd.toDateString());\n } else if (splitCond[1] == '1') {\n nd = new Date(parseInt(splitCond[4]));\n } else {\n vl = this.dateCorector(vl);\n nd = new Date(vl);\n }\n vl = JSON.parse(JSON.stringify(condField.data));\n vl = this.dateCorector(vl);\n if (nd.getTime() != new Date(vl).getTime()) {\n resultC = true;\n } else {\n resultC = false;\n }\n break;\n }\n }\n return resultC;\n }\n\n dbRequest() {\n this.isDBLoad = false;\n this.http.get(this.indexPage.getUrl() + 'UserRequest').subscribe((data) => {\n this.userRequest = [];\n [].forEach.call(data, (e) => {\n if (e.requestTypeId == this.requestType.Link) {\n if (e.userDatas.length > 0) {\n if (e.userDatas[0].userRequestId == parseInt(this.data.saveForm)) {\n this.userRequest = e.userDatas;\n }\n }\n }\n });\n this.isDBLoad = true;\n });\n }\n\n selectCompareCheck(select: any, item: any): boolean {\n return select.name == item.selectors.list[0].value;\n }\n}\n","
\n
\n formCounter, 'none': formDisplay[i] == false, 'fontZoom18': getFontScale()}\"\n (click)=\"scrollToForm(i);\"\n >\n formCurrent && i <= formCounter\">check_circle\n build_circle\n {{ form.Title }}\n
\n
\n\n\n
\n
\n
\n
{{ description.Title }}
\n
\n
\n
\n
\n\n
?\n
\n\n
{{ 'Common.saveForm' | translate }}
\n
{{ 'Common.skipFormCancel' | translate }}
\n\n\n\n\n
\n
\n
\n formCounter, 'none': formDisplay[i] == false}\"\n (click)=\"scrollToForm(i);\"\n >\n formCurrent && i <= formCounter\">check_circle\n build_circle\n {{ form.Title }}\n
\n
\n
\n
\n
{{ description.Title }}
\n
\n
\n
\n
\n\n
\n
\n

{{ getListText(\"Type\").Title }}

\n
{{ getListText(\"Type\").Text }}
\n
\n formCounter || formDisplay[im] == false, 'rq-full-width': nestableArray.length -1 == formCounter && nestableArray.length -1 == im}\"\n *ngFor=\"let nesList of nestableArray; let im = index\"\n [id]=\"'form' + im\"\n >\n
\n
\n
\n
{{ description.Title }}
\n
\n
\n
\n
\n \n
\n \n
\n
\n info\n
\n
\n
\n * {{ item.label }}\n
\n \n \n \n
\n \n {{ 'Common.email' | translate }}\n \n \n \n \n \n \n \n \n \n \n
\n {{ 'Common.dubError' | translate }}\n
\n
\n \n
\n
\n info\n
\n
\n * \n {{ item.label }}\n
\n
\n
\n
\n
\n info\n
\n
\n
\n {{ item.label }} *\n
\n \n {{ option.value }}\n \n \n
\n
\n
\n
\n info\n
\n
\n
\n * {{ item.label }}\n
\n \n {{ option.value }}\n \n \n
\n
\n \n {{ option.value }}\n \n \n
\n
\n
\n
\n
\n
info
\n
\n
\n * {{item.label}}\n
\n
\n \n
\n \n attachment\n {{ 'Common.selectFile' | translate }} \n \n \n \n highlight_off\n
\n
\n {{ 'Common.dubError' | translate }} \n
\n
\n
\n
\n info\n
\n
\n
\n * {{ item.label }}\n
\n\n \n \n \n {{ 'Common.dubError' | translate }}\n
\n
\n
\n * {{ item.label }}\n
\n
\n
\n info\n
\n
\n
\n = 0 ? item.dublicate : 0\"\n (dateChange)=\"onChange($event, item, false)\"\n [value]=\"item.value\"\n [max]=\"item.columns\"\n >\n\n \n
\n {{ 'Common.dubError' | translate }}\n
\n
\n
\n
\n info\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n
\n {{ item.label }}\n
\n
\n
\n
\n
\n\n ci && item.mask == 'slide', 'arrow-hide-r': item.description < ci && item.mask == 'slide', 'col-double': item.mask == 'slide'}\"\n >\n \n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n info\n
\n
\n
\n * {{ item.label }}\n
\n \n {{ region.title }}\n \n 0\"\n [disabled]=\"item.disabled\"\n [required]=\"item.required\"\n [value]=\"item.value[1]\"\n (selectionChange)=\"onChange($event, item, false); changeCourt('city', $event.value, item)\"\n (click)=\"courtClick(1)\"\n >\n {{ city.title }}\n \n 0\"\n [disabled]=\"item.disabled\"\n [required]=\"item.required\"\n [value]=\"item.value[2]\"\n (selectionChange)=\"onChange($event, item, false); changeCourt('court', $event.value, item)\"\n (click)=\"courtClick(2)\"\n >\n {{ court.title }}\n \n
\n\n
\n
\n
{{ 'Common.formSenderBlock' | translate }}
\n
{{ getPageText(\"skipI\") }}
\n
\n\n
0}\">{{ 'Common.formComplete' | translate }}\n
\n
0}\">{{ getPageText(\"requestInfo\") }}
\n
0}\">\n
{{ 'Common.openForm' | translate }}
\n
{{ 'Common.saveForm' | translate }}
\n
\n
\n \n \n
\n \n
\n
\n
{{ getPageText(\"skipB\") }}
\n
\n
\n info\n
\n
\n
\n
\n {{ 'Common.next' | translate }}\n
\n \n \n\n\n
\n\n
\n
\n \n

\n {{ 'Common.wait' | translate }}\n
\n {{ 'Common.isLoad' | translate }}\n

\n
\n
\n\n
\n
\n \n

\n {{ 'Common.wait' | translate }}\n
\n {{ 'Common.isSave' | translate }}\n

\n
\n
\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class IndexedDBService {\n\n private dbName: string = 'USAID';\n private dbVersion: number = 1;\n private storeName: string = \"DIIA\";\n constructor() { }\n\n openDatabase(): Promise {\n return new Promise((resolve, reject) => {\n const request = indexedDB.open(this.dbName, this.dbVersion);\n\n request.onerror = () => {\n reject(request.error);\n };\n\n request.onsuccess = () => {\n resolve(request.result);\n };\n\n request.onupgradeneeded = (event: any) => {\n const db: IDBDatabase = event.target.result;\n if (!db.objectStoreNames.contains(this.storeName)) {\n db.createObjectStore(this.storeName, { keyPath: 'id', autoIncrement: true });\n }\n };\n });\n }\n\n async saveData(data: T): Promise {\n return new Promise(async (resolve, reject) => {\n try {\n const db = await this.openDatabase();\n const transaction = db.transaction([this.storeName], 'readwrite');\n const objectStore = transaction.objectStore(this.storeName);\n\n const clearRequest = objectStore.clear();\n\n clearRequest.onsuccess = () => {\n const addRequest = objectStore.add(data);\n\n addRequest.onsuccess = () => {\n resolve();\n };\n\n addRequest.onerror = () => {\n reject(addRequest.error);\n };\n };\n\n clearRequest.onerror = () => {\n reject(clearRequest.error);\n };\n } catch (error) {\n reject(error);\n }\n });\n }\n\n\n fetchData(): Promise {\n return new Promise(async (resolve, reject) => {\n try {\n const db = await this.openDatabase();\n const transaction = db.transaction([this.storeName], 'readonly');\n const objectStore = transaction.objectStore(this.storeName);\n const request = objectStore.getAll();\n\n request.onsuccess = () => {\n resolve(request.result);\n };\n\n request.onerror = () => {\n reject(request.error);\n };\n } catch (error) {\n reject(error);\n }\n });\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport * as JSZip from 'jszip';\nimport { saveAs } from 'file-saver';\nimport * as pdfMake from 'pdfmake/build/pdfmake';\nimport { MatDialog } from '@angular/material/dialog';\nimport { HttpClient } from '@angular/common/http';\nimport { ThemePalette } from '@angular/material/core';\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner';\n\nimport {\n DiiaSignedNavigationTransferData,\n DiiaSignFiles,\n EmailAttachment,\n EmailRequestBody,\n FilesData,\n} from '../interfaces/diia-interfaces';\nimport { DocumentSave } from '../document-save';\nimport { RequestPoll } from '../request-poll';\nimport { InfoMenu } from '../info-menu';\nimport { IndexPage } from '../index';\nimport * as pdfFonts from 'pdfmake/build/vfs_fonts';\nimport * as htmlToPdfmake from 'html-to-pdfmake';\n\n@Component({\n selector: 'app-signed-document-page',\n templateUrl: './signed-document-page.component.html',\n styleUrls: ['./signed-document-page.component.css'],\n})\nexport class SignedDocumentPageComponent implements OnInit {\n transferData: DiiaSignedNavigationTransferData;\n signed: EmailAttachment[] = [];\n homeLink = location.href.includes('wai') ? '/wai' : '/';\n isSending: boolean = false;\n barColor: ThemePalette = 'primary';\n barMode: ProgressSpinnerMode = 'indeterminate';\n barValue: number = 50;\n\n constructor(\n private router: Router,\n public dialog: MatDialog,\n private indexPage: IndexPage,\n private http: HttpClient\n ) {\n const navigation = this.router.getCurrentNavigation();\n if (navigation && navigation.extras?.state?.singnedFiles) {\n this.transferData = navigation.extras.state as DiiaSignedNavigationTransferData;\n // console.log(this.transferData);\n this.generateSigned();\n } else {\n this.router.navigate(['/']).catch(console.error);\n }\n }\n\n ngOnInit(): void {}\n\n private dataURItoBlob(base64: string, type: string) {\n const byteString = window.atob(base64);\n const arrayBuffer = new ArrayBuffer(byteString.length);\n const int8Array = new Uint8Array(arrayBuffer);\n for (let i = 0; i < byteString.length; i++) {\n int8Array[i] = byteString.charCodeAt(i);\n }\n return new Blob([int8Array], { type: type });\n }\n\n private generateSigned() {\n try {\n const jsonString: string = window.atob(this.transferData.singnedFiles);\n\n let filesSignJson: DiiaSignFiles = {} as DiiaSignFiles;\n try {\n filesSignJson = JSON.parse(jsonString);\n } catch {\n filesSignJson = jsonString as any;\n }\n\n const zip = new JSZip();\n const encMime: string = 'application/x-pkcs7-signature';\n\n this.transferData.files.map((file: FilesData, index: number) => {\n const xml: string = `${\n file.hash\n }=`;\n\n zip.file('mimetype', 'application/vnd.etsi.asic-e+zip');\n zip.file(file.name, file.data, { base64: true });\n const folder = zip.folder('META-INF');\n folder?.file('ASiCManifest001.xml', xml);\n folder?.file(\n 'signature001.p7s',\n this.dataURItoBlob(filesSignJson.signedItems[index].signature, encMime)\n );\n\n const attachmentsFolder = zip.folder('attachments');\n this.transferData.attachments.forEach(\n (attachment: { FileName: string; Content: string }) => {\n attachmentsFolder?.file(attachment.FileName, attachment.Content, { base64: true });\n }\n );\n\n zip.generateAsync({ type: 'blob' }).then((Content) => {\n this.signed.push({\n Content,\n FileName: `${file.name.split('.')[0]}.asice`,\n KeyData: '',\n Password: '',\n });\n });\n });\n } catch (error) {\n console.error(error);\n }\n }\n\n public downloadSigned() {\n this.signed.forEach(({ FileName, Content }) => {\n let blob: Blob = new Blob([Content], { type: 'application/vnd.etsi.asic-e+zip' });\n\n saveAs(blob, FileName);\n });\n }\n\n sendUnsigned() {\n this.transferData.base64Array.forEach((doc: any, index: number) => {\n const { courtId, EmailAdresses } = this.getCourtIdAndEmailAddress(index);\n const split = doc.split(',');\n const document = split.length === 1 ? split[0] : split[1];\n\n const Attachments = JSON.parse(JSON.stringify(this.transferData.attachments));\n Attachments.push({\n FileName: this.transferData.fileEx[index],\n Content: document,\n KeyData: '',\n Password: '',\n });\n\n const body: EmailRequestBody = this.generateEmailBody(\n Attachments,\n EmailAdresses,\n this.transferData.fileEx[index],\n courtId\n );\n\n this.sendToMail(body, index);\n });\n }\n\n getCourtIdAndEmailAddress(index: number) {\n const courtId = this.transferData.mailingData.newEmailList[index]?.court || 0;\n const EmailAdresses: string[] = this.transferData.mailingData.newEmailList[index]?.email\n ? [this.transferData.mailingData.newEmailList[index]?.email]\n : [];\n\n return {\n courtId,\n EmailAdresses,\n };\n }\n\n generateAttachedDocuments() {\n const attachmentNames = this.transferData.attachments.map((e) => e.FileName);\n let addDoc = attachmentNames.join(', ');\n if (addDoc != '') {\n addDoc = '\\nДодаткові документи: ' + addDoc;\n }\n // console.log(addDoc);\n return addDoc;\n }\n\n generateEmailBody(\n Attachments: EmailAttachment[],\n EmailAdresses: string[],\n FileName: string,\n courtId?: number\n ): EmailRequestBody {\n return {\n courtId,\n EmailAdresses,\n Attachments,\n Subject: 'Створена нова заява в категорії: \"' + this.transferData.mailingData.title + '\"',\n TextBody:\n 'Заява: ' +\n FileName +\n this.generateAttachedDocuments() +\n '\\nEmail користувача: ' +\n this.transferData.mailingData.userEmail,\n };\n }\n\n downloadUnsigned() {\n this.dialog\n .open(DocumentSave, {\n width: '600px',\n maxWidth: '90vw',\n disableClose: true,\n data: {},\n })\n .afterClosed()\n .subscribe(async (result) => {\n switch (result) {\n case 'docx':\n this.transferData.blob.forEach((element: Blob, index: number) => {\n saveAs(element, this.transferData.fileEx[index]);\n });\n break;\n case 'rtf':\n this.transferData.blob.forEach((element: Blob, index: number) => {\n const extension = this.transferData.fileEx[index].replace('docx', 'rtf');\n const blobRtf = new Blob([element], { type: 'text/rtf;charset=utf-8' });\n\n saveAs(blobRtf, extension);\n });\n break;\n case 'pdf':\n const blobPdf = await new Promise((resolve, reject) => {\n pdfMake.createPdf(this.generatePdf()).getDataUrl((dataUrl: string) => {\n fetch(dataUrl)\n .then((res) => res.blob())\n .then(resolve)\n .catch(reject);\n });\n });\n const extension = this.transferData.fileEx[0].replace('docx', 'pdf');\n\n saveAs(blobPdf, extension);\n break;\n }\n this.pollDialog();\n });\n }\n\n pollDialog() {\n let counter = 10;\n let interval = setInterval(() => {\n let pollTitle = this.indexPage\n .getList('Poll')\n .filter((x: any) => x.Type == '0')\n .map((x: any) => x.Title)[0];\n if (pollTitle != undefined && pollTitle !== '') {\n clearInterval(interval);\n counter = 10;\n\n // console.log('poll call');\n const pollconfirm = this.dialog.open(RequestPoll, {\n minWidth: '80%',\n maxWidth: '1000px',\n disableClose: true,\n data: { pollTitle },\n });\n pollconfirm.afterClosed().subscribe((result) => {\n // console.log('poll edit close');\n if (result) {\n const pollthanks = this.dialog.open(InfoMenu, {\n width: '80%',\n maxWidth: '600px',\n disableClose: true,\n data: { text: result },\n });\n pollthanks.afterClosed().subscribe(() => {});\n }\n });\n } else if (counter == 0) {\n clearInterval(interval);\n // console.error('Title not load');\n }\n counter--;\n }, 500);\n }\n\n sendSigned() {\n this.signed.forEach((file, index) => {\n const { courtId, EmailAdresses } = this.getCourtIdAndEmailAddress(index);\n\n const split = this.transferData.base64Array[index].split(',');\n const unsignedDocument = split.length === 1 ? split[0] : split[1];\n\n const Attachments = JSON.parse(JSON.stringify(this.transferData.attachments));\n\n this.blobToBase64(file.Content).then((Content) => {\n Attachments.push({ ...file, Content });\n Attachments.push({\n FileName: this.transferData.fileEx[index],\n Content: unsignedDocument,\n KeyData: '',\n Password: '',\n });\n\n const body: EmailRequestBody = this.generateEmailBody(\n Attachments,\n EmailAdresses,\n this.transferData.fileEx[index],\n courtId\n );\n // console.log(body);\n\n this.sendToMail(body, index);\n });\n });\n }\n\n blobToBase64(blob: Blob): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n const base64String = reader.result as string;\n resolve(base64String.split(',')[1]);\n };\n reader.onerror = reject;\n reader.readAsDataURL(blob);\n });\n }\n\n private sendToMail(body: EmailRequestBody, index: number) {\n this.isSending = true;\n this.http.post(this.indexPage.getUrl() + 'email', body).subscribe(() => {\n if (index === this.transferData.base64Array.length - 1) {\n this.isSending = false;\n\n this.pollDialog();\n }\n });\n }\n\n downloadAll() {\n this.dialog\n .open(DocumentSave, {\n width: '600px',\n maxWidth: '90vw',\n disableClose: true,\n data: {},\n })\n .afterClosed()\n .subscribe((result) => {\n this.generateAndSaveEntireFile(result).catch(console.error);\n });\n }\n\n async generateAndSaveEntireFile(type: string) {\n try {\n const zip = new JSZip();\n\n const unsignedFolder = zip.folder('Не підписані');\n\n switch (type) {\n case 'docx':\n this.transferData.blob.forEach((element: Blob, index: number) => {\n unsignedFolder.file(this.transferData.fileEx[index], element);\n });\n break;\n case 'rtf':\n this.transferData.blob.forEach((element: Blob, index: number) => {\n const extension = this.transferData.fileEx[index].replace('docx', 'rtf');\n var blobRtf = new Blob([element], { type: 'text/rtf;charset=utf-8' });\n unsignedFolder.file(extension, blobRtf);\n });\n break;\n case 'pdf':\n // console.log(this.transferData);\n\n const blobPdf = await new Promise((resolve, reject) => {\n pdfMake.createPdf(this.generatePdf()).getDataUrl((dataUrl: string) => {\n fetch(dataUrl)\n .then((res) => res.blob())\n .then(resolve)\n .catch(reject);\n });\n });\n unsignedFolder.file('files.pdf', blobPdf);\n break;\n }\n\n const signedFolder = zip.folder('підписані');\n this.signed.forEach(({ Content, FileName }) => {\n signedFolder?.file(FileName, Content);\n });\n\n const content = await zip.generateAsync({ type: 'blob' });\n saveAs(content, 'archive.zip');\n this.pollDialog();\n } catch (error) {\n console.error(error);\n }\n }\n generatePdf() {\n pdfMake.vfs = pdfFonts.pdfMake.vfs;\n const html = htmlToPdfmake(this.transferData.pdfHtml, {\n styles: {\n 'ql-editor': { alignment: 'left', lineHeight: 1.42, margin: [0, 0, 0, 0] },\n 'ql-align-right': { alignment: 'right', margin: [0, 0, 0, 0] },\n 'ql-align-left': { alignment: 'left', margin: [0, 0, 0, 0] },\n 'ql-align-center': { alignment: 'center', margin: [0, 0, 0, 0] },\n 'html-p': { margin: [0, 0, 0, 0] },\n },\n defaultStyles: {\n p: {\n margin: [0, 0, 0, 0],\n },\n },\n });\n const doc: any = {\n content: html,\n styles: {\n 'ql-editor': { alignment: 'left', lineHeight: 1.42, margin: [0, 0, 0, 0] },\n 'ql-align-right': { alignment: 'right', margin: [0, 0, 0, 0] },\n 'ql-align-left': { alignment: 'left', margin: [0, 0, 0, 0] },\n 'ql-align-center': { alignment: 'center', margin: [0, 0, 0, 0] },\n 'html-p': { margin: [0, 0, 0, 0] },\n },\n };\n\n return doc;\n }\n}\n","
\n
\n
{{ 'Common.succesfullySigned' | translate }}
\n
\n
\n
{{ 'Common.fileWith' | translate }}
\n
\n attachment\n
{{ file.FileName }}
\n
\n
\n\n
\n \n \n
\n\n\n
\n
\n
\n
{{ 'Common.fileWithout' | translate }}
\n
\n attachment\n
{{ file }}
\n
\n
\n
\n \n \n
\n
\n
\n
\n \"archive\"\n {{ 'Common.downloadArchive' | translate }}\n
\n
\n \n
\n
\n
\n
\n \n

\n {{ 'Common.wait' | translate }}\n
\n {{ 'Common.isSend' | translate }}\n

\n
\n
\n","import {Component, Inject} from '@angular/core';\r\nimport {MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\r\n\r\nexport interface DialogData {\r\n text: string;\r\n button: string;\r\n}\r\n\r\n@Component({\r\n selector: 'tooltip-menu',\r\n templateUrl: 'tooltip-menu.html',\r\n styleUrls: ['menu.css']\r\n})\r\n\r\nexport class TooltipMenu {\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n ){\r\n if(this.data.button == undefined){\r\n this.data.button = \"\";\r\n }\r\n }\r\n\r\n close() {\r\n this.dialogRef.close(true);\r\n }\r\n \r\n}","
\r\n
\r\n
{{ data.text }}
\r\n
\r\n
\r\n \r\n
\r\n
","import './polyfills';\n\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\nimport { enableProdMode, NgModule, Pipe, PipeTransform } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MAT_DATE_LOCALE, MatNativeDateModule } from '@angular/material/core';\nimport { BrowserModule, DomSanitizer } from '@angular/platform-browser';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { DemoMaterialModule } from './app/material-module';\nimport { RouterModule, Routes } from '@angular/router';\nimport { CookieService } from 'ngx-cookie-service';\nimport { CommonModule, LocationStrategy, PathLocationStrategy } from '@angular/common';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { FormioModule } from 'angular-formio';\nimport { DndModule } from 'ngx-drag-drop';\nimport { IConfig, NgxMaskModule } from 'ngx-mask';\nimport { MaterialFileInputModule } from 'ngx-material-file-input';\nimport { EditorModule } from '@progress/kendo-angular-editor';\nimport { NgxPrintModule } from 'ngx-print';\nimport { RecaptchaFormsModule, RecaptchaModule } from 'ng-recaptcha';\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\nimport { NgxMaterialTimepickerModule } from 'ngx-material-timepicker';\n\nimport { NgxMatDatetimePickerModule, NgxMatNativeDateModule } from '@angular-material-components/datetime-picker';\nimport { AppComponent } from './app/app.component';\nimport { IndexPage } from './app';\nimport { AdminPage } from './app/admin/admin';\nimport { LoginPage } from './app/admin/login';\nimport { ConfirmMenu } from './app/confirm-menu';\nimport { InfoMenu } from './app/info-menu';\nimport { TooltipMenu } from './app/tooltip-menu';\nimport { RequestEdit } from './app/request-edit';\nimport { RequestCodeMenu } from './app/request-code-menu';\nimport { RequestTypeItem, RequestTypePage } from './app/admin/request-type';\nimport { RequestFormItem, RequestFormPage } from './app/admin/request-form';\nimport { UserControlItem, UserControlPage } from './app/admin/user-control';\nimport { ActionLogPage } from './app/admin/action-log';\nimport { TemplateItem, TemplatePage, TemplateParse } from './app/admin/template';\nimport { NewsItem, NewsPage } from './app/admin/news';\nimport { PagesItem, PagesPage } from './app/admin/pages';\nimport { LibraryItem, LibraryPage, LibraryParse } from './app/admin/library';\nimport {\n CheckboxComponent,\n ColumnComponent,\n CopyComponent,\n CourtComponent,\n DateComponent,\n EditorComponent,\n FileComponent,\n InputComponent,\n OrderComponent,\n RadioComponent,\n SelectComponent,\n} from './app/admin/component';\nimport { HomePage } from './app/home';\nimport { UserRequest } from './app/request';\nimport { RequestDialog } from './app/request-dialog';\nimport { LinksItem, LinksPage } from './app/admin/links';\nimport { SettingsItem, SettingsPage } from './app/admin/settings';\nimport { NewsUserPage } from './app/news';\nimport { ArticlePage } from './app/article';\nimport { ETSPMenu } from './app/etsp';\nimport { DocumentSave } from './app/document-save';\nimport { PollItem, PollPage } from './app/admin/poll';\nimport { RequestPoll } from './app/request-poll';\n\nimport { CodeEditorMenu } from './app/admin/code-editor';\nimport { DateTimePickerComponent } from './app/components/date-time-picker/date-time-picker.component';\nimport { DiiaQrPageComponent } from './app/diia-qr-page/diia-qr-page.component';\nimport { SignedDocumentPageComponent } from './app/signed-document-page/signed-document-page.component';\nimport { QRCodeModule } from 'angularx-qrcode';\nimport { LoadingComponent } from './app/loading/loading.component';\nimport { IndexedDBService } from './app/services/indexed-db.service';\n\nconst appRoutes: Routes = [\n { path: 'loading/:id', component: LoadingComponent },\n {\n path: '', component: IndexPage,\n children: [\n { path: '', component: HomePage },\n { path: 'request', component: UserRequest },\n { path: 'diia-qr', component: DiiaQrPageComponent },\n { path: 'signed-document', component: SignedDocumentPageComponent },\n { path: 'news/:link', component: NewsUserPage },\n { path: 'article/:link', component: ArticlePage },\n ],\n },\n {\n path: 'admin', component: AdminPage,\n children: [\n { path: 'login', component: LoginPage },\n { path: 'log', component: ActionLogPage },\n { path: 'request-type', component: RequestTypePage },\n { path: 'request-form', component: RequestFormPage },\n { path: 'request-form-item', component: RequestFormItem },\n { path: 'user', component: UserControlPage },\n { path: 'template', component: TemplatePage },\n { path: 'template-item', component: TemplateItem },\n { path: 'news', component: NewsPage },\n { path: 'pages', component: PagesPage },\n { path: 'links', component: LinksPage },\n { path: 'settings', component: SettingsPage },\n { path: 'library', component: LibraryPage },\n { path: 'library-item', component: LibraryItem },\n { path: 'poll', component: PollPage },\n ],\n },\n { path: '**', redirectTo: '' },\n];\n\nenableProdMode();\n\nexport let options: Partial | (() => Partial);\n\nexport function HttpLoaderFactory(http: HttpClient): TranslateLoader {\n return new TranslateHttpLoader(http, './assets/locale/', '.json');\n}\n\n@Pipe({ name: 'safeHtml' })\nexport class SafeHtmlPipe implements PipeTransform {\n constructor(private sanitized: DomSanitizer) {\n }\n\n transform(value) {\n return this.sanitized.bypassSecurityTrustHtml(value);\n }\n}\n\n\n@NgModule({\n imports: [\n NgxPrintModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient],\n },\n useDefaultLang: true,\n }),\n RecaptchaModule,\n RecaptchaFormsModule,\n EditorModule,\n MaterialFileInputModule,\n DndModule,\n FormioModule,\n MatDialogModule,\n BrowserModule,\n BrowserAnimationsModule,\n FormsModule,\n HttpClientModule,\n DemoMaterialModule,\n MatNativeDateModule,\n ReactiveFormsModule,\n CommonModule,\n NgxMaskModule.forRoot(options),\n RouterModule.forRoot(appRoutes, {\n onSameUrlNavigation: 'reload',\n scrollPositionRestoration: 'enabled',\n enableTracing: false,\n }),\n NgxMatDatetimePickerModule,\n NgxMatNativeDateModule,\n NgxMaterialTimepickerModule,\n QRCodeModule,\n ],\n exports: [RouterModule],\n declarations: [\n SignedDocumentPageComponent,\n DiiaQrPageComponent,\n AppComponent,\n DateTimePickerComponent,\n IndexPage,\n AdminPage,\n ConfirmMenu,\n RequestTypePage,\n RequestTypeItem,\n LoginPage,\n RequestFormPage,\n RequestFormItem,\n InputComponent,\n CheckboxComponent,\n SelectComponent,\n RadioComponent,\n FileComponent,\n EditorComponent,\n DateComponent,\n CopyComponent,\n ColumnComponent,\n UserControlPage,\n UserControlItem,\n TemplatePage,\n TemplateItem,\n NewsPage,\n NewsItem,\n PagesPage,\n PagesItem,\n LibraryPage,\n LibraryItem,\n CourtComponent,\n TemplateParse,\n SafeHtmlPipe,\n LibraryParse,\n InfoMenu,\n HomePage,\n UserRequest,\n OrderComponent,\n TooltipMenu,\n RequestEdit,\n RequestCodeMenu,\n RequestDialog,\n LinksPage,\n LinksItem,\n SettingsPage,\n SettingsItem,\n NewsUserPage,\n ArticlePage,\n ETSPMenu,\n DocumentSave,\n ActionLogPage,\n PollPage,\n PollItem,\n RequestPoll,\n CodeEditorMenu,\n LoadingComponent,\n ],\n bootstrap: [AppComponent],\n providers: [CookieService,\n IndexedDBService,\n { provide: LocationStrategy, useClass: PathLocationStrategy },\n { provide: MAT_DATE_LOCALE, useValue: 'uk-UA' },\n ],\n})\nexport class AppModule {\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule).catch(err => console.error(err));\n","/***************************************************************************************************\n * Load `$localize` onto the global scope - used if i18n tags appear in Angular templates.\n */\nimport '@angular/localize/init';\nimport 'zone.js/dist/zone';\nimport 'hammerjs';\nimport 'classlist.js';\nimport 'core-js/es/reflect';\nimport 'web-animations-js';\n","/* (ignored) */"],"sourceRoot":"webpack:///"}