diff --git a/.vscode/settings.json b/.vscode/settings.json index 6f792e7143..29622d38ae 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,6 +1,6 @@ { "diffEditor.ignoreTrimWhitespace": true, - "files.autoSave": "afterDelay", + "files.autoSave": "off", "editor.minimap.maxColumn": 170, "editor.wordWrapColumn": 170, "editor.formatOnSave": true, diff --git a/dist/OutSystemsUI.css b/dist/O11.OutSystemsUI.css similarity index 99% rename from dist/OutSystemsUI.css rename to dist/O11.OutSystemsUI.css index c349a917bc..90bb3a0dc3 100644 --- a/dist/OutSystemsUI.css +++ b/dist/O11.OutSystemsUI.css @@ -1,6 +1,6 @@ @charset "UTF-8"; /*! -OutSystems UI 2.18.2 +OutSystems UI 2.18.2 • O11 Platform Website: • https://www.outsystems.com/outsystems-ui GitHub: @@ -507,7 +507,6 @@ a{ a, a:visited{ color:var(--color-primary); -webkit-transition:all 180ms linear; - -o-transition:all 180ms linear; transition:all 180ms linear; } a:hover, a:focus{ @@ -1106,7 +1105,6 @@ body, position:fixed; top:0; -webkit-transition:opacity 130ms ease-in; - -o-transition:opacity 130ms ease-in; transition:opacity 130ms ease-in; width:100vw; will-change:opacity; @@ -1119,7 +1117,6 @@ body, opacity:1; pointer-events:auto; -webkit-transition:opacity 330ms ease-out; - -o-transition:opacity 330ms ease-out; transition:opacity 330ms ease-out; } .layout .app-menu-content{ @@ -1181,7 +1178,6 @@ body, transform:translateX(0) translateZ(0); -webkit-transition:-webkit-transform 130ms ease-in; transition:-webkit-transform 130ms ease-in; - -o-transition:transform 130ms ease-in; transition:transform 130ms ease-in; transition:transform 130ms ease-in, -webkit-transform 130ms ease-in; width:var(--side-menu-size); @@ -1194,7 +1190,6 @@ body, transform:translateX(var(--side-menu-size)) translateZ(0); -webkit-transition:-webkit-transform 330ms ease-out; transition:-webkit-transform 330ms ease-out; - -o-transition:transform 330ms ease-out; transition:transform 330ms ease-out; transition:transform 330ms ease-out, -webkit-transform 330ms ease-out; } @@ -1235,7 +1230,6 @@ body, -webkit-transform:translateX(0) translateZ(0); transform:translateX(0) translateZ(0); -webkit-transition:all 330ms ease-out; - -o-transition:all 330ms ease-out; transition:all 330ms ease-out; } /*! 3.6. Layout Native - Menu */ @@ -1318,7 +1312,6 @@ body, transform:translateX(0) translateZ(0); -webkit-transition:-webkit-transform 130ms ease-in; transition:-webkit-transform 130ms ease-in; - -o-transition:transform 130ms ease-in; transition:transform 130ms ease-in; transition:transform 130ms ease-in, -webkit-transform 130ms ease-in; width:var(--side-menu-size); @@ -1330,7 +1323,6 @@ body, transform:translateX(var(--side-menu-size)) translateZ(0); -webkit-transition:-webkit-transform 330ms ease-out; transition:-webkit-transform 330ms ease-out; - -o-transition:transform 330ms ease-out; transition:transform 330ms ease-out; transition:transform 330ms ease-out, -webkit-transform 330ms ease-out; } @@ -1361,7 +1353,6 @@ body, -ms-transform:none; transform:none; -webkit-transition:none; - -o-transition:none; transition:none; } .is-rtl.desktop .aside-expandable.menu-visible .main{ @@ -1371,7 +1362,6 @@ body, .is-rtl.tablet .app-menu-content, .is-rtl.phone .app-menu-content{ right:calc(-1 * var(--side-menu-size)); -webkit-transition:all 330ms ease-out; - -o-transition:all 330ms ease-out; transition:all 330ms ease-out; } .is-rtl:not(.portrait) .layout-side.layout-native.aside-visible .app-menu-content{ @@ -1385,7 +1375,6 @@ body, -webkit-transform:translateX(0) translateZ(0); transform:translateX(0) translateZ(0); -webkit-transition:all 330ms ease-out; - -o-transition:all 330ms ease-out; transition:all 330ms ease-out; } /*! 3.8. Menu - Header Logo */ @@ -1808,7 +1797,6 @@ body .app-menu-content .app-menu-links{ color:var(--color-neutral-9); font-size:var(--font-size-s); -webkit-transition:all 180ms linear; - -o-transition:all 180ms linear; transition:all 180ms linear; } .form-control[data-input]:hover, .form-control[data-textarea]:hover{ @@ -1908,7 +1896,6 @@ body .app-menu-content .app-menu-links{ height:30px; opacity:1; -webkit-transition:all 180ms linear; - -o-transition:all 180ms linear; transition:all 180ms linear; width:48px; } @@ -1924,7 +1911,6 @@ body .app-menu-content .app-menu-links{ -webkit-transform:translateX(4px) translateZ(0); transform:translateX(4px) translateZ(0); -webkit-transition:all 180ms linear; - -o-transition:all 180ms linear; transition:all 180ms linear; width:24px; } @@ -1982,7 +1968,6 @@ body .app-menu-content .app-menu-links{ height:22px; opacity:1; -webkit-transition:all 180ms linear; - -o-transition:all 180ms linear; transition:all 180ms linear; width:22px; } @@ -2066,7 +2051,6 @@ body .app-menu-content .app-menu-links{ -ms-transform:rotate(-45deg) translateY(0) translateX(0); transform:rotate(-45deg) translateY(0) translateX(0); -webkit-transition:all 300ms ease-in-out; - -o-transition:all 300ms ease-in-out; transition:all 300ms ease-in-out; width:8px; } @@ -2133,8 +2117,7 @@ body .app-menu-content .app-menu-links{ } .dropdown-container .dropdown-popup-row span{ overflow:hidden; - -o-text-overflow:ellipsis; - text-overflow:ellipsis; + text-overflow:ellipsis; white-space:nowrap; } .dropdown-container .scrollable-list-with-scroll{ @@ -2248,7 +2231,6 @@ select.dropdown-display[disabled]{ margin:0; padding:var(--space-none) var(--space-base); -webkit-transition:all 100ms linear; - -o-transition:all 100ms linear; transition:all 100ms linear; } .btn:hover:active{ @@ -3042,7 +3024,6 @@ div.feedback-message-warning{ height:24px; position:relative; -webkit-transition:all 180ms linear; - -o-transition:all 180ms linear; transition:all 180ms linear; width:24px; } @@ -3060,7 +3041,6 @@ div.feedback-message-warning{ display:flex; height:100%; -webkit-transition:all 180ms linear; - -o-transition:all 180ms linear; transition:all 180ms linear; width:100%; } @@ -3388,7 +3368,6 @@ div.feedback-message-warning{ .flatpickr-months .flatpickr-prev-month svg path, .flatpickr-months .flatpickr-next-month svg path{ -webkit-transition:fill 0.1s; - -o-transition:fill 0.1s; transition:fill 0.1s; fill:inherit; } @@ -4111,7 +4090,6 @@ span.flatpickr-weekday{ -webkit-transition:transform 0.3s; -webkit-transition:-webkit-transform 0.3s; transition:-webkit-transform 0.3s; - -o-transition:transform 0.3s; transition:transform 0.3s; transition:transform 0.3s, -webkit-transform 0.3s; } @@ -4551,7 +4529,6 @@ span.flatpickr-weekday{ position:relative; -webkit-transition:-webkit-transform 0.2s linear; transition:-webkit-transform 0.2s linear; - -o-transition:transform 0.2s linear; transition:transform 0.2s linear; transition:transform 0.2s linear, -webkit-transform 0.2s linear; width:8px; @@ -4752,8 +4729,7 @@ span.flatpickr-weekday{ line-height:20px; max-width:100%; overflow:hidden; - -o-text-overflow:ellipsis; - text-overflow:ellipsis; + text-overflow:ellipsis; white-space:nowrap; } .vscomp-arrow{ @@ -4948,8 +4924,7 @@ span.flatpickr-weekday{ } .vscomp-option-text{ overflow:hidden; - -o-text-overflow:ellipsis; - text-overflow:ellipsis; + text-overflow:ellipsis; white-space:nowrap; -webkit-user-select:none; -moz-user-select:none; @@ -4959,8 +4934,7 @@ span.flatpickr-weekday{ } .vscomp-option-description{ overflow:hidden; - -o-text-overflow:ellipsis; - text-overflow:ellipsis; + text-overflow:ellipsis; white-space:nowrap; color:#666; font-size:13px; @@ -5079,7 +5053,6 @@ span.flatpickr-weekday{ } .vscomp-wrapper .checkbox-icon::after{ -webkit-transition-duration:0.2s; - -o-transition-duration:0.2s; transition-duration:0.2s; border:2px solid #888; content:""; @@ -5231,7 +5204,6 @@ span.flatpickr-weekday{ } .vscomp-wrapper.keep-always-open .vscomp-dropbox{ -webkit-transition-duration:0s; - -o-transition-duration:0s; transition-duration:0s; border:1px solid #ddd; -webkit-box-shadow:none; @@ -5264,14 +5236,12 @@ span.flatpickr-weekday{ height:auto; min-height:28px; overflow:auto; - -o-text-overflow:unset; - text-overflow:unset; + text-overflow:unset; white-space:normal; } .vscomp-wrapper.show-value-as-tags .vscomp-value-tag{ overflow:hidden; - -o-text-overflow:ellipsis; - text-overflow:ellipsis; + text-overflow:ellipsis; white-space:nowrap; -webkit-box-align:center; -ms-flex-align:center; @@ -5292,8 +5262,7 @@ span.flatpickr-weekday{ } .vscomp-wrapper.show-value-as-tags .vscomp-value-tag-content{ overflow:hidden; - -o-text-overflow:ellipsis; - text-overflow:ellipsis; + text-overflow:ellipsis; white-space:nowrap; width:calc(100% - 20px); } @@ -5800,7 +5769,6 @@ span.flatpickr-weekday{ -webkit-transform:translateX(100%) translateZ(0); transform:translateX(100%) translateZ(0); -webkit-transition:all 190ms ease-in; - -o-transition:all 190ms ease-in; transition:all 190ms ease-in; width:100%; will-change:transform; @@ -5810,7 +5778,6 @@ span.flatpickr-weekday{ -webkit-transform:translateX(0) translateZ(0); transform:translateX(0) translateZ(0); -webkit-transition:all 330ms ease-out; - -o-transition:all 330ms ease-out; transition:all 330ms ease-out; } .phone .split-screen-wrapper .split-right{ @@ -5936,7 +5903,6 @@ span.flatpickr-weekday{ border-color:var(--color-primary); opacity:1; -webkit-transition:opacity 300ms ease-in; - -o-transition:opacity 300ms ease-in; transition:opacity 300ms ease-in; } .osui-accordion-item--is-disabled{ @@ -5964,8 +5930,7 @@ span.flatpickr-weekday{ width:100%; } .osui-accordion-item__title__placeholder{ - -o-text-overflow:ellipsis; - text-overflow:ellipsis; + text-overflow:ellipsis; width:100%; } .osui-accordion-item__title--is-left{ @@ -5993,7 +5958,6 @@ span.flatpickr-weekday{ -ms-flex-pack:center; justify-content:center; -webkit-transition:all 300ms ease-in-out; - -o-transition:all 300ms ease-in-out; transition:all 300ms ease-in-out; width:16px; } @@ -6006,7 +5970,6 @@ span.flatpickr-weekday{ height:100%; -webkit-transition:-webkit-transform 300ms ease-in-out; transition:-webkit-transform 300ms ease-in-out; - -o-transition:transform 300ms ease-in-out; transition:transform 300ms ease-in-out; transition:transform 300ms ease-in-out, -webkit-transform 300ms ease-in-out; width:2px; @@ -6045,7 +6008,6 @@ span.flatpickr-weekday{ } .osui-accordion-item__content--is-animating{ -webkit-transition:all 300ms ease-in-out; - -o-transition:all 300ms ease-in-out; transition:all 300ms ease-in-out; } .osui-accordion-item__content [data-block*=AnimatedLabel]:first-child .animated-label{ @@ -6230,7 +6192,6 @@ span.flatpickr-weekday{ } .card-background-color:after{ background:-webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(rgb(0, 0, 0))); - background:-o-linear-gradient(top, rgba(0, 0, 0, 0) 0%, rgb(0, 0, 0) 100%); background:linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgb(0, 0, 0) 100%); content:""; height:100%; @@ -6279,8 +6240,7 @@ span.flatpickr-weekday{ .card-detail-text{ color:var(--color-neutral-7); overflow:hidden; - -o-text-overflow:ellipsis; - text-overflow:ellipsis; + text-overflow:ellipsis; } .is-rtl .card-detail-left{ padding-left:var(--space-base); @@ -6474,7 +6434,6 @@ span.flatpickr-weekday{ -webkit-transform-style:preserve-3d; transform-style:preserve-3d; -webkit-transition:all 630ms cubic-bezier(0.03, 0.01, 0.67, 1.97); - -o-transition:all 630ms cubic-bezier(0.03, 0.01, 0.67, 1.97); transition:all 630ms cubic-bezier(0.03, 0.01, 0.67, 1.97); } .osui-flip-content__container--flip-self{ @@ -6732,8 +6691,7 @@ span.flatpickr-weekday{ } .list-item-content-title, .list-item-content-text{ overflow:hidden; - -o-text-overflow:ellipsis; - text-overflow:ellipsis; + text-overflow:ellipsis; white-space:nowrap; } .list-item-content-title{ @@ -6907,7 +6865,6 @@ span.flatpickr-weekday{ width:-moz-fit-content; width:fit-content; -webkit-transition:opacity 250ms; - -o-transition:opacity 250ms; transition:opacity 250ms; } .osui-tooltip__balloon-wrapper__balloon{ @@ -7229,32 +7186,26 @@ span.flatpickr-weekday{ } .osui-tooltip__balloon-wrapper--is-opening.left{ -webkit-transition:left 250ms; - -o-transition:left 250ms; transition:left 250ms; } .osui-tooltip__balloon-wrapper--is-opening.right{ -webkit-transition:right 250ms; - -o-transition:right 250ms; transition:right 250ms; } .osui-tooltip__balloon-wrapper--is-opening.center{ -webkit-transition:top 250ms; - -o-transition:top 250ms; transition:top 250ms; } .osui-tooltip__balloon-wrapper--is-opening.top, .osui-tooltip__balloon-wrapper--is-opening.top-left, .osui-tooltip__balloon-wrapper--is-opening.top-right{ -webkit-transition:top 250ms; - -o-transition:top 250ms; transition:top 250ms; } .osui-tooltip__balloon-wrapper--is-opening.bottom, .osui-tooltip__balloon-wrapper--is-opening.bottom-left, .osui-tooltip__balloon-wrapper--is-opening.bottom-right{ -webkit-transition:top 250ms; - -o-transition:top 250ms; transition:top 250ms; } .osui-tooltip__balloon-wrapper--is-opening .osui-tooltip__balloon-wrapper__balloon{ -webkit-transition:opacity 250ms; - -o-transition:opacity 250ms; transition:opacity 250ms; } .osui-tooltip__balloon-wrapper--is-open{ @@ -7483,7 +7434,6 @@ span.flatpickr-weekday{ position:absolute; top:0; -webkit-transition:opacity 0.3s cubic-bezier(0, 0, 0.3, 1); - -o-transition:opacity 0.3s cubic-bezier(0, 0, 0.3, 1); transition:opacity 0.3s cubic-bezier(0, 0, 0.3, 1); width:100%; will-change:opacity; @@ -7504,12 +7454,10 @@ span.flatpickr-weekday{ } .action-sheet-container--visible.action-sheet-container--animatable .action-sheet{ -webkit-transition:all 330ms ease-out; - -o-transition:all 330ms ease-out; transition:all 330ms ease-out; } .action-sheet-container--animatable .action-sheet{ -webkit-transition:all 130ms ease-in; - -o-transition:all 130ms ease-in; transition:all 130ms ease-in; } .action-sheet-buttons{ @@ -7559,7 +7507,6 @@ span.flatpickr-weekday{ animation-fill-mode:both; display:inline-block; -webkit-transition-timing-function:ease-out; - -o-transition-timing-function:ease-out; transition-timing-function:ease-out; visibility:hidden; width:100%; @@ -7652,7 +7599,6 @@ span.flatpickr-weekday{ position:absolute; top:8px; -webkit-transition:all 300ms ease; - -o-transition:all 300ms ease; transition:all 300ms ease; z-index:var(--layer-global-screen); } @@ -7673,7 +7619,6 @@ span.flatpickr-weekday{ border-radius:var(--border-radius-none); padding:var(--space-none); -webkit-transition:all 100ms ease-in-out; - -o-transition:all 100ms ease-in-out; transition:all 100ms ease-in-out; } .animated-label-input .form-control[data-input]:focus, .animated-label-input .form-control[data-textarea]:focus{ @@ -7764,7 +7709,6 @@ span.flatpickr-weekday{ opacity:1; pointer-events:all; -webkit-transition:opacity 300ms ease-in; - -o-transition:opacity 300ms ease-in; transition:opacity 300ms ease-in; } .osui-balloon:not(.osui-balloon--is-open) *{ @@ -7857,7 +7801,6 @@ span.flatpickr-weekday{ text-align:center; -webkit-transition:-webkit-transform 350ms var(--osui-bottom-sheet-transition-function); transition:-webkit-transform 350ms var(--osui-bottom-sheet-transition-function); - -o-transition:transform 350ms var(--osui-bottom-sheet-transition-function); transition:transform 350ms var(--osui-bottom-sheet-transition-function); transition:transform 350ms var(--osui-bottom-sheet-transition-function), -webkit-transform 350ms var(--osui-bottom-sheet-transition-function); -webkit-transform:translateY(100%); @@ -7920,13 +7863,11 @@ span.flatpickr-weekday{ .osui-bottom-sheet:not(.osui-bottom-sheet--is-open){ -webkit-transition:-webkit-transform 200ms ease-out; transition:-webkit-transform 200ms ease-out; - -o-transition:transform 200ms ease-out; transition:transform 200ms ease-out; transition:transform 200ms ease-out, -webkit-transform 200ms ease-out; } .osui-bottom-sheet:not(.osui-bottom-sheet--is-open) + .osui-bottom-sheet-overlay{ -webkit-transition:opacity 200ms ease-out; - -o-transition:opacity 200ms ease-out; transition:opacity 200ms ease-out; } .osui-bottom-sheet-overlay{ @@ -7938,7 +7879,6 @@ span.flatpickr-weekday{ position:fixed; top:0; -webkit-transition:opacity 350ms ease-in; - -o-transition:opacity 350ms ease-in; transition:opacity 350ms ease-in; width:100vw; z-index:calc(var(--layer-below) + var(--osui-bottom-sheet-layer)); @@ -7973,7 +7913,6 @@ span.flatpickr-weekday{ transform:translateY(-2px); -webkit-transition:opacity 200ms ease, -webkit-transform 200ms var(--osui-bottom-sheet-transition-function); transition:opacity 200ms ease, -webkit-transform 200ms var(--osui-bottom-sheet-transition-function); - -o-transition:opacity 200ms ease, transform 200ms var(--osui-bottom-sheet-transition-function); transition:opacity 200ms ease, transform 200ms var(--osui-bottom-sheet-transition-function); transition:opacity 200ms ease, transform 200ms var(--osui-bottom-sheet-transition-function), -webkit-transform 200ms var(--osui-bottom-sheet-transition-function); top:0; @@ -8021,7 +7960,6 @@ span.flatpickr-weekday{ height:40px; opacity:1; -webkit-transition:opacity 150ms linear; - -o-transition:opacity 150ms linear; transition:opacity 150ms linear; width:40px; will-change:opacity; @@ -8482,7 +8420,6 @@ span.flatpickr-weekday{ .safari input.flatpickr-input, .safari input.flatpickr-input + input{ -webkit-transition:none; - -o-transition:none; transition:none; } .phone .flatpickr-current-month .flatpickr-monthDropdown-months, @@ -8863,7 +8800,6 @@ html[data-uieditorversion^="1"] .osui-datepicker-calendar-ss-preview.has-today-b margin-right:var(--space-s); overflow:visible; -webkit-transition:background-color 0.25s ease; - -o-transition:background-color 0.25s ease; transition:background-color 0.25s ease; width:16px; } @@ -8874,7 +8810,6 @@ html[data-uieditorversion^="1"] .osui-datepicker-calendar-ss-preview.has-today-b height:85%; opacity:0; -webkit-transition:opacity 0.25s ease; - -o-transition:opacity 0.25s ease; transition:opacity 0.25s ease; width:40%; } @@ -8911,7 +8846,6 @@ html[data-uieditorversion^="1"] .osui-datepicker-calendar-ss-preview.has-today-b padding:var(--space-xs) var(--space-xl) var(--space-xs) var(--space-base); position:relative; -webkit-transition:height, border-color 0.25s ease; - -o-transition:height, border-color 0.25s ease; transition:height, border-color 0.25s ease; vertical-align:middle; width:100%; @@ -8930,7 +8864,6 @@ html[data-uieditorversion^="1"] .osui-datepicker-calendar-ss-preview.has-today-b -ms-transform-origin:center; transform-origin:center; -webkit-transition:all 0.25s ease; - -o-transition:all 0.25s ease; transition:all 0.25s ease; } .vscomp-toggle-button:hover{ @@ -9040,7 +8973,6 @@ html[data-uieditorversion^="1"] .osui-datepicker-calendar-ss-preview.has-today-b align-content:center; background-color:var(--color-neutral-0); -webkit-transition:background-color 0.25s ease; - -o-transition:background-color 0.25s ease; transition:background-color 0.25s ease; } .vscomp-option.focused, .vscomp-option.selected{ @@ -9256,10 +9188,8 @@ body.vscomp-popup-active .vscomp-wrapper{ -webkit-transform:translateY(0px) translateZ(0) scale(1); transform:translateY(0px) translateZ(0) scale(1); -webkit-transition:all 180ms ease-out; - -o-transition:all 180ms ease-out; transition:all 180ms ease-out; -webkit-transition-delay:calc(var(--delay) * 40ms); - -o-transition-delay:calc(var(--delay) * 40ms); transition-delay:calc(var(--delay) * 40ms); } .floating-actions-wrapper.is--open .floating-actions-item-button{ @@ -9314,7 +9244,6 @@ body.vscomp-popup-active .vscomp-wrapper{ -webkit-transform:translateY(--space-base) translateZ(0); transform:translateY(--space-base) translateZ(0); -webkit-transition:all 100ms ease-in; - -o-transition:all 100ms ease-in; transition:all 100ms ease-in; } .floating-actions-item{ @@ -9344,11 +9273,9 @@ body.vscomp-popup-active .vscomp-wrapper{ transform:translateZ(0) scale(0.3); -webkit-transition:-webkit-transform 180ms ease-out; transition:-webkit-transform 180ms ease-out; - -o-transition:transform 180ms ease-out; transition:transform 180ms ease-out; transition:transform 180ms ease-out, -webkit-transform 180ms ease-out; -webkit-transition-delay:calc(var(--delay) * 40ms); - -o-transition-delay:calc(var(--delay) * 40ms); transition-delay:calc(var(--delay) * 40ms); width:40px; } @@ -9384,7 +9311,6 @@ body.vscomp-popup-active .vscomp-wrapper{ -ms-transform-origin:center center; transform-origin:center center; -webkit-transition:all 180ms linear; - -o-transition:all 180ms linear; transition:all 180ms linear; width:56px; } @@ -9402,7 +9328,6 @@ body.vscomp-popup-active .vscomp-wrapper{ right:0; top:0; -webkit-transition:opacity 180ms ease-out; - -o-transition:opacity 180ms ease-out; transition:opacity 180ms ease-out; width:100vw; z-index:var(--osui-floating-actions-layer); @@ -9699,7 +9624,6 @@ body.vscomp-popup-active .vscomp-wrapper{ position:fixed; -webkit-transition:opacity 300ms ease-out, -webkit-transform 300ms ease-out; transition:opacity 300ms ease-out, -webkit-transform 300ms ease-out; - -o-transition:transform 300ms ease-out, opacity 300ms ease-out; transition:transform 300ms ease-out, opacity 300ms ease-out; transition:transform 300ms ease-out, opacity 300ms ease-out, -webkit-transform 300ms ease-out; -webkit-user-select:none; @@ -9886,7 +9810,6 @@ body.vscomp-popup-active .vscomp-wrapper{ height:var(--range-slider-handle-size); -webkit-transition:-webkit-transform 150ms ease-out; transition:-webkit-transform 150ms ease-out; - -o-transition:transform 150ms ease-out; transition:transform 150ms ease-out; transition:transform 150ms ease-out, -webkit-transform 150ms ease-out; width:var(--range-slider-handle-size); @@ -10142,7 +10065,6 @@ body.vscomp-popup-active .vscomp-wrapper{ position:fixed; top:0; -webkit-transition:all 130ms ease-in; - -o-transition:all 130ms ease-in; transition:all 130ms ease-in; width:var(--sidebar-width); will-change:transform; @@ -10220,7 +10142,6 @@ body.vscomp-popup-active .vscomp-wrapper{ position:fixed; top:0; -webkit-transition:opacity 130ms ease-in; - -o-transition:opacity 130ms ease-in; transition:opacity 130ms ease-in; width:200vw; will-change:opacity; @@ -10243,7 +10164,6 @@ body.vscomp-popup-active .vscomp-wrapper{ transform:none; -webkit-transition:-webkit-transform 330ms ease-out; transition:-webkit-transform 330ms ease-out; - -o-transition:transform 330ms ease-out; transition:transform 330ms ease-out; transition:transform 330ms ease-out, -webkit-transform 330ms ease-out; will-change:transform; @@ -10400,7 +10320,6 @@ body.vscomp-popup-active .vscomp-wrapper{ } .stackedcards--animatable{ -webkit-transition:all 400ms ease; - -o-transition:all 400ms ease; transition:all 400ms ease; } .stackedcards .init{ @@ -10710,8 +10629,7 @@ html[data-uieditorversion^="1"] .osui-timepicker__dropdown-ss-preview.time12h, h .bottom-bar-item-text{ font-size:10px; overflow:hidden; - -o-text-overflow:ellipsis; - text-overflow:ellipsis; + text-overflow:ellipsis; white-space:nowrap; word-wrap:break-word; } @@ -11096,7 +11014,6 @@ html[data-uieditorversion^="1"] .osui-timepicker__dropdown-ss-preview.time12h, h display:flex; padding:var(--space-none) var(--space-s); -webkit-transition:all 150ms linear; - -o-transition:all 150ms linear; transition:all 150ms linear; } .osui-submenu__header__icon{ @@ -11108,7 +11025,6 @@ html[data-uieditorversion^="1"] .osui-timepicker__dropdown-ss-preview.time12h, h -ms-transform:rotate(-45deg); transform:rotate(-45deg); -webkit-transition:all 150ms linear; - -o-transition:all 150ms linear; transition:all 150ms linear; } .osui-submenu__header__icon:before{ @@ -11120,7 +11036,6 @@ html[data-uieditorversion^="1"] .osui-timepicker__dropdown-ss-preview.time12h, h content:""; height:6px; -webkit-transition:all 150ms linear; - -o-transition:all 150ms linear; transition:all 150ms linear; width:6px; } @@ -11135,7 +11050,6 @@ html[data-uieditorversion^="1"] .osui-timepicker__dropdown-ss-preview.time12h, h height:100%; position:relative; -webkit-transition:all 150ms linear; - -o-transition:all 150ms linear; transition:all 150ms linear; -servicestudio-min-width:100px; -servicestudio-margin-left:calc(var(--space-s) * -1); @@ -11177,7 +11091,6 @@ html[data-uieditorversion^="1"] .osui-timepicker__dropdown-ss-preview.time12h, h -ms-transform:translateY(-8px); transform:translateY(-8px); -webkit-transition:all 130ms ease-out; - -o-transition:all 130ms ease-out; transition:all 130ms ease-out; z-index:var(--layer-global-elevated); } @@ -11523,7 +11436,6 @@ html[data-uieditorversion^="1"] .osui-timepicker__dropdown-ss-preview.time12h, h position:absolute; -webkit-transition:-webkit-transform 200ms linear; transition:-webkit-transform 200ms linear; - -o-transition:transform 200ms linear; transition:transform 200ms linear; transition:transform 200ms linear, -webkit-transform 200ms linear; -webkit-transform-origin:0 0; @@ -12083,12 +11995,10 @@ html[data-uieditorversion^="1"] .wizard-wrapper-item{ } .osui-progress-bar__container.animate-entrance .osui-progress-bar__value:before{ -webkit-transition-delay:0.5s; - -o-transition-delay:0.5s; transition-delay:0.5s; } .osui-progress-bar__container.animate-entrance .osui-progress-bar__value:before, .osui-progress-bar__container.animate-progress-change .osui-progress-bar__value:before{ -webkit-transition-duration:0.35s; - -o-transition-duration:0.35s; transition-duration:0.35s; } .osui-progress-bar__value{ @@ -12197,17 +12107,14 @@ html[data-uieditorversion^="1"] .wizard-wrapper-item{ stroke-dashoffset:var(--stroke-dashoffset); stroke-linecap:var(--shape); -webkit-transition:stroke-dashoffset 0; - -o-transition:stroke-dashoffset 0; transition:stroke-dashoffset 0; } .osui-progress-circle__container__progress-path.animate-entrance, .osui-progress-circle__container__progress-path.animate-progress-change{ -webkit-transition-duration:0.35s; - -o-transition-duration:0.35s; transition-duration:0.35s; } .osui-progress-circle__container__progress-path.animate-entrance{ -webkit-transition-delay:0.5s; - -o-transition-delay:0.5s; transition-delay:0.5s; } .osui-progress-circle__container__trail-path{ @@ -12291,7 +12198,6 @@ html[data-uieditorversion^="1"] .wizard-wrapper-item{ position:absolute; top:0; -webkit-transition:opacity linear 150ms; - -o-transition:opacity linear 150ms; transition:opacity linear 150ms; } .rating-item-filled, .rating-item-half, .rating-item-empty{ @@ -12464,7 +12370,6 @@ html[data-uieditorversion^="1"] .wizard-wrapper-item{ display:-ms-inline-flexbox; display:inline-flex; -webkit-transition:none; - -o-transition:none; transition:none; vertical-align:middle; white-space:nowrap; @@ -12597,14 +12502,12 @@ html[data-uieditorversion^="1"] .wizard-wrapper-item{ } .pull-to-refresh .genericon{ -webkit-transition:all 0.25s ease; - -o-transition:all 0.25s ease; transition:all 0.25s ease; } .ptr-loading .content, .ptr-loading .pull-to-refresh, .ptr-reset .content, .ptr-reset .pull-to-refresh{ -webkit-transition:all 0.25s ease; - -o-transition:all 0.25s ease; transition:all 0.25s ease; } .ptr-loading .pull-to-refresh .genericon, .ptr-reset .pull-to-refresh .genericon{ @@ -12699,12 +12602,11 @@ html[data-uieditorversion^="1"] .wizard-wrapper-item{ font:normal normal normal 20px/1 FontAwesome; height:100%; pointer-events:none; - position:fixed; + position:absolute; right:16px; top:0; -webkit-transition:-webkit-transform 200ms ease-in-out; transition:-webkit-transform 200ms ease-in-out; - -o-transition:transform 200ms ease-in-out; transition:transform 200ms ease-in-out; transition:transform 200ms ease-in-out, -webkit-transform 200ms ease-in-out; } @@ -12716,8 +12618,7 @@ html[data-uieditorversion^="1"] .wizard-wrapper-item{ } .osui-dropdown-serverside__selected-values > *:first-child{ overflow:hidden; - -o-text-overflow:ellipsis; - text-overflow:ellipsis; + text-overflow:ellipsis; white-space:nowrap; width:100%; } @@ -12738,7 +12639,6 @@ html[data-uieditorversion^="1"] .wizard-wrapper-item{ padding:var(--space-none) var(--space-base); position:relative; -webkit-transition:border 250ms ease-in-out; - -o-transition:border 250ms ease-in-out; transition:border 250ms ease-in-out; width:100%; } @@ -12764,7 +12664,6 @@ html[data-uieditorversion^="1"] .wizard-wrapper-item{ overflow:hidden; position:absolute; -webkit-transition:opacity 300ms ease; - -o-transition:opacity 300ms ease; transition:opacity 300ms ease; width:100%; z-index:var(--layer-global-elevated); @@ -12795,7 +12694,6 @@ html[data-uieditorversion^="1"] .wizard-wrapper-item{ transform:translateY(calc(-1 * var(--osui-dropdown-ss-thresholdanimateval))); -webkit-transition:opacity 250ms ease, -webkit-transform 300ms ease-in-out; transition:opacity 250ms ease, -webkit-transform 300ms ease-in-out; - -o-transition:opacity 250ms ease, transform 300ms ease-in-out; transition:opacity 250ms ease, transform 300ms ease-in-out; transition:opacity 250ms ease, transform 300ms ease-in-out, -webkit-transform 300ms ease-in-out; } @@ -12895,7 +12793,6 @@ html[data-uieditorversion^="1"] .wizard-wrapper-item{ -ms-transform:translateY(0); transform:translateY(0); -webkit-transition:opacity 250ms ease; - -o-transition:opacity 250ms ease; transition:opacity 250ms ease; } .osui-dropdown-serverside__balloon--is-top .osui-dropdown-serverside__balloon-content{ @@ -12945,6 +12842,9 @@ html[data-uieditorversion^="1"] .wizard-wrapper-item{ position:fixed; overflow:visible; } +.osui-dropdown-serverside--is-inside-popup .osui-dropdown-serverside__balloon-wrapper.osui-dropdown-serverside--is-opened{ + z-index:calc(var(--osui-popup-layer) + var(--layer-local-tier-1)); +} .osui-dropdown-serverside--not-valid .osui-dropdown-serverside__selected-values-wrapper{ border-color:var(--color-error); } @@ -12966,8 +12866,8 @@ html[data-uieditorversion^="1"] .wizard-wrapper-item{ .firefox .osui-dropdown-serverside__balloon-wrapper.osui-dropdown-serverside--is-opened{ z-index:var(--layer-global-instant-interaction); } -body:has(.popup-dialog):has(.osui-dropdown-serverside--is-opened) .osui-dropdown-serverside__balloon-wrapper.osui-dropdown-serverside--is-opened{ - z-index:calc(var(--osui-popup-layer) + var(--layer-local-tier-1)); +.form .osui-dropdown-serverside--is-inside-popup input[data-input]{ + margin-bottom:0; } .has-accessible-features .osui-dropdown-serverside__selected-values:hover, .has-accessible-features .osui-dropdown-serverside__selected-values:after, .has-accessible-features .osui-dropdown-serverside__selected-values-wrapper, .has-accessible-features .osui-dropdown-serverside__selected-values-footer{ border-color:var(--color-neutral-7); @@ -13046,7 +12946,6 @@ body:has(.popup-dialog):has(.osui-dropdown-serverside--is-opened) .osui-dropdown overflow:hidden; top:0; -webkit-transition:opacity 250ms ease; - -o-transition:opacity 250ms ease; transition:opacity 250ms ease; z-index:var(--layer-global-instant-interaction); } @@ -13097,7 +12996,6 @@ body:has(.popup-dialog):has(.osui-dropdown-serverside--is-opened) .osui-dropdown padding:var(--space-s) var(--space-base); position:relative; -webkit-transition:background 250ms ease; - -o-transition:background 250ms ease; transition:background 250ms ease; width:100%; z-index:var(--layer-global-screen); @@ -13125,8 +13023,7 @@ body:has(.popup-dialog):has(.osui-dropdown-serverside--is-opened) .osui-dropdown } .osui-dropdown-serverside-item__content > *:first-child{ overflow:hidden; - -o-text-overflow:ellipsis; - text-overflow:ellipsis; + text-overflow:ellipsis; white-space:nowrap; width:100%; } @@ -13199,7 +13096,6 @@ body:has(.popup-dialog):has(.osui-dropdown-serverside--is-opened) .osui-dropdown font-size:24px; font-weight:400; -webkit-transition:all 300ms ease-in-out; - -o-transition:all 300ms ease-in-out; transition:all 300ms ease-in-out; } .section-expandable .section-expandable-icon:after{ @@ -13225,7 +13121,6 @@ body:has(.popup-dialog):has(.osui-dropdown-serverside--is-opened) .osui-dropdown } .section-expandable .section-expandable-content-animating, .section-expandable .section-expandable-content.is--animating{ -webkit-transition:all 300ms ease-in-out; - -o-transition:all 300ms ease-in-out; transition:all 300ms ease-in-out; } .section-expandable .section-expandable-content.no-padding{ @@ -13327,7 +13222,6 @@ button.OSFillParent{ overflow:hidden; position:relative; -webkit-transition:all 400ms ease; - -o-transition:all 400ms ease; transition:all 400ms ease; will-change:transform; } @@ -13371,7 +13265,6 @@ button.OSFillParent{ } .carousel--animatable{ -webkit-transition:all 250ms linear; - -o-transition:all 250ms linear; transition:all 250ms linear; will-change:transform; } @@ -13457,7 +13350,6 @@ button.OSFillParent{ -ms-transform:translateY(-25px); transform:translateY(-25px); -webkit-transition:opacity 150ms linear; - -o-transition:opacity 150ms linear; transition:opacity 150ms linear; width:40px; will-change:opacity; @@ -13498,7 +13390,6 @@ button.OSFillParent{ .carousel-is-moving .hide-on-drag{ opacity:0; -webkit-transition:opacity 250ms ease; - -o-transition:opacity 250ms ease; transition:opacity 250ms ease; } .carousel .list.list-group{ @@ -14011,7 +13902,6 @@ input.OSFillParent.calendar-input{ line-height:calc(var(--font-size-base) * 2); padding-left:var(--space-base); -webkit-transition:all 180ms linear; - -o-transition:all 180ms linear; transition:all 180ms linear; vertical-align:top; width:100%; @@ -14175,7 +14065,6 @@ input.OSFillParent.calendar-input{ height:40px; padding:var(--space-none) var(--space-base); -webkit-transition:all 180ms linear; - -o-transition:all 180ms linear; transition:all 180ms linear; } .section-expandable-content .choices__list--dropdown.is-active{ @@ -14260,7 +14149,6 @@ input.OSFillParent.calendar-input{ -ms-transform-origin:center; transform-origin:center; -webkit-transition:all 300ms ease; - -o-transition:all 300ms ease; transition:all 300ms ease; } .choices[data-type*=select-one].is-open:after{ @@ -14302,8 +14190,7 @@ input.OSFillParent.calendar-input{ color:var(--color-neutral-10); overflow:hidden; padding-right:var(--space-base); - -o-text-overflow:ellipsis; - text-overflow:ellipsis; + text-overflow:ellipsis; white-space:nowrap; width:99%; } @@ -14463,7 +14350,6 @@ input.OSFillParent.calendar-input{ .flip-content-container{ position:relative; -webkit-transition:all 630ms cubic-bezier(0.03, 0.01, 0.67, 1.97); - -o-transition:all 630ms cubic-bezier(0.03, 0.01, 0.67, 1.97); transition:all 630ms cubic-bezier(0.03, 0.01, 0.67, 1.97); -webkit-transform-style:preserve-3d; transform-style:preserve-3d; @@ -14613,12 +14499,10 @@ input.OSFillParent.calendar-input{ } .notification--visible.notification--animatable{ -webkit-transition:all 330ms ease-out; - -o-transition:all 330ms ease-out; transition:all 330ms ease-out; } .notification--animatable{ -webkit-transition:all 130ms ease-in; - -o-transition:all 130ms ease-in; transition:all 130ms ease-in; } .layout-native .notification{ @@ -14677,7 +14561,6 @@ input.OSFillParent.calendar-input{ -ms-transform-origin:left; transform-origin:left; -webkit-transition:all 750ms ease-out; - -o-transition:all 750ms ease-out; transition:all 750ms ease-out; will-change:width; } @@ -14821,7 +14704,6 @@ input.OSFillParent.calendar-input{ -ms-transform:translateX(102%); transform:translateX(102%); -webkit-transition:all 130ms ease-in; - -o-transition:all 130ms ease-in; transition:all 130ms ease-in; width:500px; will-change:transform; @@ -14858,7 +14740,6 @@ input.OSFillParent.calendar-input{ -ms-transform:none; transform:none; -webkit-transition:all 330ms ease-out; - -o-transition:all 330ms ease-out; transition:all 330ms ease-out; will-change:transform; } @@ -14990,7 +14871,6 @@ input.OSFillParent.calendar-input{ right:13px; top:50%; -webkit-transition:all 300ms ease; - -o-transition:all 300ms ease; transition:all 300ms ease; width:16px; } @@ -15005,7 +14885,6 @@ input.OSFillParent.calendar-input{ -ms-transform:rotate(-45deg); transform:rotate(-45deg); -webkit-transition:all 300ms ease; - -o-transition:all 300ms ease; transition:all 300ms ease; width:3px; } @@ -15018,14 +14897,12 @@ input.OSFillParent.calendar-input{ -ms-transform:translate(0, calc(-100% - var(--os-safe-area-top))); transform:translate(0, calc(-100% - var(--os-safe-area-top))); -webkit-transition:all 300ms ease; - -o-transition:all 300ms ease; transition:all 300ms ease; } .layout-native .header-right .search-input input[data-input], .layout-native .header-right .search-input input[data-input]:empty{ height:34px; padding-left:var(--space-xl); -webkit-transition:none; - -o-transition:none; transition:none; } .layout-native .header-right .search-input input[data-input]:focus{ @@ -15112,7 +14989,6 @@ input.OSFillParent.calendar-input{ display:flex; padding:var(--space-none) var(--space-s); -webkit-transition:all 150ms linear; - -o-transition:all 150ms linear; transition:all 150ms linear; } .submenu-icon{ @@ -15124,7 +15000,6 @@ input.OSFillParent.calendar-input{ -ms-transform:rotate(-45deg); transform:rotate(-45deg); -webkit-transition:all 150ms linear; - -o-transition:all 150ms linear; transition:all 150ms linear; } .submenu-icon:before{ @@ -15136,7 +15011,6 @@ input.OSFillParent.calendar-input{ content:""; height:6px; -webkit-transition:all 150ms linear; - -o-transition:all 150ms linear; transition:all 150ms linear; width:6px; } @@ -15151,7 +15025,6 @@ input.OSFillParent.calendar-input{ height:100%; position:relative; -webkit-transition:all 150ms linear; - -o-transition:all 150ms linear; transition:all 150ms linear; } .submenu-item a{ @@ -15188,7 +15061,6 @@ input.OSFillParent.calendar-input{ -ms-transform:translateY(-8px); transform:translateY(-8px); -webkit-transition:all 130ms ease-out; - -o-transition:all 130ms ease-out; transition:all 130ms ease-out; z-index:var(--layer-global-elevated); } @@ -15464,7 +15336,6 @@ input.OSFillParent.calendar-input{ margin-left:var(--space-l); padding:var(--space-base) var(--space-xs); -webkit-transition:border 150ms linear; - -o-transition:border 150ms linear; transition:border 150ms linear; white-space:nowrap; } @@ -15521,7 +15392,6 @@ input.OSFillParent.calendar-input{ .layout-native .tabs-content-wrapper{ -webkit-transition:-webkit-transform 230ms ease-in-out; transition:-webkit-transform 230ms ease-in-out; - -o-transition:transform 230ms ease-in-out; transition:transform 230ms ease-in-out; transition:transform 230ms ease-in-out, -webkit-transform 230ms ease-in-out; } @@ -16601,8 +16471,7 @@ input.OSFillParent.calendar-input{ } .text-ellipsis{ overflow:hidden; - -o-text-overflow:ellipsis; - text-overflow:ellipsis; + text-overflow:ellipsis; white-space:nowrap; } /*! 7.9. Border Size */ @@ -17785,7 +17654,6 @@ img.thumbnail{ /*! 7.24. Miscellaneous */ .no-transition{ -webkit-transition:none !important; - -o-transition:none !important; transition:none !important; } .no-transform{ @@ -17843,7 +17711,6 @@ img.thumbnail{ .fade-leave.fade-leave-active{ -webkit-transition:opacity 400ms ease-in-out, -webkit-transform 400ms ease-in-out; transition:opacity 400ms ease-in-out, -webkit-transform 400ms ease-in-out; - -o-transition:transform 400ms ease-in-out, opacity 400ms ease-in-out; transition:transform 400ms ease-in-out, opacity 400ms ease-in-out; transition:transform 400ms ease-in-out, opacity 400ms ease-in-out, -webkit-transform 400ms ease-in-out; } @@ -17859,7 +17726,6 @@ img.thumbnail{ .fade-leave.fade-leave-active .content{ -webkit-transition:opacity 400ms ease-in-out, -webkit-transform 400ms ease-in-out; transition:opacity 400ms ease-in-out, -webkit-transform 400ms ease-in-out; - -o-transition:transform 400ms ease-in-out, opacity 400ms ease-in-out; transition:transform 400ms ease-in-out, opacity 400ms ease-in-out; transition:transform 400ms ease-in-out, opacity 400ms ease-in-out, -webkit-transform 400ms ease-in-out; } @@ -17936,7 +17802,6 @@ img.thumbnail{ .fade-enter.fade-enter-active .header{ -webkit-transition:opacity 400ms ease-in-out, -webkit-transform 400ms ease-in-out; transition:opacity 400ms ease-in-out, -webkit-transform 400ms ease-in-out; - -o-transition:transform 400ms ease-in-out, opacity 400ms ease-in-out; transition:transform 400ms ease-in-out, opacity 400ms ease-in-out; transition:transform 400ms ease-in-out, opacity 400ms ease-in-out, -webkit-transform 400ms ease-in-out; } @@ -17947,7 +17812,6 @@ img.thumbnail{ .fade-leave.fade-leave-active{ opacity:0; -webkit-transition:all 400ms ease-in-out; - -o-transition:all 400ms ease-in-out; transition:all 400ms ease-in-out; } .fade-leave.fade-leave-active .header{ @@ -17955,7 +17819,6 @@ img.thumbnail{ -webkit-transform:translateY(-200px) translateZ(0); transform:translateY(-200px) translateZ(0); -webkit-transition:none; - -o-transition:none; transition:none; } .fade-leave.screen-container{ diff --git a/dist/OutSystemsUI.d.ts b/dist/O11.OutSystemsUI.d.ts similarity index 99% rename from dist/OutSystemsUI.d.ts rename to dist/O11.OutSystemsUI.d.ts index 14857de45c..a1f7563f70 100644 --- a/dist/OutSystemsUI.d.ts +++ b/dist/O11.OutSystemsUI.d.ts @@ -57,13 +57,17 @@ declare namespace OSFramework.OSUI.Constants { True: string; }; }; + const AccessibilityHideElementClass = "wcag-hide-text"; const AllowPropagationAttr = "[data-allow-event-propagation]"; - const Dot = "."; const Comma = ","; - const EnableLogMessages = false; + const Dot = "."; const EmptyString = ""; - const FocusTrapIgnoreAttr = "ignore-focus-trap"; + const EnableLogMessages = false; const FocusableElems = "a[href]:not([disabled]),[tabindex=\"0\"], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled])"; + const FocusTrapIgnoreAttr = "ignore-focus-trap"; + const HasAccessibilityClass = "has-accessible-features"; + const InvalidNumber = -1; + const IsRTLClass = "is-rtl"; const JavaScriptTypes: { Undefined: string; Boolean: string; @@ -74,16 +78,13 @@ declare namespace OSFramework.OSUI.Constants { Object: string; }; const JustInputs = "input:not([type=button]):not([type=checkbox]):not([type=color]):not([type=file]):not([type=hidden]):not([type=image]):not([type=image]):not([type=radio]):not([type=range]):not([type=reset]):not([type=submit]), textarea"; - const HasAccessibilityClass = "has-accessible-features"; - const InvalidNumber = -1; - const Months: string[]; const Language: { code: string; short: string; }; - const AccessibilityHideElementClass = "wcag-hide-text"; - const IsRTLClass = "is-rtl"; + const Months: string[]; const NoTransition = "no-transition"; + const OSUIPlatform = "<\u2022>platformType<\u2022>"; const OSUIVersion = "2.18.2"; const ZeroValue = 0; } @@ -324,7 +325,8 @@ declare namespace OSFramework.OSUI.GlobalEnum { TouchEnd = "touchend", TouchMove = "touchmove", TouchStart = "touchstart", - TransitionEnd = "transitionend" + TransitionEnd = "transitionend", + Message = "message" } enum CustomEvent { BalloonOnToggle = "balloon.onToggle" @@ -664,7 +666,8 @@ declare namespace OSFramework.OSUI.Event.DOMEvents.Listeners { BodyOnMouseDown = "body.mousedown", OrientationChange = "window.onorientationchange", ScreenOnScroll = "screen.onscroll", - WindowResize = "window.onresize" + WindowResize = "window.onresize", + WindowMessage = "window.message" } } declare namespace OSFramework.OSUI.Event.DOMEvents.Listeners { @@ -688,6 +691,12 @@ declare namespace OSFramework.OSUI.Event.DOMEvents.Listeners { private _screenTrigger; } } +declare namespace OSFramework.OSUI.Event.DOMEvents.Listeners { + class WindowMessage extends AbstractListener { + constructor(); + private _windowTrigger; + } +} declare namespace OSFramework.OSUI.Event.DOMEvents.Listeners { class WindowResize extends AbstractListener { private _timeout; @@ -1005,6 +1014,7 @@ declare namespace OSFramework.OSUI.Helper { static GetDeviceOrientation(): GlobalEnum.DeviceOrientation; static GetDeviceType(): GlobalEnum.DeviceType; static GetOperatingSystem(userAgent?: string): GlobalEnum.MobileOS; + static RefreshOperatingSystem(): void; } } declare namespace OSFramework.OSUI.Helper { @@ -3348,6 +3358,7 @@ declare namespace OSFramework.OSUI.Patterns.Tabs { private _requestAnimationFrameOnIndicatorResize; private _tabsContentElement; private _tabsHeaderElement; + private _tabsHeadersEnabled; private _tabsIndicatorElement; constructor(uniqueId: string, configs: JSON); private _addContentItem; @@ -3377,6 +3388,7 @@ declare namespace OSFramework.OSUI.Patterns.Tabs { private _triggerOnChangeEvent; private _unsetDragObserver; private _updateItemsConnection; + private _updateListOfEnabledTabsHeader; protected setA11YProperties(): void; protected setCallbacks(): void; protected setHtmlElements(): void; @@ -4717,6 +4729,7 @@ declare namespace OutSystems.OSUI.Utils { function MoveElement(ElementId: string, TargetSelector: string, TimeoutVal?: number): string; function SetActiveElement(ElementId: string, IsActive: boolean): string; function SetSelectedTableRow(TableId: string, RowNumber: number, IsSelected: boolean): string; + function GetPlatformType(): string; function ShowPassword(WidgetId?: string): string; } declare namespace Providers.OSUI.ErrorCodes { diff --git a/dist/OutSystemsUI.js b/dist/O11.OutSystemsUI.js similarity index 99% rename from dist/OutSystemsUI.js rename to dist/O11.OutSystemsUI.js index c10f3d308b..7c0aa59216 100644 --- a/dist/OutSystemsUI.js +++ b/dist/O11.OutSystemsUI.js @@ -1,5 +1,5 @@ /*! -OutSystems UI 2.18.2 +OutSystems UI 2.18.2 • O11 Platform Website: • https://www.outsystems.com/outsystems-ui GitHub: @@ -99,13 +99,17 @@ var OSFramework; True: 'true', }, }; + Constants.AccessibilityHideElementClass = 'wcag-hide-text'; Constants.AllowPropagationAttr = '[data-allow-event-propagation]'; - Constants.Dot = '.'; Constants.Comma = ','; - Constants.EnableLogMessages = false; + Constants.Dot = '.'; Constants.EmptyString = ''; - Constants.FocusTrapIgnoreAttr = 'ignore-focus-trap'; + Constants.EnableLogMessages = false; Constants.FocusableElems = 'a[href]:not([disabled]),[tabindex="0"], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled])'; + Constants.FocusTrapIgnoreAttr = 'ignore-focus-trap'; + Constants.HasAccessibilityClass = 'has-accessible-features'; + Constants.InvalidNumber = -1; + Constants.IsRTLClass = 'is-rtl'; Constants.JavaScriptTypes = { Undefined: 'undefined', Boolean: 'boolean', @@ -116,8 +120,10 @@ var OSFramework; Object: 'object', }; Constants.JustInputs = 'input:not([type=button]):not([type=checkbox]):not([type=color]):not([type=file]):not([type=hidden]):not([type=image]):not([type=image]):not([type=radio]):not([type=range]):not([type=reset]):not([type=submit]), textarea'; - Constants.HasAccessibilityClass = 'has-accessible-features'; - Constants.InvalidNumber = -1; + Constants.Language = { + code: 'en-US', + short: 'en', + }; Constants.Months = [ 'January', 'February', @@ -132,13 +138,8 @@ var OSFramework; 'November', 'December', ]; - Constants.Language = { - code: 'en-US', - short: 'en', - }; - Constants.AccessibilityHideElementClass = 'wcag-hide-text'; - Constants.IsRTLClass = 'is-rtl'; Constants.NoTransition = 'no-transition'; + Constants.OSUIPlatform = 'O11'; Constants.OSUIVersion = '2.18.2'; Constants.ZeroValue = 0; })(Constants = OSUI.Constants || (OSUI.Constants = {})); @@ -401,6 +402,7 @@ var OSFramework; HTMLEvent["TouchMove"] = "touchmove"; HTMLEvent["TouchStart"] = "touchstart"; HTMLEvent["TransitionEnd"] = "transitionend"; + HTMLEvent["Message"] = "message"; })(HTMLEvent = GlobalEnum.HTMLEvent || (GlobalEnum.HTMLEvent = {})); let CustomEvent; (function (CustomEvent) { @@ -1236,6 +1238,7 @@ var OSFramework; Type["OrientationChange"] = "window.onorientationchange"; Type["ScreenOnScroll"] = "screen.onscroll"; Type["WindowResize"] = "window.onresize"; + Type["WindowMessage"] = "window.message"; })(Type = Listeners.Type || (Listeners.Type = {})); })(Listeners = DOMEvents.Listeners || (DOMEvents.Listeners = {})); })(DOMEvents = Event.DOMEvents || (Event.DOMEvents = {})); @@ -1267,6 +1270,8 @@ var OSFramework; return new Listeners.OrientationChange(); case Listeners.Type.ScreenOnScroll: return new Listeners.ScreenOnScroll(); + case Listeners.Type.WindowMessage: + return new Listeners.WindowMessage(); default: throw new Error(`The listener ${listenerType} is not supported.`); } @@ -1336,6 +1341,31 @@ var OSFramework; })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); })(OSFramework || (OSFramework = {})); var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Event; + (function (Event) { + var DOMEvents; + (function (DOMEvents) { + var Listeners; + (function (Listeners) { + class WindowMessage extends Listeners.AbstractListener { + constructor() { + super(window, OSUI.GlobalEnum.HTMLEvent.Message); + this.eventCallback = this._windowTrigger.bind(this); + } + _windowTrigger(evt) { + this.trigger(OSUI.GlobalEnum.HTMLEvent.Message, evt); + } + } + Listeners.WindowMessage = WindowMessage; + })(Listeners = DOMEvents.Listeners || (DOMEvents.Listeners = {})); + })(DOMEvents = Event.DOMEvents || (Event.DOMEvents = {})); + })(Event = OSUI.Event || (OSUI.Event = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; (function (OSFramework) { var OSUI; (function (OSUI) { @@ -2361,9 +2391,16 @@ var OSFramework; return localOs; } static _getUserAgent(userAgent = '') { - return userAgent.replace(' ', '') === '' - ? window.navigator.userAgent.toLowerCase() - : userAgent.toLowerCase(); + let localUserAgent = userAgent; + if (userAgent.replace(' ', '') === '') { + if (sessionStorage.previewDevicesUserAgent) { + localUserAgent = sessionStorage.previewDevicesUserAgent; + } + else { + localUserAgent = window.navigator.userAgent; + } + } + return localUserAgent.toLowerCase(); } static _isChrome(ua) { return ua.includes(UAKeyword.chrome) || ua.includes(UAKeyword.crios); @@ -2422,10 +2459,12 @@ var OSFramework; } static get IsIphoneWithNotch() { if (DeviceInfo._isIphoneWithNotch === undefined) { - const ratio = window.devicePixelRatio || 1; + const ratio = (sessionStorage.previewDevicesPixelRatio + ? sessionStorage.previewDevicesPixelRatio + : window.devicePixelRatio) || 1; const currScreen = { - width: window.screen.width * ratio, - height: window.screen.height * ratio, + width: (window.visualViewport ? window.visualViewport.width : window.innerWidth) * ratio, + height: (window.visualViewport ? window.visualViewport.height : window.innerHeight) * ratio, description: '', }; DeviceInfo._iphoneDetails = iphoneDevices.find((device) => { @@ -2566,6 +2605,9 @@ var OSFramework; } return localOs; } + static RefreshOperatingSystem() { + DeviceInfo._operatingSystem = DeviceInfo.GetOperatingSystem(DeviceInfo._getUserAgent()); + } } DeviceInfo._browser = OSUI.GlobalEnum.Browser.unknown; DeviceInfo._iphoneDetails = undefined; @@ -2792,10 +2834,16 @@ var OSFramework; return [..._filteredElements]; } static IsInsidePopupWidget(element) { - const _popup = document.querySelector(OSUI.Constants.Dot + OSUI.GlobalEnum.CssClassElements.Popup); - if (_popup && element) { - return _popup.contains(element); + const _popup = document.querySelectorAll(OSUI.Constants.Dot + OSUI.GlobalEnum.CssClassElements.Popup); + let _isInsidePopup = false; + if (_popup.length > 0 && element) { + _popup.forEach((popup) => { + if (popup.contains(element)) { + _isInsidePopup = true; + } + }); } + return _isInsidePopup; } static Move(element, target) { if (element && target) { @@ -4487,6 +4535,12 @@ var OSFramework; var BottomSheet; (function (BottomSheet_1) { class BottomSheet extends Patterns.AbstractPattern { + get gestureEventInstance() { + return this._gestureEventInstance; + } + get hasGestureEvents() { + return this._hasGestureEvents; + } constructor(uniqueId, configs) { super(uniqueId, new BottomSheet_1.BottomSheetConfig(configs)); this._isOpen = false; @@ -4499,12 +4553,6 @@ var OSFramework; }, }; } - get gestureEventInstance() { - return this._gestureEventInstance; - } - get hasGestureEvents() { - return this._hasGestureEvents; - } _handleFocusBehavior() { const opts = { focusTargetElement: this._parentSelf, @@ -5429,8 +5477,7 @@ var OSFramework; throw new Error(`${OSUI.ErrorCodes.Dropdown.HasNoImplementation.code}: ${OSUI.ErrorCodes.Dropdown.HasNoImplementation.message}`); } _moveBallonElement() { - const balloon = document.adoptNode(this._balloonWrapperElement); - this._activeScreenElement.appendChild(balloon); + OSUI.Helper.Dom.Move(this._balloonWrapperElement, this._activeScreenElement); } _onBodyClick(_eventType, event) { if (this._isOpen === false) { @@ -10237,31 +10284,34 @@ var OSFramework; return newTabIndex; } _handleKeypressEvent(e) { + let currentTabHeader; let targetHeaderItemIndex; if (e.target !== this._activeTabHeaderElement.selfElement) { return; } switch (e.key) { case OSUI.GlobalEnum.Keycodes.ArrowRight: - targetHeaderItemIndex = this.configs.StartingTab + 1; - if (targetHeaderItemIndex >= this.getChildItems(Tabs_1.Enum.ChildTypes.TabsHeaderItem).length) { - targetHeaderItemIndex = 0; - } + currentTabHeader = this._tabsHeadersEnabled.indexOf(this._activeTabHeaderElement); + targetHeaderItemIndex = + this._tabsHeadersEnabled[currentTabHeader + 1] === undefined + ? this._tabsHeadersEnabled[0].getDataTab() + : this._tabsHeadersEnabled[currentTabHeader + 1].getDataTab(); this.changeTab(targetHeaderItemIndex, undefined, true); break; case OSUI.GlobalEnum.Keycodes.ArrowLeft: - targetHeaderItemIndex = this.configs.StartingTab - 1; - if (targetHeaderItemIndex < 0) { - targetHeaderItemIndex = this.getChildItems(Tabs_1.Enum.ChildTypes.TabsHeaderItem).length - 1; - } + currentTabHeader = this._tabsHeadersEnabled.indexOf(this._activeTabHeaderElement); + targetHeaderItemIndex = + this._tabsHeadersEnabled[currentTabHeader - 1] === undefined + ? this._tabsHeadersEnabled[this._tabsHeadersEnabled.length - 1].getDataTab() + : this._tabsHeadersEnabled[currentTabHeader - 1].getDataTab(); this.changeTab(targetHeaderItemIndex, undefined, true); break; case OSUI.GlobalEnum.Keycodes.End: - targetHeaderItemIndex = this.getChildItems(Tabs_1.Enum.ChildTypes.TabsHeaderItem).length - 1; + targetHeaderItemIndex = this._tabsHeadersEnabled[this._tabsHeadersEnabled.length - 1].getDataTab(); this.changeTab(targetHeaderItemIndex, undefined, true); break; case OSUI.GlobalEnum.Keycodes.Home: - targetHeaderItemIndex = 0; + targetHeaderItemIndex = this._tabsHeadersEnabled[0].getDataTab(); this.changeTab(targetHeaderItemIndex, undefined, true); break; } @@ -10322,6 +10372,7 @@ var OSFramework; this._activeTabContentElement.setIsActive(); } this._updateItemsConnection(false); + this._updateListOfEnabledTabsHeader(); } _removeContentItem(childContentId) { const childContentItem = this.getChild(childContentId); @@ -10531,6 +10582,9 @@ var OSFramework; } }); } + _updateListOfEnabledTabsHeader() { + this._tabsHeadersEnabled = this.getChildItems(Tabs_1.Enum.ChildTypes.TabsHeaderItem).filter((element) => !element.selfElement.disabled); + } setA11YProperties() { OSUI.Helper.A11Y.RoleTabList(this._tabsHeaderElement.firstElementChild); OSUI.Helper.A11Y.AriaHiddenTrue(this._tabsIndicatorElement); @@ -10566,21 +10620,25 @@ var OSFramework; break; case Tabs_1.Enum.ChildNotifyActionType.AddHeaderItem: this._addHeaderItem(childItem); + this._updateListOfEnabledTabsHeader(); break; case Tabs_1.Enum.ChildNotifyActionType.Click: this._tabHeaderItemHasBeenClicked(childItem.uniqueId); break; case Tabs_1.Enum.ChildNotifyActionType.DisabledHeaderItem: this._setTabHeaderItemDisabledStatus(childItem.uniqueId, true); + this._updateListOfEnabledTabsHeader(); break; case Tabs_1.Enum.ChildNotifyActionType.EnabledHeaderItem: this._setTabHeaderItemDisabledStatus(childItem.uniqueId, false); + this._updateListOfEnabledTabsHeader(); break; case Tabs_1.Enum.ChildNotifyActionType.RemovedContentItem: this._removeContentItem(childItem.uniqueId); break; case Tabs_1.Enum.ChildNotifyActionType.RemovedHeaderItem: this._removeHeaderItem(childItem.uniqueId); + this._updateListOfEnabledTabsHeader(); break; case Tabs_1.Enum.ChildNotifyActionType.UpdateIndicator: this._handleTabIndicator(); @@ -17283,6 +17341,10 @@ var OutSystems; return result; } Utils.SetSelectedTableRow = SetSelectedTableRow; + function GetPlatformType() { + return OSFramework.OSUI.Constants.OSUIPlatform; + } + Utils.GetPlatformType = GetPlatformType; function ShowPassword(WidgetId) { const result = OutSystems.OSUI.Utils.CreateApiResponse({ errorCode: OSUI.ErrorCodes.Utilities.FailShowPassword, diff --git a/dist/ODC.OutSystemsUI.css b/dist/ODC.OutSystemsUI.css new file mode 100644 index 0000000000..26c82c270f --- /dev/null +++ b/dist/ODC.OutSystemsUI.css @@ -0,0 +1,18649 @@ +@charset "UTF-8"; +/*! +OutSystems UI 2.18.2 • ODC Platform +Website: + • https://www.outsystems.com/outsystems-ui +GitHub: + • https://github.com/OutSystems/outsystems-ui +*/ +/*! +Section Index: +0. Root - CSS Variables +1. Resets +2. HTML Elements + 2.1. Links + 2.2. Images + 2.3. Headings +3. Page Layout + 3.1. Layout + 3.2. Header + 3.3. Layout Native - Header + 3.4. Layout Side - Header + 3.5. Menu + 3.6. Layout Native - Menu + 3.7. Layout Side - Menu + 3.8. Menu - Header Logo + 3.9. Menu - App Menu Link + 3.10. Menu - App Login Info + 3.11. Content + 3.12. ThemeGrid_Container + 3.13. Section + 3.14. Login + 3.15. iOS Scroll Bounce +4. Widgets + 4.1. Inputs and TextAreas + 4.2. Switch + 4.3. Checkbox + 4.4. Dropdown + 4.5. Button + 4.6. List + 4.7. List Item + 4.8. Table + 4.9. Table - Sortable Icon + 4.10. Table - Bulk Actions + 4.11. Form + 4.12. Upload + 4.13. Button Group + 4.14. Popover + 4.15. Popup + 4.16. Feedback Message + 4.17. Radio Button +5. Providers + 5.1. Flatpickr + 5.2. NoUiSlider + 5.3. Splide + 5.4. VirtualSelect +6. Patterns + 6.1. Adaptive + 6.1.1. Columns + 6.1.2. Gallery + 6.1.3. Master Detail + 6.2. Content + 6.2.1. Accordion + 6.2.2. Accordion Item + 6.2.3. Alert + 6.2.4. Blank Slate + 6.2.5. Card + 6.2.6. Card Background + 6.2.7. Card Item + 6.2.8. Card Sectioned + 6.2.9. Chat Message + 6.2.10. Flip Content + 6.2.11. Floating Content + 6.2.12. List Item Content + 6.2.13. Section + 6.2.14. Tag + 6.2.15. Tooltip + 6.2.16. User Avatar + 6.3. Interaction + 6.3.1. Action Sheet + 6.3.2. Animate + 6.3.3. Animated Label + 6.3.4. Balloon + 6.3.5. Bottom Sheet + 6.3.6. Carousel + 6.3.7. DatePicker + 6.3.8. Dropdown + 6.3.8.1 Dropdown Search + 6.3.8.2 Dropdown Tags + 6.3.9. Floating Actions + 6.3.10. Input With Icon + 6.3.11. Lightbox Image + 6.3.12. MonthPicker + 6.3.13. Notification + 6.3.14. RangeSlider + 6.3.15. Scrollable Area + 6.3.16. Sidebar + 6.3.17. Search + 6.3.18. Stacked Cards + 6.3.19. TimePicker + 6.3.20. Video + 6.4. Navigation + 6.4.1. Bottom Bar Item + 6.4.2. Breadcrumbs + 6.4.3. OverflowMenu + 6.4.4. Pagination + 6.4.5. Section Index + 6.4.6. Submenu + 6.4.7. Tabs + 6.4.8. Timeline + 6.4.9. Wizard + 6.5. Numbers + 6.5.1. Badge + 6.5.2. Counter + 6.5.3. Icon Badge + 6.5.4. Progress + 6.5.4.1 Progress Bar + 6.5.4.2 Progress Circle + 6.5.5. Rating + 6.6. Utilities + 6.6.1. Align Center + 6.6.2. Button Loading + 6.6.3. Center Content + 6.6.4. Margin Container + 6.6.5. Separator + 6.6.6. Pull to Refresh + 6.6.7. List Updating + 6.6.8. Provider Login Button + 6.7. Advanced + 6.7.1. Dropdown ServerSide + 6.7.2. Dropdown ServerSide Item + 6.8. Deprecated Patterns + 6.8.1. Accordion + 6.8.2. Button Loading + 6.8.3. Carousel + 6.8.4. Datepicker + 6.8.5. Dropdown Search an Tags (Common) + 6.8.6. Dropdown Search + 6.8.7. Dropdown Tags + 6.8.8. Flip Content + 6.8.9. Gallery + 6.8.10. Horizontal Scroll + 6.8.11. Notification + 6.8.12. Progress Bar + 6.8.13. Progress Circle + 6.8.14. Progress Circle Fraction + 6.8.15. Section Index + 6.8.16. Sidebar + 6.8.17. Search + 6.8.18. Submenu + 6.8.19. Tabs + 6.8.20. Tooltip + 6.8.21. Video +7. Usefull Classes + 7.1. a11y (Accessibility) + 7.2. Colors - Brand + 7.3. Colors - Neutral + 7.4. Colors - Palette + 7.5. Colors - Semantic + 7.6. Colors - Others + 7.7. Text + 7.8. Typography + 7.9. Border Size + 7.10. Border Radius + 7.11. Space - Margin + 7.12. Space - Padding + 7.13. Shadow + 7.14. Box Width + 7.15. Box Height + 7.16. Display + 7.17. Display - Flex + 7.18. Display - Align + 7.19. Images + 7.20. Overflow + 7.21. Visibility + 7.22. Position + 7.23. Position - Absolute + 7.24. Miscellaneous +8. Screen Transitions +9. Keyframes - Animations + 9.1. Animate + 9.2. Button Loading + 9.3. List Item + 9.4. Feedback Message + 9.5. Pull To Refresh + 9.6. Miscellaneous +10. Service Studio Preview +*/ +/*! ============================================================================== +0. Root - CSS Variables +=============================================================================== */ +:root{ + /*! Typography - Size */ + --font-size-h1:32px; + --font-size-h2:28px; + --font-size-h3:26px; + --font-size-h4:22px; + --font-size-h5:20px; + --font-size-h6:18px; + --font-size-display:36px; + --font-size-base:16px; + --font-size-s:14px; + --font-size-xs:12px; + --font-size-label:11px; + /*! Typography - Weight */ + --font-light:300; + --font-regular:400; + --font-semi-bold:600; + --font-bold:700; + /*! Color - Brand */ + --color-primary:#1068eb; + --color-secondary:#303d60; + --color-primary-hover:#295fd6; + --color-primary-selected:rgba(20, 110, 245, 0.12); + --color-primary-lightest:linear-gradient(rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.9)); + /*! Color - Focus */ + --color-focus-outer:#ffd337; + --color-focus-inner:var(--color-neutral-10); + /*! Color - Extended */ + --color-red-lightest:#faeaea; + --color-red-lighter:#e9aaaa; + --color-red-light:#d96a6a; + --color-red:#c92a2a; + --color-red-dark:#ab2424; + --color-red-darker:#8d1d1d; + --color-red-darkest:#6f1717; + --color-orange-lightest:#fef0e6; + --color-orange-lighter:#fcc29c; + --color-orange-light:#f99551; + --color-orange:#f76707; + --color-orange-dark:#d25806; + --color-orange-darker:#ad4805; + --color-orange-darkest:#883904; + --color-yellow-lightest:#fef5e5; + --color-yellow-lighter:#fbd999; + --color-yellow-light:#f8bc4c; + --color-yellow:#f59f00; + --color-yellow-dark:#d08700; + --color-yellow-darker:#ac6f00; + --color-yellow-darkest:#875700; + --color-lime-lightest:#f1f8e8; + --color-lime-lighter:#c7e3a2; + --color-lime-light:#9ecd5c; + --color-lime:#74b816; + --color-lime-dark:#639c13; + --color-lime-darker:#51810f; + --color-lime-darkest:#40650c; + --color-green-lightest:#ebf7ed; + --color-green-lighter:#afe0b8; + --color-green-light:#73c982; + --color-green:#37b24d; + --color-green-dark:#2f9741; + --color-green-darker:#267d36; + --color-green-darkest:#1e622a; + --color-teal-lightest:#e6f2ef; + --color-teal-lighter:#9cccbd; + --color-teal-light:#52a58c; + --color-teal:#087f5b; + --color-teal-dark:#076c4d; + --color-teal-darker:#065940; + --color-teal-darkest:#044632; + --color-cyan-lightest:#e7f2f4; + --color-cyan-lighter:#9eccd3; + --color-cyan-light:#56a6b2; + --color-cyan:#0d8091; + --color-cyan-dark:#0b6d7b; + --color-cyan-darker:#095a66; + --color-cyan-darkest:#074650; + --color-blue-lightest:#e8f2fa; + --color-blue-lighter:#a3c9ea; + --color-blue-light:#5fa1db; + --color-blue:#1a79cb; + --color-blue-dark:#1667ad; + --color-blue-darker:#12558e; + --color-blue-darkest:#0e4370; + --color-indigo-lightest:#eceffd; + --color-indigo-lighter:#b3c1f7; + --color-indigo-light:#7b92f1; + --color-indigo:#4263eb; + --color-indigo-dark:#3854c8; + --color-indigo-darker:#2e45a5; + --color-indigo-darkest:#243681; + --color-violet-lightest:#f1edfd; + --color-violet-lighter:#c6b6f6; + --color-violet-light:#9b7fef; + --color-violet:#7048e8; + --color-violet-dark:#5f3dc5; + --color-violet-darker:#4e32a2; + --color-violet-darkest:#3e2880; + --color-grape-lightest:#f7ecfa; + --color-grape-lighter:#dfb2e9; + --color-grape-light:#c678d9; + --color-grape:#ae3ec9; + --color-grape-dark:#9435ab; + --color-grape-darker:#7a2b8d; + --color-grape-darkest:#60226f; + --color-pink-lightest:#fbebf0; + --color-pink-lighter:#efadc4; + --color-pink-light:#e27098; + --color-pink:#d6336c; + --color-pink-dark:#b62b5c; + --color-pink-darker:#96244c; + --color-pink-darkest:#761c3b; + /*! Color - Neutral */ + --color-neutral-0:#ffffff; + --color-neutral-1:#f8f9fa; + --color-neutral-2:#f1f3f5; + --color-neutral-3:#e9ecef; + --color-neutral-4:#dee2e6; + --color-neutral-5:#ced4da; + --color-neutral-6:#adb5bd; + --color-neutral-7:#6a7178; + --color-neutral-8:#4f575e; + --color-neutral-9:#272b30; + --color-neutral-10:#101213; + /*! Color - Semantic */ + --color-error-light:#fceaea; + --color-error:#dc2020; + --color-warning-light:#fdf6e5; + --color-warning:#e9a100; + --color-success-light:#eaf3eb; + --color-success:#29823b; + --color-info-light:#e5f5fc; + --color-info:#017aad; + /*! Overlays */ + --overlay-background:rgba(0, 0, 0, 0.25); + /*! Space - Sizes */ + --space-none:0; + --space-xs:4px; + --space-s:8px; + --space-base:16px; + --space-m:24px; + --space-l:32px; + --space-xl:40px; + --space-xxl:48px; + /*! Border Radius */ + --border-radius-none:0; + --border-radius-soft:4px; + --border-radius-rounded:100px; + --border-radius-circle:100%; + /*! Border Size */ + --border-size-none:0; + --border-size-s:1px; + --border-size-m:2px; + --border-size-l:3px; + /*! Elevation / Shadow */ + --shadow-none:none; + --shadow-xs:0 1px 2px rgba(0, 0, 0, 0.1); + --shadow-s:0 2px 4px rgba(0, 0, 0, 0.1); + --shadow-m:0 4px 6px rgba(0, 0, 0, 0.1); + --shadow-l:0 6px 8px rgba(0, 0, 0, 0.1); + --shadow-xl:0 8px 10px rgba(0, 0, 0, 0.1); + /*! App Settings */ + --header-color:#ffffff; + --color-background-body:#f3f6f8; + --color-background-login:#ffffff; + --header-size:56px; + --header-size-content:48px; + --side-menu-size:300px; + --bottom-bar-size:56px; + --footer-height:0px; + /*! Set the StatusBar variable that will be overwritten when it will be enable due to miss calculations! */ + --status-bar-height:0px; + /*! iOS Safe Areas (Notch Support) */ + --os-safe-area-top:env(safe-area-inset-top); + --os-safe-area-right:env(safe-area-inset-right); + --os-safe-area-bottom:env(safe-area-inset-bottom); + --os-safe-area-left:env(safe-area-inset-left); + /*! Layer System */ + --layer-system-scale:5; + --layer-above:var(--layer-system-scale); + --layer-below:calc(-1 * var(--layer-system-scale)); + /*! Global Layers */ + --layer-global-screen:0; + --layer-global-elevated:calc(var(--layer-above) + var(--layer-global-screen)); + --layer-global-navigation:calc(var(--layer-above) + var(--layer-global-elevated)); + --layer-global-off-canvas:calc(var(--layer-above) + var(--layer-global-navigation)); + --layer-global-instant-interaction:calc(var(--layer-above) + var(--layer-global-off-canvas)); + /*! Auxiliary */ + --layer-global-negative:-1; + --layer-global-auto:auto; + /*! Local Layers */ + --layer-local-tier-1:1; + --layer-local-tier-2:2; + --layer-local-tier-3:3; + --layer-local-tier-4:4; + --layer-local-tier-5:5; + /*! Fixed/Absolute Patterns that need their variables on a global level to be referenced on all DOM contexts */ + --osui-bottom-sheet-layer:var(--layer-global-off-canvas); + --osui-notification-layer:var(--layer-global-instant-interaction); + --osui-popup-layer:var(--layer-global-off-canvas); + --osui-sidebar-layer:var(--layer-global-off-canvas); + --osui-menu-layer:calc(var(--layer-global-navigation) + var(--layer-local-tier-2)); +} +/*! ============================================================================== +1. Resets +=============================================================================== */ +*{ + -webkit-box-sizing:border-box; + box-sizing:border-box; + -webkit-tap-highlight-color:rgba(0, 0, 0, 0); +} +html{ + color:var(--color-neutral-9); + font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + -moz-osx-font-smoothing:grayscale; + -webkit-font-smoothing:antialiased; + overflow:hidden; + overflow-x:hidden; + -webkit-text-size-adjust:100%; + -ms-text-size-adjust:100%; +} +html{ + -servicestudio-overflow:hidden; +} +body{ + background-color:var(--color-background-body); + direction:ltr; + font-size:var(--font-size-s); + line-height:1.5; + margin:0; +} +:focus{ + outline:0; +} +::-moz-focus-inner{ + border:0; +} +.has-accessible-features :focus{ + -webkit-box-shadow:0 0 0 3px var(--color-focus-outer); + box-shadow:0 0 0 3px var(--color-focus-outer); +} +abbr[title]{ + border-bottom:0; + text-decoration:underline; +} +div[onclick]{ + cursor:pointer; +} +label{ + color:var(--color-neutral-8); +} +[data-label].mandatory:after{ + color:var(--color-error); + margin-left:var(--space-xs); +} +input, +textarea, +select, +button{ + -webkit-appearance:none; + -moz-appearance:none; + appearance:none; + font-family:inherit; + font-size:100%; + line-height:1.25; + margin:0; +} +[type=checkbox], +[type=radio]{ + border:0; + padding:0; +} +[type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button{ + height:auto; +} +[type=search]{ + -webkit-appearance:textfield; + -moz-appearance:textfield; + appearance:textfield; + outline-offset:-2px; +} +[type=search]::-webkit-search-cancel-button, [type=search]::-webkit-search-decoration{ + -webkit-appearance:none; + appearance:none; +} +input[type=time], input[type=date], input[type=datetime], input[type=datetime-local], input[type=time]:empty{ + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; +} +.chrome input[type=time], .chrome input[type=date], .chrome input[type=datetime], .chrome input[type=datetime-local], .chrome input[type=time]:empty{ + display:inline-block; +} +::-webkit-file-upload-button{ + -webkit-appearance:button; + appearance:button; +} +select::-ms-expand{ + display:none; +} +input::-ms-clear{ + display:none; +} +.focus-trap-top{ + top:0; +} +.focus-trap-bottom{ + bottom:0; +} +/*! ============================================================================== +2. HTML Elements +=============================================================================== */ +/*! 2.1. Links */ +a{ + text-decoration:none; + -webkit-text-decoration-skip:objects; +} +a, a:visited{ + color:var(--color-primary); + -webkit-transition:all 180ms linear; + transition:all 180ms linear; +} +a:hover, a:focus{ + color:var(--color-primary-hover); + text-decoration:underline; +} +a[disabled]{ + color:var(--color-neutral-6); +} +.phone a:hover, .phone a:focus, +.tablet a:hover, +.tablet a:focus{ + text-decoration:none; +} +.has-accessible-features a:focus{ + background-color:var(--color-focus-outer); + -webkit-box-shadow:0 2px var(--color-focus-inner); + box-shadow:0 2px var(--color-focus-inner); + color:var(--color-neutral-10); +} +.has-accessible-features a:focus, .has-accessible-features a:focus:hover{ + text-decoration:none; +} +.has-accessible-features a[disabled]{ + color:var(--color-neutral-6); +} +/*! 2.2. Images */ +img{ + max-width:100%; +} +figure{ + margin:0; +} +/*! 2.3. Headings */ +h1, +.heading1, +h2, +.heading2, +h3, +.heading3, +h4, +.heading4, +h5, +.heading5, +h6, +.heading6, +.font-size-display{ + font-weight:var(--font-semi-bold); + line-height:1.25; + margin:0; +} +h1, +.heading1{ + font-size:var(--font-size-h1); +} +h2, +.heading2{ + font-size:var(--font-size-h2); +} +h3, +.heading3{ + font-size:var(--font-size-h3); +} +h4, +.heading4{ + font-size:var(--font-size-h4); +} +h5, +.heading5{ + font-size:var(--font-size-h5); +} +h6, +.heading6{ + font-size:var(--font-size-h6); +} +.font-size-display{ + font-size:var(--font-size-display); +} +.font-size-h1{ + font-size:var(--font-size-h1); +} +.font-size-h2{ + font-size:var(--font-size-h2); +} +.font-size-h3{ + font-size:var(--font-size-h3); +} +.font-size-h4{ + font-size:var(--font-size-h4); +} +.font-size-h5{ + font-size:var(--font-size-h5); +} +.font-size-h6{ + font-size:var(--font-size-h6); +} +.tablet h1, +.tablet .heading1{ + font-size:calc(var(--font-size-h1) - 2px); +} +.tablet h2, +.tablet .heading2{ + font-size:calc(var(--font-size-h2) - 2px); +} +.tablet h3, +.tablet .heading3{ + font-size:calc(var(--font-size-h3) - 2px); +} +.tablet h4, +.tablet .heading4{ + font-size:calc(var(--font-size-h4) - 1px); +} +.tablet h5, +.tablet .heading5{ + font-size:calc(var(--font-size-h5) - 1px); +} +.tablet h6, +.tablet .heading6{ + font-size:calc(var(--font-size-h6) - 1px); +} +.tablet .font-size-display{ + font-size:calc(var(--font-size-display) - 2px); +} +.phone h1, +.phone .heading1{ + font-size:calc(var(--font-size-h1) - 4px); +} +.phone h2, +.phone .heading2{ + font-size:calc(var(--font-size-h2) - 4px); +} +.phone h3, +.phone .heading3{ + font-size:calc(var(--font-size-h3) - 4px); +} +.phone h4, +.phone .heading4{ + font-size:calc(var(--font-size-h4) - 2px); +} +.phone h5, +.phone .heading5{ + font-size:calc(var(--font-size-h5) - 2px); +} +.phone h6, +.phone .heading6{ + font-size:calc(var(--font-size-h6) - 2px); +} +.phone .font-size-display{ + font-size:calc(var(--font-size-display) - 4px); +} +/*! ============================================================================== +3. Page Layout +=============================================================================== */ +/*! 3.1. Layout */ +html, +body, +#reactContainer, +#transitionContainer, +.screen-container{ + height:100%; +} +.screen-container{ + overflow-x:hidden; + overflow-y:auto; +} +.layout{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + min-height:100vh; +} +.layout.layout-top, .layout.layout-side:not(.layout-native){ + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; +} +.layout.layout-left{ + -webkit-box-orient:horizontal; + -webkit-box-direction:normal; + -ms-flex-direction:row; + flex-direction:row; +} +.layout.layout-side .main{ + margin-left:var(--side-menu-size); +} +.layout.layout-side.aside-overlay .main{ + margin-left:0; +} +.layout.layout-native{ + -servicestudio-min-height:100vh !important; +} +.layout.layout-native .main{ + width:100%; +} +.layout.aside-expandable .main{ + margin-left:0; +} +.layout .main{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-flex:1; + -ms-flex:1; + flex:1; + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; +} +.main, +.fixed-header .main{ + padding-top:0; +} +.layout-native .aside-navigation, +.layout-top .aside-navigation{ + -servicestudio-display:none !important; +} +.ios .layout{ + min-height:100%; +} +.ios .layout-native .footer{ + height:calc(var(--os-safe-area-bottom) + var(--bottom-bar-size)); +} +.ios .layout .header{ + padding-top:var(--os-safe-area-top); +} +.desktop .layout-native.aside-visible, .desktop .layout-native.aside-expandable, +.tablet .layout-native.aside-visible, +.tablet .layout-native.aside-expandable{ + --side-menu-size:264px; +} +.desktop .layout-native.aside-visible .main, .desktop .layout-native.aside-expandable .main{ + width:calc(100% - var(--side-menu-size)); +} +.tablet.landscape .layout-native.menu-visible.aside-visible .main, .tablet.landscape .layout-native.menu-visible.aside-expandable .main{ + margin-left:var(--side-menu-size); + width:calc(100% - var(--side-menu-size)); +} +.tablet.landscape .layout-side.layout-native.aside-expandable.menu-visible .main{ + margin-left:var(--side-menu-size); +} +.tablet.landscape .layout-side.layout-native.aside-expandable .main{ + margin-right:0; +} +.tablet .layout-side .main, +.phone .layout-side .main{ + margin-left:0; +} +.phone .layout:not(.layout-native) [class*=ThemeGrid_Width]:not(.no-responsive){ + margin:var(--space-none) var(--space-none) var(--space-base) var(--space-none); + width:100%; +} +.is-rtl.tablet .layout-native.aside-visible .main, .is-rtl.tablet .layout-native.aside-expandable .main{ + margin-left:0; +} +.is-rtl.tablet .layout-side .main{ + margin-right:0; +} +.is-rtl.tablet.landscape .layout-side.layout-native.aside-expandable.menu-visible .main{ + margin-left:0; + margin-right:var(--side-menu-size); +} +.is-rtl.tablet.landscape .layout-side.layout-native.aside-expandable .main{ + margin-right:0; +} +.is-rtl.phone .layout-side .main{ + margin-right:0; +} +.is-rtl .layout-side .main{ + margin-left:0; + margin-right:var(--side-menu-size); +} +.is-rtl .layout-side.aside-overlay .main{ + margin-right:0; +} +.is-rtl .aside-expandable .main{ + margin-right:0; +} +.layout .main-content .layout{ + -servicestudio-min-width:calc(100vw - var(--space-xl) * 2); +} +.phone .layout .main-content .layout{ + -servicestudio-min-width:calc(100vw - var(--space-base) * 2); +} +.phone .layout .main-content .layout.layout-native{ + -servicestudio-min-width:100vw; +} +/*! 3.2. Header */ +.header{ + background-color:var(--header-color); + -webkit-box-shadow:0 1px 5px 0 rgba(21, 24, 26, 0.1); + box-shadow:0 1px 5px 0 rgba(21, 24, 26, 0.1); + z-index:var(--layer-global-navigation); +} +.header{ + -servicestudio-position:relative; +} +.header-top{ + height:var(--header-size); +} +.header-logo{ + padding-right:var(--space-base); +} +.header-logo .application-name{ + word-break:break-word; +} +.header-navigation{ + -webkit-box-flex:1; + -ms-flex:1; + flex:1; +} +.header .header-content{ + height:100%; +} +.header .header-content > [data-block*=ApplicationTitle] .application-name{ + margin-right:var(--space-m); +} +.header .app-logo{ + border-radius:var(--border-radius-soft); + margin-right:var(--space-s); + max-height:var(--header-size); + max-width:120px; +} +.fixed-header .header{ + left:0; + position:sticky; + right:0; + top:0; +} +.menu-icon{ + background-color:transparent; + border:none; + cursor:pointer; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; + height:100%; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + margin-right:var(--space-m); + padding:0; + width:24px; +} +.menu-icon-line{ + background-color:var(--color-neutral-8); + border-radius:20px; + height:3px; + margin:2px 0; + width:24px; +} +.menu-back{ + color:var(--color-neutral-8); +} +.user-info{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + height:100%; +} +.user-info div{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; +} +.aside-expandable .header .ThemeGrid_Container{ + max-width:100%; +} +.layout-native .app-menu-icon.back .menu-icon, +.desktop .menu-icon, +.tablet.landscape .layout-native.aside-visible .menu-icon, +.app-menu-icon.back .menu-icon, +.app-menu-icon:not(.back) .menu-back{ + display:none; +} +.desktop .header-content > [data-block*=ApplicationTitle] .application-name{ + display:none; +} +.desktop .aside-expandable .menu-icon, +.desktop .aside-overlay .menu-icon{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; +} +.tablet .layout-top .header-navigation, +.phone .layout-top .header-navigation{ + height:100vh; + left:0; + position:fixed; + top:0; + z-index:var(--layer-global-navigation); +} +.is-rtl .header-logo{ + padding-left:var(--space-base); + padding-right:0; +} +.is-rtl .header .header-content > [data-block*=ApplicationTitle] .application-name{ + margin-right:0; + margin-left:var(--space-m); +} +.is-rtl .app-logo, +.is-rtl .layout-side .app-logo{ + margin-left:var(--space-s); + margin-right:0; +} +.is-rtl .menu-icon{ + margin-left:var(--space-m); + margin-right:0; +} +.osx.tablet .layout-top:not(.menu-visible) .header-navigation, +.osx.phone .layout-top:not(.menu-visible) .header-navigation{ + pointer-events:none; +} +/*! 3.3. Layout Native - Header */ +.layout-native.hide-header-on-scroll .header{ + top:calc(-1 * (var(--header-size) + var(--os-safe-area-top))); +} +.layout-native .header{ + position:sticky; + top:0; +} +.layout-native .header-top{ + padding:0 var(--space-l); +} +.layout-native .header-title{ + font-size:var(--font-size-h5); + font-weight:var(--font-regular); +} +.layout-native .header-title{ + -servicestudio-text-align:center; + -servicestudio-width:100%; +} +.layout-native .header-left{ + -webkit-box-flex:1; + -ms-flex:1; + flex:1; + margin-right:var(--space-base); +} +.layout-native .header-right{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-flex:1; + -ms-flex:1; + flex:1; + -webkit-box-pack:end; + -ms-flex-pack:end; + justify-content:flex-end; + margin-left:var(--space-base); + margin-right:auto; +} +.layout-native .header-right{ + -servicestudio-min-width:-webkit-fit-content; + -servicestudio-min-width:-moz-fit-content; + -servicestudio-min-width:fit-content; +} +.layout-native h1.header-title{ + -servicestudio-text-align:center; + -servicestudio-width:100%; +} +.layout-native .content-bottom{ + bottom:0; + position:sticky; + z-index:var(--layer-global-navigation); +} +.layout-native .menu-icon{ + margin-right:0; +} +.landscape .layout.layout-native .header, .landscape .layout.layout-native:not(.blank) .main-content, +.landscape .layout.layout-native .bottom-bar-wrapper{ + padding-left:var(--os-safe-area-left); + padding-right:var(--os-safe-area-right); +} +.landscape .layout.layout-native .app-menu{ + padding-bottom:var(--os-safe-area-bottom); +} +.tablet .layout-native .header-top, +.phone .layout-native .header-top{ + padding:0 var(--space-m); +} +.tablet .layout-native .header-title{ + font-size:calc(var(--font-size-h5) - 1px); +} +.phone .layout-native .header-title{ + font-size:calc(var(--font-size-h5) - 2px); +} +.android[data-status-bar-height] .layout-native.hide-header-on-scroll .header{ + top:calc(-1 * (var(--header-size) + var(--status-bar-height))); +} +.android[data-status-bar-height] .layout-native .header, +.android[data-status-bar-height] .layout-native .app-menu{ + padding-top:var(--status-bar-height); +} +.ios .layout-native .header{ + padding-top:var(--os-safe-area-top); +} +.is-rtl .layout-native .header-left{ + margin-left:var(--space-base); + margin-right:0; +} +.is-rtl .layout-native .header-right{ + margin-left:auto; + margin-right:var(--space-base); +} +/*! 3.4. Layout Side - Header */ +.layout-side.fixed-header.aside-expandable .header{ + left:0; +} +.layout-side.fixed-header.aside-overlay .header{ + left:0; +} +.layout-side.fixed-header .header{ + left:var(--side-menu-size); +} +.layout-side.layout-native.aside-expandable .main .header{ + z-index:var(--layer-global-navigation); +} +.layout-side .aside-expandable:not(.fixed-header) .main .header{ + margin-left:calc(var(--side-menu-size) * -1); +} +.layout-side .aside-expandable.menu-visible:not(.fixed-header) .main .header{ + margin-left:0; +} +.layout-side .aside-expandable.menu-visible .header{ + left:0; +} +.layout-side .header-navigation{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; +} +.desktop .layout-side.layout-native.aside-expandable .header{ + margin-left:0; +} +.desktop .aside-expandable .header{ + z-index:var(--layer-global-navigation); +} +.tablet .layout-side.aside-expandable:not(.fixed-header) .main .header, +.phone .layout-side.aside-expandable:not(.fixed-header) .main .header{ + margin-left:0; +} +.tablet .layout-side.fixed-header .header, +.phone .layout-side.fixed-header .header{ + left:0; +} +.tablet.portrait .layout-side.layout-native.aside-expandable .main .header{ + z-index:var(--layer-global-navigation); +} +.phone .layout-side.layout-native.aside-expandable .main .header{ + z-index:var(--layer-global-navigation); +} +.is-rtl.tablet, .is-rtl.phone{ + left:0; + right:0; +} +.is-rtl .layout-side.fixed-header.aside-expandable .header{ + left:0; + right:0; +} +.is-rtl .layout-side.fixed-header .header{ + left:0; + right:var(--side-menu-size); +} +.is-rtl .aside-expandable.menu-visible .header{ + left:0; + right:0; +} +/*! 3.5. Menu */ +.app-menu-content{ + height:100%; +} +.app-menu-content{ + -servicestudio-background-color:var(--header-color); + -servicestudio-height:auto !important; +} +.app-menu-overlay{ + background-color:var(--overlay-background); + height:100vh; + left:0; + opacity:0; + pointer-events:none; + position:fixed; + top:0; + -webkit-transition:opacity 130ms ease-in; + transition:opacity 130ms ease-in; + width:100vw; + will-change:opacity; + z-index:calc(var(--osui-menu-layer) - var(--layer-local-tier-1)); +} +.app-menu-overlay{ + -servicestudio-display:none; +} +.menu-visible .app-menu-overlay{ + opacity:1; + pointer-events:auto; + -webkit-transition:opacity 330ms ease-out; + transition:opacity 330ms ease-out; +} +.layout .app-menu-content{ + -servicestudio-height:100% !important; +} +.layout-top .header-content{ + -servicestudio-align-items:center; + -servicestudio-flex-direction:row; +} +.layout-blank .header-content{ + -servicestudio-align-items:center; + -servicestudio-flex-direction:row; +} +.layout-side .aside-navigation{ + -servicestudio-background-color:var(--color-neutral-0); + -servicestudio-height:100%; + -servicestudio-position:fixed; + -servicestudio-width:var(--side-menu-size); + -servicestudio-z-index:var(--layer-global-navigation); +} +.layout-side .aside-navigation > div{ + -servicestudio-height:100%; +} +.layout-side .header .app-menu-content{ + -servicestudio-flex-direction:row; + -servicestudio-position:static; + -servicestudio-width:100%; +} +.layout-side .header .app-menu-links{ + -servicestudio-align-items:center; + -servicestudio-flex-direction:row; +} +.layout-side .header-navigation > div{ + -servicestudio-height:100%; + -servicestudio-width:100%; +} +.desktop .app-menu-overlay{ + display:none; +} +.desktop .aside-overlay .app-menu-overlay{ + display:block; +} +.tablet .app-login-info, +.phone .app-login-info{ + padding:var(--space-s) var(--space-m); +} +.tablet .app-menu-content, +.phone .app-menu-content{ + background-color:var(--color-neutral-0); + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; + height:100%; + left:calc(-1 * var(--side-menu-size)); + position:fixed; + top:0; + -webkit-transform:translateX(0) translateZ(0); + transform:translateX(0) translateZ(0); + -webkit-transition:-webkit-transform 130ms ease-in; + transition:-webkit-transform 130ms ease-in; + transition:transform 130ms ease-in; + transition:transform 130ms ease-in, -webkit-transform 130ms ease-in; + width:var(--side-menu-size); + will-change:transform; + z-index:var(--osui-menu-layer); +} +.tablet .menu-visible .app-menu-content, +.phone .menu-visible .app-menu-content{ + -webkit-transform:translateX(var(--side-menu-size)) translateZ(0); + transform:translateX(var(--side-menu-size)) translateZ(0); + -webkit-transition:-webkit-transform 330ms ease-out; + transition:-webkit-transform 330ms ease-out; + transition:transform 330ms ease-out; + transition:transform 330ms ease-out, -webkit-transform 330ms ease-out; +} +.tablet .layout-side .header .app-menu-content, +.tablet .layout-side .aside-navigation, +.phone .layout-side .header .app-menu-content, +.phone .layout-side .aside-navigation{ + -servicestudio-display:none; +} +.tablet.landscape .layout-native.aside-expandable .app-menu-overlay{ + display:none; +} +.phone .app-menu-content{ + padding-bottom:var(--os-safe-area-bottom); + padding-left:var(--os-safe-area-left); +} +.android[data-status-bar-height].portrait .app-menu-content{ + padding-top:var(--status-bar-height); +} +.android[data-status-bar-height].landscape .app-menu-content{ + padding-left:var(--status-bar-height); +} +.ios .app-menu-content{ + padding-bottom:var(--os-safe-area-bottom); + padding-top:var(--os-safe-area-top); +} +.is-rtl .app-menu-content{ + left:auto; + right:calc(-1 * var(--side-menu-size)); +} +.is-rtl .menu-visible .app-menu-content{ + right:0; + -webkit-transform:translateX(0) translateZ(0); + transform:translateX(0) translateZ(0); +} +.is-rtl.tablet .menu-visible .app-menu-content, .is-rtl.phone .menu-visible .app-menu-content{ + right:0; + -webkit-transform:translateX(0) translateZ(0); + transform:translateX(0) translateZ(0); + -webkit-transition:all 330ms ease-out; + transition:all 330ms ease-out; +} +/*! 3.6. Layout Native - Menu */ +.layout-native.menu-visible .app-menu-content:after{ + pointer-events:none; +} +.layout-native .app-menu-content:after{ + background:transparent; + content:""; + height:100%; + position:absolute; + right:-24px; + top:calc(var(--header-size) + var(--header-size-content)); + width:24px; +} +.desktop .layout.layout-native.layout-side.aside-expandable .app-menu-content{ + padding-top:calc(var(--header-size) + var(--header-size-content) + var(--os-safe-area-top)); +} +.desktop .layout.layout-native.layout-side.aside-expandable.hide-header-on-scroll:not(.header-is--visible) .app-menu-content{ + padding-top:var(--header-size-content); +} +.desktop .layout-native.aside-visible .app-menu-content, .desktop .layout-native.aside-expandable .app-menu-content{ + -webkit-box-shadow:var(--shadow-m); + box-shadow:var(--shadow-m); + z-index:var(--osui-menu-layer); +} +.desktop .layout-native .landscape.android[data-status-bar-height].layout-side.aside-expandable .app-menu-content, +.tablet .layout-native .landscape.android[data-status-bar-height].layout-side.aside-expandable .app-menu-content{ + padding-top:calc(var(--header-size) + var(--header-size-content) + var(--status-bar-height)); +} +.tablet.landscape .layout-native.aside-expandable .app-menu-content{ + display:none; +} +.tablet.landscape .layout-native.aside-visible .app-menu-content, .tablet.landscape .layout-native.aside-expandable .app-menu-content{ + -webkit-box-shadow:var(--shadow-m); + box-shadow:var(--shadow-m); + left:0; + z-index:var(--osui-menu-layer); +} +.tablet.landscape .layout-native.layout-side.aside-expandable .app-menu-content{ + padding-top:calc(var(--header-size) + var(--header-size-content) + var(--os-safe-area-top)); +} +.tablet.landscape .layout-side.layout-native.aside-expandable.hide-header-on-scroll:not(.header-is--visible) .app-menu-content{ + padding-top:var(--header-size-content); +} +.is-rtl .tablet.landscape.landscape.aside-visible .app-menu-content, .is-rtl .tablet.landscape.landscape.aside-expandable .app-menu-content{ + right:0; +} +/*! 3.7. Layout Side - Menu */ +.layout-side .app-logo{ + border-radius:var(--border-radius-soft); + margin-right:var(--space-s); + max-height:var(--header-size); + max-width:120px; +} +.layout-side .app-menu-content{ + background-color:var(--color-neutral-0); + bottom:0; + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; + height:auto; + position:fixed; + top:0; + width:var(--side-menu-size); + z-index:var(--osui-menu-layer); +} +.aside-overlay .app-menu-content{ + background-color:var(--color-neutral-0); + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; + height:100%; + left:calc(-1 * var(--side-menu-size)); + position:fixed; + top:0; + -webkit-transform:translateX(0) translateZ(0); + transform:translateX(0) translateZ(0); + -webkit-transition:-webkit-transform 130ms ease-in; + transition:-webkit-transform 130ms ease-in; + transition:transform 130ms ease-in; + transition:transform 130ms ease-in, -webkit-transform 130ms ease-in; + width:var(--side-menu-size); + will-change:transform; + z-index:var(--osui-menu-layer); +} +.aside-overlay.menu-visible .app-menu-content{ + -webkit-transform:translateX(var(--side-menu-size)) translateZ(0); + transform:translateX(var(--side-menu-size)) translateZ(0); + -webkit-transition:-webkit-transform 330ms ease-out; + transition:-webkit-transform 330ms ease-out; + transition:transform 330ms ease-out; + transition:transform 330ms ease-out, -webkit-transform 330ms ease-out; +} +.desktop .layout-side:not(.layout-native):not(.aside-overlay) .app-menu-content{ + left:0; + right:0; +} +.desktop .layout-side.aside-expandable:not(.fixed-header) .app-menu-content{ + padding-top:var(--header-size); + top:0; +} +.desktop .aside-expandable.menu-visible .app-menu-content{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; +} +.desktop .aside-expandable.menu-visible .main{ + margin-left:var(--side-menu-size); +} +.desktop .aside-expandable .app-menu-content{ + display:none; +} +.tablet.landscape .layout-native.aside-expandable.menu-visible .app-menu-content{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-transform:none; + -ms-transform:none; + transform:none; + -webkit-transition:none; + transition:none; +} +.is-rtl.desktop .aside-expandable.menu-visible .main{ + margin-left:0; + margin-right:var(--side-menu-size); +} +.is-rtl.tablet .app-menu-content, .is-rtl.phone .app-menu-content{ + right:calc(-1 * var(--side-menu-size)); + -webkit-transition:all 330ms ease-out; + transition:all 330ms ease-out; +} +.is-rtl:not(.portrait) .layout-side.layout-native.aside-visible .app-menu-content{ + right:0; +} +.is-rtl .layout-side .app-menu-content{ + left:auto; +} +.is-rtl .aside-overlay.menu-visible .app-menu-content{ + right:0; + -webkit-transform:translateX(0) translateZ(0); + transform:translateX(0) translateZ(0); + -webkit-transition:all 330ms ease-out; + transition:all 330ms ease-out; +} +/*! 3.8. Menu - Header Logo */ +.layout-side .header-logo{ + height:var(--header-size); + padding:var(--space-none) var(--space-m); +} +.tablet .header-logo, +.phone .header-logo{ + height:var(--header-size); + padding:var(--space-none) var(--space-m); +} +/*! 3.9. Menu - App Menu Link */ +.app-menu-links{ + -webkit-box-flex:1; + -ms-flex:1; + flex:1; + height:100%; +} +.app-menu-links{ + -servicestudio-align-items:center; + -servicestudio-display:flex; + -servicestudio-column-gap:var(--space-m); +} +.app-menu-links:empty{ + -servicestudio-position:relative; +} +.app-menu-links:empty:after{ + -servicestudio-color:var(--color-neutral-7); + -servicestudio-content:"Drag screens to this container to create menu entries"; + -servicestudio-font-size:var(--font-size-xs); + -servicestudio-left:50%; + -servicestudio-position:absolute; + -servicestudio-text-align:center; + -servicestudio-top:50%; + -servicestudio-transform:translateX(-50%) translateY(-50%); +} +.app-menu-links a{ + color:var(--color-neutral-9); +} +.app-menu-links a{ + -servicestudio-color:var(--color-neutral-9); +} +.app-menu-links a:hover, .app-menu-links a.active{ + color:var(--color-primary); + text-decoration:none; +} +body .app-menu-content .app-menu-links{ + -servicestudio-align-items:flex-start; + -servicestudio-padding:var(--space-none); + -servicestudio-width:100% !important; +} +.layout .app-menu-links:empty:after{ + -servicestudio-content:""; +} +.layout:not(.layout-side) .app-menu-links a{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + border-bottom:var(--border-size-m) solid transparent; + border-top:var(--border-size-m) solid transparent; + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; +} +.layout:not(.layout-side) .app-menu-links a.active{ + border-bottom:var(--border-size-m) solid var(--color-primary); +} +.layout-side .app-menu-links a, +.menu-visible .app-menu-links a{ + border-bottom:0; + border-left:var(--border-size-m) solid transparent; + border-top:0; + margin-left:0; + padding:var(--space-s) var(--space-m); +} +.layout-side .app-menu-links{ + -servicestudio-align-items:flex-start; +} +.layout-side .app-menu-links{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; + -webkit-overflow-scrolling:touch; + overflow-y:auto; + padding-top:var(--space-s); +} +.layout-side .app-menu-links a.active{ + border-left:var(--border-size-m) solid var(--color-primary); +} +.landscape .layout-native .app-menu-links{ + padding-left:calc(var(--os-safe-area-left) / 2); +} +.desktop .layout:not(.layout-side) .app-menu-links{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -ms-flex-wrap:wrap; + flex-wrap:wrap; +} +.phone .app-menu-links, +.tablet .app-menu-links{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; + -webkit-overflow-scrolling:touch; + overflow-y:auto; + padding-top:var(--space-s); +} +.phone .app-menu-links a, +.tablet .app-menu-links a{ + -servicestudio-margin-left:var(--space-none); + -servicestudio-padding:var(--space-s) var(--space-m); + -servicestudio-width:100%; +} +.phone .layout:not(.layout-side) .app-menu-links a.active, +.tablet .layout:not(.layout-side) .app-menu-links a.active{ + border-bottom:0; +} +.has-accessible-features .header a.active:focus{ + color:var(--color-primary); +} +.has-accessible-features .app-menu-links a:focus{ + background-color:transparent; + -webkit-box-shadow:0 0 0 3px var(--color-focus-outer); + box-shadow:0 0 0 3px var(--color-focus-outer); +} +/*! 3.10. Menu - App Login Info */ +.layout-side .app-login-info{ + padding:var(--space-base) var(--space-m); +} +.layout-side .user-info{ + -webkit-box-pack:justify; + -ms-flex-pack:justify; + justify-content:space-between; +} +.tablet .app-login-info, +.phone .app-login-info{ + padding:var(--space-base) var(--space-m); +} +.tablet .user-info, +.phone .user-info{ + -webkit-box-pack:justify; + -ms-flex-pack:justify; + justify-content:space-between; +} +/*! 3.11. Content */ +.content{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-flex:1; + -ms-flex:1; + flex:1; + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; + position:relative; +} +.content-breadcrumbs{ + margin-bottom:var(--space-base); +} +.content-top{ + -webkit-box-pack:justify; + -ms-flex-pack:justify; + justify-content:space-between; +} +.content-top-title{ + -webkit-box-flex:1; + -ms-flex:1; + flex:1; + margin-bottom:var(--space-l); +} +.content-top-title .Title_Links{ + font-size:var(--font-size-s); + font-weight:var(--font-regular); +} +.content-top-actions{ + -webkit-box-flex:1; + -ms-flex:1; + flex:1; + -webkit-box-pack:end; + -ms-flex-pack:end; + justify-content:flex-end; + margin-bottom:var(--space-l); + text-align:right; +} +.content-top-title, .content-top-actions{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -ms-flex-wrap:wrap; + flex-wrap:wrap; +} +.content-top-title > div:not([class*=ThemeGrid_Width]), .content-top-actions > div:not([class*=ThemeGrid_Width]){ + width:100%; +} +.content-middle{ + position:relative; +} +.content-middle{ + -servicestudio-min-height:420px; +} +.main-content{ + -webkit-box-flex:1; + -ms-flex:1; + flex:1; + position:relative; +} +.layout-native .content{ + background-color:var(--color-background-body); +} +.layout-native .content-middle{ + height:100%; +} +.phone .content-top{ + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; +} +.phone .content-top-actions, .phone .content-top-title{ + -ms-flex-wrap:wrap; + flex-wrap:wrap; + width:100%; +} +/*! 3.12. ThemeGrid_Container */ +.ThemeGrid_Container{ + margin:var(--space-none) auto; + width:100%; +} +.header .ThemeGrid_Container{ + padding:var(--space-none) var(--space-xl); +} +.layout .main-content.ThemeGrid_Container{ + padding:var(--space-xl); +} +.layout .footer.ThemeGrid_Container{ + padding:var(--space-base) var(--space-xl); +} +.tablet .header .ThemeGrid_Container{ + padding:var(--space-none) var(--space-m); +} +.tablet .main-content.ThemeGrid_Container{ + padding:var(--space-m); +} +.tablet .footer.ThemeGrid_Container{ + padding:var(--space-base) var(--space-m); +} +.phone .header .ThemeGrid_Container{ + padding-left:calc(var(--os-safe-area-left) + var(--space-base)); + padding-right:calc(var(--os-safe-area-right) + var(--space-base)); +} +.phone .main-content.ThemeGrid_Container{ + padding-bottom:var(--space-base); + padding-left:calc(var(--os-safe-area-left) + var(--space-base)); + padding-right:calc(var(--os-safe-area-right) + var(--space-base)); + padding-top:var(--space-base); +} +.phone .footer.ThemeGrid_Container{ + padding-left:calc(var(--os-safe-area-left) + var(--space-base)); + padding-right:calc(var(--os-safe-area-right) + var(--space-base)); +} +.layout-native .main-content.ThemeGrid_Container{ + padding:var(--space-none); +} +/*! 3.13. Section */ +.full-width-section{ + position:relative; +} +.full-width-section .ThemeGrid_Container{ + padding:var(--space-none) var(--space-xl); +} +.section-background{ + left:0; + position:absolute; + top:0; + height:100%; + overflow:hidden; + width:100%; +} +.section-background:empty{ + -servicestudio-min-height:80px; + -servicestudio-position:relative; +} +.section-background img{ + height:100%; + -o-object-fit:cover; + object-fit:cover; + width:100%; +} +.section-content{ + position:relative; +} +/*! 3.14. Login */ +.login-screen{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + background-color:var(--color-primary); + display:-webkit-box; + display:-ms-flexbox; + display:flex; + height:100%; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; +} +.login-screen > img{ + left:0; + position:absolute; + top:0; + height:100%; + -o-object-fit:cover; + object-fit:cover; + width:100%; +} +.login-form{ + background-color:var(--color-neutral-0); + border-radius:var(--border-radius-soft); + -webkit-box-shadow:var(--shadow-l); + box-shadow:var(--shadow-l); + min-width:435px; + padding:var(--space-xxl); + z-index:var(--layer-global-screen); +} +.layout-native .login-screen{ + background-color:var(--color-background-login); + padding:var(--os-safe-area-top) var(--os-safe-area-right) var(--os-safe-area-bottom) var(--os-safe-area-left); +} +.layout-native .login-form{ + border-radius:0; + -webkit-box-shadow:none; + box-shadow:none; +} +.login-button [data-block*=ButtonLoading], .login-button [data-block*=ButtonLoading] > div{ + -servicestudio-width:100% !important; +} +.android[data-status-bar-height] .layout-native .login-screen{ + padding-top:var(--status-bar-height); +} +.phone .login-form{ + margin:var(--space-none) var(--space-base); + min-width:auto; + padding:var(--space-l); + width:100%; +} +.phone .layout-native .login-form{ + background:transparent; + margin:0; +} +.phone .layout-native .login-button .btn{ + padding-bottom:var(--os-safe-area-bottom); +} +.phone .layout-native.blank .login-button .btn{ + padding-bottom:var(--space-none); +} +/*! 3.15. iOS Scroll Bounce */ +.ios .layout-native.ios-bounce:not(.hide-header-on-scroll) .main{ + display:grid; + grid-template:auto 1fr auto/1fr; + grid-template-areas:"header" "content" "footer"; + max-height:var(--viewport-height, 100vh); + width:100%; +} +.ios .layout-native.ios-bounce:not(.hide-header-on-scroll) .main{ + -servicestudio-max-height:100% !important; +} +.ios .layout-native.ios-bounce:not(.hide-header-on-scroll) .header{ + grid-area:header; + position:relative; +} +.ios .layout-native.ios-bounce:not(.hide-header-on-scroll) [data-block="Private.PullToRefresh"]{ + display:contents; +} +.ios .layout-native.ios-bounce:not(.hide-header-on-scroll) .pull-to-refresh{ + top:calc(var(--header-size) + var(--header-size-content) + var(--os-safe-area-top)); +} +.ios .layout-native.ios-bounce:not(.hide-header-on-scroll) .content{ + background-color:var(--color-background-body); + grid-area:content; + overflow-x:hidden; + overflow-y:auto; +} +.ios .layout-native.ios-bounce:not(.hide-header-on-scroll) .content-bottom{ + grid-area:footer; + position:relative; +} +/*! ============================================================================== +4. Widgets +=============================================================================== */ +/*! 4.1. Inputs and TextAreas */ +::-webkit-input-placeholder{ + color:var(--color-neutral-7); +} +::-moz-placeholder{ + color:var(--color-neutral-7); +} +:-ms-input-placeholder{ + color:var(--color-neutral-7); +} +.form-control{ +} +.form-control[data-input], .form-control[data-textarea]{ + background-color:var(--color-neutral-0); + border:var(--border-size-s) solid var(--color-neutral-5); + border-radius:var(--border-radius-soft); + color:var(--color-neutral-9); + font-size:var(--font-size-s); + -webkit-transition:all 180ms linear; + transition:all 180ms linear; +} +.form-control[data-input]:hover, .form-control[data-textarea]:hover{ + border:var(--border-size-s) solid var(--color-neutral-6); +} +.form-control[data-input]:focus, .form-control[data-textarea]:focus{ + border:var(--border-size-s) solid var(--color-primary); +} +.form-control[data-input][disabled], .form-control[data-textarea][disabled]{ + background-color:var(--color-neutral-2); + border:var(--border-size-s) solid var(--color-neutral-4); + color:var(--color-neutral-6); + pointer-events:none; +} +.form-control[data-input]{ + height:40px; + padding:var(--space-none) var(--space-base); +} +.form-control[data-textarea]{ + height:auto; + padding:var(--space-base); + resize:auto; +} +.form-control.input{ +} +.form-control.input-small[data-input]{ + font-size:var(--font-size-xs); + height:32px; + padding:var(--space-none) var(--space-s); +} +.form-control.input-small[data-textarea]{ + font-size:var(--font-size-xs); + padding:var(--space-s); +} +.form-control.input-large[data-input]{ + font-size:var(--font-size-base); + height:48px; +} +.form-control.input-large[data-textarea]{ + font-size:var(--font-size-base); +} +.form-control.not-valid[data-input], .form-control.not-valid[data-textarea]{ + border:var(--border-size-s) solid var(--color-error); +} +.tablet .form-control[data-input], +.phone .form-control[data-input]{ + font-size:var(--font-size-base); + height:48px; +} +.tablet .form-control[data-input].input-small, +.phone .form-control[data-input].input-small{ + font-size:var(--font-size-xs); + height:32px; +} +.tablet .form-control[data-textarea], +.phone .form-control[data-textarea]{ + font-size:var(--font-size-base); + height:auto; +} +.tablet .form-control[data-textarea].input-small, +.phone .form-control[data-textarea].input-small{ + font-size:var(--font-size-xs); +} +.layout-native .header-top-content .form-control[data-input]{ + background-color:var(--header-color); + border:0; + border-bottom:var(--border-size-s) solid transparent; + border-radius:0; +} +.layout-native .header-top-content .form-control[data-input]:focus{ + border-bottom:var(--border-size-s) solid var(--color-primary); +} +.has-accessible-features .form-control[data-input], .has-accessible-features .form-control[data-textarea]{ + border-color:var(--color-neutral-7); +} +.has-accessible-features .form-control[data-input]:hover, .has-accessible-features .form-control[data-textarea]:hover{ + border-color:var(--color-neutral-8); +} +.has-accessible-features .form-control[data-input]:focus, .has-accessible-features .form-control[data-textarea]:focus{ + border-color:var(--color-focus-inner); +} +.has-accessible-features .form-control[data-input].not-valid, .has-accessible-features .form-control[data-input].not-valid:hover, .has-accessible-features .form-control[data-input].not-valid:focus, .has-accessible-features .form-control[data-textarea].not-valid, .has-accessible-features .form-control[data-textarea].not-valid:hover, .has-accessible-features .form-control[data-textarea].not-valid:focus{ + border-color:var(--color-error); +} +/*! 4.2. Switch */ +[data-switch]{ + background-color:transparent; + border-radius:0; + height:32px; + overflow:initial; + width:50px; +} +[data-switch]:empty:before{ + background-color:var(--color-neutral-5); + border:var(--border-size-s) solid var(--color-neutral-5); + border-radius:var(--border-radius-rounded); + height:30px; + opacity:1; + -webkit-transition:all 180ms linear; + transition:all 180ms linear; + width:48px; +} +[data-switch]:empty:after{ + border:0; + bottom:0; + -webkit-box-shadow:none; + box-shadow:none; + height:24px; + left:0; + margin-left:0; + top:4px; + -webkit-transform:translateX(4px) translateZ(0); + transform:translateX(4px) translateZ(0); + -webkit-transition:all 180ms linear; + transition:all 180ms linear; + width:24px; +} +[data-switch]:hover:before{ + background-color:var(--color-neutral-6); + border:var(--border-size-s) solid var(--color-neutral-6); +} +[data-switch]:checked:before{ + background-color:var(--color-primary); + border:var(--border-size-s) solid var(--color-primary); +} +[data-switch]:checked:after{ + -webkit-transform:translateX(22px) translateZ(0); + transform:translateX(22px) translateZ(0); +} +[data-switch][disabled]{ + pointer-events:none; +} +[data-switch][disabled]:empty:before{ + background-color:var(--color-neutral-2); + border:var(--border-size-s) solid var(--color-neutral-4); +} +[data-switch][disabled]:empty:after{ + background-color:var(--color-neutral-5); + border:0; +} +.has-accessible-features [data-switch]{ + border-radius:var(--border-radius-rounded); +} +.has-accessible-features [data-switch]:empty:before{ + background-color:var(--color-neutral-7); + border-color:var(--color-neutral-7); +} +.has-accessible-features [data-switch]:hover:before{ + background-color:var(--color-neutral-8); + border-color:var(--color-neutral-8); +} +.has-accessible-features [data-switch]:checked:before{ + background-color:var(--color-primary); + border-color:var(--color-primary); +} +.has-accessible-features [data-switch]:focus:before{ + border-color:var(--color-focus-inner); +} +/*! 4.3. Checkbox */ +[data-checkbox]{ + height:24px; + padding:var(--space-none); + width:24px; +} +[data-checkbox]:before{ + background:var(--color-neutral-0); + border:var(--border-size-s) solid var(--color-neutral-5); + border-radius:var(--border-radius-soft); + height:22px; + opacity:1; + -webkit-transition:all 180ms linear; + transition:all 180ms linear; + width:22px; +} +[data-checkbox]:hover:before{ + border:var(--border-size-s) solid var(--color-neutral-6); +} +[data-checkbox]:checked:before{ + background:var(--color-primary); + border:var(--border-size-s) solid var(--color-primary); +} +[data-checkbox]:checked:after{ + border:var(--border-size-l) solid var(--color-neutral-0); + border-right:var(--border-size-none) !important; + border-top:var(--border-size-none) !important; + display:block; + height:4px; + left:5px; + top:7px; + width:12px; +} +[data-checkbox][disabled]{ + pointer-events:none; +} +[data-checkbox][disabled]:before, [data-checkbox][disabled]:checked:before{ + background-color:var(--color-neutral-2); + border:var(--border-size-s) solid var(--color-neutral-4); +} +[data-checkbox][disabled]:checked:after{ + border:var(--border-size-l) solid var(--color-neutral-6); +} +.tablet [data-checkbox], +.phone [data-checkbox]{ + height:32px; + width:32px; +} +.tablet [data-checkbox]:before, +.phone [data-checkbox]:before{ + height:30px; + width:30px; +} +.tablet [data-checkbox]:checked:after, +.phone [data-checkbox]:checked:after{ + left:9px; + top:11px; +} +.has-accessible-features [data-checkbox]{ + border-radius:var(--border-radius-soft); +} +.has-accessible-features [data-checkbox]:before{ + border-color:var(--color-neutral-7); +} +.has-accessible-features [data-checkbox]:hover:before{ + border-color:var(--color-neutral-8); +} +.has-accessible-features [data-checkbox]:checked:before{ + border-color:var(--color-primary); +} +.has-accessible-features [data-checkbox]:focus:before{ + border-color:var(--color-focus-inner); +} +/*! 4.4. Dropdown */ +.dropdown-container{ + cursor:initial; + position:relative; +} +.dropdown-container:after{ + border:var(--border-size-m) solid var(--color-neutral-7); + border-right:var(--border-size-none) !important; + border-top:var(--border-size-none) !important; + bottom:0; + -webkit-box-sizing:border-box; + box-sizing:border-box; + content:""; + height:8px; + left:auto; + pointer-events:none; + position:absolute; + right:16px; + top:15px; + -webkit-transform:rotate(-45deg) translateY(0) translateX(0); + -ms-transform:rotate(-45deg) translateY(0) translateX(0); + transform:rotate(-45deg) translateY(0) translateX(0); + -webkit-transition:all 300ms ease-in-out; + transition:all 300ms ease-in-out; + width:8px; +} +.dropdown-container > .dropdown-display:after{ + content:none; +} +.dropdown-container > div.dropdown-display, .dropdown-container > select.dropdown-display{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + background-color:var(--color-neutral-0); + border:var(--border-size-s) solid var(--color-neutral-5); + border-radius:var(--border-radius-soft); + color:var(--color-neutral-9); + cursor:pointer; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + font-size:var(--font-size-s); + height:40px; + padding:var(--space-none) var(--space-base); + width:100%; +} +.dropdown-container > div.dropdown-display:hover, .dropdown-container > select.dropdown-display:hover{ + border:var(--border-size-s) solid var(--color-neutral-6); +} +.dropdown-container > div.dropdown-display:focus, .dropdown-container > select.dropdown-display:focus{ + border:var(--border-size-s) solid var(--color-primary); +} +.dropdown-container.not-valid.dropdown-expanded > div.dropdown-display, .dropdown-container.not-valid > select.dropdown-display{ + border:var(--border-size-s) solid var(--color-error); +} +.dropdown-container.dropdown-expanded > div.dropdown-display{ + border:var(--border-size-s) solid var(--color-primary); +} +.dropdown-container > div.dropdown-list{ + border:var(--border-size-s) solid var(--color-neutral-4); + border-radius:var(--border-radius-soft); + -webkit-box-shadow:none; + box-shadow:none; + left:0 !important; + max-height:300px; + overflow-y:auto; + position:absolute; + width:100% !important; +} +.dropdown-container .dropdown-popup-row{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + color:var(--color-neutral-9); + display:-webkit-box; + display:-ms-flexbox; + display:flex; + height:40px; + padding:var(--space-none) var(--space-base); +} +.dropdown-container .dropdown-popup-row:hover, .dropdown-container .dropdown-popup-row-selected:hover{ + background:var(--color-neutral-2); +} +.dropdown-container .dropdown-popup-row-selected{ + background-color:var(--color-neutral-2); + color:var(--color-neutral-9); +} +.dropdown-container .dropdown-popup-row span{ + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap; +} +.dropdown-container .scrollable-list-with-scroll{ + background:none; + max-height:100%; + overflow-y:hidden; + padding:var(--space-s) var(--space-none); +} +.dropdown-container .scrollable-list-with-scroll:before, .dropdown-container .scrollable-list-with-scroll:after{ + content:none; +} +.dropdown-expanded.dropdown-container:after{ + border:var(--border-size-m) solid var(--color-primary); + -webkit-transform:rotate(135deg) translateY(-3px) translateX(3px); + -ms-transform:rotate(135deg) translateY(-3px) translateX(3px); + transform:rotate(135deg) translateY(-3px) translateX(3px); +} +.dropdown-expanded-down div.dropdown-list{ + margin-top:var(--space-xs); + top:100% !important; +} +.dropdown-expanded-up div.dropdown-list{ + bottom:100% !important; + margin-bottom:var(--space-xs); + top:auto !important; +} +.not-valid.dropdown-expanded.dropdown-container:after{ + border:var(--border-size-m) solid var(--color-neutral-7); + border-right:var(--border-size-none) !important; + border-top:var(--border-size-none) !important; + -webkit-transform:rotate(-45deg) translateY(0) translateX(0); + -ms-transform:rotate(-45deg) translateY(0) translateX(0); + transform:rotate(-45deg) translateY(0) translateX(0); +} +div.dropdown-display.dropdown-disabled, div.dropdown-display[disabled], +select.dropdown-display.dropdown-disabled, +select.dropdown-display[disabled]{ + background-color:var(--color-neutral-2); + border:var(--border-size-s) solid var(--color-neutral-4); + color:var(--color-neutral-6); + pointer-events:none; +} +div.dropdown-display-content{ + width:100%; +} +div.dropdown-display-content > span, div.dropdown-display-content > div{ + font-size:var(--font-size-s); +} +select.dropdown-display[disabled]{ + opacity:1; +} +.tablet .dropdown-container:after, +.phone .dropdown-container:after{ + top:20px; +} +.tablet div.dropdown-display, +.tablet select.dropdown-display, +.phone div.dropdown-display, +.phone select.dropdown-display{ + font-size:var(--font-size-base); + height:48px; +} +.tablet div.dropdown-display .dropdown-display-content > span, .tablet div.dropdown-display .dropdown-display-content > div, +.tablet select.dropdown-display .dropdown-display-content > span, +.tablet select.dropdown-display .dropdown-display-content > div, +.phone div.dropdown-display .dropdown-display-content > span, +.phone div.dropdown-display .dropdown-display-content > div, +.phone select.dropdown-display .dropdown-display-content > span, +.phone select.dropdown-display .dropdown-display-content > div{ + font-size:var(--font-size-base); +} +.is-rtl .dropdown-container:after{ + left:16px; + right:auto; +} +.has-accessible-features .dropdown-container.dropdown-expanded > div.dropdown-display{ + border-color:var(--color-focus-inner); + -webkit-box-shadow:0 0 0 3px var(--color-focus-outer); + box-shadow:0 0 0 3px var(--color-focus-outer); +} +.has-accessible-features .dropdown-container > div.dropdown-display, .has-accessible-features .dropdown-container > select.dropdown-display{ + border-color:var(--color-neutral-7); +} +.has-accessible-features .dropdown-container > div.dropdown-display:hover, .has-accessible-features .dropdown-container > select.dropdown-display:hover{ + border-color:var(--color-neutral-8); +} +.has-accessible-features .dropdown-container > select.dropdown-display:focus{ + border-color:var(--color-focus-inner); +} +/*! 4.5. Button */ +.btn{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + background-color:var(--color-neutral-0); + border:var(--border-size-s) solid currentColor; + border-radius:var(--border-radius-soft); + color:var(--color-primary); + cursor:pointer; + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; + -webkit-filter:brightness(1); + filter:brightness(1); + font-weight:var(--font-semi-bold); + height:40px; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + line-height:1; + margin:0; + padding:var(--space-none) var(--space-base); + -webkit-transition:all 100ms linear; + transition:all 100ms linear; +} +.btn:hover:active{ + -webkit-filter:brightness(0.8); + filter:brightness(0.8); +} +.btn[class*=background-]{ + border:var(--border-size-s) solid transparent; + color:var(--color-neutral-0); +} +.btn[class*=text-]{ + background-color:var(--color-neutral-0); + border:var(--border-size-s) solid currentColor; +} +.btn + .btn{ + margin-left:var(--space-m); +} +.btn-primary{ + background-color:var(--color-primary); + border:var(--border-size-s) solid var(--color-primary); + color:var(--color-neutral-0); +} +.btn-small{ + font-size:var(--font-size-xs); + height:32px; + padding:var(--space-none) var(--space-s); +} +.btn-large{ + font-size:var(--font-size-base); + height:48px; +} +.btn-cancel{ + background-color:var(--color-neutral-0); + border:var(--border-size-s) solid var(--color-neutral-8); + color:var(--color-neutral-7); +} +.btn-success{ + background-color:var(--color-success); + border:var(--border-size-s) solid var(--color-success); + color:var(--color-neutral-0); +} +.btn-error{ + background-color:var(--color-error); + border:var(--border-size-s) solid var(--color-error); + color:var(--color-neutral-0); +} +.btn[disabled]{ + background-color:var(--color-neutral-2); + border:var(--border-size-s) solid var(--color-neutral-4); + color:var(--color-neutral-6); + pointer-events:none; +} +.desktop .btn:hover{ + -webkit-filter:brightness(0.9); + filter:brightness(0.9); +} +.tablet .btn, +.phone .btn{ + font-size:var(--font-size-base); + height:48px; +} +.tablet .btn-small, +.phone .btn-small{ + font-size:var(--font-size-s); + height:40px; +} +.tablet .btn-large, +.phone .btn-large{ + height:56px; +} +.phone .layout:not(.layout-native) .btn{ + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; + margin-left:0; + width:100%; +} +.phone .layout:not(.layout-native) .btn + .btn{ + margin-top:var(--space-base); +} +.phone .layout:not(.layout-native) .flex-direction-column-reverse + .btn{ + margin-bottom:var(--space-base); + margin-top:var(--space-none); +} +.has-accessible-features .btn:focus{ + border-color:var(--color-focus-inner); +} +.layout-native .header-right .btn{ + background-color:transparent; + border:0; + color:var(--color-primary); + font-size:var(--font-size-base); + padding:0; +} +.layout-native .footer > .btn{ + border-radius:0; + height:100%; + padding-bottom:var(--os-safe-area-bottom); +} +.layout-native .bottom-bar .btn{ + padding-bottom:var(--space-none); +} +/*! 4.6. List */ +.list.list-group{ + overflow:hidden; + position:relative; +} +/*! 4.7. List Item */ +.list-item{ + border-bottom:var(--border-size-s) solid var(--color-neutral-4); + overflow:hidden; + padding:var(--space-m); + position:relative; +} +.list-item:last-of-type{ + border-bottom:none; +} +.list-item.list-item-no-click-effect .scale-animation{ + background:transparent !important; + opacity:0 !important; +} +.list-item .scale-animation{ + -webkit-animation:list-item-scale-animation 1500ms; + animation:list-item-scale-animation 1500ms; + background-color:rgba(0, 0, 0, 0.1); + border-radius:100px; + display:block; + height:10px; + left:50%; + pointer-events:none; + position:absolute; + top:50%; + width:10px; + will-change:transform; + z-index:var(--layer-global-screen); +} +.list .list-item{ + background-color:var(--color-neutral-0); +} +.layout-native .list-item{ + padding:var(--space-base); +} +.desktop .list .list-item:hover:not(.list-item-no-hover):not(.list-item-selected){ + background-color:var(--color-neutral-2); +} +.desktop .list .list-item-selected, +.tablet.landscape .list .list-item-selected{ + background:var(--color-primary) var(--color-primary-lightest); +} +.desktop .list .list-item-selected .list-item-content-title, +.tablet.landscape .list .list-item-selected .list-item-content-title{ + color:var(--color-neutral-10); +} +.desktop .list .list-item-selected .list-item-content-text, +.tablet.landscape .list .list-item-selected .list-item-content-text{ + color:var(--color-neutral-8); +} +.desktop .list .list-item-selected .list-item-content-right .icon, +.tablet.landscape .list .list-item-selected .list-item-content-right .icon{ + color:var(--color-primary); +} +/*! 4.8. Table */ +.table{ + border:var(--border-size-s) solid var(--color-neutral-4); + border-radius:var(--border-radius-soft); + border-spacing:0; + empty-cells:show; + white-space:nowrap; + width:100%; + word-break:keep-all; +} +.table-header{ + -servicestudio-border-bottom:none !important; +} +.table-header th{ + background-color:var(--color-neutral-0); + border-bottom:var(--border-size-s) solid var(--color-neutral-4); + color:var(--color-neutral-8); + font-weight:var(--font-semi-bold); + height:48px; + padding:var(--space-none) var(--space-m); + text-align:left; +} +.table-header th:first-child{ + border-radius:var(--border-radius-soft) var(--border-radius-none) var(--border-radius-none) var(--border-radius-none); +} +.table-header th:last-child{ + border-radius:var(--border-radius-none) var(--border-radius-soft) var(--border-radius-none) var(--border-radius-none); +} +.table-header th.sortable{ + cursor:pointer; +} +.table-header th.sorted{ + color:var(--color-primary); +} +.table-row:hover td{ + background:var(--color-neutral-2); +} +.table-row.table-row-selected td{ + background:var(--color-primary) var(--color-primary-lightest); +} +.table-row td{ + background:var(--color-neutral-0); + border-bottom:var(--border-size-s) solid var(--color-neutral-4); + height:56px; + padding:var(--space-s) var(--space-m); + vertical-align:inherit; +} +.table-row-small td{ + height:48px; +} +.table-row-medium td{ + height:64px; +} +.table-row-stripping:nth-child(even) td{ + background:var(--color-neutral-1); +} +.table .table-row:last-child td{ + border-bottom:none; +} +.table .table-row:last-child td:last-child{ + border-radius:var(--border-radius-none) var(--border-radius-none) var(--border-radius-soft) var(--border-radius-none); +} +.table .table-row:last-child td:first-child{ + border-radius:var(--border-radius-none) var(--border-radius-none) var(--border-radius-none) var(--border-radius-soft); +} +.desktop .table-header th.sortable:hover{ + color:var(--color-primary); +} +.tablet .overflow-horizontal .table{ + overflow-x:auto; +} +.phone div:not(.overflow-horizontal) > .table:not(.table-no-responsive), +.tablet div:not(.overflow-horizontal) > .table:not(.table-no-responsive){ + word-break:break-all; +} +.phone .table th, +.tablet .table th{ + width:100%; +} +.phone .table-no-responsive, +.tablet .table-no-responsive{ + overflow-x:auto; + word-break:break-all; +} +.phone .table-no-responsive, +.tablet .table-no-responsive{ + -servicestudio-word-break:normal; +} +.phone .table:not(.table-no-responsive), +.tablet .table:not(.table-no-responsive){ + overflow:hidden; +} +.phone .table:not(.table-no-responsive) thead, +.tablet .table:not(.table-no-responsive) thead{ + display:none; +} +.phone .table:not(.table-no-responsive) thead, +.tablet .table:not(.table-no-responsive) thead{ + -servicestudio-display:none; +} +.phone .table:not(.table-no-responsive) tr, +.phone .table:not(.table-no-responsive) td, +.tablet .table:not(.table-no-responsive) tr, +.tablet .table:not(.table-no-responsive) td{ + display:block; +} +.phone .table:not(.table-no-responsive) tr, +.phone .table:not(.table-no-responsive) td, +.tablet .table:not(.table-no-responsive) tr, +.tablet .table:not(.table-no-responsive) td{ + -servicestudio-word-break:normal; +} +.phone .table:not(.table-no-responsive) tr, +.tablet .table:not(.table-no-responsive) tr{ + border-bottom:var(--border-size-s) solid var(--color-neutral-4); +} +.phone .table:not(.table-no-responsive) td, +.tablet .table:not(.table-no-responsive) td{ + border-bottom:0; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + height:auto; + position:relative; + text-align:left !important; + width:100% !important; +} +.phone .table:not(.table-no-responsive) td:before, +.tablet .table:not(.table-no-responsive) td:before{ + content:attr(data-header); + display:block; + font-weight:bold; + margin-right:10px; + max-width:110px; + min-width:110px; + word-break:break-word; + white-space:normal; +} +.phone .table:not(.table-no-responsive) td:not([data-header]):before, +.tablet .table:not(.table-no-responsive) td:not([data-header]):before{ + display:none; +} +.phone .layout-native .table:not(.table-responsive) thead, +.tablet .layout-native .table:not(.table-responsive) thead{ + display:table-header-group; +} +.phone .layout-native .table:not(.table-responsive) tr, +.tablet .layout-native .table:not(.table-responsive) tr{ + display:table-row; +} +.phone .layout-native .table:not(.table-responsive) td, +.tablet .layout-native .table:not(.table-responsive) td{ + background:var(--color-neutral-0); + border-bottom:var(--border-size-s) solid var(--color-neutral-4); + display:table-cell; + padding:var(--space-s) var(--space-m); + vertical-align:inherit; + width:auto !important; +} +.phone .layout-native .table:not(.table-responsive) td, +.tablet .layout-native .table:not(.table-responsive) td{ + -servicestudio-word-break:break-all; +} +.phone .layout-native .table:not(.table-responsive) td:before, +.tablet .layout-native .table:not(.table-responsive) td:before{ + display:none; +} +.phone .layout:not(.layout-native) .table:not(.table-no-responsive) tbody, +.tablet .layout:not(.layout-native) .table:not(.table-no-responsive) tbody{ + display:block; + width:100%; +} +.phone .table:not(.table-responsive){ + display:block; + overflow:auto; + position:relative; +} +.phone .table:not(.table-responsive){ + -servicestudio-display:table; +} +.phone .layout-native .table:not(.table-responsive) td:before{ + display:none; +} +.has-accessible-features th.sortable:focus{ + -webkit-box-shadow:0 0 0 3px var(--color-focus-outer); + box-shadow:0 0 0 3px var(--color-focus-outer); + position:relative; + z-index:var(--layer-global-screen); +} +.is-rtl.phone .table:not(.table-no-responsive) td, .is-rtl.tablet .table:not(.table-no-responsive) td{ + text-align:right !important; +} +.is-rtl.phone .table:not(.table-no-responsive) td:before, .is-rtl.tablet .table:not(.table-no-responsive) td:before{ + margin-left:10px; + margin-right:0px; +} +.is-rtl .table-header th{ + text-align:right; +} +.is-rtl .sortable-icon{ + margin-left:var(--space-none); + right:var(--space-s); +} +/*! 4.9. Table - Sortable Icon */ +.sortable-icon{ + display:inline-block; + height:11px; + margin-left:var(--space-s); + position:relative; + width:10px; +} +.sortable-icon:before, .sortable-icon:after{ + border-left:4px solid transparent; + border-right:4px solid transparent; + content:""; + left:0; + position:absolute; +} +.sortable-icon:before{ + border-bottom:4px solid var(--color-neutral-8); +} +.sortable-icon:after{ + border-top:4px solid var(--color-neutral-8); + bottom:0; +} +.table-header th.sorted .sortable-icon:before{ + border-bottom:4px solid var(--color-primary); +} +.table-header th.sorted .sortable-icon:after{ + border-top:4px solid var(--color-primary); +} +.desktop .table-header th.sortable:hover .sortable-icon:before{ + border-bottom:4px solid var(--color-primary); +} +.desktop .table-header th.sortable:hover .sortable-icon:after{ + border-top:4px solid var(--color-primary); +} +/*! 4.10. Table - Bulk Actions */ +.table div span [data-checkbox]{ + display:inline-block; + vertical-align:middle; +} +.table [data-checkbox]{ + display:block; + height:16px; + width:16px; +} +.table [data-checkbox]:before{ + height:14px; + width:14px; +} +.table [data-checkbox]:checked:after{ + border:var(--border-size-m) solid var(--color-neutral-0); + border-right:var(--border-size-none) !important; + border-top:var(--border-size-none) !important; + display:block; + height:2px; + left:4px; + top:5px; + width:7px; +} +.table .checkbox-intermediate:before{ + background-color:var(--color-primary); + border:var(--border-size-s) solid var(--color-primary); +} +.table .checkbox-intermediate:after{ + background-color:var(--color-neutral-0); + content:""; + height:2px; + left:50%; + position:absolute; + top:50%; + -webkit-transform:translateY(-50%) translateX(-50%); + -ms-transform:translateY(-50%) translateX(-50%); + transform:translateY(-50%) translateX(-50%); + width:8px; +} +.table .checkbox-intermediate:after{ + -servicestudio-border-width:1px !important; + -servicestudio-left:8px !important; + -servicestudio-top:7px !important; +} +/*! 4.11. Form */ +.form.OSFillParent .form-control[class*=ThemeGrid_Width].not-valid + span.validation-message{ + left:22px; +} +.form label{ + margin-bottom:var(--space-s); +} +.form .dropdown, +.form .search-input, +.form input[data-input], +.form textarea[data-textarea], +.form [data-switch]{ + margin-bottom:var(--space-m); +} +.form span{ + position:relative; +} +.form span.validation-message{ + bottom:-32px; + left:0; + position:absolute; + white-space:nowrap; + width:100%; +} +.form > span.input-text .form-control[class*=ThemeGrid_Width].not-valid + span.validation-message{ + left:0; +} +.form > span.input-text .form-control[class*=ThemeGrid_Width].not-valid.ThemeGrid_MarginGutter + span.validation-message{ + left:22px; +} +.form textarea[data-textarea] + span.validation-message{ + bottom:7px; +} +.form .upload-file span.validation-message{ + bottom:8px; + position:relative; +} +.form .dropdown-container[class*=ThemeGrid_Width].not-valid span.validation-message{ + bottom:4px; +} +.form .dropdown-container.not-valid span.validation-message, .form .dropdown-container.dropdown-expanded.not-valid span.validation-message{ + bottom:-19px; +} +.form .radio-group.not-valid{ + position:relative; +} +.form .radio-group.not-valid span.validation-message{ + bottom:-10px; +} +.firefox textarea[data-textarea] + span.validation-message{ + bottom:4px; +} +span.validation-message{ + color:var(--color-error); + font-size:var(--font-size-xs); + margin-left:var(--space-none); +} +.form-control[class*=ThemeGrid_Width].not-valid + span.validation-message{ + left:10px; +} +.phone .layout-native .form.OSFillParent .form-control[class*=ThemeGrid_Width].not-valid + span.validation-message{ + left:6px; +} +.phone .form.OSFillParent span.input-text .form-control[class*=ThemeGrid_Width].not-valid + span.validation-message, +.phone .form span.input-text .form-control[class*=ThemeGrid_Width].not-valid.ThemeGrid_MarginGutter + span.validation-message, +.phone .form-control[class*=ThemeGrid_Width].not-valid + span.validation-message{ + left:0; +} +/*! 4.12. Upload */ +[data-upload]{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + background:var(--color-neutral-0); + border:var(--border-size-s) solid var(--color-neutral-4); + border-radius:var(--border-radius-soft); + color:var(--color-neutral-9); + display:-webkit-box; + display:-ms-flexbox; + display:flex; + font-size:var(--font-size-s); + margin-bottom:0; + min-height:auto; + padding:var(--space-base); + position:relative; +} +[data-upload].upload-image-withoverlay{ + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; +} +[data-upload].upload-image-withoverlay .change-image{ + background-color:transparent; + color:var(--color-primary); + height:auto; + margin-top:var(--space-base); + opacity:1; + position:relative; +} +[data-upload].uploaded [data-icon]{ + background-color:transparent; +} +[data-upload] [data-icon]{ + background-color:transparent; + color:var(--color-neutral-5); + line-height:1; + margin-right:var(--space-base); + width:auto; +} +[data-upload]:focus-visible{ + border:var(--border-size-s) solid var(--color-primary); +} +.is-rtl [data-upload] [data-icon]{ + margin-left:var(--space-base); + margin-right:var(--space-none); +} +.has-accessible-features [data-upload]{ + border:var(--border-size-s) solid var(--color-neutral-7); +} +/*! 4.13. Button Group */ +.button-group{ + background-color:transparent; + border-radius:0; + padding:var(--space-none); +} +.button-group-item{ + background-color:var(--color-neutral-0); + border:var(--border-size-s) solid var(--color-primary); + border-radius:0; + color:var(--color-primary); + cursor:pointer; + font-size:var(--font-size-s); + font-weight:var(--font-semi-bold); + height:40px; + padding:var(--space-none) var(--space-base); + position:relative; +} +.button-group-item:first-child{ + border-radius:var(--border-radius-soft) var(--border-radius-none) var(--border-radius-none) var(--border-radius-soft); +} +.button-group-item[disabled]{ + background-color:var(--color-neutral-0); + border:var(--border-size-s) solid var(--color-neutral-4); + color:var(--color-neutral-6); + pointer-events:none; +} +.button-group-item[disabled].button-group-selected-item{ + background-color:var(--color-neutral-2); + color:var(--color-neutral-6); +} +.button-group-item[disabled]:not(:first-child), .button-group-item:not(:first-child){ + border-left:var(--border-size-none); +} +.button-group-item:last-child{ + border-radius:var(--border-radius-none) var(--border-radius-soft) var(--border-radius-soft) var(--border-radius-none); +} +.button-group-item.button-group-selected-item{ + background-color:var(--color-primary); + color:var(--color-neutral-0); +} +.layout-native .header-top-content .button-group-item{ + background-color:var(--header-color); + border:0; + border-bottom:var(--border-size-m) solid transparent; + color:var(--color-neutral-8); +} +.layout-native .header-top-content .button-group-item:last-child{ + border-radius:0; +} +.layout-native .header-top-content .button-group-item.button-group-selected-item{ + border-bottom:var(--border-size-m) solid var(--color-primary); + color:var(--color-neutral-10); +} +.layout-native .header-top-content .button-group-item[disabled]{ + color:var(--color-neutral-6); +} +.layout-native .header-top-content .button-group-item[disabled].button-group-selected-item{ + border-bottom:var(--border-size-m) solid var(--color-neutral-6); +} +.tablet .button-group-item, +.phone .button-group-item{ + height:48px; +} +.is-rtl .button-group-item:first-child{ + border-radius:var(--border-radius-none) var(--border-radius-soft) var(--border-radius-soft) var(--border-radius-none); +} +.is-rtl .button-group-item:not(:first-child){ + border-left:var(--border-size-s) solid var(--color-primary); + border-right:var(--border-size-none); +} +.is-rtl .button-group-item:not(:first-child)[disabled]{ + border-left:var(--border-size-s) solid var(--color-neutral-4); +} +.is-rtl .button-group-item:last-child{ + border-radius:var(--border-radius-soft) var(--border-radius-none) var(--border-radius-none) var(--border-radius-soft); +} +.has-accessible-features .button-group-item:focus{ + -webkit-box-shadow:none; + box-shadow:none; +} +.has-accessible-features .button-group-item:focus:before{ + bottom:-1px; + -webkit-box-shadow:0 0 0 3px var(--color-focus-outer); + box-shadow:0 0 0 3px var(--color-focus-outer); + content:""; + left:-1px; + position:absolute; + right:-1px; + top:-1px; + z-index:var(--layer-global-screen); +} +/*! 4.14. Popover */ +[data-popover] [data-icon]{ + vertical-align:initial; +} +[data-popover] > .popover-top{ + border:var(--border-size-none); + padding:var(--space-none); +} +[data-popover] > .popover-bottom{ + background-color:var(--color-neutral-0); + border:var(--border-size-s) solid var(--color-neutral-4); + border-radius:var(--border-radius-soft); + -webkit-box-shadow:var(--shadow-s); + box-shadow:var(--shadow-s); + color:var(--color-neutral-9); + max-width:350px; + min-width:auto; + padding:var(--space-base); + z-index:var(--layer-global-elevated); +} +.is-rtl [data-popover] > .popover-top{ + display:inline; +} +.is-rtl [data-popover] > .popover-bottom{ + margin-left:initial; + margin-right:-50%; + -webkit-transform:translateX(50%) translateY(-100%) !important; + -ms-transform:translateX(50%) translateY(-100%) !important; + transform:translateX(50%) translateY(-100%) !important; +} +/*! 4.15. Popup */ +[data-popup]{ + -servicestudio-top:0; +} +[data-popup-backdrop]{ + z-index:var(--osui-popup-layer); +} +.popup-backdrop{ + background-color:var(--overlay-background); +} +.popup-dialog{ + border:0; + border-radius:var(--border-radius-soft); + -webkit-box-shadow:var(--shadow-xl); + box-shadow:var(--shadow-xl); + margin:var(--space-m); + max-height:calc(100% - var(--space-xl)); + max-width:500px; + overflow:visible; + padding:var(--space-m); + width:100%; +} +.popup-dialog{ + -servicestudio-margin:auto; + -servicestudio-overflow:hidden; +} +.layout-native .popup-backdrop, .layout-native .popup-dialog{ + padding:var(--space-base); +} +/*! 4.16. Feedback Message */ +.feedback-message{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + border-radius:var(--border-radius-soft); + display:-webkit-box; + display:-ms-flexbox; + display:flex; + font-size:var(--font-size-h6); + font-weight:var(--font-regular); + left:50%; + max-width:600px; + min-width:400px; + padding:var(--space-base); +} +.feedback-message i{ + -ms-flex-item-align:start; + align-self:flex-start; + font-size:var(--font-size-h5); + margin-top:2px; + position:relative; +} +.feedback-message-text{ + padding-left:var(--space-base); +} +div.feedback-message-error{ + background-color:var(--color-error); +} +div.feedback-message-info{ + background-color:var(--color-info); +} +div.feedback-message-success{ + background-color:var(--color-success); +} +div.feedback-message-warning{ + background-color:var(--color-warning); + color:var(--color-neutral-10); +} +.phone .feedback-message{ + -webkit-animation-name:feedbackMessageSlideDownPhone; + animation-name:feedbackMessageSlideDownPhone; + border-radius:0; + max-width:100%; + min-width:100%; +} +.phone .feedback-message.feedback-message-autoclose{ + -webkit-animation-name:feedbackMessageSlideDownThenUpPhone; + animation-name:feedbackMessageSlideDownThenUpPhone; +} +.phone.ios .feedback-message{ + padding-top:calc(var(--os-safe-area-top) + var(--space-base)); +} +.android[data-status-bar-height] .feedback-message{ + padding-top:calc(var(--status-bar-height) + var(--space-base)); +} +.is-rtl.phone .feedback-message{ + -webkit-animation-name:feedbackMessageSlideDownPhoneRTL; + animation-name:feedbackMessageSlideDownPhoneRTL; + border-radius:0; + left:0; + max-width:100%; + min-width:100%; +} +.is-rtl.phone .feedback-message.feedback-message-autoclose{ + -webkit-animation-name:feedbackMessageSlideDownThenUpPhoneRTL; + animation-name:feedbackMessageSlideDownThenUpPhoneRTL; +} +/*! 4.17. Radio Button */ +.radio-button{ + -webkit-appearance:none; + -moz-appearance:none; + appearance:none; + cursor:pointer; + -ms-flex-negative:0; + flex-shrink:0; + height:24px; + position:relative; + -webkit-transition:all 180ms linear; + transition:all 180ms linear; + width:24px; +} +.radio-button:before, .radio-button:after{ + -webkit-box-sizing:border-box; + box-sizing:border-box; +} +.radio-button:before{ + background-color:var(--color-neutral-0); + border:var(--border-size-s) solid var(--color-neutral-5); + border-radius:var(--border-radius-rounded); + content:""; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + height:100%; + -webkit-transition:all 180ms linear; + transition:all 180ms linear; + width:100%; +} +.radio-button:hover:before{ + border:var(--border-size-s) solid var(--color-neutral-6); +} +.radio-button:focus:before{ + -webkit-box-shadow:0 0 0 2px var(--color-focus); + box-shadow:0 0 0 2px var(--color-focus); +} +.radio-button:checked:before{ + background-color:var(--color-neutral-0); + border:6px solid var(--color-primary); +} +.radio-button:checked:hover:before{ + -webkit-filter:brightness(0.9); + filter:brightness(0.9); +} +.radio-button:disabled{ + background-color:transparent; + border:none; + pointer-events:none; +} +.radio-button:disabled + label{ + pointer-events:none; + color:var(--color-neutral-6); +} +.radio-button:disabled:before{ + background-color:var(--color-neutral-2); + border:var(--border-size-s) solid var(--color-neutral-4); +} +.radio-button:disabled:checked:before{ + background-color:var(--color-neutral-2); + border:6px solid var(--color-neutral-4); +} +.radio-group.is-horizontal{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-orient:horizontal; + -webkit-box-direction:normal; + -ms-flex-direction:row; + flex-direction:row; + -ms-flex-wrap:wrap; + flex-wrap:wrap; +} +.radio-group.is-horizontal > div{ + display:contents; +} +.radio-group.is-horizontal [data-radio-button]{ + width:auto; +} +.radio-group.is-horizontal [data-radio-button]:not(:first-of-type){ + margin-left:var(--space-base); +} +[data-radio-group].not-valid [data-radio-button] .radio-button:before{ + border:var(--border-size-s) solid var(--color-error); +} +[data-radio-group].not-valid [data-radio-button] .radio-button:checked:before{ + background-color:var(--color-neutral-0); + border:6px solid var(--color-primary); +} +[data-radio-group] [data-radio-button]{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; + margin:var(--space-s) 0; +} +[data-radio-group] [data-radio-button] label{ + cursor:pointer; + line-height:1; + margin-bottom:0; + margin-left:var(--space-s); +} +[data-radio-button]:not(.OSFillParent):not([class*=ThemeGrid_Width]){ + -servicestudio-display:flex; +} +.has-accessible-features .radio-button{ + border-radius:var(--border-radius-rounded); +} +.has-accessible-features .radio-button:before{ + border-color:var(--color-neutral-7); +} +.has-accessible-features .radio-button:after{ + background-color:var(--color-neutral-0); + border-radius:100%; + content:""; + height:12px; + left:50%; + margin-left:-6px; + margin-top:-6px; + position:absolute; + top:50%; + width:12px; +} +.has-accessible-features .radio-button:checked:before{ + border-color:var(--color-primary); +} +.has-accessible-features .radio-button:hover:before{ + border-color:var(--color-neutral-8); +} +.has-accessible-features .radio-button:focus:before{ + background-color:var(--color-primary); + border:1px solid var(--color-focus-inner); + -webkit-box-shadow:none; + box-shadow:none; +} +.has-accessible-features [data-radio-group].not-valid [data-radio-button] .radio-button:checked:before{ + border-color:var(--color-primary); +} +.is-rtl [data-radio-group] label{ + margin-left:var(--space-none); + margin-right:var(--space-s); +} +.is-rtl .radio-group.is-horizontal [data-radio-button]:not(:first-of-type){ + margin-left:unset; + margin-right:var(--space-base); +} +/*! ============================================================================== +5. Providers +=============================================================================== */ +/*! 5.1. Flatpickr */ +.flatpickr-calendar{ + background:transparent; + opacity:0; + display:none; + text-align:center; + visibility:hidden; + padding:0; + -webkit-animation:none; + animation:none; + direction:ltr; + border:0; + font-size:14px; + line-height:24px; + border-radius:5px; + position:absolute; + width:307.875px; + -webkit-box-sizing:border-box; + box-sizing:border-box; + -ms-touch-action:manipulation; + touch-action:manipulation; + background:#fff; + -webkit-box-shadow:1px 0 0 #e6e6e6, -1px 0 0 #e6e6e6, 0 1px 0 #e6e6e6, 0 -1px 0 #e6e6e6, 0 3px 13px rgba(0, 0, 0, 0.08); + box-shadow:1px 0 0 #e6e6e6, -1px 0 0 #e6e6e6, 0 1px 0 #e6e6e6, 0 -1px 0 #e6e6e6, 0 3px 13px rgba(0, 0, 0, 0.08); +} +.flatpickr-calendar.open, +.flatpickr-calendar.inline{ + opacity:1; + max-height:640px; + visibility:visible; +} +.flatpickr-calendar.open{ + display:inline-block; + z-index:99999; +} +.flatpickr-calendar.animate.open{ + -webkit-animation:fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1); + animation:fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1); +} +.flatpickr-calendar.inline{ + display:block; + position:relative; + top:2px; +} +.flatpickr-calendar.static{ + position:absolute; + top:calc(100% + 2px); +} +.flatpickr-calendar.static.open{ + z-index:999; + display:block; +} +.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){ + -webkit-box-shadow:none !important; + box-shadow:none !important; +} +.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){ + -webkit-box-shadow:-2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6; + box-shadow:-2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6; +} +.flatpickr-calendar .hasWeeks .dayContainer, +.flatpickr-calendar .hasTime .dayContainer{ + border-bottom:0; + border-bottom-right-radius:0; + border-bottom-left-radius:0; +} +.flatpickr-calendar .hasWeeks .dayContainer{ + border-left:0; +} +.flatpickr-calendar.hasTime .flatpickr-time{ + height:40px; + border-top:1px solid #e6e6e6; +} +.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{ + height:auto; +} +.flatpickr-calendar:before, +.flatpickr-calendar:after{ + position:absolute; + display:block; + pointer-events:none; + border:solid transparent; + content:""; + height:0; + width:0; + left:22px; +} +.flatpickr-calendar.rightMost:before, +.flatpickr-calendar.arrowRight:before, +.flatpickr-calendar.rightMost:after, +.flatpickr-calendar.arrowRight:after{ + left:auto; + right:22px; +} +.flatpickr-calendar.arrowCenter:before, +.flatpickr-calendar.arrowCenter:after{ + left:50%; + right:50%; +} +.flatpickr-calendar:before{ + border-width:5px; + margin:0 -5px; +} +.flatpickr-calendar:after{ + border-width:4px; + margin:0 -4px; +} +.flatpickr-calendar.arrowTop:before, +.flatpickr-calendar.arrowTop:after{ + bottom:100%; +} +.flatpickr-calendar.arrowTop:before{ + border-bottom-color:#e6e6e6; +} +.flatpickr-calendar.arrowTop:after{ + border-bottom-color:#fff; +} +.flatpickr-calendar.arrowBottom:before, +.flatpickr-calendar.arrowBottom:after{ + top:100%; +} +.flatpickr-calendar.arrowBottom:before{ + border-top-color:#e6e6e6; +} +.flatpickr-calendar.arrowBottom:after{ + border-top-color:#fff; +} +.flatpickr-calendar:focus{ + outline:0; +} +.flatpickr-wrapper{ + position:relative; + display:inline-block; +} +.flatpickr-months{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; +} +.flatpickr-months .flatpickr-month{ + background:transparent; + color:rgba(0, 0, 0, 0.9); + fill:rgba(0, 0, 0, 0.9); + height:34px; + line-height:1; + text-align:center; + position:relative; + -webkit-user-select:none; + -moz-user-select:none; + -ms-user-select:none; + user-select:none; + overflow:hidden; + -webkit-box-flex:1; + -ms-flex:1; + flex:1; +} +.flatpickr-months .flatpickr-prev-month, +.flatpickr-months .flatpickr-next-month{ + -webkit-user-select:none; + -moz-user-select:none; + -ms-user-select:none; + user-select:none; + text-decoration:none; + cursor:pointer; + position:absolute; + top:0; + padding:10px; + z-index:3; + color:rgba(0, 0, 0, 0.9); + fill:rgba(0, 0, 0, 0.9); +} +.flatpickr-months .flatpickr-prev-month.flatpickr-disabled, +.flatpickr-months .flatpickr-next-month.flatpickr-disabled{ + display:none; +} +.flatpickr-months .flatpickr-prev-month i, +.flatpickr-months .flatpickr-next-month i{ + position:relative; +} +.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month, +.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{ + left:0; +} +.flatpickr-months .flatpickr-prev-month.flatpickr-next-month, +.flatpickr-months .flatpickr-next-month.flatpickr-next-month{ + right:0; +} +.flatpickr-months .flatpickr-prev-month:hover, +.flatpickr-months .flatpickr-next-month:hover{ + color:#959ea9; +} +.flatpickr-months .flatpickr-prev-month:hover svg, +.flatpickr-months .flatpickr-next-month:hover svg{ + fill:#f64747; +} +.flatpickr-months .flatpickr-prev-month svg, +.flatpickr-months .flatpickr-next-month svg{ + width:14px; + height:14px; +} +.flatpickr-months .flatpickr-prev-month svg path, +.flatpickr-months .flatpickr-next-month svg path{ + -webkit-transition:fill 0.1s; + transition:fill 0.1s; + fill:inherit; +} +.numInputWrapper{ + position:relative; + height:auto; +} +.numInputWrapper input, +.numInputWrapper span{ + display:inline-block; +} +.numInputWrapper input{ + width:100%; +} +.numInputWrapper input::-ms-clear{ + display:none; +} +.numInputWrapper input::-webkit-outer-spin-button, +.numInputWrapper input::-webkit-inner-spin-button{ + margin:0; + -webkit-appearance:none; +} +.numInputWrapper span{ + position:absolute; + right:0; + width:14px; + padding:0 4px 0 2px; + height:50%; + line-height:50%; + opacity:0; + cursor:pointer; + border:1px solid rgba(57, 57, 57, 0.15); + -webkit-box-sizing:border-box; + box-sizing:border-box; +} +.numInputWrapper span:hover{ + background:rgba(0, 0, 0, 0.1); +} +.numInputWrapper span:active{ + background:rgba(0, 0, 0, 0.2); +} +.numInputWrapper span:after{ + display:block; + content:""; + position:absolute; +} +.numInputWrapper span.arrowUp{ + top:0; + border-bottom:0; +} +.numInputWrapper span.arrowUp:after{ + border-left:4px solid transparent; + border-right:4px solid transparent; + border-bottom:4px solid rgba(57, 57, 57, 0.6); + top:26%; +} +.numInputWrapper span.arrowDown{ + top:50%; +} +.numInputWrapper span.arrowDown:after{ + border-left:4px solid transparent; + border-right:4px solid transparent; + border-top:4px solid rgba(57, 57, 57, 0.6); + top:40%; +} +.numInputWrapper span svg{ + width:inherit; + height:auto; +} +.numInputWrapper span svg path{ + fill:rgba(0, 0, 0, 0.5); +} +.numInputWrapper:hover{ + background:rgba(0, 0, 0, 0.05); +} +.numInputWrapper:hover span{ + opacity:1; +} +.flatpickr-current-month{ + font-size:135%; + line-height:inherit; + font-weight:300; + color:inherit; + position:absolute; + width:75%; + left:12.5%; + padding:7.48px 0 0 0; + line-height:1; + height:34px; + display:inline-block; + text-align:center; + -webkit-transform:translate3d(0px, 0px, 0px); + transform:translate3d(0px, 0px, 0px); +} +.flatpickr-current-month span.cur-month{ + font-family:inherit; + font-weight:700; + color:inherit; + display:inline-block; + margin-left:0.5ch; + padding:0; +} +.flatpickr-current-month span.cur-month:hover{ + background:rgba(0, 0, 0, 0.05); +} +.flatpickr-current-month .numInputWrapper{ + width:6ch; + width:7ch\0; + display:inline-block; +} +.flatpickr-current-month .numInputWrapper span.arrowUp:after{ + border-bottom-color:rgba(0, 0, 0, 0.9); +} +.flatpickr-current-month .numInputWrapper span.arrowDown:after{ + border-top-color:rgba(0, 0, 0, 0.9); +} +.flatpickr-current-month input.cur-year{ + background:transparent; + -webkit-box-sizing:border-box; + box-sizing:border-box; + color:inherit; + cursor:text; + padding:0 0 0 0.5ch; + margin:0; + display:inline-block; + font-size:inherit; + font-family:inherit; + font-weight:300; + line-height:inherit; + height:auto; + border:0; + border-radius:0; + vertical-align:initial; + -webkit-appearance:textfield; + -moz-appearance:textfield; + appearance:textfield; +} +.flatpickr-current-month input.cur-year:focus{ + outline:0; +} +.flatpickr-current-month input.cur-year[disabled], +.flatpickr-current-month input.cur-year[disabled]:hover{ + font-size:100%; + color:rgba(0, 0, 0, 0.5); + background:transparent; + pointer-events:none; +} +.flatpickr-current-month .flatpickr-monthDropdown-months{ + appearance:menulist; + background:transparent; + border:none; + border-radius:0; + box-sizing:border-box; + color:inherit; + cursor:pointer; + font-size:inherit; + font-family:inherit; + font-weight:300; + height:auto; + line-height:inherit; + margin:-1px 0 0 0; + outline:none; + padding:0 0 0 0.5ch; + position:relative; + vertical-align:initial; + -webkit-box-sizing:border-box; + -webkit-appearance:menulist; + -moz-appearance:menulist; + width:auto; +} +.flatpickr-current-month .flatpickr-monthDropdown-months:focus, +.flatpickr-current-month .flatpickr-monthDropdown-months:active{ + outline:none; +} +.flatpickr-current-month .flatpickr-monthDropdown-months:hover{ + background:rgba(0, 0, 0, 0.05); +} +.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{ + background-color:transparent; + outline:none; + padding:0; +} +.flatpickr-weekdays{ + background:transparent; + text-align:center; + overflow:hidden; + width:100%; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + height:28px; +} +.flatpickr-weekdays .flatpickr-weekdaycontainer{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-flex:1; + -ms-flex:1; + flex:1; +} +span.flatpickr-weekday{ + cursor:default; + font-size:90%; + background:transparent; + color:rgba(0, 0, 0, 0.54); + line-height:1; + margin:0; + text-align:center; + display:block; + -webkit-box-flex:1; + -ms-flex:1; + flex:1; + font-weight:bolder; +} +.dayContainer, +.flatpickr-weeks{ + padding:1px 0 0 0; +} +.flatpickr-days{ + position:relative; + overflow:hidden; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-align:start; + -ms-flex-align:start; + align-items:flex-start; + width:307.875px; +} +.flatpickr-days:focus{ + outline:0; +} +.dayContainer{ + padding:0; + outline:0; + text-align:left; + width:307.875px; + min-width:307.875px; + max-width:307.875px; + -webkit-box-sizing:border-box; + box-sizing:border-box; + display:inline-block; + display:-ms-flexbox; + display:-webkit-box; + display:flex; + flex-wrap:wrap; + -ms-flex-wrap:wrap; + -ms-flex-pack:justify; + justify-content:space-around; + -webkit-transform:translate3d(0px, 0px, 0px); + transform:translate3d(0px, 0px, 0px); + opacity:1; +} +.dayContainer + .dayContainer{ + -webkit-box-shadow:-1px 0 0 #e6e6e6; + box-shadow:-1px 0 0 #e6e6e6; +} +.flatpickr-day{ + background:none; + border:1px solid transparent; + border-radius:150px; + -webkit-box-sizing:border-box; + box-sizing:border-box; + color:#393939; + cursor:pointer; + font-weight:400; + width:14.2857143%; + -ms-flex-preferred-size:14.2857143%; + flex-basis:14.2857143%; + max-width:39px; + height:39px; + line-height:39px; + margin:0; + display:inline-block; + position:relative; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + text-align:center; +} +.flatpickr-day.inRange, +.flatpickr-day.prevMonthDay.inRange, +.flatpickr-day.nextMonthDay.inRange, +.flatpickr-day.today.inRange, +.flatpickr-day.prevMonthDay.today.inRange, +.flatpickr-day.nextMonthDay.today.inRange, +.flatpickr-day:hover, +.flatpickr-day.prevMonthDay:hover, +.flatpickr-day.nextMonthDay:hover, +.flatpickr-day:focus, +.flatpickr-day.prevMonthDay:focus, +.flatpickr-day.nextMonthDay:focus{ + cursor:pointer; + outline:0; + background:#e6e6e6; + border-color:#e6e6e6; +} +.flatpickr-day.today{ + border-color:#959ea9; +} +.flatpickr-day.today:hover, +.flatpickr-day.today:focus{ + border-color:#959ea9; + background:#959ea9; + color:#fff; +} +.flatpickr-day.selected, +.flatpickr-day.startRange, +.flatpickr-day.endRange, +.flatpickr-day.selected.inRange, +.flatpickr-day.startRange.inRange, +.flatpickr-day.endRange.inRange, +.flatpickr-day.selected:focus, +.flatpickr-day.startRange:focus, +.flatpickr-day.endRange:focus, +.flatpickr-day.selected:hover, +.flatpickr-day.startRange:hover, +.flatpickr-day.endRange:hover, +.flatpickr-day.selected.prevMonthDay, +.flatpickr-day.startRange.prevMonthDay, +.flatpickr-day.endRange.prevMonthDay, +.flatpickr-day.selected.nextMonthDay, +.flatpickr-day.startRange.nextMonthDay, +.flatpickr-day.endRange.nextMonthDay{ + background:#569ff7; + -webkit-box-shadow:none; + box-shadow:none; + color:#fff; + border-color:#569ff7; +} +.flatpickr-day.selected.startRange, +.flatpickr-day.startRange.startRange, +.flatpickr-day.endRange.startRange{ + border-radius:50px 0 0 50px; +} +.flatpickr-day.selected.endRange, +.flatpickr-day.startRange.endRange, +.flatpickr-day.endRange.endRange{ + border-radius:0 50px 50px 0; +} +.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)), +.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)), +.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)){ + -webkit-box-shadow:-10px 0 0 #569ff7; + box-shadow:-10px 0 0 #569ff7; +} +.flatpickr-day.selected.startRange.endRange, +.flatpickr-day.startRange.startRange.endRange, +.flatpickr-day.endRange.startRange.endRange{ + border-radius:50px; +} +.flatpickr-day.inRange{ + border-radius:0; + -webkit-box-shadow:-5px 0 0 #e6e6e6, 5px 0 0 #e6e6e6; + box-shadow:-5px 0 0 #e6e6e6, 5px 0 0 #e6e6e6; +} +.flatpickr-day.flatpickr-disabled, +.flatpickr-day.flatpickr-disabled:hover, +.flatpickr-day.prevMonthDay, +.flatpickr-day.nextMonthDay, +.flatpickr-day.notAllowed, +.flatpickr-day.notAllowed.prevMonthDay, +.flatpickr-day.notAllowed.nextMonthDay{ + color:rgba(57, 57, 57, 0.3); + background:transparent; + border-color:transparent; + cursor:default; +} +.flatpickr-day.flatpickr-disabled, +.flatpickr-day.flatpickr-disabled:hover{ + cursor:not-allowed; + color:rgba(57, 57, 57, 0.1); +} +.flatpickr-day.week.selected{ + border-radius:0; + -webkit-box-shadow:-5px 0 0 #569ff7, 5px 0 0 #569ff7; + box-shadow:-5px 0 0 #569ff7, 5px 0 0 #569ff7; +} +.flatpickr-day.hidden{ + visibility:hidden; +} +.rangeMode .flatpickr-day{ + margin-top:1px; +} +.flatpickr-weekwrapper{ + float:left; +} +.flatpickr-weekwrapper .flatpickr-weeks{ + padding:0 12px; + -webkit-box-shadow:1px 0 0 #e6e6e6; + box-shadow:1px 0 0 #e6e6e6; +} +.flatpickr-weekwrapper .flatpickr-weekday{ + float:none; + width:100%; + line-height:28px; +} +.flatpickr-weekwrapper span.flatpickr-day, +.flatpickr-weekwrapper span.flatpickr-day:hover{ + display:block; + width:100%; + max-width:none; + color:rgba(57, 57, 57, 0.3); + background:transparent; + cursor:default; + border:none; +} +.flatpickr-innerContainer{ + display:block; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-sizing:border-box; + box-sizing:border-box; + overflow:hidden; +} +.flatpickr-rContainer{ + display:inline-block; + padding:0; + -webkit-box-sizing:border-box; + box-sizing:border-box; +} +.flatpickr-time{ + text-align:center; + outline:0; + display:block; + height:0; + line-height:40px; + max-height:40px; + -webkit-box-sizing:border-box; + box-sizing:border-box; + overflow:hidden; + display:-webkit-box; + display:-ms-flexbox; +} +.flatpickr-time:after{ + content:""; + display:table; + clear:both; +} +.flatpickr-time .numInputWrapper{ + -webkit-box-flex:1; + -ms-flex:1; + flex:1; + width:40%; + height:40px; + float:left; +} +.flatpickr-time .numInputWrapper span.arrowUp:after{ + border-bottom-color:#393939; +} +.flatpickr-time .numInputWrapper span.arrowDown:after{ + border-top-color:#393939; +} +.flatpickr-time.hasSeconds .numInputWrapper{ + width:26%; +} +.flatpickr-time.time24hr .numInputWrapper{ + width:49%; +} +.flatpickr-time input{ + background:transparent; + -webkit-box-shadow:none; + box-shadow:none; + border:0; + border-radius:0; + text-align:center; + margin:0; + padding:0; + height:inherit; + line-height:inherit; + color:#393939; + font-size:14px; + position:relative; + -webkit-box-sizing:border-box; + box-sizing:border-box; + -webkit-appearance:textfield; + -moz-appearance:textfield; + appearance:textfield; +} +.flatpickr-time input.flatpickr-hour{ + font-weight:bold; +} +.flatpickr-time input.flatpickr-minute, +.flatpickr-time input.flatpickr-second{ + font-weight:400; +} +.flatpickr-time input:focus{ + outline:0; + border:0; +} +.flatpickr-time .flatpickr-time-separator, +.flatpickr-time .flatpickr-am-pm{ + height:inherit; + float:left; + line-height:inherit; + color:#393939; + font-weight:bold; + width:2%; + -webkit-user-select:none; + -moz-user-select:none; + -ms-user-select:none; + user-select:none; + -webkit-align-self:center; + -ms-flex-item-align:center; + align-self:center; +} +.flatpickr-time .flatpickr-am-pm{ + outline:0; + width:18%; + cursor:pointer; + text-align:center; + font-weight:400; +} +.flatpickr-time input:hover, +.flatpickr-time .flatpickr-am-pm:hover, +.flatpickr-time input:focus, +.flatpickr-time .flatpickr-am-pm:focus{ + background:#eee; +} +.flatpickr-input[readonly]{ + cursor:pointer; +} +@-webkit-keyframes fpFadeInDown{ + from{ + opacity:0; + -webkit-transform:translate3d(0, -20px, 0); + transform:translate3d(0, -20px, 0); + } + to{ + opacity:1; + -webkit-transform:translate3d(0, 0, 0); + transform:translate3d(0, 0, 0); + } +} +@keyframes fpFadeInDown{ + from{ + opacity:0; + -webkit-transform:translate3d(0, -20px, 0); + transform:translate3d(0, -20px, 0); + } + to{ + opacity:1; + -webkit-transform:translate3d(0, 0, 0); + transform:translate3d(0, 0, 0); + } +} +.flatpickr-monthSelect-months{ + margin:10px 1px 3px 1px; + -ms-flex-wrap:wrap; + flex-wrap:wrap; +} +.flatpickr-monthSelect-month{ + background:none; + border:1px solid transparent; + border-radius:4px; + -webkit-box-sizing:border-box; + box-sizing:border-box; + color:#393939; + cursor:pointer; + display:inline-block; + font-weight:400; + margin:0.5px; + justify-content:center; + padding:10px; + position:relative; + -webkit-box-pack:center; + -webkit-justify-content:center; + -ms-flex-pack:center; + text-align:center; + width:33%; +} +.flatpickr-monthSelect-month.flatpickr-disabled{ + color:#eee; +} +.flatpickr-monthSelect-month.flatpickr-disabled:hover, +.flatpickr-monthSelect-month.flatpickr-disabled:focus{ + cursor:not-allowed; + background:none !important; +} +.flatpickr-monthSelect-theme-dark{ + background:#3f4458; +} +.flatpickr-monthSelect-theme-dark .flatpickr-current-month input.cur-year{ + color:#fff; +} +.flatpickr-monthSelect-theme-dark .flatpickr-months .flatpickr-prev-month, +.flatpickr-monthSelect-theme-dark .flatpickr-months .flatpickr-next-month{ + color:#fff; + fill:#fff; +} +.flatpickr-monthSelect-theme-dark .flatpickr-monthSelect-month{ + color:rgba(255, 255, 255, 0.95); +} +.flatpickr-monthSelect-month.today{ + border-color:#959ea9; +} +.flatpickr-monthSelect-month.inRange, +.flatpickr-monthSelect-month.inRange.today, +.flatpickr-monthSelect-month:hover, +.flatpickr-monthSelect-month:focus{ + background:#e6e6e6; + cursor:pointer; + outline:0; + border-color:#e6e6e6; +} +.flatpickr-monthSelect-theme-dark .flatpickr-monthSelect-month.inRange, +.flatpickr-monthSelect-theme-dark .flatpickr-monthSelect-month:hover, +.flatpickr-monthSelect-theme-dark .flatpickr-monthSelect-month:focus{ + background:#646c8c; + border-color:#646c8c; +} +.flatpickr-monthSelect-month.today:hover, +.flatpickr-monthSelect-month.today:focus{ + background:#959ea9; + border-color:#959ea9; + color:#fff; +} +.flatpickr-monthSelect-month.selected, +.flatpickr-monthSelect-month.startRange, +.flatpickr-monthSelect-month.endRange{ + background-color:#569ff7; + -webkit-box-shadow:none; + box-shadow:none; + color:#fff; + border-color:#569ff7; +} +.flatpickr-monthSelect-month.startRange{ + border-radius:50px 0 0 50px; +} +.flatpickr-monthSelect-month.endRange{ + border-radius:0 50px 50px 0; +} +.flatpickr-monthSelect-month.startRange.endRange{ + border-radius:50px; +} +.flatpickr-monthSelect-month.inRange{ + border-radius:0; + -webkit-box-shadow:-5px 0 0 #e6e6e6, 5px 0 0 #e6e6e6; + box-shadow:-5px 0 0 #e6e6e6, 5px 0 0 #e6e6e6; +} +.flatpickr-monthSelect-theme-dark .flatpickr-monthSelect-month.selected, +.flatpickr-monthSelect-theme-dark .flatpickr-monthSelect-month.startRange, +.flatpickr-monthSelect-theme-dark .flatpickr-monthSelect-month.endRange{ + background:#80cbc4; + -webkit-box-shadow:none; + box-shadow:none; + color:#fff; + border-color:#80cbc4; +} +/*! 5.2. NoUiSlider */ +.noUi-target, +.noUi-target *{ + -webkit-touch-callout:none; + -webkit-tap-highlight-color:rgba(0, 0, 0, 0); + -webkit-user-select:none; + -ms-touch-action:none; + touch-action:none; + -ms-user-select:none; + -moz-user-select:none; + user-select:none; + -webkit-box-sizing:border-box; + box-sizing:border-box; +} +.noUi-target{ + position:relative; +} +.noUi-base, +.noUi-connects{ + width:100%; + height:100%; + position:relative; + z-index:1; +} +.noUi-connects{ + overflow:hidden; + z-index:0; +} +.noUi-connect, +.noUi-origin{ + will-change:transform; + position:absolute; + z-index:1; + top:0; + right:0; + height:100%; + width:100%; + -ms-transform-origin:0 0; + -webkit-transform-origin:0 0; + -webkit-transform-style:preserve-3d; + transform-origin:0 0; + -webkit-transform-style:flat; + transform-style:flat; +} +.noUi-txt-dir-rtl.noUi-horizontal .noUi-origin{ + left:0; + right:auto; +} +.noUi-vertical .noUi-origin{ + top:-100%; + width:0; +} +.noUi-horizontal .noUi-origin{ + height:0; +} +.noUi-handle{ + -webkit-backface-visibility:hidden; + backface-visibility:hidden; + position:absolute; +} +.noUi-touch-area{ + height:100%; + width:100%; +} +.noUi-state-tap .noUi-connect, +.noUi-state-tap .noUi-origin{ + -webkit-transition:transform 0.3s; + -webkit-transition:-webkit-transform 0.3s; + transition:-webkit-transform 0.3s; + transition:transform 0.3s; + transition:transform 0.3s, -webkit-transform 0.3s; +} +.noUi-state-drag *{ + cursor:inherit !important; +} +.noUi-horizontal{ + height:18px; +} +.noUi-horizontal .noUi-handle{ + width:34px; + height:28px; + right:-17px; + top:-6px; +} +.noUi-vertical{ + width:18px; +} +.noUi-vertical .noUi-handle{ + width:28px; + height:34px; + right:-6px; + bottom:-17px; +} +.noUi-txt-dir-rtl.noUi-horizontal .noUi-handle{ + left:-17px; + right:auto; +} +.noUi-target{ + background:#fafafa; + border-radius:4px; + border:1px solid #d3d3d3; + -webkit-box-shadow:inset 0 1px 1px #f0f0f0, 0 3px 6px -5px #bbb; + box-shadow:inset 0 1px 1px #f0f0f0, 0 3px 6px -5px #bbb; +} +.noUi-connects{ + border-radius:3px; +} +.noUi-connect{ + background:#3fb8af; +} +.noUi-draggable{ + cursor:ew-resize; +} +.noUi-vertical .noUi-draggable{ + cursor:ns-resize; +} +.noUi-handle{ + border:1px solid #d9d9d9; + border-radius:3px; + background:#fff; + cursor:default; + -webkit-box-shadow:inset 0 0 1px #fff, inset 0 1px 7px #ebebeb, 0 3px 6px -3px #bbb; + box-shadow:inset 0 0 1px #fff, inset 0 1px 7px #ebebeb, 0 3px 6px -3px #bbb; +} +.noUi-active{ + -webkit-box-shadow:inset 0 0 1px #fff, inset 0 1px 7px #ddd, 0 3px 6px -3px #bbb; + box-shadow:inset 0 0 1px #fff, inset 0 1px 7px #ddd, 0 3px 6px -3px #bbb; +} +.noUi-handle:before, +.noUi-handle:after{ + content:""; + display:block; + position:absolute; + height:14px; + width:1px; + background:#e8e7e6; + left:14px; + top:6px; +} +.noUi-handle:after{ + left:17px; +} +.noUi-vertical .noUi-handle:before, +.noUi-vertical .noUi-handle:after{ + width:14px; + height:1px; + left:6px; + top:14px; +} +.noUi-vertical .noUi-handle:after{ + top:17px; +} +[disabled] .noUi-connect{ + background:#b8b8b8; +} +[disabled].noUi-target, +[disabled].noUi-handle, +[disabled] .noUi-handle{ + cursor:not-allowed; +} +.noUi-pips, +.noUi-pips *{ + -webkit-box-sizing:border-box; + box-sizing:border-box; +} +.noUi-pips{ + position:absolute; + color:#999; +} +.noUi-value{ + position:absolute; + white-space:nowrap; + text-align:center; +} +.noUi-value-sub{ + color:#ccc; + font-size:10px; +} +.noUi-marker{ + position:absolute; + background:#ccc; +} +.noUi-marker-sub{ + background:#aaa; +} +.noUi-marker-large{ + background:#aaa; +} +.noUi-pips-horizontal{ + padding:10px 0; + height:80px; + top:100%; + left:0; + width:100%; +} +.noUi-value-horizontal{ + -webkit-transform:translate(-50%, 50%); + -ms-transform:translate(-50%, 50%); + transform:translate(-50%, 50%); +} +.noUi-rtl .noUi-value-horizontal{ + -webkit-transform:translate(50%, 50%); + -ms-transform:translate(50%, 50%); + transform:translate(50%, 50%); +} +.noUi-marker-horizontal.noUi-marker{ + margin-left:-1px; + width:2px; + height:5px; +} +.noUi-marker-horizontal.noUi-marker-sub{ + height:10px; +} +.noUi-marker-horizontal.noUi-marker-large{ + height:15px; +} +.noUi-pips-vertical{ + padding:0 10px; + height:100%; + top:0; + left:100%; +} +.noUi-value-vertical{ + -webkit-transform:translate(0, -50%); + -ms-transform:translate(0, -50%); + transform:translate(0, -50%); + padding-left:25px; +} +.noUi-rtl .noUi-value-vertical{ + -webkit-transform:translate(0, 50%); + -ms-transform:translate(0, 50%); + transform:translate(0, 50%); +} +.noUi-marker-vertical.noUi-marker{ + width:5px; + height:2px; + margin-top:-1px; +} +.noUi-marker-vertical.noUi-marker-sub{ + width:10px; +} +.noUi-marker-vertical.noUi-marker-large{ + width:15px; +} +.noUi-tooltip{ + display:block; + position:absolute; + border:1px solid #d9d9d9; + border-radius:3px; + background:#fff; + color:#000; + padding:5px; + text-align:center; + white-space:nowrap; +} +.noUi-horizontal .noUi-tooltip{ + -webkit-transform:translate(-50%, 0); + -ms-transform:translate(-50%, 0); + transform:translate(-50%, 0); + left:50%; + bottom:120%; +} +.noUi-vertical .noUi-tooltip{ + -webkit-transform:translate(0, -50%); + -ms-transform:translate(0, -50%); + transform:translate(0, -50%); + top:50%; + right:120%; +} +.noUi-horizontal .noUi-origin > .noUi-tooltip{ + -webkit-transform:translate(50%, 0); + -ms-transform:translate(50%, 0); + transform:translate(50%, 0); + left:auto; + bottom:10px; +} +.noUi-vertical .noUi-origin > .noUi-tooltip{ + -webkit-transform:translate(0, -18px); + -ms-transform:translate(0, -18px); + transform:translate(0, -18px); + top:auto; + right:28px; +} +/*! 5.3. Splide */ +.splide__container{ + -webkit-box-sizing:border-box; + box-sizing:border-box; + position:relative; +} +.splide__list{ + -webkit-backface-visibility:hidden; + backface-visibility:hidden; + display:-ms-flexbox; + display:-webkit-box; + display:flex; + height:100%; + margin:0 !important; + padding:0 !important; +} +.splide.is-initialized:not(.is-active) .splide__list{ + display:block; +} +.splide__pagination{ + -ms-flex-align:center; + -webkit-box-align:center; + align-items:center; + display:-ms-flexbox; + display:-webkit-box; + display:flex; + -ms-flex-wrap:wrap; + flex-wrap:wrap; + -ms-flex-pack:center; + -webkit-box-pack:center; + justify-content:center; + margin:0; + pointer-events:none; +} +.splide__pagination li{ + display:inline-block; + line-height:1; + list-style-type:none; + margin:0; + pointer-events:auto; +} +.splide:not(.is-overflow) .splide__pagination{ + display:none; +} +.splide__progress__bar{ + width:0; +} +.splide{ + position:relative; + visibility:hidden; +} +.splide.is-initialized, +.splide.is-rendered{ + visibility:visible; +} +.splide__slide{ + -webkit-backface-visibility:hidden; + backface-visibility:hidden; + -webkit-box-sizing:border-box; + box-sizing:border-box; + -ms-flex-negative:0; + flex-shrink:0; + list-style-type:none !important; + margin:0; + position:relative; +} +.splide__slide img{ + vertical-align:bottom; +} +.splide__spinner{ + -webkit-animation:splide-loading 1s linear infinite; + animation:splide-loading 1s linear infinite; + border:2px solid #999; + border-left-color:transparent; + border-radius:50%; + bottom:0; + contain:strict; + display:inline-block; + height:20px; + left:0; + margin:auto; + position:absolute; + right:0; + top:0; + width:20px; +} +.splide__sr{ + clip:rect(0 0 0 0); + border:0; + height:1px; + margin:-1px; + overflow:hidden; + padding:0; + position:absolute; + width:1px; +} +.splide__toggle.is-active .splide__toggle__play, +.splide__toggle__pause{ + display:none; +} +.splide__toggle.is-active .splide__toggle__pause{ + display:inline; +} +.splide__track{ + overflow:hidden; + position:relative; + z-index:0; +} +@-webkit-keyframes splide-loading{ + 0%{ + -webkit-transform:rotate(0); + transform:rotate(0); + } + to{ + -webkit-transform:rotate(1turn); + transform:rotate(1turn); + } +} +@keyframes splide-loading{ + 0%{ + -webkit-transform:rotate(0); + transform:rotate(0); + } + to{ + -webkit-transform:rotate(1turn); + transform:rotate(1turn); + } +} +.splide__track--draggable{ + -webkit-touch-callout:none; + -webkit-user-select:none; + -ms-user-select:none; + -moz-user-select:none; + user-select:none; +} +.splide__track--fade > .splide__list > .splide__slide{ + margin:0 !important; + opacity:0; + z-index:0; +} +.splide__track--fade > .splide__list > .splide__slide.is-active{ + opacity:1; + z-index:1; +} +.splide--rtl{ + direction:rtl; +} +.splide__track--ttb > .splide__list{ + display:block; +} +.splide__arrow{ + -ms-flex-align:center; + -webkit-box-align:center; + align-items:center; + background:#ccc; + border:0; + border-radius:50%; + cursor:pointer; + display:-ms-flexbox; + display:-webkit-box; + display:flex; + height:2em; + -ms-flex-pack:center; + -webkit-box-pack:center; + justify-content:center; + opacity:0.7; + padding:0; + position:absolute; + top:50%; + -webkit-transform:translateY(-50%); + -ms-transform:translateY(-50%); + transform:translateY(-50%); + width:2em; + z-index:1; +} +.splide__arrow svg{ + fill:#000; + height:1.2em; + width:1.2em; +} +.splide__arrow:hover:not(:disabled){ + opacity:0.9; +} +.splide__arrow:disabled{ + opacity:0.3; +} +.splide__arrow:focus-visible{ + outline:3px solid #0bf; + outline-offset:3px; +} +.splide__arrow--prev{ + left:1em; +} +.splide__arrow--prev svg{ + -webkit-transform:scaleX(-1); + -ms-transform:scaleX(-1); + transform:scaleX(-1); +} +.splide__arrow--next{ + right:1em; +} +.splide.is-focus-in .splide__arrow:focus{ + outline:3px solid #0bf; + outline-offset:3px; +} +.splide__pagination{ + bottom:0.5em; + left:0; + padding:0 1em; + position:absolute; + right:0; + z-index:1; +} +.splide__pagination__page{ + background:#ccc; + border:0; + border-radius:50%; + display:inline-block; + height:8px; + margin:3px; + opacity:0.7; + padding:0; + position:relative; + -webkit-transition:-webkit-transform 0.2s linear; + transition:-webkit-transform 0.2s linear; + transition:transform 0.2s linear; + transition:transform 0.2s linear, -webkit-transform 0.2s linear; + width:8px; +} +.splide__pagination__page.is-active{ + background:#fff; + -webkit-transform:scale(1.4); + -ms-transform:scale(1.4); + transform:scale(1.4); + z-index:1; +} +.splide__pagination__page:hover{ + cursor:pointer; + opacity:0.9; +} +.splide__pagination__page:focus-visible{ + outline:3px solid #0bf; + outline-offset:3px; +} +.splide.is-focus-in .splide__pagination__page:focus{ + outline:3px solid #0bf; + outline-offset:3px; +} +.splide__progress__bar{ + background:#ccc; + height:3px; +} +.splide__slide{ + -webkit-tap-highlight-color:rgba(0, 0, 0, 0); +} +.splide__slide:focus{ + outline:0; +} +@supports (outline-offset: -3px){ + .splide__slide:focus-visible{ + outline:3px solid #0bf; + outline-offset:-3px; + } +} +@media screen and (-ms-high-contrast: none){ + .splide__slide:focus-visible{ + border:3px solid #0bf; + } +} +@supports (outline-offset: -3px){ + .splide.is-focus-in .splide__slide:focus{ + outline:3px solid #0bf; + outline-offset:-3px; + } +} +@media screen and (-ms-high-contrast: none){ + .splide.is-focus-in .splide__slide:focus{ + border:3px solid #0bf; + } + .splide.is-focus-in .splide__track > .splide__list > .splide__slide:focus{ + border-color:#0bf; + } +} +.splide__toggle{ + cursor:pointer; +} +.splide__toggle:focus-visible{ + outline:3px solid #0bf; + outline-offset:3px; +} +.splide.is-focus-in .splide__toggle:focus{ + outline:3px solid #0bf; + outline-offset:3px; +} +.splide__track--nav > .splide__list > .splide__slide{ + border:3px solid transparent; + cursor:pointer; +} +.splide__track--nav > .splide__list > .splide__slide.is-active{ + border:3px solid #000; +} +.splide__arrows--rtl .splide__arrow--prev{ + left:auto; + right:1em; +} +.splide__arrows--rtl .splide__arrow--prev svg{ + -webkit-transform:scaleX(1); + -ms-transform:scaleX(1); + transform:scaleX(1); +} +.splide__arrows--rtl .splide__arrow--next{ + left:1em; + right:auto; +} +.splide__arrows--rtl .splide__arrow--next svg{ + -webkit-transform:scaleX(-1); + -ms-transform:scaleX(-1); + transform:scaleX(-1); +} +.splide__arrows--ttb .splide__arrow{ + left:50%; + -webkit-transform:translate(-50%); + -ms-transform:translate(-50%); + transform:translate(-50%); +} +.splide__arrows--ttb .splide__arrow--prev{ + top:1em; +} +.splide__arrows--ttb .splide__arrow--prev svg{ + -webkit-transform:rotate(-90deg); + -ms-transform:rotate(-90deg); + transform:rotate(-90deg); +} +.splide__arrows--ttb .splide__arrow--next{ + bottom:1em; + top:auto; +} +.splide__arrows--ttb .splide__arrow--next svg{ + -webkit-transform:rotate(90deg); + -ms-transform:rotate(90deg); + transform:rotate(90deg); +} +.splide__pagination--ttb{ + bottom:0; + display:-ms-flexbox; + display:-webkit-box; + display:flex; + -ms-flex-direction:column; + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + flex-direction:column; + left:auto; + padding:1em 0; + right:0.5em; + top:0; +} +/*! 5.4. VirtualSelect */ +/*! + * Virtual Select v1.0.40 + * https://sa-si-dev.github.io/virtual-select + * Licensed under MIT (https://github.com/sa-si-dev/virtual-select/blob/master/LICENSE) + */ +@-webkit-keyframes vscomp-animation-spin{ + to{ + -webkit-transform:rotateZ(360deg); + transform:rotateZ(360deg); + } +} +@keyframes vscomp-animation-spin{ + to{ + -webkit-transform:rotateZ(360deg); + transform:rotateZ(360deg); + } +} +.vscomp-popup-active{ + overflow:hidden !important; +} +.vscomp-ele{ + display:inline-block; + max-width:250px; + width:100%; +} +.vscomp-wrapper{ + color:#333; + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; + -ms-flex-wrap:wrap; + flex-wrap:wrap; + font-family:sans-serif; + font-size:14px; + position:relative; + text-align:left; + width:100%; +} +.vscomp-wrapper *, +.vscomp-wrapper *::before, +.vscomp-wrapper *::after{ + -webkit-box-sizing:border-box; + box-sizing:border-box; +} +.vscomp-wrapper:focus{ + outline:none; +} +.vscomp-dropbox-wrapper{ + left:0; + position:absolute; + top:0; +} +.vscomp-toggle-button{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + background-color:#fff; + border:1px solid #ddd; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + padding:7px 30px 7px 10px; +} +.vscomp-value{ + height:20px; + line-height:20px; + max-width:100%; + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap; +} +.vscomp-arrow{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + height:100%; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + position:absolute; + right:0; + top:0; + width:30px; +} +.vscomp-arrow::after{ + -webkit-transform:rotate(45deg); + -ms-transform:rotate(45deg); + transform:rotate(45deg); + border:1px solid rgba(0, 0, 0, 0); + border-bottom-color:#111; + border-right-color:#111; + content:""; + height:8px; + margin-top:-6px; + width:8px; +} +.vscomp-clear-icon{ + height:12px; + position:relative; + width:12px; +} +.vscomp-clear-icon::before, +.vscomp-clear-icon::after{ + background-color:#999; + content:""; + height:12px; + left:5px; + position:absolute; + top:0; + width:2px; +} +.vscomp-clear-icon::before{ + -webkit-transform:rotate(45deg); + -ms-transform:rotate(45deg); + transform:rotate(45deg); +} +.vscomp-clear-icon::after{ + -webkit-transform:rotate(-45deg); + -ms-transform:rotate(-45deg); + transform:rotate(-45deg); +} +.vscomp-clear-icon:hover::before, +.vscomp-clear-icon:hover::after{ + background:#333; +} +.vscomp-clear-button{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + border-radius:50%; + display:none; + height:24px; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + margin-top:-12px; + position:absolute; + right:30px; + top:50%; + width:24px; +} +.vscomp-clear-button:hover{ + background:#ccc; +} +.vscomp-clear-button:hover .vscomp-clear-icon::before, +.vscomp-clear-button:hover .vscomp-clear-icon::after{ + background-color:#333; +} +.vscomp-dropbox-close-button{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + background-color:#fff; + border-radius:50%; + bottom:-48px; + cursor:pointer; + display:none; + height:40px; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + left:50%; + margin-left:-20px; + position:absolute; + width:40px; +} +.vscomp-value-tag.more-value-count{ + white-space:nowrap; +} +.vscomp-dropbox-container{ + width:100%; + z-index:2; +} +.vscomp-dropbox{ + background-color:#fff; + width:100%; +} +.vscomp-options-container{ + max-height:210px; + overflow:auto; + position:relative; +} +.vscomp-options-bottom-freezer{ + bottom:0; + height:2px; + left:0; + position:absolute; + right:0; +} +.vscomp-option{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + cursor:pointer; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -ms-flex-wrap:wrap; + flex-wrap:wrap; + height:40px; + padding:0 15px; + position:relative; +} +.vscomp-option.selected{ + background-color:#eee; +} +.vscomp-option.focused{ + background-color:#ccc; +} +.vscomp-option.disabled{ + cursor:default; + opacity:0.5; +} +.vscomp-option.group-title .vscomp-option-text{ + cursor:default; + opacity:0.6; +} +.vscomp-option.group-title.selected{ + background-color:rgba(0, 0, 0, 0); +} +.vscomp-option.group-option{ + padding-left:30px; +} +.vscomp-new-option-icon{ + height:30px; + position:absolute; + right:0; + top:0; + width:30px; +} +.vscomp-new-option-icon::before{ + border:15px solid #512da8; + border-bottom-color:rgba(0, 0, 0, 0); + border-left-color:rgba(0, 0, 0, 0); + content:""; + position:absolute; + right:0; + top:0; +} +.vscomp-new-option-icon::after{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + color:#fff; + content:"+"; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + font-size:18px; + height:15px; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + position:absolute; + right:1px; + top:0; + width:15px; +} +.vscomp-option-text{ + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap; + -webkit-user-select:none; + -moz-user-select:none; + -ms-user-select:none; + user-select:none; + width:100%; +} +.vscomp-option-description{ + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap; + color:#666; + font-size:13px; + line-height:15px; + width:100%; +} +.vscomp-search-container{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + border-bottom:1px solid #ddd; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + height:40px; + padding:0 5px 0 15px; +} +.vscomp-search-label, +.vscomp-live-region, +.vscomp-dropbox-container-top, +.vscomp-dropbox-container-bottom{ + border:0; + clip:rect(0 0 0 0); + height:1px; + margin:-1px; + overflow:hidden; + padding:0; + position:absolute; + white-space:nowrap; + width:1px; +} +.vscomp-search-input{ + background-color:rgba(0, 0, 0, 0); + border:0; + color:inherit; + font-size:15px; + height:38px; + padding:10px 0; + width:calc(100% - 30px); +} +.vscomp-search-input:focus{ + outline:none; +} +.vscomp-search-clear{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + color:#999; + cursor:pointer; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + font-size:25px; + height:30px; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + -webkit-user-select:none; + -moz-user-select:none; + -ms-user-select:none; + user-select:none; + visibility:hidden; + width:30px; +} +.vscomp-search-clear:hover{ + color:inherit; +} +.vscomp-no-options, +.vscomp-no-search-results{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:none; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + padding:20px 10px; +} +.vscomp-options-loader{ + display:none; + padding:20px 0; + text-align:center; +} +.vscomp-options-loader::before{ + -webkit-animation:vscomp-animation-spin 0.8s infinite linear; + animation:vscomp-animation-spin 0.8s infinite linear; + background-color:#fff; + border-radius:50%; + -webkit-box-shadow:-4px -5px 3px -3px rgba(0, 0, 0, 0.3); + box-shadow:-4px -5px 3px -3px rgba(0, 0, 0, 0.3); + content:""; + display:inline-block; + height:40px; + opacity:0.7; + width:40px; +} +.vscomp-ele[disabled]{ + cursor:not-allowed; + -webkit-user-select:none; + -moz-user-select:none; + -ms-user-select:none; + user-select:none; +} +.vscomp-ele[disabled] .vscomp-wrapper{ + opacity:0.7; + pointer-events:none; +} +.vscomp-wrapper .checkbox-icon{ + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; + height:15px; + margin-right:10px; + position:relative; + width:15px; +} +.vscomp-wrapper .checkbox-icon::after{ + -webkit-transition-duration:0.2s; + transition-duration:0.2s; + border:2px solid #888; + content:""; + display:inline-block; + height:100%; + width:100%; +} +.vscomp-wrapper .checkbox-icon.checked::after{ + -webkit-transform:rotate(45deg) translate(1px, -4px); + -ms-transform:rotate(45deg) translate(1px, -4px); + transform:rotate(45deg) translate(1px, -4px); + border-color:#512da8; + border-left-color:rgba(0, 0, 0, 0); + border-top-color:rgba(0, 0, 0, 0); + width:50%; +} +.vscomp-wrapper.show-as-popup .vscomp-dropbox-container{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + background-color:rgba(0, 0, 0, 0.5); + display:-webkit-box; + display:-ms-flexbox; + display:flex; + height:100vh; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + left:0; + opacity:1; + overflow:auto; + padding:0 10px; + position:fixed; + top:0; + width:100vw; +} +.vscomp-wrapper.show-as-popup .vscomp-dropbox{ + margin-top:-24px; + max-height:calc(80% - 48px); + max-width:500px; + position:relative; + width:80%; +} +.vscomp-wrapper.show-as-popup .vscomp-dropbox-close-button{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; +} +.vscomp-wrapper.popup-position-left .vscomp-dropbox-container{ + -webkit-box-pack:start; + -ms-flex-pack:start; + justify-content:flex-start; +} +.vscomp-wrapper.popup-position-right .vscomp-dropbox-container{ + -webkit-box-pack:end; + -ms-flex-pack:end; + justify-content:flex-end; +} +.vscomp-wrapper.has-select-all .vscomp-toggle-all-button{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + cursor:pointer; + display:-webkit-box; + display:-ms-flexbox; + display:flex; +} +.vscomp-wrapper.has-select-all .vscomp-search-input, +.vscomp-wrapper.has-select-all .vscomp-toggle-all-label{ + width:calc(100% - 55px); +} +.vscomp-wrapper.has-select-all .vscomp-toggle-all-label{ + display:none; +} +.vscomp-wrapper:not(.has-search-input) .vscomp-toggle-all-button{ + width:100%; +} +.vscomp-wrapper:not(.has-search-input) .vscomp-toggle-all-label{ + display:inline-block; +} +.vscomp-wrapper.multiple .vscomp-option .vscomp-option-text{ + width:calc(100% - 25px); +} +.vscomp-wrapper.multiple .vscomp-option .vscomp-option-description{ + padding-left:25px; +} +.vscomp-wrapper.multiple .vscomp-option.selected .checkbox-icon::after{ + -webkit-transform:rotate(45deg) translate(1px, -4px); + -ms-transform:rotate(45deg) translate(1px, -4px); + transform:rotate(45deg) translate(1px, -4px); + border-color:#512da8; + border-left-color:rgba(0, 0, 0, 0); + border-top-color:rgba(0, 0, 0, 0); + width:50%; +} +.vscomp-wrapper.focused .vscomp-toggle-button, +.vscomp-wrapper:focus .vscomp-toggle-button{ + -webkit-box-shadow:0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2); + box-shadow:0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2); +} +.vscomp-wrapper.closed .vscomp-dropbox-container, +.vscomp-wrapper.closed.vscomp-dropbox-wrapper{ + display:none; +} +.vscomp-wrapper:not(.has-value) .vscomp-value{ + opacity:0.5; +} +.vscomp-wrapper.has-clear-button.has-value .vscomp-clear-button{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; +} +.vscomp-wrapper.has-clear-button .vscomp-toggle-button{ + padding-right:54px; +} +.vscomp-wrapper.has-no-options .vscomp-options-container, +.vscomp-wrapper.has-no-search-results .vscomp-options-container{ + display:none; +} +.vscomp-wrapper.has-no-options .vscomp-no-options{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; +} +.vscomp-wrapper.has-no-search-results .vscomp-no-search-results{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; +} +.vscomp-wrapper.has-search-value .vscomp-search-clear{ + visibility:visible; +} +.vscomp-wrapper.has-no-options .vscomp-toggle-all-button{ + opacity:0.5; + pointer-events:none; +} +.vscomp-wrapper.keep-always-open .vscomp-toggle-button{ + padding-right:24px; +} +.vscomp-wrapper.keep-always-open .vscomp-clear-button{ + right:5px; +} +.vscomp-wrapper.keep-always-open .vscomp-arrow{ + display:none; +} +.vscomp-wrapper.keep-always-open .vscomp-dropbox-container{ + position:relative; + z-index:1; +} +.vscomp-wrapper.keep-always-open .vscomp-dropbox{ + -webkit-transition-duration:0s; + transition-duration:0s; + border:1px solid #ddd; + -webkit-box-shadow:none; + box-shadow:none; +} +.vscomp-wrapper.keep-always-open.focused, +.vscomp-wrapper.keep-always-open:focus, +.vscomp-wrapper.keep-always-open:hover{ + -webkit-box-shadow:0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2); + box-shadow:0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2); +} +.vscomp-wrapper.server-searching .vscomp-options-list{ + display:none; +} +.vscomp-wrapper.server-searching .vscomp-options-loader{ + display:block; +} +.vscomp-wrapper.has-error .vscomp-toggle-button{ + border-color:#b00020; +} +.vscomp-wrapper.show-value-as-tags .vscomp-toggle-button{ + padding:4px 22px 0 10px; +} +.vscomp-wrapper.show-value-as-tags .vscomp-value{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -ms-flex-wrap:wrap; + flex-wrap:wrap; + height:auto; + min-height:28px; + overflow:auto; + text-overflow:unset; + white-space:normal; +} +.vscomp-wrapper.show-value-as-tags .vscomp-value-tag{ + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap; + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + border:1px solid #ddd; + border-radius:20px; + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; + font-size:12px; + line-height:16px; + margin:0 4px 4px 0; + max-width:100%; + padding:2px 3px 2px 8px; +} +.vscomp-wrapper.show-value-as-tags .vscomp-value-tag.more-value-count{ + padding-right:8px; +} +.vscomp-wrapper.show-value-as-tags .vscomp-value-tag-content{ + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap; + width:calc(100% - 20px); +} +.vscomp-wrapper.show-value-as-tags .vscomp-value-tag-clear-button{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + height:20px; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + width:20px; +} +.vscomp-wrapper.show-value-as-tags .vscomp-value-tag-clear-button .vscomp-clear-icon{ + -webkit-transform:scale(0.8); + -ms-transform:scale(0.8); + transform:scale(0.8); +} +.vscomp-wrapper.show-value-as-tags .vscomp-arrow{ + height:34px; +} +.vscomp-wrapper.show-value-as-tags .vscomp-clear-button{ + top:5px; +} +.vscomp-wrapper.show-value-as-tags.has-value .vscomp-arrow{ + display:none; +} +.vscomp-wrapper.show-value-as-tags.has-value .vscomp-clear-button{ + right:2px; +} +.vscomp-wrapper.show-value-as-tags:not(.has-value) .vscomp-toggle-button{ + padding-bottom:2px; +} +.vscomp-wrapper.show-value-as-tags:not(.has-value) .vscomp-value{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + padding-bottom:3px; +} +.vscomp-wrapper.text-direction-rtl{ + direction:rtl; +} +.vscomp-wrapper.text-direction-rtl .vscomp-toggle-button{ + padding:7px 10px 7px 30px; +} +.vscomp-wrapper.text-direction-rtl .vscomp-arrow{ + left:0; + right:auto; +} +.vscomp-wrapper.text-direction-rtl .vscomp-clear-button{ + left:30px; + right:auto !important; +} +.vscomp-wrapper.text-direction-rtl .checkbox-icon{ + margin-left:10px; + margin-right:0; +} +.vscomp-wrapper.text-direction-rtl .checkbox-icon.checked::after{ + -webkit-transform:rotate(45deg) translate(-4px, 1px); + -ms-transform:rotate(45deg) translate(-4px, 1px); + transform:rotate(45deg) translate(-4px, 1px); +} +.vscomp-wrapper.text-direction-rtl .vscomp-search-container{ + padding:0 15px 0 5px; +} +.vscomp-wrapper.text-direction-rtl .vscomp-toggle-all-label{ + text-align:right; +} +.vscomp-wrapper.text-direction-rtl .vscomp-option{ + text-align:right; +} +.vscomp-wrapper.text-direction-rtl .vscomp-option.group-option{ + padding-right:30px; +} +.vscomp-wrapper.text-direction-rtl .vscomp-new-option-icon{ + left:0; + right:auto; +} +.vscomp-wrapper.text-direction-rtl .vscomp-new-option-icon::before{ + border-left-color:#512da8; + border-right-color:rgba(0, 0, 0, 0); +} +.vscomp-wrapper.text-direction-rtl .vscomp-new-option-icon::after{ + left:1px; + right:auto; +} +.vscomp-wrapper.text-direction-rtl.multiple .vscomp-option.selected .checkbox-icon::after{ + -webkit-transform:rotate(45deg) translate(-4px, 1px); + -ms-transform:rotate(45deg) translate(-4px, 1px); + transform:rotate(45deg) translate(-4px, 1px); +} +.vscomp-wrapper.text-direction-rtl.has-clear-button .vscomp-toggle-button{ + padding-left:54px; +} +.vscomp-wrapper.text-direction-rtl.keep-always-open .vscomp-toggle-button{ + padding-left:24px; +} +.vscomp-wrapper.text-direction-rtl.keep-always-open .vscomp-clear-button{ + left:5px; +} +.vscomp-wrapper.text-direction-rtl.show-value-as-tags .vscomp-toggle-button{ + padding:4px 10px 0 22px; +} +.vscomp-wrapper.text-direction-rtl.show-value-as-tags .vscomp-value-tag{ + margin:0 0 4px 4px; + padding:2px 8px 2px 3px; +} +.vscomp-wrapper.text-direction-rtl.show-value-as-tags .vscomp-value-tag.more-value-count{ + padding-left:8px; +} +.vscomp-wrapper.text-direction-rtl.show-value-as-tags.has-value .vscomp-clear-button{ + left:2px; +} +/*! + * Popover v1.0.12 + * https://sa-si-dev.github.io/popover + * Licensed under MIT (https://github.com/sa-si-dev/popover/blob/master/LICENSE) + */ +.pop-comp-wrapper{ + display:none; + position:absolute; + top:0; + left:0; + opacity:0; + color:#000; + background-color:#fff; + -webkit-box-shadow:0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2); + box-shadow:0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2); + text-align:left; + -ms-flex-wrap:wrap; + flex-wrap:wrap; + z-index:1; +} +.pop-comp-arrow{ + position:absolute; + z-index:1; + width:16px; + height:16px; + overflow:hidden; + pointer-events:none; +} +.pop-comp-arrow::before{ + content:""; + position:absolute; + top:8px; + left:8px; + width:16px; + height:16px; + background-color:#fff; + -webkit-box-shadow:0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2); + box-shadow:0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2); + -webkit-transform-origin:left top; + -ms-transform-origin:left top; + transform-origin:left top; + -webkit-transform:rotate(45deg); + -ms-transform:rotate(45deg); + transform:rotate(45deg); +} +.pop-comp-content{ + position:relative; + z-index:2; +} +.pop-comp-wrapper.position-bottom > .pop-comp-arrow{ + margin-left:-8px; + left:0; + top:-15px; +} +.pop-comp-wrapper.position-bottom > .pop-comp-arrow::before{ + -webkit-box-shadow:0px 0px 2px 0 rgba(0, 0, 0, 0.14); + box-shadow:0px 0px 2px 0 rgba(0, 0, 0, 0.14); +} +.pop-comp-wrapper.position-top > .pop-comp-arrow{ + margin-left:-8px; + left:0; + bottom:-15px; +} +.pop-comp-wrapper.position-right > .pop-comp-arrow{ + margin-top:-8px; + top:0; + left:-15px; +} +.pop-comp-wrapper.position-left > .pop-comp-arrow{ + margin-top:-8px; + top:0; + right:-15px; +} +.pop-comp-disable-events{ + pointer-events:none; +} +/*! ============================================================================== +6. Patterns +=============================================================================== */ +/*! 6.1. Adaptive */ +/*! 6.1.1. Columns */ +.columns{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -ms-flex-wrap:wrap; + flex-wrap:wrap; +} +.columns > .columns-item{ + -webkit-box-flex:1; + -ms-flex:1; + flex:1; + word-break:break-word; +} +.columns > .columns-item > .card{ + height:100%; +} +.columns:not(.gutter-none) > .columns-item{ + min-width:0; +} +.columns.columns-small-left > .columns-item:last-child, .columns.columns-small-right > .columns-item:first-child{ + -webkit-box-flex:3; + -ms-flex:3; + flex:3; +} +.columns.columns-medium-left > .columns-item:last-child, .columns.columns-medium-right > .columns-item:first-child{ + -webkit-box-flex:2; + -ms-flex:2; + flex:2; +} +.columns.gutter-none{ + margin-left:calc(-1 * var(--space-none) / 2); + margin-right:calc(-1 * var(--space-none) / 2); +} +.columns.gutter-none > .columns-item{ + margin-bottom:var(--space-none); + padding:var(--space-none) calc(var(--space-none) / 2); +} +.tablet .columns.gutter-none.tablet-break-first:only-child > .columns-item:not(:last-child), .tablet .columns.gutter-none.tablet-break-last:only-child > .columns-item:not(:last-child), .tablet .columns.gutter-none.tablet-break-middle:only-child > .columns-item:not(:last-child), .tablet .columns.gutter-none.tablet-break-all:only-child > .columns-item:not(:last-child){ + margin-bottom:var(--space-none); +} +.phone .columns.gutter-none.phone-break-first:only-child > .columns-item:not(:last-child), .phone .columns.gutter-none.phone-break-last:only-child > .columns-item:not(:last-child), .phone .columns.gutter-none.phone-break-middle:only-child > .columns-item:not(:last-child), .phone .columns.gutter-none.phone-break-all:only-child > .columns-item:not(:last-child){ + margin-bottom:var(--space-none); +} +.columns.gutter-xs{ + margin-left:calc(-1 * var(--space-xs) / 2); + margin-right:calc(-1 * var(--space-xs) / 2); +} +.columns.gutter-xs > .columns-item{ + margin-bottom:var(--space-xs); + padding:var(--space-none) calc(var(--space-xs) / 2); +} +.tablet .columns.gutter-xs.tablet-break-first:only-child > .columns-item:not(:last-child), .tablet .columns.gutter-xs.tablet-break-last:only-child > .columns-item:not(:last-child), .tablet .columns.gutter-xs.tablet-break-middle:only-child > .columns-item:not(:last-child), .tablet .columns.gutter-xs.tablet-break-all:only-child > .columns-item:not(:last-child){ + margin-bottom:var(--space-xs); +} +.phone .columns.gutter-xs.phone-break-first:only-child > .columns-item:not(:last-child), .phone .columns.gutter-xs.phone-break-last:only-child > .columns-item:not(:last-child), .phone .columns.gutter-xs.phone-break-middle:only-child > .columns-item:not(:last-child), .phone .columns.gutter-xs.phone-break-all:only-child > .columns-item:not(:last-child){ + margin-bottom:var(--space-xs); +} +.columns.gutter-s{ + margin-left:calc(-1 * var(--space-s) / 2); + margin-right:calc(-1 * var(--space-s) / 2); +} +.columns.gutter-s > .columns-item{ + margin-bottom:var(--space-s); + padding:var(--space-none) calc(var(--space-s) / 2); +} +.tablet .columns.gutter-s.tablet-break-first:only-child > .columns-item:not(:last-child), .tablet .columns.gutter-s.tablet-break-last:only-child > .columns-item:not(:last-child), .tablet .columns.gutter-s.tablet-break-middle:only-child > .columns-item:not(:last-child), .tablet .columns.gutter-s.tablet-break-all:only-child > .columns-item:not(:last-child){ + margin-bottom:var(--space-s); +} +.phone .columns.gutter-s.phone-break-first:only-child > .columns-item:not(:last-child), .phone .columns.gutter-s.phone-break-last:only-child > .columns-item:not(:last-child), .phone .columns.gutter-s.phone-break-middle:only-child > .columns-item:not(:last-child), .phone .columns.gutter-s.phone-break-all:only-child > .columns-item:not(:last-child){ + margin-bottom:var(--space-s); +} +.columns.gutter-base{ + margin-left:calc(-1 * var(--space-base) / 2); + margin-right:calc(-1 * var(--space-base) / 2); +} +.columns.gutter-base > .columns-item{ + margin-bottom:var(--space-base); + padding:var(--space-none) calc(var(--space-base) / 2); +} +.tablet .columns.gutter-base.tablet-break-first:only-child > .columns-item:not(:last-child), .tablet .columns.gutter-base.tablet-break-last:only-child > .columns-item:not(:last-child), .tablet .columns.gutter-base.tablet-break-middle:only-child > .columns-item:not(:last-child), .tablet .columns.gutter-base.tablet-break-all:only-child > .columns-item:not(:last-child){ + margin-bottom:var(--space-base); +} +.phone .columns.gutter-base.phone-break-first:only-child > .columns-item:not(:last-child), .phone .columns.gutter-base.phone-break-last:only-child > .columns-item:not(:last-child), .phone .columns.gutter-base.phone-break-middle:only-child > .columns-item:not(:last-child), .phone .columns.gutter-base.phone-break-all:only-child > .columns-item:not(:last-child){ + margin-bottom:var(--space-base); +} +.columns.gutter-m{ + margin-left:calc(-1 * var(--space-m) / 2); + margin-right:calc(-1 * var(--space-m) / 2); +} +.columns.gutter-m > .columns-item{ + margin-bottom:var(--space-m); + padding:var(--space-none) calc(var(--space-m) / 2); +} +.tablet .columns.gutter-m.tablet-break-first:only-child > .columns-item:not(:last-child), .tablet .columns.gutter-m.tablet-break-last:only-child > .columns-item:not(:last-child), .tablet .columns.gutter-m.tablet-break-middle:only-child > .columns-item:not(:last-child), .tablet .columns.gutter-m.tablet-break-all:only-child > .columns-item:not(:last-child){ + margin-bottom:var(--space-m); +} +.phone .columns.gutter-m.phone-break-first:only-child > .columns-item:not(:last-child), .phone .columns.gutter-m.phone-break-last:only-child > .columns-item:not(:last-child), .phone .columns.gutter-m.phone-break-middle:only-child > .columns-item:not(:last-child), .phone .columns.gutter-m.phone-break-all:only-child > .columns-item:not(:last-child){ + margin-bottom:var(--space-m); +} +.columns.gutter-l{ + margin-left:calc(-1 * var(--space-l) / 2); + margin-right:calc(-1 * var(--space-l) / 2); +} +.columns.gutter-l > .columns-item{ + margin-bottom:var(--space-l); + padding:var(--space-none) calc(var(--space-l) / 2); +} +.tablet .columns.gutter-l.tablet-break-first:only-child > .columns-item:not(:last-child), .tablet .columns.gutter-l.tablet-break-last:only-child > .columns-item:not(:last-child), .tablet .columns.gutter-l.tablet-break-middle:only-child > .columns-item:not(:last-child), .tablet .columns.gutter-l.tablet-break-all:only-child > .columns-item:not(:last-child){ + margin-bottom:var(--space-l); +} +.phone .columns.gutter-l.phone-break-first:only-child > .columns-item:not(:last-child), .phone .columns.gutter-l.phone-break-last:only-child > .columns-item:not(:last-child), .phone .columns.gutter-l.phone-break-middle:only-child > .columns-item:not(:last-child), .phone .columns.gutter-l.phone-break-all:only-child > .columns-item:not(:last-child){ + margin-bottom:var(--space-l); +} +.columns.gutter-xl{ + margin-left:calc(-1 * var(--space-xl) / 2); + margin-right:calc(-1 * var(--space-xl) / 2); +} +.columns.gutter-xl > .columns-item{ + margin-bottom:var(--space-xl); + padding:var(--space-none) calc(var(--space-xl) / 2); +} +.tablet .columns.gutter-xl.tablet-break-first:only-child > .columns-item:not(:last-child), .tablet .columns.gutter-xl.tablet-break-last:only-child > .columns-item:not(:last-child), .tablet .columns.gutter-xl.tablet-break-middle:only-child > .columns-item:not(:last-child), .tablet .columns.gutter-xl.tablet-break-all:only-child > .columns-item:not(:last-child){ + margin-bottom:var(--space-xl); +} +.phone .columns.gutter-xl.phone-break-first:only-child > .columns-item:not(:last-child), .phone .columns.gutter-xl.phone-break-last:only-child > .columns-item:not(:last-child), .phone .columns.gutter-xl.phone-break-middle:only-child > .columns-item:not(:last-child), .phone .columns.gutter-xl.phone-break-all:only-child > .columns-item:not(:last-child){ + margin-bottom:var(--space-xl); +} +.columns.gutter-xxl{ + margin-left:calc(-1 * var(--space-xxl) / 2); + margin-right:calc(-1 * var(--space-xxl) / 2); +} +.columns.gutter-xxl > .columns-item{ + margin-bottom:var(--space-xxl); + padding:var(--space-none) calc(var(--space-xxl) / 2); +} +.tablet .columns.gutter-xxl.tablet-break-first:only-child > .columns-item:not(:last-child), .tablet .columns.gutter-xxl.tablet-break-last:only-child > .columns-item:not(:last-child), .tablet .columns.gutter-xxl.tablet-break-middle:only-child > .columns-item:not(:last-child), .tablet .columns.gutter-xxl.tablet-break-all:only-child > .columns-item:not(:last-child){ + margin-bottom:var(--space-xxl); +} +.phone .columns.gutter-xxl.phone-break-first:only-child > .columns-item:not(:last-child), .phone .columns.gutter-xxl.phone-break-last:only-child > .columns-item:not(:last-child), .phone .columns.gutter-xxl.phone-break-middle:only-child > .columns-item:not(:last-child), .phone .columns.gutter-xxl.phone-break-all:only-child > .columns-item:not(:last-child){ + margin-bottom:var(--space-xxl); +} +.columns:only-child > .columns-item{ + margin-bottom:var(--space-none); +} +.phone .columns.phone-break-first > .columns-item:first-child, .phone .columns.phone-break-last > .columns-item:last-child, .phone .columns.phone-break-all > .columns-item, .phone .columns.columns2.phone-break-middle > .columns-item, .phone .columns.columns3.phone-break-middle > .columns-item:last-child, .phone .columns.columns-small-left.phone-break-middle > .columns-item, .phone .columns.columns-medium-left.phone-break-middle > .columns-item, .phone .columns.columns-small-right.phone-break-middle > .columns-item, .phone .columns.columns-medium-right.phone-break-middle > .columns-item{ + -webkit-box-flex:0; + -ms-flex:none; + flex:none; + width:100%; +} +.phone .columns.columns4.phone-break-middle > .columns-item{ + -webkit-box-flex:0; + -ms-flex:none; + flex:none; + width:50%; +} +.phone .columns.columns5.phone-break-middle > .columns-item:nth-child(1), .phone .columns.columns5.phone-break-middle > .columns-item:nth-child(2), .phone .columns.columns5.phone-break-middle > .columns-item:nth-child(3), .phone .columns.columns6.phone-break-middle > .columns-item:nth-child(1), .phone .columns.columns6.phone-break-middle > .columns-item:nth-child(2), .phone .columns.columns6.phone-break-middle > .columns-item:nth-child(3){ + -webkit-box-flex:0; + -ms-flex:none; + flex:none; + width:33.333%; +} +.tablet .columns.tablet-break-first > .columns-item:first-child, .tablet .columns.tablet-break-last > .columns-item:last-child, .tablet .columns.tablet-break-all > .columns-item, .tablet .columns.columns2.tablet-break-middle > .columns-item, .tablet .columns.columns3.tablet-break-middle > .columns-item:last-child, .tablet .columns.columns-small-left.tablet-break-middle > .columns-item, .tablet .columns.columns-medium-left.tablet-break-middle > .columns-item, .tablet .columns.columns-small-right.tablet-break-middle > .columns-item, .tablet .columns.columns-medium-right.tablet-break-middle > .columns-item{ + -webkit-box-flex:0; + -ms-flex:none; + flex:none; + width:100%; +} +.tablet .columns.columns4.tablet-break-middle > .columns-item{ + -webkit-box-flex:0; + -ms-flex:none; + flex:none; + width:50%; +} +.tablet .columns.columns5.tablet-break-middle > .columns-item:nth-child(1), .tablet .columns.columns5.tablet-break-middle > .columns-item:nth-child(2), .tablet .columns.columns5.tablet-break-middle > .columns-item:nth-child(3), .tablet .columns.columns6.tablet-break-middle > .columns-item:nth-child(1), .tablet .columns.columns6.tablet-break-middle > .columns-item:nth-child(2), .tablet .columns.columns6.tablet-break-middle > .columns-item:nth-child(3){ + -webkit-box-flex:0; + -ms-flex:none; + flex:none; + width:33.333%; +} +/*! 6.1.2. Gallery */ +.osui-gallery, .osui-gallery > .list{ + display:grid; + grid-gap:var(--gallery-gap); + grid-template-columns:repeat(var(--gallery-desktop-items), minmax(0, 1fr)); +} +.osui-gallery > *{ + margin-top:0; +} +.osui-gallery > .list{ + grid-column-end:calc(var(--gallery-desktop-items) + 1); + grid-column-start:1; + overflow:initial; +} +.osui-gallery > .list .card, +.osui-gallery > .list .animate{ + height:100%; +} +.osui-gallery > .list .card-background{ + -servicestudio-height:100% !important; +} +.osui-gallery > img{ + -o-object-fit:cover; + object-fit:cover; +} +.tablet .osui-gallery, .tablet .osui-gallery > .list{ + grid-template-columns:repeat(var(--gallery-tablet-items), minmax(0, 1fr)); +} +.tablet .osui-gallery > .list{ + grid-column-end:calc(var(--gallery-tablet-items) + 1); +} +.phone .osui-gallery, .phone .osui-gallery > .list{ + grid-template-columns:repeat(var(--gallery-phone-items), minmax(0, 1fr)); +} +.phone .osui-gallery > .list{ + grid-column-end:calc(var(--gallery-phone-items) + 1); +} +/*! 6.1.3. Master Detail */ +.split-screen-wrapper{ + background-color:var(--color-neutral-0); + border:var(--border-size-s) solid var(--color-neutral-4); + border-radius:var(--border-radius-soft); + display:-webkit-box; + display:-ms-flexbox; + display:flex; + overflow:hidden; + position:relative; +} +.split-screen-wrapper .split-left, .split-screen-wrapper .split-right{ + overflow-y:auto; + -ms-touch-action:pan-y; + touch-action:pan-y; +} +.split-screen-wrapper .split-left, .split-screen-wrapper .split-right{ + -servicestudio-min-height:80px; + -servicestudio-position:relative; + -servicestudio-width:50%; +} +.split-screen-wrapper .split-left{ + width:var(--left-percentage); +} +.split-screen-wrapper .split-left .list-item{ + cursor:pointer; +} +.split-screen-wrapper .split-right{ + border-left:var(--border-size-s) solid var(--color-neutral-4); + padding:var(--space-xl); + width:calc(100% - var(--left-percentage)); +} +.split-screen-wrapper .split-right .split-right-close{ + left:calc(var(--os-safe-area-left) + var(--space-m)); + position:fixed; + top:12px; + z-index:var(--layer-global-screen); +} +.split-screen-wrapper .split-right .split-right-close{ + -servicestudio-display:none; +} +.split-screen-wrapper .split-right .split-right-close a{ + color:var(--color-neutral-8); + font-size:var(--font-size-base); +} +.split-screen-wrapper .split-right .split-right-content{ + height:100%; +} +.split-screen-wrapper .split-right .split-right-content{ + -servicestudio-min-height:80px; +} +.split-screen-wrapper .split-right .split-right-content .split-right--placeholder{ + height:100%; +} +.layout-native .split-right-close{ + left:calc(var(--os-safe-area-left) + 24px); +} +.desktop .split-screen-wrapper.is--screen-size, +.tablet .split-screen-wrapper.is--screen-size{ + height:calc(100vh - var(--master-detail-height)); +} +.desktop .split-screen-wrapper.is--full-height, +.tablet .split-screen-wrapper.is--full-height{ + height:var(--master-detail-height); +} +.desktop .split-screen-wrapper .split-right-close, +.tablet .split-screen-wrapper .split-right-close{ + display:none; +} +.phone .split-screen-wrapper{ + -servicestudio-display:block; +} +.phone .split-screen-wrapper .split-left, .phone .split-screen-wrapper .split-right{ + -servicestudio-width:100% !important; +} +.phone .split-screen-wrapper .split-left{ + width:100%; +} +.phone .split-screen-wrapper .split-right{ + background-color:var(--color-neutral-0); + border-left:var(--border-size-none); + height:100%; + left:0; + padding-bottom:calc(var(--os-safe-area-bottom) + var(--space-m)); + padding-left:calc(var(--os-safe-area-left) + var(--space-m)); + padding-right:calc(var(--os-safe-area-right) + var(--space-m)); + padding-top:var(--header-size); + position:fixed; + top:0; + -webkit-transform:translateX(100%) translateZ(0); + transform:translateX(100%) translateZ(0); + -webkit-transition:all 190ms ease-in; + transition:all 190ms ease-in; + width:100%; + will-change:transform; + z-index:calc(var(--layer-above) + var(--layer-global-navigation)); +} +.phone .split-screen-wrapper .split-right.open{ + -webkit-transform:translateX(0) translateZ(0); + transform:translateX(0) translateZ(0); + -webkit-transition:all 330ms ease-out; + transition:all 330ms ease-out; +} +.phone .split-screen-wrapper .split-right{ + -servicestudio--webkit-transform:none; + -servicestudio-position:static; +} +.phone .layout-native .split-right{ + padding-bottom:calc(var(--os-safe-area-bottom) + var(--space-base)); + padding-left:calc(var(--os-safe-area-left) + var(--space-base)); + padding-right:calc(var(--os-safe-area-right) + var(--space-base)); + padding-top:calc(var(--header-size) + var(--os-safe-area-top)); +} +.phone .layout-native .split-right .split-right-close{ + display:block; + left:calc(var(--os-safe-area-left) + var(--space-base)); +} +.phone.android[data-status-bar-height] .layout-native .split-right{ + padding-top:calc(var(--header-size) + var(--status-bar-height)); +} +.phone.ios .layout-native .split-right-close{ + top:calc(var(--os-safe-area-top) + 12px); +} +.android[data-status-bar-height] .layout-native .split-right-close{ + left:16px; + top:calc(var(--status-bar-height) + 10px); +} +.is-rtl .split-right{ + border-left:0; + border-right:var(--border-size-s) solid var(--color-neutral-4); +} +.has-accessible-features .split-left .list-item:focus{ + -webkit-box-shadow:none; + box-shadow:none; +} +.has-accessible-features .split-left .list-item:focus:before{ + border:3px solid var(--color-focus-outer); + bottom:0; + content:""; + left:0; + position:absolute; + right:0; + top:0; +} +/*! 6.2. Content */ +/*! 6.2.1. Accordion */ +.osui-accordion :first-child:not(.list) > .osui-accordion-item, +.osui-accordion .list :first-child > .osui-accordion-item{ + border-radius:var(--border-radius-none); + border-top-left-radius:var(--border-radius-soft); + border-top-right-radius:var(--border-radius-soft); +} +.osui-accordion :last-child:not(.list) > .osui-accordion-item, +.osui-accordion .list :last-child > .osui-accordion-item{ + border-bottom-width:var(--border-size-s); + border-radius:var(--border-radius-none); + border-bottom-left-radius:var(--border-radius-soft); + border-bottom-right-radius:var(--border-radius-soft); +} +.osui-accordion :only-child > .osui-accordion-item, +.osui-accordion .list :only-child > .osui-accordion-item{ + border-radius:var(--border-radius-soft); +} +.osui-accordion :first-child:not(.list) > .osui-accordion-item::after{ + border-top-left-radius:var(--border-radius-soft); + border-top-right-radius:var(--border-radius-soft); +} +.osui-accordion .osui-accordion-item, +.osui-accordion .list .osui-accordion-item{ + border-radius:var(--border-radius-none); +} +.osui-accordion .osui-accordion-item{ + border-bottom-width:var(--border-size-none); +} +.osui-accordion .osui-accordion-item::after{ + border-top-left-radius:var(--border-radius-none); + border-top-right-radius:var(--border-radius-none); +} +.osui-accordion .osui-accordion-item{ + -servicestudio-border-bottom-width:var(--border-size-s); +} +/*! 6.2.2. Accordion Item */ +.osui-accordion-item{ + --accordion-active-border-size:2px; + background-color:var(--color-neutral-0); + border:var(--border-size-s) solid var(--color-neutral-4); + border-bottom-width:var(--border-size-s); + border-radius:var(--border-radius-soft); + position:relative; +} +.osui-accordion-item:after{ + background-color:transparent; + border-color:transparent; + border-style:solid; + border-top-left-radius:var(--border-radius-soft); + border-top-right-radius:var(--border-radius-soft); + border-width:var(--accordion-active-border-size) var(--border-size-none) var(--border-size-none) var(--border-size-none); + content:""; + left:0; + height:100%; + pointer-events:none; + position:absolute; + opacity:0; + top:-1px; + width:100%; +} +.osui-accordion-item--is-open > .osui-accordion-item__title{ + font-weight:var(--font-semi-bold); +} +.osui-accordion-item--is-open > .osui-accordion-item__title > .osui-accordion-item__icon--caret{ + -webkit-transform:rotate(180deg); + -ms-transform:rotate(180deg); + transform:rotate(180deg); +} +.osui-accordion-item--is-open > .osui-accordion-item__title > .osui-accordion-item__icon--plus-minus:after{ + -webkit-transform:rotate(90deg); + -ms-transform:rotate(90deg); + transform:rotate(90deg); +} +.osui-accordion-item--is-open.osui-accordion-item--is-disabled::after{ + border-color:var(--color-neutral-6); +} +.osui-accordion-item--is-open::after{ + border-color:var(--color-primary); + opacity:1; + -webkit-transition:opacity 300ms ease-in; + transition:opacity 300ms ease-in; +} +.osui-accordion-item--is-disabled{ + color:var(--color-neutral-7); + pointer-events:none; +} +.osui-accordion-item--is-disabled .osui-accordion-item__icon{ + color:var(--color-neutral-6); +} +.osui-accordion-item--is-disabled .osui-accordion-item__icon--plus-minus:after, .osui-accordion-item--is-disabled .osui-accordion-item__icon--plus-minus:before{ + background-color:var(--color-neutral-6); +} +.osui-accordion-item__title{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + cursor:pointer; + direction:ltr; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + font-size:var(--font-size-h6); + line-height:1; + padding:var(--space-m); + width:100%; +} +.osui-accordion-item__title__placeholder{ + text-overflow:ellipsis; + width:100%; +} +.osui-accordion-item__title--is-left{ + -webkit-box-orient:horizontal; + -webkit-box-direction:reverse; + -ms-flex-direction:row-reverse; + flex-direction:row-reverse; +} +.osui-accordion-item__title--is-left .osui-accordion-item__title__placeholder{ + padding-left:var(--space-s); +} +.osui-accordion-item__icon{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + color:var(--color-primary); + display:-webkit-box; + display:-ms-flexbox; + display:flex; + font-family:FontAwesome; + font-size:var(--font-size-h4); + font-weight:var(--font-regular); + height:16px; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + -webkit-transition:all 300ms ease-in-out; + transition:all 300ms ease-in-out; + width:16px; +} +.osui-accordion-item__icon--caret:after{ + content:"\f107"; +} +.osui-accordion-item__icon--plus-minus:after{ + background-color:var(--color-primary); + content:" "; + height:100%; + -webkit-transition:-webkit-transform 300ms ease-in-out; + transition:-webkit-transform 300ms ease-in-out; + transition:transform 300ms ease-in-out; + transition:transform 300ms ease-in-out, -webkit-transform 300ms ease-in-out; + width:2px; +} +.osui-accordion-item__icon--plus-minus:before{ + background-color:var(--color-primary); + content:" "; + height:2px; + position:absolute; + width:16px; +} +.osui-accordion-item__icon--custom{ + pointer-events:none; + -servicestudio-height:auto; + -servicestudio-width:auto; +} +.osui-accordion-item__icon--hidden{ + display:none; + height:0; + width:0; + -servicestudio-z-index:var(--layer-global-negative); +} +.osui-accordion-item__content{ + display:block; + overflow:hidden; + padding:var(--space-none) var(--space-m); +} +.osui-accordion-item__content--is-collapsed{ + height:0; + visibility:hidden; +} +.osui-accordion-item__content--is-expanded{ + height:auto; + padding:var(--space-none) var(--space-m) var(--space-m); + visibility:visible; +} +.osui-accordion-item__content--is-animating{ + -webkit-transition:all 300ms ease-in-out; + transition:all 300ms ease-in-out; +} +.osui-accordion-item__content [data-block*=AnimatedLabel]:first-child .animated-label{ + margin-top:var(--space-s); +} +.osui-accordion-item .choices__list.choices__list--dropdown, +.osui-accordion-item [data-dropdown] > div.dropdown-list{ + position:initial; +} +.osui-accordion-item .osui-accordion{ + margin-top:var(--accordion-active-border-size); +} +.phone .osui-accordion-item .osui-accordion-item__title{ + font-size:calc(var(--font-size-base)); +} +.layout-native .osui-accordion-item__title{ + padding:var(--space-base); +} +.layout-native .osui-accordion-item__content{ + padding:var(--space-none) var(--space-base); +} +.layout-native .osui-accordion-item__content--is-collapsed{ + padding:var(--space-none) var(--space-base); +} +.layout-native .osui-accordion-item__content--is-expanded{ + padding:var(--space-none) var(--space-base) var(--space-base); +} +.has-accessible-features .osui-accordion-item__title:focus, .has-accessible-features .osui-accordion-item__content:focus{ + -webkit-box-shadow:none; + box-shadow:none; +} +.has-accessible-features .osui-accordion-item__title:focus-visible, .has-accessible-features .osui-accordion-item__content:focus-visible{ + outline:var(--border-size-l) solid var(--color-focus-outer); +} +.is-rtl .osui-accordion-item__title__placeholder{ + direction:rtl; + margin-right:var(--space-s); +} +/*! 6.2.3. Alert */ +.alert{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + border-radius:var(--border-radius-soft); + color:var(--color-neutral-0); + display:-webkit-box; + display:-ms-flexbox; + display:flex; + padding:var(--space-base); +} +.alert .alert-icon{ + -ms-flex-item-align:start; + align-self:flex-start; + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; + font-size:24px; + margin-right:var(--space-base); +} +.alert .fa-fw{ + width:auto; +} +.alert .alert-message{ + -webkit-box-flex:1; + -ms-flex:1; + flex:1; +} +.alert-info{ + background-color:var(--color-info); +} +.alert-success{ + background-color:var(--color-success); +} +.alert-error{ + background-color:var(--color-error); +} +.alert-warning{ + background-color:var(--color-warning); + color:var(--color-neutral-10); +} +.is-rtl .alert-icon{ + margin-left:var(--space-base); + margin-right:0; +} +/*! 6.2.4. Blank Slate */ +.blank-slate{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; + -ms-flex-pack:distribute; + justify-content:space-around; + text-align:center; +} +.blank-slate.large{ + height:100%; +} +.blank-slate.large .blank-slate-icon{ + font-size:120px; +} +.blank-slate.large .blank-slate-actions{ + padding:var(--space-xxl) var(--space-base); +} +.blank-slate-description{ + color:var(--color-neutral-9); + padding:var(--space-none) var(--space-base); +} +.blank-slate-actions{ + padding:var(--space-base); +} +.blank-slate-icon{ + color:var(--color-neutral-6); + font-size:70px; +} +/*! 6.2.5. Card */ +.card{ + background-color:var(--color-neutral-0); + border:var(--border-size-s) solid var(--color-neutral-4); + border-radius:var(--border-radius-soft); + padding:var(--space-m); +} +.layout-native .card{ + padding:var(--space-base); +} +/*! 6.2.6. Card Background */ +.card-background{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + border-radius:var(--border-radius-soft); + color:var(--color-neutral-0); + display:-webkit-box; + display:-ms-flexbox; + display:flex; + overflow:hidden; + padding:var(--space-m); + position:relative; +} +.card-background{ + -servicestudio-height:auto !important; +} +.card-background-content{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + position:relative; + width:100%; + z-index:var(--layer-local-tier-1); +} +.card-background-content{ + -servicestudio-display:initial; +} +.card-background-content.top-left, .card-background-content.center-left, .card-background-content.bottom-left{ + text-align:left; +} +.card-background-content.top-center, .card-background-content.center, .card-background-content.bottom-center{ + text-align:center; +} +.card-background-content.top-right, .card-background-content.center-right, .card-background-content.bottom-right{ + text-align:right; +} +.card-background-image, .card-background-color{ + left:0; + position:absolute; + top:0; + height:100%; + width:100%; +} +.card-background-image img{ + height:100%; + -o-object-fit:cover; + object-fit:cover; + -o-object-position:center center; + object-position:center center; + width:100%; +} +.card-background-color{ + opacity:0.6; +} +.card-background-color:after{ + background:-webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(rgb(0, 0, 0))); + background:linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgb(0, 0, 0) 100%); + content:""; + height:100%; + left:0; + opacity:1; + position:absolute; + top:0; + width:100%; + z-index:var(--layer-local-tier-1); +} +.remove-card-gradient .card-background-color:after{ + background:none; +} +.layout-native .card-background{ + padding:var(--space-base); +} +.layout-native .card-background.padding-none{ + padding:var(--space-none); +} +/*! 6.2.7. Card Item */ +.card-detail{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-box; + display:-ms-flexbox; + display:flex; +} +.card-detail-left{ + max-width:120px; + padding-right:var(--space-base); +} +.card-detail-center{ + -webkit-box-flex:1; + -ms-flex:1; + flex:1; +} +.card-detail-right{ + padding-left:var(--space-base); +} +.card-detail-title{ + color:var(--color-neutral-10); + font-size:var(--font-size-h5); + font-weight:var(--font-semi-bold); +} +.card-detail-text{ + color:var(--color-neutral-7); + overflow:hidden; + text-overflow:ellipsis; +} +.is-rtl .card-detail-left{ + padding-left:var(--space-base); + padding-right:0; +} +.is-rtl .card-detail-right{ + padding-left:0; + padding-right:var(--space-base); +} +/*! 6.2.8. Card Sectioned */ +.card-sectioned{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-pack:justify; + -ms-flex-pack:justify; + justify-content:space-between; + padding:var(--space-none); +} +.card-sectioned-top{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-flex:1; + -ms-flex:1; + flex:1; +} +.card-sectioned.flex-direction-row .card-image{ + padding:var(--space-m) var(--space-none) var(--space-m) var(--space-m); +} +.card-sectioned.flex-direction-row .card-image.padding-none{ + padding:var(--space-none); +} +.card-sectioned.flex-direction-row .card-sectioned-right .card-image{ + -webkit-box-ordinal-group:3; + -ms-flex-order:2; + order:2; + padding:var(--space-m) var(--space-m) var(--space-m) var(--space-none); +} +.card-sectioned.flex-direction-row .card-sectioned-right .card-image.padding-none{ + padding:var(--space-none); +} +.card-image{ + padding:var(--space-m) var(--space-m) var(--space-none); +} +.card-image img{ + display:block; + margin:0 auto; +} +.card-title{ + font-size:var(--font-size-h4); + font-weight:var(--font-semi-bold); + padding:var(--space-m) var(--space-m) var(--space-none) var(--space-m); +} +.card-content{ + -webkit-box-flex:1; + -ms-flex:1; + flex:1; + padding:var(--space-m); +} +.card-bottom{ + padding:var(--space-none) var(--space-m) var(--space-m); +} +.layout-native .card-sectioned{ + padding:0; +} +.layout-native .card-sectioned.flex-direction-row .card-image{ + padding:var(--space-base) var(--space-none) var(--space-base) var(--space-base); +} +.layout-native .card-sectioned.flex-direction-row .card-image.padding-none{ + padding:var(--space-none); +} +.layout-native .card-title{ + padding:var(--space-base) var(--space-base) var(--space-none) var(--space-base); +} +.layout-native .card-image{ + padding:var(--space-base) var(--space-base) var(--space-none); +} +.layout-native .card-image.padding-none{ + padding:var(--space-none); +} +.layout-native .card-content{ + padding:var(--space-base); +} +.layout-native .card-content.padding-none{ + padding:var(--space-none); +} +.layout-native .card-bottom{ + padding:var(--space-none) var(--space-base) var(--space-base); +} +.tablet .card-title{ + font-size:calc(var(--font-size-h4) - 1px); +} +.phone .card-title{ + font-size:calc(var(--font-size-h4) - 2px); +} +/*! 6.2.9. Chat Message */ +.chat{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; +} +.chat.right{ + -webkit-box-orient:horizontal; + -webkit-box-direction:reverse; + -ms-flex-direction:row-reverse; + flex-direction:row-reverse; +} +.chat.right .chat-photo{ + margin-left:var(--space-base); + margin-right:var(--space-none); +} +.chat.right .chat-message{ + background-color:var(--color-indigo); + color:var(--color-neutral-0); + text-align:right; +} +.chat-photo{ + margin-right:var(--space-base); +} +.chat-photo img{ + border-radius:var(--border-radius-circle); + height:40px; + -o-object-fit:cover; + object-fit:cover; + width:40px; +} +.chat-message{ + background-color:var(--color-neutral-3); + border-radius:var(--border-radius-soft); + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; + max-width:600px; + padding:var(--space-base); + position:relative; + word-break:break-word; +} +.chat-message-status{ + display:block; + font-size:var(--font-size-xs); + margin-top:var(--space-s); +} +.chat-message-status.hidden{ + display:none; +} +.is-rtl .chat.right .chat-photo{ + margin-left:var(--space-none); + margin-right:var(--space-base); +} +.is-rtl .chat-photo{ + margin-left:var(--space-base); + margin-right:0; +} +/*! 6.2.10. Flip Content */ +.osui-flip-content{ + -webkit-perspective:200vw; + perspective:200vw; + position:relative; + overflow:hidden; +} +.osui-flip-content{ + -servicestudio--webkit-perspective:initial; + -servicestudio-perspective:initial; +} +.firefox .osui-flip-content{ + -webkit-transform:perspective(200vw); + transform:perspective(200vw); + -webkit-transform-style:preserve-3d; + transform-style:preserve-3d; +} +.osui-flip-content--flipped .osui-flip-content__container{ + -webkit-transform:rotateY(-90deg); + transform:rotateY(-90deg); +} +.osui-flip-content--flipped .osui-flip-content__container__front{ + position:absolute; +} +.osui-flip-content--flipped .osui-flip-content__container__back{ + position:relative; + -webkit-transform:rotateY(90deg); + transform:rotateY(90deg); +} +.osui-flip-content__container{ + cursor:default; + position:relative; + -webkit-transform-style:preserve-3d; + transform-style:preserve-3d; + -webkit-transition:all 630ms cubic-bezier(0.03, 0.01, 0.67, 1.97); + transition:all 630ms cubic-bezier(0.03, 0.01, 0.67, 1.97); +} +.osui-flip-content__container--flip-self{ + cursor:pointer; +} +.osui-flip-content__container{ + -servicestudio--webkit-transform-style:initial; + -servicestudio-transform-style:initial; +} +.osui-flip-content__container__front, .osui-flip-content__container__back{ + -webkit-backface-visibility:hidden; + backface-visibility:hidden; + left:0; + top:0; +} +.osui-flip-content__container__front:empty, .osui-flip-content__container__back:empty{ + -servicestudio-min-height:80px; +} +.osui-flip-content__container__front{ + position:relative; + z-index:var(--layer-global-screen); +} +.osui-flip-content__container__back{ + position:absolute; + width:100%; +} +.osui-flip-content__container__back{ + -servicestudio-position:static; +} +.is-rtl .osui-flip-content--flipped .osui-flip-content__container{ + -webkit-transform:rotateY(90deg); + transform:rotateY(90deg); +} +.is-rtl .osui-flip-content--flipped .osui-flip-content__container__back{ + -webkit-transform:rotateY(-90deg); + transform:rotateY(-90deg); +} +/*! 6.2.11. Floating Content */ +.floating-content{ + position:fixed; + width:auto; + z-index:var(--layer-global-elevated); +} +.floating-content.floating-content-full-width{ + left:0; + right:0; + width:auto; +} +.floating-content.floating-content-full-width > .OSInline{ + display:inline; +} +.floating-content.floating-content-full-height{ + margin-top:0; + top:calc(var(--header-size) + var(--space-base) * 2); +} +.floating-content.floating-content-full-height.absolute-top{ + top:var(--os-safe-area-top); +} +.floating-content.absolute-bottom{ + bottom:var(--os-safe-area-bottom); +} +.floating-content.absolute-top-plus-header{ + top:calc(var(--header-size) + var(--os-safe-area-top)); +} +.floating-content > div:empty{ + -servicestudio-min-height:80px; + -servicestudio-min-width:80px; +} +.floating-content-top{ + left:50%; + margin-top:0; + top:calc(var(--header-size) + var(--space-base) * 2); + -webkit-transform:translateX(-50%); + -ms-transform:translateX(-50%); + transform:translateX(-50%); +} +.floating-content-top-left{ + left:0; + margin-top:0; + top:calc(var(--header-size) + var(--space-base) * 2); +} +.floating-content-top-right{ + margin-top:0; + right:0; + top:calc(var(--header-size) + var(--space-base) * 2); +} +.floating-content-left{ + left:0; + top:50%; + -webkit-transform:translateY(-50%); + -ms-transform:translateY(-50%); + transform:translateY(-50%); +} +.floating-content-right{ + right:0; + top:50%; + -webkit-transform:translateY(-50%); + -ms-transform:translateY(-50%); + transform:translateY(-50%); +} +.floating-content-center{ + left:50%; + top:50%; + -webkit-transform:translateX(-50%) translateY(-50%); + -ms-transform:translateX(-50%) translateY(-50%); + transform:translateX(-50%) translateY(-50%); +} +.floating-content-center.floating-content-full-width{ + -webkit-transform:translateX(0) translateY(-50%); + -ms-transform:translateX(0) translateY(-50%); + transform:translateX(0) translateY(-50%); +} +.floating-content-center.floating-content-full-height{ + bottom:0; + -webkit-transform:translateY(0) translateX(-50%); + -ms-transform:translateY(0) translateX(-50%); + transform:translateY(0) translateX(-50%); +} +.floating-content-center.floating-content-center.floating-content-full-width.floating-content-full-height{ + -webkit-transform:translateX(0) translateY(0); + -ms-transform:translateX(0) translateY(0); + transform:translateX(0) translateY(0); +} +.floating-content-bottom{ + bottom:0; + left:50%; + -webkit-transform:translateX(-50%); + -ms-transform:translateX(-50%); + transform:translateX(-50%); +} +.floating-content-bottom-left{ + bottom:0; + left:0; +} +.floating-content-bottom-right{ + bottom:0; + right:0; +} +.floating-content-top.floating-content-full-height, .floating-content-top-left.floating-content-full-height, .floating-content-top-right.floating-content-full-height, .floating-content-bottom.floating-content-full-height, .floating-content-bottom-left.floating-content-full-height, .floating-content-bottom-right.floating-content-full-height{ + bottom:0; +} +.floating-content-top.floating-content-full-width, .floating-content-bottom.floating-content-full-width{ + -webkit-transform:translateX(0); + -ms-transform:translateX(0); + transform:translateX(0); +} +.floating-content-top.floating-content-full-width, .floating-content-bottom.floating-content-full-width, .floating-content-center.floating-content-full-width{ + -webkit-transform:translateX(0); + -ms-transform:translateX(0); + transform:translateX(0); +} +.floating-content-left.floating-content-full-height, .floating-content-right.floating-content-full-height{ + bottom:0; + -webkit-transform:translateY(0); + -ms-transform:translateY(0); + transform:translateY(0); +} +.floating-content-margin{ + margin:var(--space-l); +} +.floating-content-margin.floating-content-center{ + left:calc(50% - var(--space-l)); + top:calc(50% - var(--space-l)); +} +.floating-content-margin.floating-content-left, .floating-content-margin.floating-content-right{ + top:calc(50% - var(--space-l)); +} +.floating-content-margin.floating-content-top, .floating-content-margin.floating-content-bottom, .floating-content-margin.floating-content-center{ + left:calc(50% - var(--space-l)); +} +.absolute-bottom.absolute-center.floating-content-bottom{ + top:inherit; +} +.layout .blank .floating-content-top, .layout .blank .floating-content-top-right, .layout .blank .floating-content-top-left, .layout .blank .floating-content.floating-content-full-height{ + top:0; +} +.layout .blank .floating-content.floating-content-full-height.floating-content-margin{ + margin:var(--space-l); +} +.layout:not(.menu-visible) .floating-content[class*=absolute-]:not(.absolute-top-plus-header), .layout.aside-expandable .floating-content[class*=absolute-]:not(.absolute-top-plus-header){ + z-index:calc(var(--layer-global-navigation) + var(--layer-local-tier-1)); +} +.aside-visible.menu-visible .floating-content-top:not(.absolute-top), .aside-visible.menu-visible .floating-content-center:not(.absolute-center), .aside-visible.menu-visible .floating-content-bottom:not(.absolute-bottom), .aside-expandable.menu-visible .floating-content-top:not(.absolute-top), .aside-expandable.menu-visible .floating-content-center:not(.absolute-center), .aside-expandable.menu-visible .floating-content-bottom:not(.absolute-bottom){ + left:calc(50% + var(--side-menu-size) / 2); +} +.aside-visible.menu-visible .floating-content.floating-content-full-width, .aside-visible.menu-visible .floating-content-left:not(.absolute-left), .aside-visible.menu-visible .floating-content-bottom-left:not(.absolute-left), .aside-visible.menu-visible .floating-content-top-left:not(.absolute-left), .aside-expandable.menu-visible .floating-content.floating-content-full-width, .aside-expandable.menu-visible .floating-content-left:not(.absolute-left), .aside-expandable.menu-visible .floating-content-bottom-left:not(.absolute-left), .aside-expandable.menu-visible .floating-content-top-left:not(.absolute-left){ + left:var(--side-menu-size); +} +.desktop .layout.layout-side:not(.layout-native) .floating-content-top-left:not(.absolute-left), .desktop .layout.layout-side:not(.layout-native) .floating-content-left:not(.absolute-left), .desktop .layout.layout-side:not(.layout-native) .floating-content-bottom-left:not(.absolute-left){ + left:var(--side-menu-size); +} +.desktop .layout-native .aside-visible .floating-content.floating-content-full-width{ + left:var(--side-menu-size); +} +.landscape .layout-native.aside-visible .floating-content.floating-content-full-width .aside-visible.menu-visible .floating-content.floating-content-full-width{ + left:var(--side-menu-size); +} +.tablet .layout-native .floating-content.floating-content-full-height.absolute-top, +.phone .layout-native .floating-content.floating-content-full-height.absolute-top{ + top:var(--os-safe-area-top); +} +.tablet .layout-native .floating-content.floating-content-full-width, +.phone .layout-native .floating-content.floating-content-full-width{ + left:0; + right:0; +} +.tablet .layout-native .floating-content.absolute-bottom, +.phone .layout-native .floating-content.absolute-bottom{ + bottom:var(--os-safe-area-bottom); +} +.tablet .layout-native .floating-content-bottom, .tablet .layout-native .floating-content-bottom-left, .tablet .layout-native .floating-content-bottom-right, +.phone .layout-native .floating-content-bottom, +.phone .layout-native .floating-content-bottom-left, +.phone .layout-native .floating-content-bottom-right{ + bottom:calc(var(--bottom-bar-size) + var(--os-safe-area-bottom)); +} +.phone .floating-content-top-left, .phone .floating-content-left{ + left:var(--os-safe-area-left); +} +.phone .floating-content-top-right, .phone .floating-content-right{ + right:var(--os-safe-area-right); +} +.phone .floating-content-bottom{ + bottom:var(--os-safe-area-bottom); +} +.phone .floating-content-bottom-left{ + bottom:var(--os-safe-area-bottom); + left:var(--os-safe-area-left); +} +.phone .floating-content-bottom-right{ + bottom:var(--os-safe-area-bottom); + right:var(--os-safe-area-right); +} +/*! 6.2.12. List Item Content */ +.list-item-content{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-box; + display:-ms-flexbox; + display:flex; +} +.list-item-content-left{ + max-width:120px; + padding-right:var(--space-m); +} +.list-item-content-center{ + -webkit-box-flex:1; + -ms-flex:1; + flex:1; + overflow:hidden; +} +.list-item-content-right{ + padding-left:var(--space-m); +} +.list-item-content-title, .list-item-content-text{ + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap; +} +.list-item-content-title{ + color:var(--color-neutral-10); + font-size:var(--font-size-h5); + font-weight:var(--font-semi-bold); +} +.list-item-content-text{ + color:var(--color-neutral-7); +} +.layout-native .list-item-content-left{ + padding-right:var(--space-base); +} +.layout-native .list-item-content-right{ + padding-left:var(--space-base); +} +.tablet .list-item-content-title{ + font-size:calc(var(--font-size-h5) - 1px); +} +.phone .list-item-content-title{ + font-size:calc(var(--font-size-h5) - 2px); +} +.is-rtl .list-item-content-left{ + padding-left:var(--space-m); + padding-right:0; +} +.is-rtl .list-item-content-right{ + padding-left:0; + padding-right:var(--space-m); +} +.is-rtl .layout-native .list-item-content-left{ + padding-left:var(--space-base); + padding-right:0; +} +.is-rtl .layout-native .list-item-content-right{ + padding-left:0; + padding-right:var(--space-base); +} +.is-rtl [data-list-item] .list-item-float-left{ + float:right; +} +.is-rtl [data-list-item] .list-item-float-right{ + float:left; +} +/*! 6.2.13. Section */ +.section-title{ + background-color:transparent; + border-bottom:var(--border-size-s) solid var(--color-neutral-4); + color:var(--color-neutral-9); + font-size:var(--font-size-h2); + font-weight:var(--font-semi-bold); + padding:var(--space-none) var(--space-none) var(--space-s) var(--space-none); + position:relative; + text-transform:none; + width:100%; +} +.section-content{ + padding:var(--space-s) var(--space-none) var(--space-none); +} +.section-group.is--sticky .section-title{ + position:sticky; + top:calc(var(--section-top-position) + var(--os-safe-area-top)); + z-index:calc(var(--layer-below) + var(--layer-global-navigation)); +} +.section-group .section-title{ + background-color:var(--color-background-body); +} +.layout-native .section-title{ + padding:var(--space-s) var(--space-base) var(--space-s) var(--space-base); +} +.layout-native .section-content{ + padding:0; +} +.android[data-status-bar-height] .section-group.is--sticky .section-title{ + top:calc(var(--section-top-position) + var(--status-bar-height)); +} +.ios[data-status-bar-height] .section-group.is--sticky .section-title{ + top:0; +} +.ios .layout-native .section-group .sticky{ + position:static; +} +.tablet .section-title{ + font-size:calc(var(--font-size-h2) - 2px); +} +.phone .section-title{ + font-size:calc(var(--font-size-h2) - 4px); +} +/*! 6.2.14. Tag */ +.tag{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + color:var(--color-neutral-0); + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; + font-weight:var(--font-semi-bold); + height:32px; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + line-height:1; + min-width:32px; + padding:var(--space-none) var(--space-base); + word-break:normal; +} +.tag.tag-small{ + font-size:var(--font-size-xs); + height:24px; + padding:var(--space-none) var(--space-s); +} +.tag.tag-medium{ + font-size:var(--font-size-base); + height:40px; + padding:var(--space-none) var(--space-m); +} +.tag.background-transparent{ + color:var(--color-primary); +} +.tag.background-neutral-0{ + color:var(--color-primary); +} +.tag.background-neutral-1, .tag.background-neutral-2, .tag.background-neutral-3, .tag.background-neutral-4{ + color:var(--color-neutral-9); +} +/*! 6.2.15. Tooltip */ +.osui-tooltip{ + display:inline-block; + position:relative; +} +.osui-tooltip{ + -servicestudio-vertical-align:middle; +} +.osui-tooltip__content{ + cursor:pointer; + position:inherit; +} +.osui-tooltip__content:empty{ + -servicestudio-min-width:80px; +} +.osui-tooltip__balloon-wrapper{ + max-height:50vh; + opacity:0; + overflow:hidden; + pointer-events:none; + position:absolute; + will-change:top, right, bottom, left, opacity, transform; + z-index:var(--layer-global-instant-interaction); +} +.osui-tooltip__balloon-wrapper{ + -servicestudio-left:initial; + -servicestudio-max-height:initial; + -servicestudio-opacity:1; + -servicestudio-overflow:initial; + -servicestudio-pointer-events:initial; +} +.osui-tooltip__balloon-wrapper__balloon{ + background-color:var(--color-neutral-9); + border-radius:var(--border-radius-soft); + color:var(--color-neutral-0); + font-size:var(--font-size-s); + font-weight:var(--font-regular); + line-height:initial; + max-width:250px; + min-width:150px; + opacity:0; + padding:var(--space-s); + position:relative; + width:-webkit-fit-content; + width:-moz-fit-content; + width:fit-content; + -webkit-transition:opacity 250ms; + transition:opacity 250ms; +} +.osui-tooltip__balloon-wrapper__balloon{ + -servicestudio-opacity:1; +} +.osui-tooltip__balloon-wrapper__balloon:before{ + border-style:solid; + content:""; + display:block; + height:0; + opacity:0; + position:absolute; + width:0; +} +.osui-tooltip__balloon-wrapper__balloon:before{ + -servicestudio-opacity:1; +} +.osui-tooltip__balloon-wrapper.left{ + left:calc(var(--osui-tooltip-left) + var(--space-xs)); + max-width:0; + min-width:0; + padding-right:var(--space-none); + top:calc(var(--osui-tooltip-top) + var(--osui-tooltip-height) / 2); + -webkit-transform:translateX(-100%) translateY(-50%); + -ms-transform:translateX(-100%) translateY(-50%); + transform:translateX(-100%) translateY(-50%); +} +.osui-tooltip__balloon-wrapper.left{ + -servicestudio-left:var(--osui-tooltip-left); + -servicestudio-max-width:250px; + -servicestudio-min-width:150px; + -servicestudio-padding-right:var(--space-base); + -servicestudio-top:50%; +} +.osui-tooltip__balloon-wrapper.left .osui-tooltip__balloon-wrapper__balloon{ + -webkit-transform:translateX(-100%); + -ms-transform:translateX(-100%); + transform:translateX(-100%); + width:250px; +} +.osui-tooltip__balloon-wrapper.left .osui-tooltip__balloon-wrapper__balloon{ + -servicestudio-transform:translateX(0); + -servicestudio-width:-webkit-fit-content; + -servicestudio-width:-moz-fit-content; + -servicestudio-width:fit-content; +} +.osui-tooltip__balloon-wrapper.left .osui-tooltip__balloon-wrapper__balloon:before{ + border-color:transparent transparent transparent var(--color-neutral-9); + border-width:9px 0 9px 9px; + left:calc(100% - 1px); + top:50%; + -webkit-transform:translateX(-50%) translateY(-50%); + -ms-transform:translateX(-50%) translateY(-50%); + transform:translateX(-50%) translateY(-50%); +} +.osui-tooltip__balloon-wrapper.left .osui-tooltip__balloon-wrapper__balloon:before{ + -servicestudio-transform:translateX(0) translateY(-50%); +} +.osui-tooltip__balloon-wrapper.right{ + max-width:0; + min-width:0; + padding-left:var(--space-none); + right:calc(100vw - var(--osui-tooltip-left) - var(--osui-tooltip-width) + var(--space-xs)); + top:calc(var(--osui-tooltip-top) + var(--osui-tooltip-height) / 2); + -webkit-transform:translateX(100%) translateY(-50%); + -ms-transform:translateX(100%) translateY(-50%); + transform:translateX(100%) translateY(-50%); +} +.osui-tooltip__balloon-wrapper.right{ + -servicestudio-max-width:250px; + -servicestudio-min-width:150px; + -servicestudio-padding-left:var(--space-base); + -servicestudio-right:0; + -servicestudio-top:50%; +} +.osui-tooltip__balloon-wrapper.right .osui-tooltip__balloon-wrapper__balloon{ + -webkit-transform:translateX(calc(-1 * var(--space-s))); + -ms-transform:translateX(calc(-1 * var(--space-s))); + transform:translateX(calc(-1 * var(--space-s))); + width:250px; +} +.osui-tooltip__balloon-wrapper.right .osui-tooltip__balloon-wrapper__balloon{ + -servicestudio-transform:translateX(0); + -servicestudio-width:-webkit-fit-content; + -servicestudio-width:-moz-fit-content; + -servicestudio-width:fit-content; +} +.osui-tooltip__balloon-wrapper.right .osui-tooltip__balloon-wrapper__balloon:before{ + border-color:transparent var(--color-neutral-9) transparent transparent; + border-width:9px 9px 9px 0; + left:1px; + top:50%; + -webkit-transform:translateX(-50%) translateY(-50%); + -ms-transform:translateX(-50%) translateY(-50%); + transform:translateX(-50%) translateY(-50%); +} +.osui-tooltip__balloon-wrapper.right .osui-tooltip__balloon-wrapper__balloon:before{ + -servicestudio-transform:translateX(-100%) translateY(-50%); +} +.osui-tooltip__balloon-wrapper.center{ + left:calc(var(--osui-tooltip-left) + var(--osui-tooltip-width) / 2); + max-height:0; + padding-top:var(--space-none); + top:calc(var(--osui-tooltip-top) + var(--space-s)); + -webkit-transform:translateX(-50%) translateY(0); + -ms-transform:translateX(-50%) translateY(0); + transform:translateX(-50%) translateY(0); +} +.osui-tooltip__balloon-wrapper.center{ + -servicestudio-left:50%; + -servicestudio-max-height:50vh; + -servicestudio-padding-top:var(--space-base); + -servicestudio-top:50%; +} +.osui-tooltip__balloon-wrapper.center .osui-tooltip__balloon-wrapper__balloon{ + -webkit-transform:translateY(calc(-1 * var(--space-s))); + -ms-transform:translateY(calc(-1 * var(--space-s))); + transform:translateY(calc(-1 * var(--space-s))); +} +.osui-tooltip__balloon-wrapper.center .osui-tooltip__balloon-wrapper__balloon{ + -servicestudio-transform:translateY(0); +} +.osui-tooltip__balloon-wrapper.center .osui-tooltip__balloon-wrapper__balloon:before{ + border-color:transparent transparent var(--color-neutral-9) transparent; + border-width:0 9px 9px 9px; + left:50%; + top:1px; + -webkit-transform:translateX(-50%) translateY(-50%); + -ms-transform:translateX(-50%) translateY(-50%); + transform:translateX(-50%) translateY(-50%); +} +.osui-tooltip__balloon-wrapper.center .osui-tooltip__balloon-wrapper__balloon:before{ + -servicestudio-transform:translateX(-50%) translateY(-100%); +} +.osui-tooltip__balloon-wrapper.top, .osui-tooltip__balloon-wrapper.top-left, .osui-tooltip__balloon-wrapper.top-right{ + max-height:0; + padding-bottom:var(--space-none); + top:var(--osui-tooltip-top); +} +.osui-tooltip__balloon-wrapper.top, .osui-tooltip__balloon-wrapper.top-left, .osui-tooltip__balloon-wrapper.top-right{ + -servicestudio-max-height:50vh; + -servicestudio-padding-bottom:var(--space-base); + -servicestudio-top:0; +} +.osui-tooltip__balloon-wrapper.top .osui-tooltip__balloon-wrapper__balloon, .osui-tooltip__balloon-wrapper.top-left .osui-tooltip__balloon-wrapper__balloon, .osui-tooltip__balloon-wrapper.top-right .osui-tooltip__balloon-wrapper__balloon{ + -webkit-transform:translateY(-100%); + -ms-transform:translateY(-100%); + transform:translateY(-100%); +} +.osui-tooltip__balloon-wrapper.top .osui-tooltip__balloon-wrapper__balloon, .osui-tooltip__balloon-wrapper.top-left .osui-tooltip__balloon-wrapper__balloon, .osui-tooltip__balloon-wrapper.top-right .osui-tooltip__balloon-wrapper__balloon{ + -servicestudio-transform:translateY(0); +} +.osui-tooltip__balloon-wrapper.top .osui-tooltip__balloon-wrapper__balloon:before, .osui-tooltip__balloon-wrapper.top-left .osui-tooltip__balloon-wrapper__balloon:before, .osui-tooltip__balloon-wrapper.top-right .osui-tooltip__balloon-wrapper__balloon:before{ + border-color:var(--color-neutral-9) transparent transparent transparent; + border-width:9px 9px 0 9px; + top:calc(100% - 1px); +} +.osui-tooltip__balloon-wrapper.top{ + left:calc(var(--osui-tooltip-left) + var(--osui-tooltip-width) / 2); + -webkit-transform:translateX(-50%) translateY(calc(-100% + var(--space-s))); + -ms-transform:translateX(-50%) translateY(calc(-100% + var(--space-s))); + transform:translateX(-50%) translateY(calc(-100% + var(--space-s))); +} +.osui-tooltip__balloon-wrapper.top{ + -servicestudio-left:50%; +} +.osui-tooltip__balloon-wrapper.top .osui-tooltip__balloon-wrapper__balloon:before{ + left:50%; + -webkit-transform:translateX(-50%) translateY(-50%); + -ms-transform:translateX(-50%) translateY(-50%); + transform:translateX(-50%) translateY(-50%); +} +.osui-tooltip__balloon-wrapper.top .osui-tooltip__balloon-wrapper__balloon:before{ + -servicestudio-transform:translateX(-50%) translateY(0); +} +.osui-tooltip__balloon-wrapper.top-left{ + left:calc(var(--osui-tooltip-left) - var(--space-xs)); + -webkit-transform:translateX(0) translateY(calc(-100% + var(--space-s))); + -ms-transform:translateX(0) translateY(calc(-100% + var(--space-s))); + transform:translateX(0) translateY(calc(-100% + var(--space-s))); +} +.osui-tooltip__balloon-wrapper.top-left{ + -servicestudio-left:calc(-1 * var(--space-xs)); +} +.osui-tooltip__balloon-wrapper.top-left .osui-tooltip__balloon-wrapper__balloon:before{ + left:var(--space-s); + -webkit-transform:translateX(0) translateY(-50%); + -ms-transform:translateX(0) translateY(-50%); + transform:translateX(0) translateY(-50%); +} +.osui-tooltip__balloon-wrapper.top-left .osui-tooltip__balloon-wrapper__balloon:before{ + -servicestudio-transform:translateX(0) translateY(0); +} +.osui-tooltip__balloon-wrapper.top-right{ + left:calc(var(--osui-tooltip-left) + var(--osui-tooltip-width) + var(--space-xs)); + -webkit-transform:translateX(-100%) translateY(calc(-100% + var(--space-s))); + -ms-transform:translateX(-100%) translateY(calc(-100% + var(--space-s))); + transform:translateX(-100%) translateY(calc(-100% + var(--space-s))); +} +.osui-tooltip__balloon-wrapper.top-right{ + -servicestudio-left:calc(100% + var(--space-xs)); +} +.osui-tooltip__balloon-wrapper.top-right .osui-tooltip__balloon-wrapper__balloon:before{ + left:calc(100% - var(--space-s)); + -webkit-transform:translateX(-100%) translateY(-50%); + -ms-transform:translateX(-100%) translateY(-50%); + transform:translateX(-100%) translateY(-50%); +} +.osui-tooltip__balloon-wrapper.top-right .osui-tooltip__balloon-wrapper__balloon:before{ + -servicestudio-transform:translateX(-100%) translateY(0); +} +.osui-tooltip__balloon-wrapper.bottom, .osui-tooltip__balloon-wrapper.bottom-left, .osui-tooltip__balloon-wrapper.bottom-right{ + max-height:0; + padding-top:var(--space-none); + top:calc(var(--osui-tooltip-top) + var(--osui-tooltip-height) - var(--space-xs)); +} +.osui-tooltip__balloon-wrapper.bottom, .osui-tooltip__balloon-wrapper.bottom-left, .osui-tooltip__balloon-wrapper.bottom-right{ + -servicestudio-max-height:50vh; + -servicestudio-padding-top:var(--space-base); + -servicestudio-top:calc(100% + var(--osui-tooltip-height)); +} +.osui-tooltip__balloon-wrapper.bottom .osui-tooltip__balloon-wrapper__balloon, .osui-tooltip__balloon-wrapper.bottom-left .osui-tooltip__balloon-wrapper__balloon, .osui-tooltip__balloon-wrapper.bottom-right .osui-tooltip__balloon-wrapper__balloon{ + -webkit-transform:translateY(calc(-1 * var(--space-s))); + -ms-transform:translateY(calc(-1 * var(--space-s))); + transform:translateY(calc(-1 * var(--space-s))); +} +.osui-tooltip__balloon-wrapper.bottom .osui-tooltip__balloon-wrapper__balloon, .osui-tooltip__balloon-wrapper.bottom-left .osui-tooltip__balloon-wrapper__balloon, .osui-tooltip__balloon-wrapper.bottom-right .osui-tooltip__balloon-wrapper__balloon{ + -servicestudio-transform:translateY(0); +} +.osui-tooltip__balloon-wrapper.bottom .osui-tooltip__balloon-wrapper__balloon:before, .osui-tooltip__balloon-wrapper.bottom-left .osui-tooltip__balloon-wrapper__balloon:before, .osui-tooltip__balloon-wrapper.bottom-right .osui-tooltip__balloon-wrapper__balloon:before{ + border-color:transparent transparent var(--color-neutral-9) transparent; + border-width:0 9px 9px 9px; + top:1px; +} +.osui-tooltip__balloon-wrapper.bottom{ + left:calc(var(--osui-tooltip-left) + var(--osui-tooltip-width) / 2); + -webkit-transform:translateX(-50%) translateY(0); + -ms-transform:translateX(-50%) translateY(0); + transform:translateX(-50%) translateY(0); +} +.osui-tooltip__balloon-wrapper.bottom{ + -servicestudio-left:50%; +} +.osui-tooltip__balloon-wrapper.bottom .osui-tooltip__balloon-wrapper__balloon:before{ + left:50%; + -webkit-transform:translateX(-50%) translateY(-50%); + -ms-transform:translateX(-50%) translateY(-50%); + transform:translateX(-50%) translateY(-50%); +} +.osui-tooltip__balloon-wrapper.bottom .osui-tooltip__balloon-wrapper__balloon:before{ + -servicestudio-transform:translateX(-50%) translateY(-100%); +} +.osui-tooltip__balloon-wrapper.bottom-left{ + left:calc(var(--osui-tooltip-left) - var(--space-xs)); + -webkit-transform:translateX(0) translateY(0); + -ms-transform:translateX(0) translateY(0); + transform:translateX(0) translateY(0); +} +.osui-tooltip__balloon-wrapper.bottom-left{ + -servicestudio-left:calc(-1 * var(--space-xs)); +} +.osui-tooltip__balloon-wrapper.bottom-left .osui-tooltip__balloon-wrapper__balloon:before{ + left:var(--space-s); + -webkit-transform:translateX(0) translateY(-50%); + -ms-transform:translateX(0) translateY(-50%); + transform:translateX(0) translateY(-50%); +} +.osui-tooltip__balloon-wrapper.bottom-left .osui-tooltip__balloon-wrapper__balloon:before{ + -servicestudio-transform:translateX(0) translateY(-100%); +} +.osui-tooltip__balloon-wrapper.bottom-right{ + left:calc(var(--osui-tooltip-left) + var(--osui-tooltip-width) + var(--space-xs)); + -webkit-transform:translateX(-100%) translateY(0); + -ms-transform:translateX(-100%) translateY(0); + transform:translateX(-100%) translateY(0); +} +.osui-tooltip__balloon-wrapper.bottom-right{ + -servicestudio-left:calc(100% + var(--space-xs)); +} +.osui-tooltip__balloon-wrapper.bottom-right .osui-tooltip__balloon-wrapper__balloon:before{ + left:calc(100% - var(--space-s)); + -webkit-transform:translateX(-100%) translateY(-50%); + -ms-transform:translateX(-100%) translateY(-50%); + transform:translateX(-100%) translateY(-50%); +} +.osui-tooltip__balloon-wrapper.bottom-right .osui-tooltip__balloon-wrapper__balloon:before{ + -servicestudio-transform:translateX(-100%) translateY(-100%); +} +.osui-tooltip__balloon-wrapper:not(.left):not(.right):not(.center):not(.top):not(.top-left):not(.top-right):not(.bottom):not(.bottom-left):not(.bottom-right){ + left:calc(var(--osui-tooltip-left) + var(--osui-tooltip-width)); + max-width:0; + min-width:0; + padding-left:var(--space-none); + top:calc(var(--osui-tooltip-top) + var(--osui-tooltip-height) / 2); + -webkit-transform:translateX(0) translateY(-50%); + -ms-transform:translateX(0) translateY(-50%); + transform:translateX(0) translateY(-50%); +} +.osui-tooltip__balloon-wrapper:not(.left):not(.right):not(.center):not(.top):not(.top-left):not(.top-right):not(.bottom):not(.bottom-left):not(.bottom-right){ + -servicestudio-transform:none; +} +.osui-tooltip__balloon-wrapper:not(.left):not(.right):not(.center):not(.top):not(.top-left):not(.top-right):not(.bottom):not(.bottom-left):not(.bottom-right) .osui-tooltip__balloon-wrapper__balloon{ + -webkit-transform:translateX(calc(-1 * var(--space-s))); + -ms-transform:translateX(calc(-1 * var(--space-s))); + transform:translateX(calc(-1 * var(--space-s))); + width:250px; +} +.osui-tooltip__balloon-wrapper:not(.left):not(.right):not(.center):not(.top):not(.top-left):not(.top-right):not(.bottom):not(.bottom-left):not(.bottom-right) .osui-tooltip__balloon-wrapper__balloon{ + -servicestudio-transform:none; +} +.osui-tooltip__balloon-wrapper:not(.left):not(.right):not(.center):not(.top):not(.top-left):not(.top-right):not(.bottom):not(.bottom-left):not(.bottom-right) .osui-tooltip__balloon-wrapper__balloon:before{ + border-color:transparent var(--color-neutral-9) transparent transparent; + border-width:9px 9px 9px 0; + left:0; + top:50%; + -webkit-transform:translateX(-50%) translateY(-50%); + -ms-transform:translateX(-50%) translateY(-50%); + transform:translateX(-50%) translateY(-50%); +} +.osui-tooltip__balloon-wrapper--is-opening.left{ + -webkit-transition:left 250ms; + transition:left 250ms; +} +.osui-tooltip__balloon-wrapper--is-opening.right{ + -webkit-transition:right 250ms; + transition:right 250ms; +} +.osui-tooltip__balloon-wrapper--is-opening.center{ + -webkit-transition:top 250ms; + transition:top 250ms; +} +.osui-tooltip__balloon-wrapper--is-opening.top, .osui-tooltip__balloon-wrapper--is-opening.top-left, .osui-tooltip__balloon-wrapper--is-opening.top-right{ + -webkit-transition:top 250ms; + transition:top 250ms; +} +.osui-tooltip__balloon-wrapper--is-opening.bottom, .osui-tooltip__balloon-wrapper--is-opening.bottom-left, .osui-tooltip__balloon-wrapper--is-opening.bottom-right{ + -webkit-transition:top 250ms; + transition:top 250ms; +} +.osui-tooltip__balloon-wrapper--is-opening .osui-tooltip__balloon-wrapper__balloon{ + -webkit-transition:opacity 250ms; + transition:opacity 250ms; +} +.osui-tooltip__balloon-wrapper--is-open{ + opacity:1; + pointer-events:initial; +} +.osui-tooltip__balloon-wrapper--is-open .osui-tooltip__balloon-wrapper__balloon{ + opacity:1; +} +.osui-tooltip__balloon-wrapper--is-open .osui-tooltip__balloon-wrapper__balloon:before{ + opacity:1; +} +.osui-tooltip__balloon-wrapper--is-open.left{ + left:var(--osui-tooltip-left); + max-width:250px; + min-width:150px; + padding-right:var(--space-base); +} +.osui-tooltip__balloon-wrapper--is-open.left .osui-tooltip__balloon-wrapper__balloon{ + -webkit-transform:translateX(0); + -ms-transform:translateX(0); + transform:translateX(0); + width:-webkit-fit-content; + width:-moz-fit-content; + width:fit-content; +} +.osui-tooltip__balloon-wrapper--is-open.left .osui-tooltip__balloon-wrapper__balloon:before{ + -webkit-transform:translateX(0) translateY(-50%); + -ms-transform:translateX(0) translateY(-50%); + transform:translateX(0) translateY(-50%); +} +.osui-tooltip__balloon-wrapper--is-open.right{ + max-width:250px; + min-width:150px; + padding-left:var(--space-base); + right:calc(100vw - var(--osui-tooltip-left) - var(--osui-tooltip-width)); +} +.osui-tooltip__balloon-wrapper--is-open.right .osui-tooltip__balloon-wrapper__balloon{ + -webkit-transform:translateX(0); + -ms-transform:translateX(0); + transform:translateX(0); + width:-webkit-fit-content; + width:-moz-fit-content; + width:fit-content; +} +.osui-tooltip__balloon-wrapper--is-open.right .osui-tooltip__balloon-wrapper__balloon:before{ + -webkit-transform:translateX(-100%) translateY(-50%); + -ms-transform:translateX(-100%) translateY(-50%); + transform:translateX(-100%) translateY(-50%); +} +.osui-tooltip__balloon-wrapper--is-open.center{ + max-height:50vh; + padding-top:var(--space-base); + top:calc(var(--osui-tooltip-top) + var(--osui-tooltip-height) / 2); +} +.osui-tooltip__balloon-wrapper--is-open.center .osui-tooltip__balloon-wrapper__balloon{ + -webkit-transform:translateY(0); + -ms-transform:translateY(0); + transform:translateY(0); +} +.osui-tooltip__balloon-wrapper--is-open.center .osui-tooltip__balloon-wrapper__balloon:before{ + -webkit-transform:translateX(-50%) translateY(-100%); + -ms-transform:translateX(-50%) translateY(-100%); + transform:translateX(-50%) translateY(-100%); +} +.osui-tooltip__balloon-wrapper--is-open.top, .osui-tooltip__balloon-wrapper--is-open.top-left, .osui-tooltip__balloon-wrapper--is-open.top-right{ + max-height:50vh; + padding-bottom:var(--space-base); + top:calc(var(--osui-tooltip-top) - var(--space-s)); +} +.osui-tooltip__balloon-wrapper--is-open.top .osui-tooltip__balloon-wrapper__balloon, .osui-tooltip__balloon-wrapper--is-open.top-left .osui-tooltip__balloon-wrapper__balloon, .osui-tooltip__balloon-wrapper--is-open.top-right .osui-tooltip__balloon-wrapper__balloon{ + -webkit-transform:translateY(0); + -ms-transform:translateY(0); + transform:translateY(0); +} +.osui-tooltip__balloon-wrapper--is-open.top .osui-tooltip__balloon-wrapper__balloon:before{ + -webkit-transform:translateX(-50%) translateY(0); + -ms-transform:translateX(-50%) translateY(0); + transform:translateX(-50%) translateY(0); +} +.osui-tooltip__balloon-wrapper--is-open.top-left .osui-tooltip__balloon-wrapper__balloon:before{ + -webkit-transform:translateX(0) translateY(0); + -ms-transform:translateX(0) translateY(0); + transform:translateX(0) translateY(0); +} +.osui-tooltip__balloon-wrapper--is-open.top-right .osui-tooltip__balloon-wrapper__balloon:before{ + -webkit-transform:translateX(-100%) translateY(0); + -ms-transform:translateX(-100%) translateY(0); + transform:translateX(-100%) translateY(0); +} +.osui-tooltip__balloon-wrapper--is-open.bottom, .osui-tooltip__balloon-wrapper--is-open.bottom-left, .osui-tooltip__balloon-wrapper--is-open.bottom-right{ + max-height:50vh; + padding-top:var(--space-base); + top:calc(var(--osui-tooltip-top) + var(--osui-tooltip-height)); +} +.osui-tooltip__balloon-wrapper--is-open.bottom .osui-tooltip__balloon-wrapper__balloon, .osui-tooltip__balloon-wrapper--is-open.bottom-left .osui-tooltip__balloon-wrapper__balloon, .osui-tooltip__balloon-wrapper--is-open.bottom-right .osui-tooltip__balloon-wrapper__balloon{ + -webkit-transform:translateY(0); + -ms-transform:translateY(0); + transform:translateY(0); +} +.osui-tooltip__balloon-wrapper--is-open.bottom .osui-tooltip__balloon-wrapper__balloon:before{ + -webkit-transform:translateX(-50%) translateY(-100%); + -ms-transform:translateX(-50%) translateY(-100%); + transform:translateX(-50%) translateY(-100%); +} +.osui-tooltip__balloon-wrapper--is-open.bottom-left .osui-tooltip__balloon-wrapper__balloon:before{ + -webkit-transform:translateX(0) translateY(-100%); + -ms-transform:translateX(0) translateY(-100%); + transform:translateX(0) translateY(-100%); +} +.osui-tooltip__balloon-wrapper--is-open.bottom-right .osui-tooltip__balloon-wrapper__balloon:before{ + -webkit-transform:translateX(-100%) translateY(-100%); + -ms-transform:translateX(-100%) translateY(-100%); + transform:translateX(-100%) translateY(-100%); +} +.osui-tooltip__balloon-wrapper--is-open:not(.left):not(.right):not(.center):not(.top):not(.top-left):not(.top-right):not(.bottom):not(.bottom-left):not(.bottom-right){ + max-width:250px; + min-width:150px; + padding-left:var(--space-base); +} +.osui-tooltip__balloon-wrapper--is-open:not(.left):not(.right):not(.center):not(.top):not(.top-left):not(.top-right):not(.bottom):not(.bottom-left):not(.bottom-right) .osui-tooltip__balloon-wrapper__balloon{ + -webkit-transform:translateX(0); + -ms-transform:translateX(0); + transform:translateX(0); + width:auto; +} +.osui-tooltip__balloon-wrapper--is-open:not(.left):not(.right):not(.center):not(.top):not(.top-left):not(.top-right):not(.bottom):not(.bottom-left):not(.bottom-right) .osui-tooltip__balloon-wrapper__balloon:before{ + -webkit-transform:translateX(-100%) translateY(-50%); + -ms-transform:translateX(-100%) translateY(-50%); + transform:translateX(-100%) translateY(-50%); +} +.is-rtl .osui-tooltip__balloon-wrapper.left .osui-tooltip__balloon-wrapper__balloon{ + -webkit-transform:translateX(0); + -ms-transform:translateX(0); + transform:translateX(0); +} +.phone .osui-tooltip__balloon-wrapper .osui-tooltip__balloon-wrapper__balloon, .phone .osui-tooltip__balloon-wrapper--is-open .osui-tooltip__balloon-wrapper__balloon{ + max-width:initial; + min-width:initial; + width:40vw; +} +/*! 6.2.16. User Avatar */ +.avatar{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + color:var(--color-neutral-0); + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; + font-weight:var(--font-semi-bold); + height:32px; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + line-height:1; + text-transform:uppercase; + width:32px; +} +.avatar.background-transparent{ + color:var(--color-primary); +} +.avatar.background-neutral-0{ + color:var(--color-primary); +} +.avatar.background-neutral-1, .avatar.background-neutral-2, .avatar.background-neutral-3, .avatar.background-neutral-4{ + color:var(--color-neutral-9); +} +.avatar-small{ + font-size:var(--font-size-xs); + height:24px; + width:24px; +} +.avatar-medium{ + font-size:var(--font-size-base); + height:40px; + width:40px; +} +.avatar span{ + width:auto; +} +/*! 6.3. Interaction */ +/*! 6.3.1. Action Sheet */ +.action-sheet{ + bottom:0; + left:0; + margin-top:0; + padding-bottom:calc(var(--os-safe-area-bottom) + var(--space-base)); + padding-left:calc(var(--os-safe-area-left) + var(--space-base)); + padding-right:calc(var(--os-safe-area-right) + var(--space-base)); + padding-top:var(--space-base); + pointer-events:auto; + position:absolute; + -webkit-transform:translateY(100%); + -ms-transform:translateY(100%); + transform:translateY(100%); + width:100%; + will-change:transform; + z-index:var(--layer-global-off-canvas); +} +.action-sheet{ + -servicestudio--webkit-transform:translateY(0); + -servicestudio-transform:translateY(0); +} +.action-sheet-container{ + height:100%; + left:0; + overflow:hidden; + pointer-events:none; + position:fixed; + top:0; + width:100%; + z-index:var(--layer-global-off-canvas); +} +.action-sheet-container{ + -servicestudio-margin-top:-20px; +} +.action-sheet-container:after{ + background-color:var(--overlay-background); + content:""; + display:block; + height:100%; + left:0; + opacity:0; + pointer-events:none; + position:absolute; + top:0; + -webkit-transition:opacity 0.3s cubic-bezier(0, 0, 0.3, 1); + transition:opacity 0.3s cubic-bezier(0, 0, 0.3, 1); + width:100%; + will-change:opacity; +} +.action-sheet-container:after{ + -servicestudio-opacity:1; +} +.action-sheet-container--visible{ + pointer-events:auto; +} +.action-sheet-container--visible.action-sheet-container:after{ + opacity:1; +} +.action-sheet-container--visible .action-sheet{ + -webkit-transform:none; + -ms-transform:none; + transform:none; +} +.action-sheet-container--visible.action-sheet-container--animatable .action-sheet{ + -webkit-transition:all 330ms ease-out; + transition:all 330ms ease-out; +} +.action-sheet-container--animatable .action-sheet{ + -webkit-transition:all 130ms ease-in; + transition:all 130ms ease-in; +} +.action-sheet-buttons{ + border-radius:var(--border-radius-soft); + display:block; + overflow:hidden; + position:relative; + -webkit-transform:translateZ(0); + transform:translateZ(0); +} +.action-sheet-actions{ + -servicestudio-min-height:40px; +} +.action-sheet-actions .btn{ + border:none; + border-radius:0; + margin-top:1px; + width:100%; +} +.action-sheet-actions:first-child .btn{ + margin-top:0; +} +.action-sheet-cancel .btn{ + border:none; + color:var(--color-neutral-8); +} +.desktop .action-sheet-buttons, .desktop .action-sheet-cancel{ + max-width:500px; +} +.desktop .action-sheet-buttons, .desktop .action-sheet-cancel, +.tablet .action-sheet-buttons, +.tablet .action-sheet-cancel{ + margin:var(--space-none) auto; +} +.desktop .action-sheet-cancel, +.tablet .action-sheet-cancel{ + margin:var(--space-base) auto var(--space-none); +} +.tablet .action-sheet-buttons, .tablet .action-sheet-cancel{ + max-width:600px; +} +/*! 6.3.2. Animate */ +.animate{ + -webkit-animation-duration:1000ms; + animation-duration:1000ms; + -webkit-animation-fill-mode:both; + animation-fill-mode:both; + display:inline-block; + -webkit-transition-timing-function:ease-out; + transition-timing-function:ease-out; + visibility:hidden; + width:100%; + will-change:transform; +} +.animate.slow{ + -webkit-animation-duration:1500ms; + animation-duration:1500ms; +} +.animate.fast{ + -webkit-animation-duration:500ms; + animation-duration:500ms; +} +.bottom-to-top{ + -webkit-animation-name:bottomtotop; + animation-name:bottomtotop; + visibility:visible !important; +} +.bounce{ + -webkit-animation-name:bounce; + animation-name:bounce; + visibility:visible !important; +} +.fade-in{ + -webkit-animation-name:fadein; + animation-name:fadein; + visibility:visible !important; +} +.left-to-right{ + -webkit-animation-name:lefttoright; + animation-name:lefttoright; + visibility:visible !important; +} +.right-to-left{ + -webkit-animation-name:righttoleft; + animation-name:righttoleft; + visibility:visible !important; +} +.top-to-bottom{ + -webkit-animation-name:toptobottom; + animation-name:toptobottom; + visibility:visible !important; +} +.scale{ + -webkit-animation-name:scale; + animation-name:scale; + visibility:visible !important; +} +.scale-down{ + -webkit-animation-name:scaledown; + animation-name:scaledown; + visibility:visible !important; +} +.scale-up{ + -webkit-animation-name:scaleup; + animation-name:scaleup; + visibility:visible !important; +} +.spinner{ + -webkit-animation:spinner 1000ms infinite linear; + animation:spinner 1000ms infinite linear; + visibility:visible !important; +} +.spinner.slow{ + -webkit-animation:spinner 1500ms infinite linear; + animation:spinner 1500ms infinite linear; +} +.spinner.fast{ + -webkit-animation:spinner 500ms infinite linear; + animation:spinner 500ms infinite linear; +} +/*! 6.3.3. Animated Label */ +.animated-label{ + position:relative; +} +.animated-label.active .animated-label-text{ + font-size:var(--font-size-xs); + top:-10px; +} +.animated-label.active .animated-label-input .form-control[data-input]::-webkit-datetime-edit{ + color:var(--color-neutral-9); +} +.animated-label.active .animated-label-input [data-textarea]{ + padding-bottom:var(--space-xs); +} +.animated-label-text{ + color:var(--color-neutral-8); + font-size:var(--font-size-s); + pointer-events:none; + position:absolute; + top:8px; + -webkit-transition:all 300ms ease; + transition:all 300ms ease; + z-index:var(--layer-global-screen); +} +.animated-label-text .icon{ + padding-right:var(--space-base); +} +.animated-label-text{ + -servicestudio-left:0 !important; + -servicestudio-position:static !important; +} +.animated-label-input:empty{ + -servicestudio-min-height:40px; +} +.animated-label-input .form-control[data-input], .animated-label-input .form-control[data-textarea]{ + background-color:transparent; + border:var(--border-size-none); + border-bottom:var(--border-size-s) solid var(--color-neutral-5); + border-radius:var(--border-radius-none); + padding:var(--space-none); + -webkit-transition:all 100ms ease-in-out; + transition:all 100ms ease-in-out; +} +.animated-label-input .form-control[data-input]:focus, .animated-label-input .form-control[data-textarea]:focus{ + border-bottom:var(--border-size-s) solid var(--color-primary); +} +.animated-label-input .form-control[data-input]:focus::-webkit-datetime-edit, .animated-label-input .form-control[data-textarea]:focus::-webkit-datetime-edit{ + color:var(--color-neutral-9); +} +.animated-label-input .form-control[data-input].not-valid, .animated-label-input .form-control[data-textarea].not-valid{ + border-bottom:var(--border-size-s) solid var(--color-error); +} +.animated-label-input .form-control[data-input].not-valid:focus, .animated-label-input .form-control[data-textarea].not-valid:focus{ + border:var(--border-size-none); + border-bottom:var(--border-size-s) solid var(--color-error); +} +.animated-label-input .form-control[data-input]::-webkit-datetime-edit, .animated-label-input .form-control[data-textarea]::-webkit-datetime-edit{ + color:transparent; +} +.animated-label-input .form-control[data-input]::-webkit-calendar-picker-indicator, .animated-label-input .form-control[data-textarea]::-webkit-calendar-picker-indicator{ + display:none; +} +.animated-label-input .form-control[data-input]:-webkit-autofill, .animated-label-input .form-control[data-textarea]:-webkit-autofill{ + -webkit-animation-name:onAutoFillStart; + animation-name:onAutoFillStart; +} +.animated-label-input .form-control[data-input]:not(:-webkit-autofill), .animated-label-input .form-control[data-textarea]:not(:-webkit-autofill){ + -webkit-animation-name:onAutoFillCancel; + animation-name:onAutoFillCancel; +} +.animated-label-input .form-control[data-textarea]{ + margin-top:var(--space-s); +} +.animated-label-input .form-control[data-textarea] + span.validation-message{ + bottom:7px; +} +.list.list-group > [data-block*=AnimatedLabel]:first-child .animated-label{ + margin-top:var(--space-s); +} +.form .animated-label-input .form-control[data-textarea] + span.validation-message{ + position:relative; + bottom:var(--space-m); +} +@-webkit-keyframes onAutoFillStart{} +@keyframes onAutoFillStart{} +@-webkit-keyframes onAutoFillCancel{} +@keyframes onAutoFillCancel{} +.tablet .animated-label-text, +.phone .animated-label-text{ + top:14px; +} +.tablet .form-control[data-textarea] + span.validation-message, +.phone .form-control[data-textarea] + span.validation-message{ + bottom:10px; +} +.has-accessible-features .animated-label-input .form-control[data-input]{ + border-color:var(--color-neutral-7); +} +.has-accessible-features .animated-label-input .form-control[data-input]:hover{ + border-color:var(--color-neutral-8); +} +.has-accessible-features .animated-label-input .form-control[data-input]:focus{ + -webkit-box-shadow:0 3px 0 0 var(--color-focus-outer); + box-shadow:0 3px 0 0 var(--color-focus-outer); +} +/*! 6.3.4. Balloon */ +.osui-balloon{ + --border-radius-rounded:16px; + --osui-floating-position-x:0; + --osui-floating-position-y:0; + -webkit-box-shadow:var(--shadow-s); + box-shadow:var(--shadow-s); + border-radius:var(--osui-balloon-shape); + background-color:var(--color-neutral-0); + height:auto; + left:var(--osui-floating-position-x); + opacity:0; + position:fixed; + pointer-events:none; + top:var(--osui-floating-position-y); + visibility:hidden; + width:-webkit-max-content; + width:-moz-max-content; + width:max-content; + z-index:var(--layer-global-elevated); +} +.osui-balloon--is-open{ + visibility:visible; + opacity:1; + pointer-events:all; + -webkit-transition:opacity 300ms ease-in; + transition:opacity 300ms ease-in; +} +.osui-balloon:not(.osui-balloon--is-open) *{ + display:none; +} +.osui-balloon{ + -servicestudio-left:0; + -servicestudio-min-width:170px; + -servicestudio-opacity:1; + -servicestudio-position:absolute; + -servicestudio-top:100%; + -servicestudio-visibility:visible; +} +.osui-balloon.bottom{ + -servicestudio-left:50%; + -servicestudio-transform:translate(-50%); +} +.osui-balloon.bottom-start{ + -servicestudio-left:0; +} +.osui-balloon.bottom-end{ + -servicestudio-left:100%; + -servicestudio-transform:translateX(-100%); +} +.osui-balloon.center{ + -servicestudio-top:0; + -servicestudio-left:0; +} +.osui-balloon.left-end{ + -servicestudio-top:100%; + -servicestudio-transform:translateY(-100%) translateX(-100%); +} +.osui-balloon.left-start{ + -servicestudio-top:0; + -servicestudio-transform:translateX(-100%); +} +.osui-balloon.left{ + -servicestudio-top:50%; + -servicestudio-transform:translateY(-50%) translateX(-100%); +} +.osui-balloon.right-end{ + -servicestudio-top:100%; + -servicestudio-left:100%; + -servicestudio-transform:translateY(-100%); +} +.osui-balloon.right-start{ + -servicestudio-top:0; + -servicestudio-left:100%; +} +.osui-balloon.right{ + -servicestudio-top:50%; + -servicestudio-left:100%; + -servicestudio-transform:translateY(-50%); +} +.osui-balloon.top-end{ + -servicestudio-top:0; + -servicestudio-left:100%; + -servicestudio-transform:translateY(-100%) translateX(-100%); +} +.osui-balloon.top-start{ + -servicestudio-top:0; + -servicestudio-left:0; + -servicestudio-transform:translateY(-100%); +} +.osui-balloon.top{ + -servicestudio-top:0; + -servicestudio-left:50%; + -servicestudio-transform:translateY(-100%) translateX(-50%); +} +.osui-tabs__header-item .osui-balloon{ + position:fixed; +} +/*! 6.3.5. Bottom Sheet */ +.osui-bottom-sheet{ + --bottom-sheet-max-height:calc(100vh - 54px); + --border-radius-sharp:none; + --border-radius-rounded:16px; + --osui-bottom-sheet-draggable-area:56px; + --osui-bottom-sheet-transition-function:cubic-bezier(0.19, 0.35, 0.56, 0.96); + background-color:var(--color-neutral-0); + border-top-left-radius:var(--bottom-sheet-shape); + border-top-right-radius:var(--bottom-sheet-shape); + bottom:0; + -webkit-box-shadow:var(--shadow-l); + box-shadow:var(--shadow-l); + left:0; + max-height:var(--bottom-sheet-max-height); + min-height:50vh; + position:fixed; + text-align:center; + -webkit-transition:-webkit-transform 350ms var(--osui-bottom-sheet-transition-function); + transition:-webkit-transform 350ms var(--osui-bottom-sheet-transition-function); + transition:transform 350ms var(--osui-bottom-sheet-transition-function); + transition:transform 350ms var(--osui-bottom-sheet-transition-function), -webkit-transform 350ms var(--osui-bottom-sheet-transition-function); + -webkit-transform:translateY(100%); + -ms-transform:translateY(100%); + transform:translateY(100%); + width:100%; + z-index:var(--osui-bottom-sheet-layer); +} +.osui-bottom-sheet{ + -servicestudio-transform:none; +} +.osui-bottom-sheet .osui-bottom-sheet__content:empty, +.osui-bottom-sheet .osui-bottom-sheet__header__top-bar:empty{ + -servicestudio-border:1px dashed var(--color-neutral-5); + -servicestudio-margin:var(--space-base); +} +.osui-bottom-sheet--has-handler .osui-bottom-sheet__header::before{ + background:var(--color-neutral-5); + border-radius:100px; + content:""; + height:4px; + left:50%; + position:absolute; + top:var(--space-base); + -webkit-transform:translateX(-50%); + -ms-transform:translateX(-50%); + transform:translateX(-50%); + width:40px; +} +.osui-bottom-sheet--has-handler .osui-bottom-sheet__header__top-bar{ + padding-top:var(--space-l); +} +.osui-bottom-sheet--has-scroll{ + --osui-bottom-sheet-draggable-area:0; +} +.osui-bottom-sheet--has-scroll .osui-bottom-sheet__header__top-bar::before{ + opacity:1; + -webkit-transform:translateY(0); + -ms-transform:translateY(0); + transform:translateY(0); +} +.osui-bottom-sheet--is-open{ + -webkit-transform:translateY(0); + -ms-transform:translateY(0); + transform:translateY(0); +} +.osui-bottom-sheet--is-open::before{ + background-color:var(--color-neutral-0); + content:""; + height:100%; + left:0; + position:absolute; + top:100%; + width:100%; +} +.osui-bottom-sheet--is-open + .osui-bottom-sheet-overlay{ + opacity:1; + pointer-events:all; +} +.osui-bottom-sheet:not(.osui-bottom-sheet--is-open){ + -webkit-transition:-webkit-transform 200ms ease-out; + transition:-webkit-transform 200ms ease-out; + transition:transform 200ms ease-out; + transition:transform 200ms ease-out, -webkit-transform 200ms ease-out; +} +.osui-bottom-sheet:not(.osui-bottom-sheet--is-open) + .osui-bottom-sheet-overlay{ + -webkit-transition:opacity 200ms ease-out; + transition:opacity 200ms ease-out; +} +.osui-bottom-sheet-overlay{ + background-color:var(--overlay-background); + height:100vh; + left:0; + opacity:0; + pointer-events:none; + position:fixed; + top:0; + -webkit-transition:opacity 350ms ease-in; + transition:opacity 350ms ease-in; + width:100vw; + z-index:calc(var(--layer-below) + var(--osui-bottom-sheet-layer)); +} +.osui-bottom-sheet-overlay{ + -servicestudio-opacity:1; +} +.osui-bottom-sheet__header{ + position:relative; +} +.osui-bottom-sheet__header::after{ + content:""; + height:var(--osui-bottom-sheet-draggable-area); + left:0; + position:absolute; + top:100%; + width:100%; +} +.osui-bottom-sheet__header__top-bar{ + padding:var(--space-base); +} +.osui-bottom-sheet__header__top-bar::before{ + -webkit-box-shadow:var(--shadow-l); + box-shadow:var(--shadow-l); + content:""; + height:100%; + left:0; + opacity:0; + position:absolute; + -webkit-transform:translateY(-2px); + -ms-transform:translateY(-2px); + transform:translateY(-2px); + -webkit-transition:opacity 200ms ease, -webkit-transform 200ms var(--osui-bottom-sheet-transition-function); + transition:opacity 200ms ease, -webkit-transform 200ms var(--osui-bottom-sheet-transition-function); + transition:opacity 200ms ease, transform 200ms var(--osui-bottom-sheet-transition-function); + transition:opacity 200ms ease, transform 200ms var(--osui-bottom-sheet-transition-function), -webkit-transform 200ms var(--osui-bottom-sheet-transition-function); + top:0; + width:100%; + z-index:var(--layer-global-negative); +} +.osui-bottom-sheet__header__top-bar:empty{ + padding-bottom:none; +} +.osui-bottom-sheet__content{ + max-height:var(--bottom-sheet-max-height); + overflow-y:scroll; + padding:var(--space-base); + padding-bottom:calc(var(--bottom-bar-size) + var(--space-m) + var(--os-safe-area-bottom)); +} +.layout:not(.layout-native) .osui-bottom-sheet{ + --bottom-sheet-max-height:85vh; +} +.desktop .osui-bottom-sheet__header::after{ + display:none; +} +.landscape .osui-bottom-sheet__header__top-bar, +.landscape .osui-bottom-sheet__content{ + padding-right:calc(var(--space-base) + var(--os-safe-area-right)); + padding-left:calc(var(--space-base) + var(--os-safe-area-left)); +} +.osui-bottom-sheet--is-active .vscomp-wrapper, +.osui-bottom-sheet--is-active [data-popup-backdrop]{ + z-index:calc(var(--layer-above) + var(--osui-bottom-sheet-layer)); +} +.osui-bottom-sheet--is-active .osui-bottom-sheet__content .osui-datepicker, +.osui-bottom-sheet--is-active .osui-bottom-sheet__content .osui-monthpicker, +.osui-bottom-sheet--is-active .osui-bottom-sheet__content .osui-timepicker{ + position:relative; +} +/*! 6.3.6. Carousel */ +.osui-carousel{ + --osui-carousel-track-width:100%; + --osui-carousel-pagination-margin:30px; +} +.osui-carousel .splide__arrow{ + background-color:var(--color-neutral-0); + -webkit-box-shadow:var(--shadow-xs); + box-shadow:var(--shadow-xs); + height:40px; + opacity:1; + -webkit-transition:opacity 150ms linear; + transition:opacity 150ms linear; + width:40px; + will-change:opacity; + z-index:var(--layer-local-tier-1); +} +.osui-carousel .splide__arrow[disabled]{ + cursor:default; + opacity:0.3; +} +.osui-carousel .splide__arrow svg{ + height:14px; + width:14px; +} +.osui-carousel .splide__arrow svg path{ + fill:var(--color-neutral-7); +} +.osui-carousel .splide__arrow{ + -servicestudio-transform:translateY(calc(-50% + 20px)); +} +.osui-carousel .splide__pagination{ + margin:0; + z-index:var(--layer-local-tier-1); +} +.osui-carousel .splide__pagination__page.is-active{ + background-color:var(--color-primary); + z-index:var(--layer-local-tier-1); +} +.osui-carousel .splide__list{ + -webkit-transform-style:flat; + transform-style:flat; +} +.osui-carousel .splide--draggable, .osui-carousel .splide.splide--draggable{ + cursor:-webkit-grab; + cursor:grab; +} +.osui-carousel .splide img{ + height:100%; + -o-object-fit:cover; + object-fit:cover; +} +.osui-carousel--has-pagination{ + padding-bottom:var(--osui-carousel-pagination-margin); +} +.osui-carousel--has-pagination:not(.splide) .splide__pagination{ + bottom:calc(var(--osui-carousel-pagination-margin) * -1); +} +.osui-carousel--has-pagination.splide .splide__arrow{ + top:calc(50% - (var(--osui-carousel-pagination-margin)) / 2); +} +.osui-carousel--has-pagination.splide .splide__pagination{ + bottom:0; +} +.osui-carousel__content{ + -servicestudio-display:grid; + -servicestudio-grid-template-columns:repeat(auto-fit, minmax(100px, 1fr)); +} +.osui-carousel__content > .list{ + overflow:unset; +} +.osui-carousel__content > .list{ + -servicestudio-display:inline-flex; + -servicestudio-overflow:hidden; +} +.osui-carousel__track{ + max-width:100%; + width:var(--osui-carousel-track-width); + z-index:var(--layer-global-screen); +} +.osui-carousel__track{ + -servicestudio-position:relative; +} +.osui-carousel .list:not([data-virtualization-disabled]), +.osui-carousel .list:not([data-animation-disabled]){ + -servicestudio-pointer-events:none; + -servicestudio-min-height:100px; +} +.osui-carousel .list:not([data-virtualization-disabled]):after, +.osui-carousel .list:not([data-animation-disabled]):after{ + -servicestudio-content:""; + -servicestudio-position:absolute; + -servicestudio-top:0; + -servicestudio-left:0; + -servicestudio-width:100%; + -servicestudio-height:100%; + -servicestudio-background-color:var(--color-neutral-0); + -servicestudio-background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASMAAADhCAIAAAAMFURxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpjNzRkNDZjOS04M2Y0LTZiNDMtOTRmNC1iYjgyMzY4MTViMDkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzM3NjIxNzQ2REQ2MTFFNjkwMDg5M0NGRkM2Qjc5MEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzM3NjIxNzM2REQ2MTFFNjkwMDg5M0NGRkM2Qjc5MEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZWUxYmM5NjQtZjc1NS1iNjRiLTlkMTYtNjFkMTVmMWNjMjlhIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmM3NGQ0NmM5LTgzZjQtNmI0My05NGY0LWJiODIzNjgxNWIwOSIv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"); + -servicestudio-background-repeat:no-repeat; + -servicestudio-background-position:center; + -servicestudio-z-index:var(--layer-local-tier-2); +} +.has-accessible-features .splide__slide{ + -webkit-box-shadow:none; + box-shadow:none; +} +.is-rtl .splide.splide--ltr{ + direction:ltr; +} +.is-rtl .splide.splide--rtl{ + direction:rtl; +} +.splide__track--fade > .splide__list > .splide__slide{ + z-index:var(--layer-global-screen); +} +.splide__track--fade > .splide__list > .splide__slide.is-active{ + z-index:var(--layer-local-tier-1); +} +/*! 6.3.7. DatePicker */ +.flatpickr-calendar{ + --osui-flatpickr-layer:var(--layer-global-elevated); + border-radius:var(--border-radius-soft); + border:var(--border-size-s) solid var(--color-neutral-5); + -webkit-box-shadow:var(--shadow-none); + box-shadow:var(--shadow-none); + width:320px; +} +.flatpickr-calendar.open{ + z-index:var(--osui-flatpickr-layer); +} +.flatpickr-calendar.open.inside-bottom-sheet{ + z-index:calc(var(--osui-bottom-sheet-layer) + var(--layer-local-tier-1)); +} +.flatpickr-calendar.open.inside-popup{ + z-index:calc(var(--osui-popup-layer) + var(--layer-local-tier-1)); +} +.flatpickr-calendar.open.inside-sidebar{ + z-index:calc(var(--osui-sidebar-layer) + var(--layer-local-tier-1)); +} +.flatpickr-calendar.open.inside-notification{ + z-index:calc(var(--osui-notification-layer) + var(--layer-local-tier-1)); +} +.flatpickr-calendar.arrowTop:before, .flatpickr-calendar.arrowTop::after{ + left:40px; +} +.flatpickr-calendar.hasTime{ + position:fixed; +} +.flatpickr-calendar.hasTime .flatpickr-time{ + border:var(--border-size-none); + height:30px; + overflow:visible; + padding:var(--space-none) var(--space-base) var(--space-base); +} +.flatpickr-calendar.hasWeeks{ + min-width:-webkit-min-content; + min-width:-moz-min-content; + min-width:min-content; +} +.flatpickr-calendar.hasWeeks .flatpickr-weekwrapper .flatpickr-weeks{ + margin-right:var(--space-xs); +} +.flatpickr-calendar.hasWeeks .flatpickr-weekwrapper .flatpickr-weeks .flatpickr-day{ + color:var(--color-neutral-5); +} +.flatpickr-calendar.hasWeeks span.flatpickr-day{ + height:35px; + line-height:34px; + max-width:35px; +} +.flatpickr-calendar .numInputWrapper span.arrowUp, .flatpickr-calendar .numInputWrapper span.arrowDown{ + border:none; +} +.flatpickr-calendar .numInputWrapper span.arrowUp:after{ + border-bottom-color:var(--color-primary); +} +.flatpickr-calendar .numInputWrapper span.arrowDown:after{ + border-top-color:var(--color-primary); +} +.flatpickr-calendar.inline{ + display:inline-block; +} +.flatpickr-months{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:grid; + grid-template-areas:"date prev next"; + grid-template-columns:1fr 34px 34px; + padding:var(--space-base); + position:relative; +} +.flatpickr-months .flatpickr-month{ + justify-self:flex-start; + -webkit-box-flex:0; + -ms-flex:none; + flex:none; + grid-area:date; +} +.flatpickr-months .flatpickr-prev-month, +.flatpickr-months .flatpickr-next-month{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + justify-self:flex-end; + height:34px; + padding:0; + position:static; + top:unset; + width:34px; + z-index:calc(var(--osui-flatpickr-layer) + var(--layer-local-tier-1)); +} +.flatpickr-months .flatpickr-prev-month:hover, +.flatpickr-months .flatpickr-next-month:hover{ + background-color:var(--color-neutral-2); + border-radius:var(--border-radius-circle); +} +.flatpickr-months .flatpickr-prev-month svg, +.flatpickr-months .flatpickr-next-month svg{ + height:12px; + width:12px; +} +.flatpickr-months .flatpickr-prev-month svg path, +.flatpickr-months .flatpickr-next-month svg path{ + stroke-width:1px; + stroke:var(--color-primary); +} +.flatpickr-months .flatpickr-prev-month{ + left:unset; + grid-area:prev; +} +.flatpickr-months .flatpickr-next-month{ + grid-area:next; + right:unset; +} +.flatpickr-current-month{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + color:var(--color-primary); + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; + font-size:var(--font-size-s); + -webkit-box-pack:start; + -ms-flex-pack:start; + justify-content:flex-start; + left:unset; + padding:0; + position:static; + text-align:unset; + -webkit-transform:none; + -ms-transform:none; + transform:none; + width:unset; +} +.flatpickr-current-month .flatpickr-monthDropdown-months{ + -webkit-appearance:none; + -moz-appearance:none; + appearance:none; + border-radius:var(--border-radius-soft); + font-weight:var(--font-semi-bold); + height:30px; + line-height:normal; + margin:0; + -webkit-box-ordinal-group:3; + -ms-flex-order:2; + order:2; + padding:var(--space-none) var(--space-s); +} +.flatpickr-current-month .flatpickr-monthDropdown-months:hover, .flatpickr-current-month .flatpickr-monthDropdown-months:focus{ + background-color:var(--color-neutral-2); +} +.flatpickr-current-month .numInputWrapper{ + padding:var(--space-none) var(--space-s); + width:60px; +} +.flatpickr-current-month .numInputWrapper:hover, .flatpickr-current-month .numInputWrapper:focus{ + background-color:var(--color-neutral-2); + border-radius:var(--border-radius-soft); +} +.flatpickr-current-month .numInputWrapper input{ + border:var(--border-size-s) solid transparent; + border-radius:var(--border-radius-soft); + font-size:var(--font-size-s); + font-weight:var(--font-semi-bold); + height:30px; + padding:0; +} +.flatpickr-current-month .numInputWrapper input:hover{ + background-color:var(--color-neutral-2); +} +.flatpickr-innerContainer{ + padding:var(--space-s) var(--space-base) var(--space-base); +} +.flatpickr-rContainer, +.flatpickr-days{ + width:100%; +} +.dayContainer{ + max-width:100%; + min-width:100%; + width:100%; +} +.flatpickr-weekdays{ + padding-bottom:var(--space-base); +} +.flatpickr-weekwrapper .flatpickr-weekday{ + visibility:hidden; +} +span.flatpickr-weekday{ + color:var(--color-neutral-7); + font-size:var(--font-size-s); + font-weight:var(--font-regular); + -webkit-user-select:none; + -moz-user-select:none; + -ms-user-select:none; + user-select:none; +} +.flatpickr-day{ + color:var(--color-neutral-9); + font-size:var(--font-size-s); + font-weight:var(--font-regular); + -webkit-user-select:none; + -moz-user-select:none; + -ms-user-select:none; + user-select:none; + line-height:37px; +} +.flatpickr-day.prevMonthDay, .flatpickr-day.nextMonthDay{ + color:var(--color-neutral-5); +} +.flatpickr-day.prevMonthDay:hover, .flatpickr-day.prevMonthDay:focus, .flatpickr-day.nextMonthDay:hover, .flatpickr-day.nextMonthDay:focus{ + color:var(--color-neutral-7); +} +.flatpickr-day.today{ + border-color:var(--color-neutral-6); +} +.flatpickr-day.today:hover, .flatpickr-day.today:focus{ + border-color:var(--color-neutral-3); + background:var(--color-neutral-3); + color:var(--color-primary); +} +.flatpickr-day.today.inRange{ + color:var(--color-neutral-9); +} +.flatpickr-day:hover, .flatpickr-day:focus, .flatpickr-day.inRange, .flatpickr-day.today.inRange, .flatpickr-day.prevMonthDay:hover, .flatpickr-day.prevMonthDay:focus, .flatpickr-day.prevMonthDay.inRange, .flatpickr-day.prevMonthDay.today.inRange, .flatpickr-day.nextMonthDay:hover, .flatpickr-day.nextMonthDay:focus, .flatpickr-day.nextMonthDay.inRange, .flatpickr-day.nextMonthDay.today.inRange{ + background:var(--color-neutral-3); + border-color:var(--color-neutral-3); +} +.flatpickr-day.selected, .flatpickr-day.selected:focus, .flatpickr-day.selected:hover, .flatpickr-day.selected.inRange, .flatpickr-day.selected.prevMonthDay, .flatpickr-day.selected.nextMonthDay, .flatpickr-day.startRange, .flatpickr-day.startRange:focus, .flatpickr-day.startRange:hover, .flatpickr-day.startRange.inRange, .flatpickr-day.startRange.prevMonthDay, .flatpickr-day.startRange.nextMonthDay, .flatpickr-day.endRange, .flatpickr-day.endRange:focus, .flatpickr-day.endRange:hover, .flatpickr-day.endRange.inRange, .flatpickr-day.endRange.prevMonthDay, .flatpickr-day.endRange.nextMonthDay{ + background:var(--color-primary); + border-color:var(--color-primary); +} +.flatpickr-day.selected.today, .flatpickr-day.selected:focus.today, .flatpickr-day.selected:hover.today, .flatpickr-day.selected.inRange.today, .flatpickr-day.selected.prevMonthDay.today, .flatpickr-day.selected.nextMonthDay.today, .flatpickr-day.startRange.today, .flatpickr-day.startRange:focus.today, .flatpickr-day.startRange:hover.today, .flatpickr-day.startRange.inRange.today, .flatpickr-day.startRange.prevMonthDay.today, .flatpickr-day.startRange.nextMonthDay.today, .flatpickr-day.endRange.today, .flatpickr-day.endRange:focus.today, .flatpickr-day.endRange:hover.today, .flatpickr-day.endRange.inRange.today, .flatpickr-day.endRange.prevMonthDay.today, .flatpickr-day.endRange.nextMonthDay.today{ + color:var(--color-neutral-0); +} +.flatpickr-day.selected.startRange:before, .flatpickr-day.startRange.startRange:before, .flatpickr-day.endRange.startRange:before, .flatpickr-day.selected.endRange:before, .flatpickr-day.startRange.endRange:before, .flatpickr-day.endRange.endRange:before, .flatpickr-day.inRange:before{ + content:""; + display:block; + top:-1px; + bottom:-1px; + background-color:var(--color-neutral-3); + position:absolute; + z-index:var(--layer-global-negative); +} +.flatpickr-day.selected.startRange.endRange, .flatpickr-day.selected.startRange.endRange:before, .flatpickr-day.startRange.endRange, .flatpickr-day.startRange.endRange:before, .flatpickr-day.selected.endRange.startRange, .flatpickr-day.selected.endRange.startRange:before, .flatpickr-day.endRange.startRange, .flatpickr-day.endRange.startRange:before{ + border-radius:50px; +} +.flatpickr-day.selected.startRange, .flatpickr-day.startRange.startRange{ + border-radius:50px; +} +.flatpickr-day.selected.startRange:before, .flatpickr-day.startRange.startRange:before{ + border-radius:50px 0 0 50px; + left:0; + right:-2px; +} +.flatpickr-day.selected.endRange, .flatpickr-day.endRange.endRange{ + border-radius:50px; +} +.flatpickr-day.selected.endRange:before, .flatpickr-day.endRange.endRange:before{ + border-radius:0 50px 50px 0; + right:0; + left:-2px; +} +.flatpickr-day.inRange{ + -webkit-box-shadow:var(--shadow-none); + box-shadow:var(--shadow-none); +} +.flatpickr-day.inRange:before{ + left:-2px; + right:-2px; +} +.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)), .flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)), .flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)){ + -webkit-box-shadow:var(--shadow-none); + box-shadow:var(--shadow-none); +} +.flatpickr-time{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + position:relative; + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + line-height:30px; +} +.flatpickr-time input:hover, .flatpickr-time input:focus{ + background:transparent; +} +.flatpickr-time .numInputWrapper{ + -webkit-box-flex:initial; + -ms-flex:initial; + flex:initial; + height:30px; + padding:0 var(--space-base); + min-width:48px; + width:auto; +} +.flatpickr-time .numInputWrapper:hover, .flatpickr-time .numInputWrapper:focus{ + border-radius:var(--border-radius-soft); +} +.flatpickr-time .numInputWrapper .numInput{ + font-size:var(--font-size-s); +} +.flatpickr-time.time24hr .numInputWrapper{ + width:inherit; +} +.flatpickr-time .flatpickr-am-pm{ + background-color:var(--color-primary); + border-radius:var(--border-radius-soft); + color:var(--color-neutral-0); + font-size:var(--font-size-xs); + font-weight:var(--font-semi-bold); + height:18px; + line-height:16px; + position:absolute; + right:var(--space-l); + text-transform:lowercase; + width:40px; +} +.flatpickr-time .flatpickr-am-pm:hover, .flatpickr-time .flatpickr-am-pm:focus{ + background-color:var(--color-primary-hover); +} +.firefox .flatpickr-time input{ + max-width:48px; +} +.flatpickr-today-button{ + padding:var(--space-none) var(--space-base) var(--space-base); + -webkit-user-select:none; + -moz-user-select:none; + -ms-user-select:none; + user-select:none; +} +.flatpickr-today-button a{ + cursor:pointer; +} +.flatpickr-today-button a:hover{ + text-decoration:none; +} +.safari input.flatpickr-input, +.safari input.flatpickr-input + input{ + -webkit-transition:none; + transition:none; +} +.phone .flatpickr-current-month .flatpickr-monthDropdown-months, +.phone .flatpickr-current-month .numInputWrapper .numInput, +.phone .flatpickr-time .numInputWrapper .numInput{ + font-size:var(--font-size-base); +} +.phone .flatpickr-mobile::-webkit-date-and-time-value{ + text-align:left; +} +.phone .is-rtl .flatpickr-mobile::-webkit-date-and-time-value{ + text-align:right; +} +.is-rtl:has(.layout-side) .flatpickr-calendar{ + --osui-flatpickr-layer:calc(var(--osui-menu-layer) + var(--layer-local-tier-1)); +} +.is-rtl .flatpickr-calendar{ + width:330px; +} +.is-rtl .flatpickr-months, +.is-rtl .flatpickr-weekdays, +.is-rtl .flatpickr-days{ + direction:rtl; +} +.is-rtl .flatpickr-prev-month, +.is-rtl .flatpickr-next-month{ + -webkit-transform:scaleX(-1); + -ms-transform:scaleX(-1); + transform:scaleX(-1); +} +.is-rtl .numInputWrapper span{ + left:0; + padding:0 2px 0 4px; + right:unset; +} +.is-rtl .flatpickr-current-month .flatpickr-monthDropdown-months{ + margin-left:var(--space-base); + margin-right:var(--space-none); +} +.is-rtl .flatpickr-day.selected.startRange, .is-rtl .flatpickr-day.startRange.startRange, .is-rtl .flatpickr-day.endRange.startRange{ + border-radius:50px; +} +.is-rtl .flatpickr-day.selected.startRange:before, .is-rtl .flatpickr-day.startRange.startRange:before, .is-rtl .flatpickr-day.endRange.startRange:before{ + border-radius:0 50px 50px 0; + left:-2px; + right:0; +} +.is-rtl .flatpickr-day.selected.endRange, .is-rtl .flatpickr-day.startRange.endRange, .is-rtl .flatpickr-day.endRange.endRange{ + border-radius:50px; +} +.is-rtl .flatpickr-day.selected.endRange:before, .is-rtl .flatpickr-day.startRange.endRange:before, .is-rtl .flatpickr-day.endRange.endRange:before{ + border-radius:50px 0 0 50px; + left:0; + right:-2px; +} +.flatpickr-calendar.static.open{ + z-index:var(--osui-flatpickr-layer); +} +@supports not selector(:has(*)){ + .is-rtl .flatpickr-calendar{ + --osui-flatpickr-layer:calc(var(--osui-menu-layer) + var(--layer-local-tier-1)); + } +} +.osui-datepicker-calendar .flatpickr-months .flatpickr-month:focus-within{ + overflow:visible; +} +.osui-datepicker-calendar .numInputWrapper input:focus-visible, +.osui-datepicker-calendar .flatpickr-monthDropdown-months:focus-visible, +.osui-datepicker-calendar .flatpickr-prev-month:focus-visible, +.osui-datepicker-calendar .flatpickr-next-month:focus-visible, +.osui-datepicker-calendar .flatpickr-am-pm:focus-visible, +.osui-datepicker-calendar .flatpickr-today-button a:focus-visible{ + -webkit-box-shadow:0 0 0 3px var(--color-focus-outer); + box-shadow:0 0 0 3px var(--color-focus-outer); +} +.osui-datepicker-calendar .flatpickr-day:focus-visible{ + border-color:var(--color-focus-outer); +} +.osui-datepicker input[type=date]::-webkit-inner-spin-button, .osui-datepicker input[type=date]::-webkit-calendar-picker-indicator, .osui-datepicker input[type=date]::-webkit-datetime-edit-year-field, .osui-datepicker input[type=date]::-webkit-datetime-edit-month-field, .osui-datepicker input[type=date]::-webkit-datetime-edit-day-field, .osui-datepicker input[type=date]::-webkit-datetime-edit-fields-wrapper{ + display:none; + -moz-appearance:none; +} +.osui-datepicker input.flatpickr-input[disabled] + input{ + background-color:var(--color-neutral-2); + border:var(--border-size-s) solid var(--color-neutral-4); + color:var(--color-neutral-6); + pointer-events:none; +} +.osui-datepicker input:first-of-type{ + display:none; +} +.osui-datepicker input:first-of-type{ + -servicestudio-display:inline-flex !important; +} +.osui-datepicker-calendar-ss-preview{ + display:none; +} +.osui-datepicker-calendar-ss-preview{ + -servicestudio-background-color:var(--color-neutral-0); + -servicestudio-background-position:top center; + -servicestudio-background-repeat:no-repeat; + -servicestudio-background-size:contain; + -servicestudio-border-radius:var(--border-radius-soft); + -servicestudio-border:var(--border-size-s) solid var(--color-neutral-5); + -servicestudio-display:inline-block; + -servicestudio-height:0; + -servicestudio-margin-top:2px; + -servicestudio-max-width:320px; + -servicestudio-overflow:hidden; + -servicestudio-position:relative; + -servicestudio-width:100%; + -servicestudio-z-index:var(--layer-local-tier-1); +} +.osui-datepicker-calendar-ss-preview:not(.has-today-btn).single{ + -servicestudio-background-image:url("data:image/png;base64,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"); + -servicestudio-height:310px; +} +.osui-datepicker-calendar-ss-preview:not(.has-today-btn).time12h{ + -servicestudio-background-image:url("data:image/png;base64,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"); + -servicestudio-height:344px; +} +.osui-datepicker-calendar-ss-preview:not(.has-today-btn).time24h{ + -servicestudio-background-image:url("data:image/png;base64,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"); + -servicestudio-height:344px; +} +.osui-datepicker-calendar-ss-preview.has-today-btn.single{ + -servicestudio-background-image:url("data:image/png;base64,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"); + -servicestudio-height:344px; +} +.osui-datepicker-calendar-ss-preview.has-today-btn.time12h{ + -servicestudio-background-image:url("data:image/png;base64,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"); + -servicestudio-height:390px; +} +.osui-datepicker-calendar-ss-preview.has-today-btn.time24h{ + -servicestudio-background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAGHCAMAAAD2o3uUAAAC+lBMVEX///////////8AAAD////////////9/f77/Pz39/j6+vv5+fn7+/vz8/Tg4eLo6er29vfz9PXr7Ox3eXzw8fG3ubvh5Ofv8PDDxMbq6uvOz9H19fb09fXy8vPx8vLt7e3z9/7e3+B6fYB1d3pwcnVISk7d3t/Gx8m/wMG8vsCio6V8f4HQ0dLa29uFh4nt7u+mp6lzdXmvsLGsrrCoqauRkpXBw8Vpa25jZmnm5ufU1NX2+f7n5+ixs7WvsrVydHff4ubj5OTFxsiAgoVucHTk5ebc3d7c3N1sbnKmqa2kpaibnJ+YmZyEhYhKTFHo6+3S09T6+/8+eebW19jNztCOj5GJioxDRkrw8vO+wcO7vL55e37q7O/d4OXi4uOssLNnaW3x9f5HgOdEfefS1NbKy8zBwsOrrK6eoqaKjI5YW17s8v280fbs7vB5ou2anqNPUVTn7vzk7fzI2fjl5+vY2drHycq6u7yztrm0tbakqKueoKKcnqCVl5lhY2dcXmJGSEz8/f73+Pm2zfXj5ulViOhlaGvV1teprbCoq636+/vA1PeYuPHu7++HiYtDREepxPRLgueam53g6vtbjerMzc6hpamTlJaBhot/gYJMT1L+///U4vrD1vigvvN/p+5Rhug0cuTW2NrKy83Iys3JysuxtLiWmJqQkZPn6eza3uK2t7mhoqRfYWRAQkfp8P2zy/WkwvWMsPCgpKiMjpCBg4dRVFgsLCz8/fzd5/q40PmPsvGDqe9OhOdAe+aXm6CQlJmLjY+Fio9sbW/Q3/mcu/Jxnex9godWWFvv9P7Y5PrN3fmvyPTY3OHP0dL0+P7K2/mKrvB8pe42fu5gj+rKzM+ipqqTl5s+P0GTtfFsmessa+ONkpaIjZJUVlkyMzN1nu1llOs6duUvbuTU2N24u76HrO8sd+6VmZ6LkJWbvvdhmPJFh/A7ge/q6upmZmYkcu0xe+6wy/l3pvRqnvNPjfFolus2ODqCrvUkZOOVmZ0kJCRalPITaOzDVN25AAAABnRSTlPvIL8Ar7DvmsykAAAg/klEQVR42uzYS+6aQBzA8b7y4xpzD07B3ABYQkiAExDCChYQ3ak8TgCyowIrIfGR+IgbZeMj8QhN/rui7aZphVhja9r5LpTMGI2fzC8kvPv4/sM7IP1en95/fPee8D1QzfcJSA9ExvfB3hHAByOABPCuCOCrRQAJ4F0RwFeLABLAuyKArxYBJIB3RQBfLQJIAB8osWc9uNUkEmloqQWQGbvuEn2/6DMAgNRieL1Q5pYuw+3ombvVQ7ijhS2p8Geb7pxIg1t19rzdJtgMiFx8OgVnGVBxrCrsLkBeBacTLtjeclOdqu6AghsJo6CqqsMYfqqfFhP4VezKieCP1j80+NUlJT9sEWwGFJ1dP9nndk/MDuPlxjcZF3vKcpOJyp63QxdLCvy6ns2XY8U6SjIALbC1s0YzGot6oIlZ2dEAGGHCXFcZdgE9xGqAYl9nWBrqKFag61eapmikwbPqf+Eufo2CbWewGVAdqQAuX6Atb0NvyFtI3I4BrbhIKYYCjDe7BH6dVmAXgF0ukWYejvy5A+bu7OWcFZrd6tQVNXV3zL0pDMpUyjfzguNjBcVZusNdnYFOzB83IhOOytRIZXhSs40v1n6PCbbfRGTJF2XJ+QygO57w7eBvrpNJ2dyKhRt9dvhYvXx8YPjbNU6FiA8O6ywopjE2imS2cUZpLik6h6XyGBxSA9vsKODL8ugPhDOWLMM3FaniymgCT4lSu4bZg7Y6++YpbgVkt3jEKqVvApjGdWIVKR8ycKWpIW+FbO7tDZ8TNOJsTZYMU+e/TMH0d8nAWAtMwbnM5JzperaWO3tHhDk3EkbHLaItbJnGXqHmzihZ83N4VpTuHPrQ2iTOLQQNtQCyFvZkUPaZCCDWf7b287CFvvkZA2hIGGz9yut7J+xwAR/pzgpBstvMBoYko9V1Fdu6HyNZ6qqgZyMhzqLLOT/bXMA5+JRO1/XG06JMo7uEloSYb/ZrAWStvPYDdsXNAWw+XoCc5hYLdWq3yU8LFfoy7F0x5bamOZgJOpdOrtNfA4YozlemaM7CHwBHl1+Zc/Hc+aKbppp0LhvPixL9tu8XVm1+zYCowFKHphlqznuhInFRT07xVrisqF1fpGlauyUf8+6ip9ZDfhnWhTlXdN4X0TCXlIGxSzSb2yJGnXd+BAz2HWWNh7NNPe2JPVMeBmw/g2qvxY+FxpoBdf4tyHG+nchekDlBGjLF6e2YY2feKd9OGB+/zOBGavfEGcHRXUx3gZ8Fqaw7uYMrLqKmu8oQO1KQ+bVXxJ2RvDcGEHGrcBXk3LHaTWkX5wb2RWVvqPDUlvUx0B46f82A45HnrdeevoDQPRyGITCD82XlrIb25V0qErhVYn3pSiYNoLilFE0gys6Rl6oMUFMrnoFsl6UdQt8SaXbudi4XSCzM4d5KAOiBt9tOqevGc1NT/TagbA1ZaOs7YHu9HjxUdLmJ/Iu9gz+T2LUW8C/2pwDpkKXgX+z/fpxFAP9+BJAA3hUBfLUIIAG8KwL4ahFAAnhXBPDVIoAE8K4I4KtFAL+yX/cuaoNxAMe335MXTTRVvJxGsYNXaYsUISB4AQUtmSqcw6UFs4SSLdNJSLcujYVbJfNVXDpKoZvBxc1NXXQU9F/o1KRvtJ6xKB0sPN9B8YXH5OPz5FEMeFAY8NTCgBjwoDDgqYUBMeBBYcBTCwNiwIPCgKcWBsSAB4UBTy0MiAEPCgOeWv8VIBkOBb5CwEHRYRr+QfsBb5Uvrsog2B+nTEnwuq5WBdhbqCHrM6ur9yuwJ/T0ggfgRS0EIa0Xg9+a2syfA05m3wY0SxdqGf4WuxoMBvqKB7+J0YTd0Y2Bq09I+BkVpY8E5K1FXBm6jb8IZheLLHg1HIOHvRE3pjR3dEnZf7ITYwrQHHcTELOLAvxWdZb7E/DOlFxnIImsIpfgb93N5/2+VM2A322uEOCnLGWxs4xH4Ec3duNIwA/DcwBOypPRdAiQIHyOCpFyJQlbMfNXIgFAms90DiCcZaIAVDqZYDgC7le1GICkP2A4TQDK1NkQbFWS8yEqP17nIDsTEUrkSjQAvGez6QsrB9uJVgsAKZ0KW4sASqUpb+RrYifgoAd+kesky0eClnBF/0hDqKqWAMWYMg2R6peXhdBRgOfrNgJABPWoyEPUNIXXQ2M5flPZnoHWyGYB6t1RkSeai/HY1VBLXq8dRyFhO3TWzQES7RKQcSkRfTn65EjbUyHZV2OcpFs9aHbf0dXl+JNchsTl+NN62M3eG1DsMv7tF2MzftNCZ3YNInEpvRNQ/w44NdbLVbOjwc7KA1XwzxollZHjWKUr98G4nzkK8NYe6z32PVAvOyyEJek6PxIjz43Ve/ijnC3LUyBEWVbZ+lBNZGyj1VoPK0lzWA8AVKwakKaa6K17tDZUiK33VGXmqtM2V0nFZjVDieQMM3nmXqSuFnMmAFAZ5ZM5Y0WJcgUi3hewE9CIVyq1BJou1QyhWQELM3QxWuSzEYDSqkkzg0eEpk8ROgoQok1j/FAuU3nbA7zsX+e7NR8yvAXYEc2+wKsv8yp/pntmmtFuDRQEk8GTIED5G2BZGtT57Ey+3T5TeXJRrFXVXD+eWhkaX7IHddUW4P3qTdAMzA9akOpLwpkPaO4GvHEfOo4H3RvcAAQCQihXHD10NQKAStzoJqkNpsfuwgAo2ttIwi/ADgtR7yi3AOXeuXzXlJ+KRTY/KwFkdZGRzxBos8l+wJY8XriLpbS9QDgpbsYj79RVsZe8fLx03VHnxjbJb5tI0AyUy5A0pfQ+wDtdEa4FEvWs+h5APzpnDJmw4m6W4/7xgESNIQGouFVWPEBBlYIBObUvmWGlyIt6DuDKuGCs/YBWzb/S1VSbI9/SBNo+/rzR/YD4/rxTp+Pdiv+WhK2Ggcjr2UDA0i/A5GUQYA/89gMW6gUAaBrnPWMaZTs+YPM4QFR12xRiDDXcNjR056pCICDyrhsTwnO+GZopQTKy+wHhgzFB9Xnn9mw9ITLKlIatzkdfskDlH9q3cD6sUuFqW1Dm51RuPmf2A8amxrk3spw+HrA+LMbgWhrWRT1LNDaX5JUhho4CBCHuLBfjYRZYy1kMN94MlMsQldRtQKsHrbnOEd5Kp9pLx9k0CWYmImgMdgB+m6Ncx9kMN3YiceksR8ZzdP+XkZX2GDcrApJ5ZzSaNz5z9ni0dvX7S1jxZyV6ZJW+7962s1kvPYIdXelt8GvPPMDGLACQmCwc1xm131d0/6xNMiOPpcJRgBAqT1+/CwNAtP6OyxSIBEcDUchsbZokJwCRuUUoxlGAOE0rIO85DyDFR+FeaZ4EgGRO4wuZENCVyfMw3IvibhFAhBe+HUTjLg3eo2yDjXEkbBfzB/Q+mwbkHZo/Mpvx7neUZAXwE15EAFJcCgKKaeKUQwDC07tCoYAgxdRoCOg/+y98imFADHhQGPDUwoAY8KAw4KmFATHgQWHAUwsDYsCDwoCnFgbEgAeFAU8tDIgBDwoDfmXH3FmlBqIA3J0zs+Njo+vZq7kI6sIVH6gXwQfKHV8oKkQQJWgGbFQUAhZjIWoTptrS1s5GE8ROyU+wyV/QJrWtrTNrPZm97oK3yNckxZkzzLdn58xkq9EL7AVuil7gVqMX2AvcFL3ArUYvsBe4KXqBW41eYC/wfxIWyMYmGSIA8qxMGfgRmckKNyA1OsKuwLzMhX1irPV2hA6KrBxNZy9pASH2X17bDmH4yv1nK6sQZv/K29fnBwsLHOiGVDVCHFcVNcTBB6eKKhUBKxulmsSvOlZ/A21GJZvMb/B9qirppsRx0+YQ4PrRnxs7IEh05PnVq99ujyDEufs/Jme/nx4uKPB9rlIYGBJcagaRSnzrxVIOwQXlKkd0ozwwTWIWyEkzzGQEPgT9nZIlysiQwGMbk8mVOQSunPm8bfDmzGUIgOuTw7D908b5BQUijxhgQpyTdcfJLzCOEaZaT20swFCW3kAxBRCmZCOykmOZvQcPtWA2E2Us4jGFBB5/vPPdPAJ3rF0CuLhxOChw7zUB7PXBl8toIpxKhmNKcmM4dBHJDBMZ25fKMPCBIipNDBnZwIKsaS91kRpduMRWYIjVt1bgXIzuHT0AYXYdu/nwoliCwKmWQwAu27ZNGHRQkBEQK4ojas0UfAjdNskUZ6UqjO5IOaS2yetlCyxuPnqAEGTw9MWXhy9hcYGsVJGrQipY6vZAL8JI7har2kbLLi9Yp7JkmQxWICIbqwyXK3Db+tmnA5gDxg98PXV+YYF1otzpIJep6xRU+H8xV6gOHLCCEuza2TCj4dhljMnfhpmLrEsSSxWIex6d5HNovvALAZ5M1hcViJlMwTJylSCIhL9QaeYv0pEdpNKuDdW14sK+1J1dOHJyCzLTZQrEwxPnL5zt4+4PUD99tGdRgaO2VVJpvq1spKmqFL2i21ZKlQhhGkMd50B3/NOzk2VekamS2l/7WWWnVNHf7hRe8qeHByDIvue/z05uHF2DEHcmz78e+vH2xKICeZZYcgG4mmj78IGrs8CUARuTSevO+4VJuBsSGbLxfnCYmEyAZZDy8J/u2Np+CLJj/da72x+P3IUgO1/ZK0vc34X/lf5jwh926JAAAAAGglD/1ksw8e4EROAhsEagwInAGoECJwJrBAqcCKwRKHAisEagwInAGoECJwJrBAqcCKwReOzcv08aYRzH8e3z3MPx05Og1NoIWJQDWhQLmlJSwUpAiYmKiSQNQ9Xo5CItgWLTQWMTaWJiiI4lDSb+mNB0NV38EzrZ/6Br16rt0MXngWIahuc1MF2e7z1vLkeO4UTAhoiArUYE/C8ByfTSjAweunCUKCTMneCyHEZKo5R/WH+iUCjkR7vAI20mZs1t4NvOqanPMn8n/QaAPjn1OuU7CbgW/X7eDp7hyP5GZqOsB8+P1Fk6fLbTDY6nOxuZTPDEZgCH0b+SUS4UD3gMqVVf7DKvA9PY7M/1Cmj8whFdWZLvIKCuGvta5gd8uLyEepDB4CGk0PIm6uFW4xpwTDmG7iEbKEi8yY+DZqKJB/rAot+L2ewLqEQT743V8NQdBDTbt2oH/ICbqRDVacG1vZxq03VLWi3qQBOqB9yAvjy5+uAGpENpPeDM7MhgGKs8H1QWiD/sBPqiA80H7IlUn5/XEXBXjR3Pha3geRiJpPbn9sZRj117XAKPMaRUl9Rl7opy1TECzJ+VLGC7CihX7WuA25fXNhuQ5tXNzlQdATuKdmeHI+YGx5pjLlWZ31B6wEcnbB7wub9++9ab559iNqjsLiofU4/4AWnZ1gN4bDu02YBOWwgPamUdeCw9FmAh6pLANh4ITgOHgRD4KvbHX8DldpSe68yZPAUHGc18XKkp5e7/eAXKO3MXwfW5E+84OB4NU8CT3tGAzRCxjQEd0S1w3XurjoPPHx0FjEOqnhuQ0DbdSJr7Hf91DxxEkwGl6cF4fOK4mOsEx6LvGSG5zDPCW9GVWQRNZDrAlQ0/lsAXKm59wLhvz8DrN+914n0i4AQ/ICrRgmysht28gHVp887qwPOofJm2XR48AM/z0zM1dua6B572mt1T1+mVV2PqRdBJwKFXzyK+C5cRHH6HE9R1ofhW/PKdBDRa3TK4dIuliLkdfBZzXU8i2Ha+klAP40ziIDRcT+rcaSrLn/zCaQCMT7wlJxXPwv9E/JlwCxGw1YiAImBDRMBWIwKKgA0RAVuNCCgCNkQEbDUioAjYEBGw1YiAImBDRMBWIwKKgA0RAVuNCCgCNkQEbDUioAjYEBGw1dQTUKMhALQyARPRaAFoOp9SMP1ZSdverq1rMIhMCedAmUAymky6LvaSkiwBINvDOrCRq9GaLp3JZKJSswFNg8HCfRBrmPNe9M6JYEiC3vtubmORNZS4w+k1kBklmVSsrDC6reKRCVeeFBXmaNNAsdCF+ePe/WRxHgw93tgoYCgnTy7j7WB4lA8O0oGV5P5+MpZtMuDL0uq7c4vOv34SsDKz2HtXXVrDZGx0em/jM27VNXiz0ogjba34opuM3U6u9h50A3ihnsRYo/Wl1bnafRK3h7LOmU7Ghd+Xebduhunt8bOe/Lpfwm3IJ1syWaDDlWzWeRrbbS4gydWelGoW93LoyM7aBY0Pzasu7UjNDPTFlnCrkdmBo7QVFdc0MBDrv31waLnPO9QNGBNqaY8xmryp9Xln79M8753FhmohlDZjJuwikKemZNxG45/tjyQorui9E/eaDGiknd5zC6V4zAxIjO9HbC7tzU3mjWOeUZrCr/xeaXtob5w1eGzyOuCiPbdkszLP0DA5e787cfA6n3uK22mM2j7FjAH7YX81Z2Dv2aPeBCR+pdL8j8h1QOAmINN1QFwZV0ptYLkJSDp8Z+kRsNwEHPMeWK4DslwHbEv1bgSS0U2wXAf0HxeDgaTjE1j+BPTYfrF3LzGJXXEcx3e/cy9cHgWt6CBEHqLIWxiQaK2CQhDIJD5osTVuhEDSxEUtMSqQLjRjUk1MjHG664Ro6mOlplszm26676q7bmfbbS9OH0nTc5A4mbA4n2R2//kf+YqoN9yYFj94wPHM5B4eETARCCVDM60CSsERF4ryv1YBvc6tXkTjpa4WAUnq2vMWC+HF/tYBhZR/DR86oG4xvoDWAR8UkkHSImDUdvrN6/vdYm+rgGgS0yOzLQKieDUBGEMj6tYBNyxp8UMH7Er7j9E6oJT3jQGuyW2pRcBjm/yzxK9//NbdKqCm+DmBavF0qlVAQzII6DynYy0DSinKY2kz4NtMqRkw5V9oEXD5UlLN/Xzm6nNpCBh81gVSqd4n3J5dAximbs9NglalUjn9DgUYxmP3/apQZHjMV00pmQGtF/CWIsMrc7WXEhgeblDas6bF9xFQd5I2AQhkomDaWBoV9my/1nO59SDz4AlPFPuFcP0wPC0wu4S2VWjaXGIf3Rs6UmH8PHu97uwHy7RnCBg7t/96FzSCZeDep5RGb114HwGJJBEAgqLlr3ICiFLUarWixBx9t0mh04hgIvsS+ec/sE9uDhLzrO4RHyIg9Ca8rQYlQR5W8IsJaB+/GsPEA3YaHpAHbAsP2Gl4QB6wLTxgp+EBecC28ICdhgfkAdvCA3YaHpAHbAsP2Gl4QB6wLTxgp+EBecC28ICdhgfkAdvCA3aa1gEFUQmA9Pc+A5ukVQBQqWdE9thbdReBzLgyrgTLvkbd/89mBnFm6hlkQm9zM0OX+q30MNijE0Hxn0XffrT/xIBjodomMBW6s5d9XWBwj6waQAyR65zfRUCl28nmfg6qQBrh63pmAHSakP2wPCqnScTCBubBuYc7K3Tp7OHPPhVolBe1w+zSCpDwvLJXL74FjTn9Sl7UD1nUdvX8SQHJsS277kPPTfVi0HmVUoBG+XukXu5GY3dkz2W1zYNGm45cTKVrE8RttfzwfHXRBJr+k9XhlZOrbkU+Uq9VQDU1Yutzn4b75M2bU3O1AKE9lHxkZ6VSvekav0063IuRIVBoj5qLrpqLvCf22sWTAppScxW9Dwl9WoAms9QDmpm0L2DtVs7Z+gBDMiWAQnMUFLFhPROLk9P43je5Rt+4Mypgz789fuTcXO4GVTSUB4ZsE2/TPhGz+hORMqcI7KghhvQDg8E14NjvA0XvkbxoUB/SggSW75c3nxRQEKUF+aieE0tULEwGJdAolKQy2S2eLM8CfaslEyiIJACNSZ/xxDLbfNwBMCenJ4sKpTCkZwT8SSJAwP+c7AvAgjUlUPfJg7oDTy9k2pT+G9bB8iKngHnL1pD+aQFlzYDQLB1eZy+NYJEDkkB1VBJTh7dmMOiW9G5vyTP+8DwgYBjPWNQAmgGZ9vyLPZCZS3o3GISX4QoBXsTWd58TMMiLNmBMxwYL1vcSUJWKlFIjbypCi4Awh7LVSKR8wwrYfxY24FEBe0JvGnhEQPWI9aGbKr36/HvQkfzupQhgfHjLP/ICdPKiAsGQJY/nyxfvI6DD5iNQLeoHWwXEM8PZaCNz8hGotJe7eQLtwxf70OQnoFMdhQvkEQHHPJNRyETnboWAwRBOm/BOYjmkAo28qJtgPJa8mE5Xz9XS0wN2JzcBMhd3tQhIBo7ND38FhoBGWYwPQzY6aQDxTb4GleiLF4DWAXXn+ujD5tF4Hiyv/Uf9ANa2ooDm9sAMCsW7RQMH6+vruT/ql6qnBTyeTGHWujucKNZKZmZA2wUcu57Bvrh+ADSKwF3sm7W1AWXCuvxDYfXcRO/38udSo7G2IgHD1gtQdYV+OzpuHGsUE+XMN2uNASVljrxYXe1+3Zg3RW3+14mzq4BAGZQX3TYXiUqtVluxjSrI0wJGPRPA7NKr+m/bvWAxeAqQCruHueU9UGlKubq9nj0xYyF+aF9aAdVMJmeXJ49MgGOpAKqo7Vqeuwv03jfn7SHaJ3m/eFe323P+F5iPZXO1TREUvTfvFukgaxwMA08LSAQCgBi94qMGxZlxJXNIUsiao8YpjYI5qfh7Ut7ccu6nf+cpyMPJUnOfSqdlLdz/d5F8NL+Y0D5+NYaKB+w0PCAP2BYesNPwgDxgW3jATsMD8oBt4QE7DQ/IA7aFB+w0PCAP2BYesNPwgDxgW3jATsMD8oBt4QE7DQ/IA7aFB+w0LQOqBgeMAJQ9ZrPOK4JK6HVrJMi+nUr0EDB0JaZEEK3XLDMpQGUcGFRBRlRjXgEMpoRaC5m44u4Cy0dj5n3IFDPuHrREBPL0gOQ4mcslGwSVcj3LerO8KnWXexXSAIlY/eE2BhphqJqrL+8Jo3f2bDa36gBN1Pru7oXvnGX7+s0KaIghkqv7XQSDp9fX5YARNMZAzf7KMwuML9qva90S2JRf/9jz9IB7ttPEvNW2IaUs+Wh04ztqlmLkpWaidiT2Zlanx7erEwQUjvDN1Fr4dEw3H426DmwuUAws6+dnT8N9CueVb2U4suQFxULyQO2K69Vjsd2CfHcC9WQyEdleKex6dOJ2pHtq8U0DLET15S+/fPX0gI5QAwgkh8StHTMYjMFLM3SeTO9wPACI8wnqe+XzO/Mgl/6HcInYnAiKvpPnaL4ztn8ppoFwpk+AorDzAkjZXg8lRwHNrTz9/xRDm99hf2d5YEOfVmJef6QEg/DFF599/B4CEoFAuLS6VHOlQCi4wpzDrGXHmLJUiqWAhrGRAKrQqRqAkLIuMDeS4qRDKk7mjS+WT7pYg2La4u6OXwDfeVZdoCNRS1pVsAUA3UFGAwZCyEefthGQZTq5JXo99aR1PewCw0dH8TVxrlZ943+lnwUDuQgHBADzljkRLH22HRWeXdp/vT7QgGU4HJT24pm35JtyuQEaVbDWfJnu9ucBbciiBtv7CuiKezTwvnzpxQ+2Ay+olMHIhKA9y6VVcOymWWWmwzsmAAqntQ8sbv2IGkJ3OFY8j2yZQLf2ZtELqVK+i0RqjHuflPObobDT9BDQGBr5QAHd+tgK3lGeWQZBI0zsFpWQtq7ygC6T0YHqOLlohmxPz34CrsT0biCxfK4CCcYNoHLZ3j1BZ31O17ZlHgzNRQbbKKDzeHo/SED1rafZb8xZITDdj8yAguTjoxKA7jcTwIC+1A+a6HLooZ9CfmkFw3hpxA2gLz4nABPhC9BsWO6b/XQON6AeuaG9WHpTo8+AQLIiv1SLeGHdVnyIgGOxstNheP3WuFPdHNy+Cipp/Z6Xk/lpw7xRcxsZnj+o5gko3PFy0WHoM8Pln/sWdObSXdphaIx7F8upHyoRawIUams56DAs6DSx3UKiVB0ChfKytr0xFB5RK5zVUXcm2YeWAb94ekDHqv1V1n41jN70+vVvxWegMF6uZ+XBzACmFrPXV8MSKEil1tz45hshsLTH/gZSl+fKm4LZWbbf3QyAZqjaXLg6DfWB/bA6rKAHCVTt2ZIa8G6vH64aCFp49nXX0wOSvwBQzZgeMdjyz96Rfz32ZKVJfOzJRrBIPSoCtB7kFxMegQfsEDwgD9gWHrDT8IA8YFt4wE7DA/KAbeEBO82f7NAhAQAAAMOg/q2f4W4CIiBQ4EVgjUCBF4E1AgVeBNYIFHgRWCNQ4EVgjUCBF4E1AgVeBNYIFHgRWDP27pi1iTAM4Pj2z11rgpyB1lIMpo3EyyWWGDkihUK1CGJECHdjtig63aKl2NBuncKBkOG6CwXbTXhnuSUf4aa8H+HGDlksnS/DTW9o399H+PPAwzM9OqAOmIsOuGx0QB0wlzsTcNdL45crgHmcul6JnIyj6tbOJlAcpXtDlFEWsDsTQSL8AsU9UQvE+Rm5FPzg1+X0rcnq9rT9L/yBKsoC+qJabn6UQ9pz13rSED1yGZy/hmayQT0cQCt9gCKqApYD+Qn+iq9MRn3oiIgslcg2yGJaQD98RhQDTvIURVQFLCVhFzrCBaDyTdbJsj6vlclW3m/HNqQtoJsMUURVwKYMLPgjU4C1WPgFsmzadRY4OwlO1uHqA1A5/YwiqgIOkvAAdkTMbb/IJL+Vw/A3aQ84uH8TWJxJB3xxAWNXeuS1+w4g9ejFwCQsoYiqgFyI7cdOeO1guSKdbEz6BTK86C34XXp4OgCr9p79sAkN10ARZQGtK5FcyxF8mQsppZiukuFmiayR5WE18F7N4jFGI7Cj0EEVZQEZ24+iOvD9p33j8sggQ/F40bfWwnPvTdsEzM5Wq48y+hbWAXPSAZeNDqgD5qIDLhsdUAf8zw4dEgAAADAM6t/6Ge4mIAIXgTUCBV4E1ggUeBFYI1DgRWCNQIEXgTUCBV4E1ggUeBFYI1DgRWCNQIFjv95RGwaCAAx3v6+he+gUOoJqpYlzAtVpAiojn8Eo5aZ1I7uQYKucYGEfoCeosCEpAmnSuJuE/Ys5wMfAMHcVAaUVAf8VYGWtbax9Sfnp7BIEJwvw4py/OTd3/NSbFsHJAgQedAbszqcUoDi1p7GFvN5DUQDJEVGJA1Q6gWrVIfQwmbBuuqXRXs+7Zi1h2RCVSMByvRbJppP9YNPKmzybH9ib/mhq2rFHVCIBq6GGfOincQeTaaG4HHSD25h8iahEAtbDI2Sjsh7oxzyb/XUZGpR/dR/ISiTg43Dga9TKdGBN+mwK0A2pV75CVvIAxwTmcDhd1yzXS62C6S6DOr/fGngzC8ISB/jkUui2EJYj1Gtwk0tebfB2UXC+KYQlDvC7LAWADgDKDIApiPtKpAL+VjaP4hbwTwGWF2kXhL8FKLIIGAHvKgJKKwJGwLuKgNKKgJ/t0sERACAIxMA7Ufov2RqQhzyyJWRCwBICTkNAApYQcBoCEvAvUbBHK9FwZBZskBXeiTdajgs7DGiOGpnjoQAAAABJRU5ErkJggg=="); + -servicestudio-height:390px; +} +.osui-datepicker-calendar-ss-preview + .placeholder-ss-preview{ + -servicestudio-height:0; + -servicestudio-opacity:0; + -servicestudio-overflow:hidden; + -servicestudio-width:100%; +} +.osui-datepicker .not-valid + .input, +.osui-datepicker .not-valid + .flatpickr-mobile{ + border-color:var(--color-error); +} +.osui-datepicker .flatpickr-mobile ~ span.validation-message{ + bottom:-40px; +} +.form .osui-datepicker-calendar-ss-preview{ + -servicestudio-margin-top:-22px; +} +html[data-uieditorversion^="1"] .osui-datepicker-calendar-ss-preview:not(.has-today-btn).single{ + -servicestudio-padding-top:min(300px, 100%); + -servicestudio-height:0; +} +html[data-uieditorversion^="1"] .osui-datepicker-calendar-ss-preview:not(.has-today-btn).time12h{ + -servicestudio-padding-top:min(344px, 100%); + -servicestudio-height:0; +} +html[data-uieditorversion^="1"] .osui-datepicker-calendar-ss-preview:not(.has-today-btn).time24h{ + -servicestudio-padding-top:min(344px, 100%); + -servicestudio-height:0; +} +html[data-uieditorversion^="1"] .osui-datepicker-calendar-ss-preview.has-today-btn.single{ + -servicestudio-padding-top:min(344px, 100%); + -servicestudio-height:0; +} +html[data-uieditorversion^="1"] .osui-datepicker-calendar-ss-preview.has-today-btn.time12h{ + -servicestudio-padding-top:min(390px, 100%); + -servicestudio-height:0; +} +html[data-uieditorversion^="1"] .osui-datepicker-calendar-ss-preview.has-today-btn.time24h{ + -servicestudio-padding-top:min(390px, 100%); + -servicestudio-height:0; +} +/*! 6.3.8. Dropdown */ +.vscomp-ele{ + max-width:initial; +} +.vscomp-ele.pop-comp-active .vscomp-toggle-button{ + border-color:var(--color-primary); +} +.vscomp-ele.pop-comp-active .vscomp-toggle-button:after{ + color:var(--color-primary); + -webkit-transform:rotate(180deg) translateY(50%); + -ms-transform:rotate(180deg) translateY(50%); + transform:rotate(180deg) translateY(50%); +} +.vscomp-ele .vscomp-clear-icon::after, .vscomp-ele .vscomp-clear-icon::before{ + background-color:inherit; + left:50%; + -webkit-transform:translateX(-50%); + -ms-transform:translateX(-50%); + transform:translateX(-50%); +} +.vscomp-ele .vscomp-clear-icon:after, .vscomp-search-clear:after{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + color:#91999e; + content:"\f00d"; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + font:normal normal normal 13px/1 FontAwesome; + height:100%; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + position:absolute; + text-indent:0; + top:0; + width:24px; +} +.vscomp-clear-button:hover{ + background-color:var(--color-neutral-4); +} +.vscomp-clear-button:hover .vscomp-clear-icon::after, .vscomp-clear-button:hover .vscomp-clear-icon::before{ + background-color:transparent; + color:var(--color-neutral-7); +} +.vscomp-search-clear:hover:after{ + background-color:transparent; + color:var(--color-neutral-7); +} +.vscomp-wrapper.focused .vscomp-toggle-button, .vscomp-wrapper:focus .vscomp-toggle-button{ + -webkit-box-shadow:none; + box-shadow:none; +} +.vscomp-wrapper.focused .checkbox-icon, .vscomp-wrapper:focus .checkbox-icon{ + border-color:var(--color-neutral-6); +} +.vscomp-wrapper.has-value.show-value-as-tags .vscomp-toggle-button{ + padding-left:var(--space-s); +} +.vscomp-wrapper.has-value .vscomp-value{ + margin-right:var(--space-m); +} +.vscomp-wrapper:not(.has-value) .vscomp-value{ + color:var(--color-neutral-7); + opacity:1; +} +.vscomp-wrapper.multiple .vscomp-search-container{ + padding-left:var(--space-base); +} +.vscomp-wrapper.multiple .vscomp-search-container:before{ + display:none; +} +.vscomp-wrapper.multiple .vscomp-option.selected .checkbox-icon{ + background-color:var(--color-primary); + border-color:var(--color-primary); +} +.vscomp-wrapper.multiple .vscomp-option.selected .checkbox-icon:after{ + border-color:var(--color-neutral-0); + border-left-color:transparent; + border-top-color:transparent; + height:80%; + opacity:1; + -webkit-transform:rotate(45deg) translate(3px, -3px); + -ms-transform:rotate(45deg) translate(3px, -3px); + transform:rotate(45deg) translate(3px, -3px); + width:45%; +} +.vscomp-wrapper.multiple .vscomp-option .vscomp-option-text{ + -webkit-box-flex:1; + -ms-flex:1; + flex:1; + width:auto; +} +.vscomp-wrapper:not(.multiple) .vscomp-option.group-title{ + height:var(--space-xl) !important; +} +.vscomp-wrapper.show-value-as-tags .vscomp-toggle-button{ + height:auto; + min-height:var(--vscomp-toogle-btn-height); + padding:var(--space-xs) var(--space-xxl) var(--space-none) var(--space-base); +} +.vscomp-wrapper.show-value-as-tags .vscomp-value-tag{ + background-color:var(--color-neutral-3); + border:var(--border-size-none); + color:var(--color-neutral-7); + font-size:var(--font-size-xs); + font-weight:var(--font-semi-bold); + padding:6px 35px 6px 10px; + position:relative; +} +.vscomp-wrapper.show-value-as-tags .vscomp-value-tag .vscomp-value-tag-content{ + width:100%; +} +.vscomp-wrapper.show-value-as-tags .vscomp-value-tag .vscomp-value-tag-clear-button{ + background-color:var(--color-neutral-7); + border-radius:100%; + height:14px; + position:absolute; + right:10px; + width:14px; +} +.vscomp-wrapper.show-value-as-tags .vscomp-value-tag .vscomp-value-tag-clear-button .vscomp-clear-icon{ + height:12px; + left:var(--space-none); + position:relative; + top:var(--space-none); + width:12px; +} +.vscomp-wrapper.show-value-as-tags .vscomp-value-tag .vscomp-value-tag-clear-button .vscomp-clear-icon:before, .vscomp-wrapper.show-value-as-tags .vscomp-value-tag .vscomp-value-tag-clear-button .vscomp-clear-icon:after{ + color:var(--color-neutral-4); +} +.vscomp-wrapper.show-value-as-tags .vscomp-clear-button{ + margin-top:0; + top:50%; + -webkit-transform:translateY(-50%); + -ms-transform:translateY(-50%); + transform:translateY(-50%); +} +.vscomp-wrapper.show-as-popup .vscomp-dropbox{ + border:none; +} +.vscomp-wrapper.show-as-popup .vscomp-dropbox-container{ + background-color:var(--overlay-background); + z-index:var(--layer-global-elevated) !important; +} +.vscomp-wrapper.show-as-popup .vscomp-dropbox .vscomp-search-container{ + height:48px; +} +.vscomp-wrapper.show-as-popup .vscomp-dropbox .vscomp-search-input{ + height:inherit; +} +.vscomp-wrapper.text-direction-rtl.multiple .vscomp-search-container{ + padding-left:var(--space-s); +} +.vscomp-wrapper.text-direction-rtl.multiple .vscomp-option.selected .checkbox-icon:after{ + -webkit-transform:rotate(45deg) translate(-2px, 3px); + -ms-transform:rotate(45deg) translate(-2px, 3px); + transform:rotate(45deg) translate(-2px, 3px); +} +.vscomp-wrapper.text-direction-rtl:not(.multiple) .vscomp-search-container{ + padding:var(--space-none) var(--space-xl) var(--space-none) var(--space-s); +} +.vscomp-wrapper.text-direction-rtl:not(.multiple) .vscomp-search-container:before{ + left:auto; + right:var(--space-base); +} +.vscomp-wrapper.text-direction-rtl.show-value-as-tags.has-value .vscomp-clear-button{ + left:var(--space-l); +} +.vscomp-wrapper.text-direction-rtl.show-value-as-tags .vscomp-value-tag{ + padding:6px 10px 6px 35px; +} +.vscomp-wrapper.text-direction-rtl.show-value-as-tags .vscomp-value-tag-clear-button{ + left:10px; + right:auto; +} +.vscomp-wrapper.text-direction-rtl .vscomp-toggle-button{ + padding:var(--space-xs) var(--space-base) var(--space-xs) var(--space-xl); +} +.vscomp-wrapper.text-direction-rtl .vscomp-toggle-button:after{ + left:var(--space-base); + right:auto; +} +.vscomp-wrapper.text-direction-rtl .checkbox-icon{ + margin-left:var(--space-s); +} +.vscomp-wrapper.text-direction-rtl .checkbox-icon.checked:after{ + -webkit-transform:rotate(45deg) translate(-2px, 3px); + -ms-transform:rotate(45deg) translate(-2px, 3px); + transform:rotate(45deg) translate(-2px, 3px); +} +.vscomp-wrapper:not(.text-direction-rtl).has-value .vscomp-clear-button{ + right:var(--space-xl); +} +.vscomp-wrapper .checkbox-icon{ + background-color:var(--color-neutral-0); + border-radius:var(--border-radius-soft); + border:var(--border-size-s) solid var(--color-neutral-5); + height:16px; + margin-right:var(--space-s); + overflow:visible; + -webkit-transition:background-color 0.25s ease; + transition:background-color 0.25s ease; + width:16px; +} +.vscomp-wrapper .checkbox-icon:after{ + -webkit-backface-visibility:hidden; + backface-visibility:hidden; + border-color:transparent; + height:85%; + opacity:0; + -webkit-transition:opacity 0.25s ease; + transition:opacity 0.25s ease; + width:40%; +} +.vscomp-wrapper .checkbox-icon.checked{ + background-color:var(--color-primary); + border-color:var(--color-primary); +} +.vscomp-wrapper .checkbox-icon.checked:after{ + border-color:var(--color-neutral-0); + border-left-color:transparent; + border-top-color:transparent; + height:80%; + opacity:1; + -webkit-transform:rotate(45deg) translate(3px, -3px); + -ms-transform:rotate(45deg) translate(3px, -3px); + transform:rotate(45deg) translate(3px, -3px); + width:45%; +} +.vscomp-toggle-button{ + --vscomp-toogle-btn-arrow-size:22px; + --vscomp-toogle-btn-height:40px; + --vscomp-toogle-btn-mobile-height:48px; + background-color:var(--color-neutral-0); + border-radius:var(--border-radius-soft); + border:var(--border-size-s) solid var(--color-neutral-5); + color:var(--color-neutral-9); + cursor:pointer; + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; + height:var(--vscomp-toogle-btn-height); + line-height:var(--vscomp-toogle-btn-height); + min-width:180px; + padding:var(--space-xs) var(--space-xl) var(--space-xs) var(--space-base); + position:relative; + -webkit-transition:height, border-color 0.25s ease; + transition:height, border-color 0.25s ease; + vertical-align:middle; + width:100%; +} +.vscomp-toggle-button:after{ + color:var(--color-neutral-7); + content:"\f107"; + font:normal normal normal var(--vscomp-toogle-btn-arrow-size)/1 FontAwesome; + position:absolute; + right:var(--space-base); + top:50%; + -webkit-transform:translateY(-50%); + -ms-transform:translateY(-50%); + transform:translateY(-50%); + -webkit-transform-origin:center; + -ms-transform-origin:center; + transform-origin:center; + -webkit-transition:all 0.25s ease; + transition:all 0.25s ease; +} +.vscomp-toggle-button:hover{ + border-color:var(--color-neutral-6); +} +.vscomp-value{ + font-size:var(--font-size-s); +} +.vscomp-arrow{ + display:none; +} +.pop-comp-wrapper{ + -webkit-box-shadow:none; + box-shadow:none; +} +.vscomp-dropbox{ + background-color:var(--color-neutral-0); + border-radius:var(--border-radius-soft); + border:var(--border-size-s) solid var(--color-neutral-5); + overflow:hidden; +} +.vscomp-dropbox .vscomp-dropbox-close-button{ + display:none; +} +.vscomp-search-container{ + border-bottom:var(--border-size-s) solid var(--color-neutral-5); + padding:var(--space-none) var(--space-s) var(--space-none) var(--space-xl); + position:relative; +} +.vscomp-search-container:before{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + color:var(--color-neutral-7); + content:"\f002"; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + font:normal normal normal 14px/1 FontAwesome; + height:100%; + left:var(--space-base); + position:absolute; + top:0; +} +.vscomp-search-container .vscomp-search-clear{ + border-radius:var(--border-radius-circle); + color:var(--color-neutral-7); + display:table; + font-size:var(--font-size-h5); + font-weight:var(--font-semi-bold); + height:24px; + line-height:1; + text-align:center; + width:24px; + text-indent:100%; + white-space:nowrap; + overflow:hidden; +} +.osx .vscomp-search-container .vscomp-search-clear, .ios .vscomp-search-container .vscomp-search-clear{ + line-height:1.1; +} +.vscomp-search-container .vscomp-search-clear:hover{ + background-color:var(--color-neutral-4); +} +.vscomp-search-input{ + font-size:var(--font-size-s); +} +.vscomp-search-input::-webkit-input-placeholder{ + color:var(--color-neutral-9); + opacity:0.5; +} +.vscomp-search-input::-moz-placeholder{ + color:var(--color-neutral-9); + opacity:0.5; +} +.vscomp-search-input:-ms-input-placeholder{ + color:var(--color-neutral-9); + opacity:0.5; +} +.vscomp-search-input::-ms-input-placeholder{ + color:var(--color-neutral-9); + opacity:0.5; +} +.vscomp-search-input::placeholder{ + color:var(--color-neutral-9); + opacity:0.5; +} +.vscomp-options-container::-webkit-scrollbar{ + width:5px; +} +.vscomp-options-container::-webkit-scrollbar-track{ + background:var(--color-neutral-4); +} +.vscomp-options-container::-webkit-scrollbar-thumb{ + background-color:var(--color-neutral-6); +} +.vscomp-option-text{ + color:var(--color-neutral-9); + display:inline-block; + font-size:var(--font-size-s); +} +.vscomp-option-text *{ + vertical-align:middle; +} +.vscomp-option{ + -ms-flex-line-pack:center; + align-content:center; + background-color:var(--color-neutral-0); + -webkit-transition:background-color 0.25s ease; + transition:background-color 0.25s ease; +} +.vscomp-option.focused, .vscomp-option.selected{ + background-color:var(--color-neutral-3); +} +.vscomp-option.focused{ + background-color:var(--color-neutral-2); +} +.vscomp-option.group-title .vscomp-option-text{ + opacity:1; +} +.vscomp-option.group-title .vscomp-option-text:only-child{ + color:var(--color-neutral-7); + font-size:var(--font-size-label); + font-weight:var(--font-semi-bold); + text-transform:uppercase; +} +.vscomp-option-description{ + color:var(--color-neutral-7); + font-size:var(--font-size-label); + margin-top:1px; +} +.has-accessible-features .vscomp-toggle-button{ + border-color:var(--color-neutral-7); + color:var(--color-neutral-10); +} +.has-accessible-features .vscomp-toggle-button:after{ + color:var(--color-neutral-9); +} +.phone .vscomp-wrapper.show-value-as-tags .vscomp-toggle-button, +.tablet .vscomp-wrapper.show-value-as-tags .vscomp-toggle-button{ + min-height:var(--vscomp-toogle-btn-mobile-height); +} +.phone .vscomp-toggle-button, +.tablet .vscomp-toggle-button{ + height:var(--vscomp-toogle-btn-mobile-height); +} +body.vscomp-popup-active .vscomp-wrapper:not(.focused){ + z-index:var(--layer-global-screen); +} +body.vscomp-popup-active .vscomp-wrapper{ + z-index:var(--layer-global-off-canvas); +} +.pop-comp-arrow, +.pop-comp-wrapper, +.vscomp-wrapper.keep-always-open .vscomp-dropbox-container{ + z-index:var(--layer-local-tier-1); +} +.pop-comp-content, +.vscomp-dropbox-container{ + z-index:var(--layer-local-tier-2); +} +.osui-dropdown-search.vscomp-ele[disabled], .osui-dropdown-tags.vscomp-ele[disabled]{ + cursor:initial; +} +.osui-dropdown-search.vscomp-ele[disabled] .vscomp-toggle-button, .osui-dropdown-tags.vscomp-ele[disabled] .vscomp-toggle-button{ + background-color:var(--color-neutral-2); + border:var(--border-size-s) solid var(--color-neutral-4); + color:var(--color-neutral-6); + pointer-events:none; +} +.osui-dropdown-search.vscomp-ele[disabled] .vscomp-wrapper, .osui-dropdown-search.vscomp-ele[disabled] .vscomp-wrapper:not(.has-value) .vscomp-value, .osui-dropdown-tags.vscomp-ele[disabled] .vscomp-wrapper, .osui-dropdown-tags.vscomp-ele[disabled] .vscomp-wrapper:not(.has-value) .vscomp-value{ + opacity:inherit; +} +.osui-dropdown-search .vscomp-wrapper, .osui-dropdown-tags .vscomp-wrapper{ + font-family:inherit; +} +.osui-dropdown-option-image{ + border-radius:100%; + display:inline-block; + height:24px; + margin-right:var(--space-s); + width:24px; + background-color:var(--color-neutral-3); + overflow:hidden; +} +.osui-dropdown-option-icon{ + color:var(--color-neutral-9); + font-size:var(--font-size-h6); + margin-right:var(--space-s); +} +.osui-dropdown-error-message{ + color:var(--color-error); + font-size:var(--font-size-xs); + margin-left:var(--space-none); + margin-top:3px; +} +.is-rtl .osui-dropdown-option-image, .is-rtl .osui-dropdown-option-icon{ + margin-left:var(--space-s); + margin-right:initial; +} +/*! 6.3.8.1 Dropdown Search */ +.osui-dropdown-search.osui-dropdown--not-valid .vscomp-toggle-button{ + border-color:var(--color-error); +} +.osui-dropdown-search-ss-preview{ + -servicestudio-background-color:var(--color-neutral-0); + -servicestudio-border-radius:var(--border-radius-soft); + -servicestudio-border:var(--border-size-s) solid var(--color-neutral-5); + -servicestudio-color:var(--color-neutral-3); + -servicestudio-display:inline-block; + -servicestudio-height:40px; + -servicestudio-line-height:40px; + -servicestudio-min-width:180px; + -servicestudio-padding-left:var(--space-s); + -servicestudio-position:relative; + -servicestudio-vertical-align:middle; + -servicestudio-width:100%; +} +.osui-dropdown-search-ss-preview .icon{ + -servicestudio-color:var(--color-neutral-7); + -servicestudio-font-size:var(--font-size-h4); + -servicestudio-position:absolute; + -servicestudio-right:16px; + -servicestudio-top:8px; +} +/*! 6.3.8.2 Dropdown Tags */ +.osui-dropdown-tags.osui-dropdown--not-valid .vscomp-toggle-button{ + border-color:var(--color-error); +} +.osui-dropdown-tags-ss-preview{ + -servicestudio-background-color:var(--color-neutral-0); + -servicestudio-border-radius:var(--border-radius-soft); + -servicestudio-border:var(--border-size-s) solid var(--color-neutral-5); + -servicestudio-color:var(--color-neutral-3); + -servicestudio-display:inline-block; + -servicestudio-height:40px; + -servicestudio-min-width:180px; + -servicestudio-padding-left:var(--space-s); + -servicestudio-position:relative; + -servicestudio-vertical-align:middle; + -servicestudio-width:100%; +} +.osui-dropdown-tags-ss-preview > .icon{ + -servicestudio-color:var(--color-neutral-7); + -servicestudio-font-size:var(--font-size-h4); + -servicestudio-position:absolute; + -servicestudio-right:16px; + -servicestudio-top:8px; +} +.osui-dropdown-tags-ss-preview > div{ + -servicestudio-background-color:var(--color-neutral-3); + -servicestudio-border-radius:30px; + -servicestudio-color:var(--color-neutral-7); + -servicestudio-display:inline-block; + -servicestudio-font-size:var(--font-size-s); + -servicestudio-font-weight:var(--font-semi-bold); + -servicestudio-height:30px; + -servicestudio-padding:5px 35px 5px 10px; + -servicestudio-position:relative; + -servicestudio-top:50%; + -servicestudio-transform:translateY(-50%); +} +.osui-dropdown-tags-ss-preview > div span{ + -servicestudio-margin:var(--space-none); +} +.osui-dropdown-tags-ss-preview > div > .icon{ + -servicestudio-background-color:var(--color-neutral-7); + -servicestudio-border-radius:100%; + -servicestudio-color:var(--color-neutral-0); + -servicestudio-display:block; + -servicestudio-font-size:var(--font-size-s); + -servicestudio-height:15px; + -servicestudio-line-height:1; + -servicestudio-margin:0; + -servicestudio-position:absolute; + -servicestudio-right:10px; + -servicestudio-text-align:center; + -servicestudio-top:50%; + -servicestudio-transform:translateY(-50%); + -servicestudio-width:15px; +} +.osui-dropdown-tags-ss-preview > div > .icon:before{ + -servicestudio-content:"˟"; + -servicestudio-display:inline-block; + -servicestudio-font-size:var(--font-size-h3); + -servicestudio-height:20px; + -servicestudio-left:50%; + -servicestudio-position:absolute; + -servicestudio-top:50%; + -servicestudio-transform:translate(-50%, -50%); +} +/*! 6.3.9. Floating Actions */ +.floating{ + --osui-floating-actions-layer:var(--layer-global-elevated); +} +.floating-actions-wrapper{ + -webkit-box-align:end; + -ms-flex-align:end; + align-items:flex-end; + bottom:0; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; + margin:var(--space-l); + position:fixed; + right:0; + will-change:transform, opacity; + z-index:var(--osui-floating-actions-layer); +} +.floating-actions-wrapper:not(.is--open){ + pointer-events:none; +} +.floating-actions-wrapper:not(.is--open){ + -servicestudio-pointer-events:auto; +} +.floating-actions-wrapper.is--open .floating-actions-item{ + opacity:1; + -webkit-transform:translateY(0px) translateZ(0) scale(1); + transform:translateY(0px) translateZ(0) scale(1); + -webkit-transition:all 180ms ease-out; + transition:all 180ms ease-out; + -webkit-transition-delay:calc(var(--delay) * 40ms); + transition-delay:calc(var(--delay) * 40ms); +} +.floating-actions-wrapper.is--open .floating-actions-item-button{ + -webkit-transform:translateZ(0) scale(1); + transform:translateZ(0) scale(1); +} +.floating-actions-wrapper.is--open .floating-button{ + -webkit-box-shadow:var(--shadow-none); + box-shadow:var(--shadow-none); + -webkit-filter:brightness(0.9); + filter:brightness(0.9); + -webkit-transform:rotate(135deg) translateZ(0); + transform:rotate(135deg) translateZ(0); +} +.floating-actions-wrapper.bottom-bar-exists{ + bottom:calc(var(--bottom-bar-size) + var(--space-base)); +} +.floating-actions-wrapper.no-rotation .floating-button{ + -webkit-transform:none; + -ms-transform:none; + transform:none; +} +.slide-from-left-enter .layout-native .floating-actions-wrapper, .slide-from-left-leave .layout-native .floating-actions-wrapper, .slide-from-right-enter .layout-native .floating-actions-wrapper, .slide-from-right-leave .layout-native .floating-actions-wrapper, .slide-from-top-enter .layout-native .floating-actions-wrapper, .slide-from-top-leave .layout-native .floating-actions-wrapper, .slide-from-bottom-enter .layout-native .floating-actions-wrapper, .slide-from-bottom-leave .layout-native .floating-actions-wrapper, .fade-enter .layout-native .floating-actions-wrapper, .fade-leave .layout-native .floating-actions-wrapper{ + display:none; +} +.floating-items{ + -webkit-box-align:end; + -ms-flex-align:end; + align-items:flex-end; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; + padding-bottom:var(--space-s); + padding-right:var(--space-s); +} +.floating-actions-item{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-pack:end; + -ms-flex-pack:end; + justify-content:flex-end; + margin-bottom:var(--space-base); + opacity:0; + -webkit-transform:translateY(--space-base) translateZ(0); + transform:translateY(--space-base) translateZ(0); + -webkit-transition:all 100ms ease-in; + transition:all 100ms ease-in; +} +.floating-actions-item{ + -servicestudio-opacity:1; + -servicestudio-transform:translateY(0); +} +.floating-actions-item-button{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + background-color:var(--color-neutral-0); + border-radius:var(--border-radius-rounded); + -webkit-box-shadow:var(--shadow-s); + box-shadow:var(--shadow-s); + color:var(--color-primary); + cursor:pointer; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + font-size:var(--font-size-base); + height:40px; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + margin-left:var(--space-base); + -webkit-transform:translateZ(0) scale(0.3); + transform:translateZ(0) scale(0.3); + -webkit-transition:-webkit-transform 180ms ease-out; + transition:-webkit-transform 180ms ease-out; + transition:transform 180ms ease-out; + transition:transform 180ms ease-out, -webkit-transform 180ms ease-out; + -webkit-transition-delay:calc(var(--delay) * 40ms); + transition-delay:calc(var(--delay) * 40ms); + width:40px; +} +.floating-actions-item-button{ + -servicestudio-transform:scale(1); +} +.floating-actions-item-button:hover{ + background-color:var(--color-primary); + color:var(--color-neutral-0); +} +.floating-button{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + background-color:var(--color-primary); + border-radius:var(--border-radius-rounded); + -webkit-box-shadow:var(--shadow-xl); + box-shadow:var(--shadow-xl); + color:var(--color-neutral-0); + cursor:pointer; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + font-size:var(--font-size-h4); + height:56px; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + pointer-events:auto; + -webkit-transform:rotate(0deg) translateZ(0); + transform:rotate(0deg) translateZ(0); + -webkit-transform-origin:center center; + -ms-transform-origin:center center; + transform-origin:center center; + -webkit-transition:all 180ms linear; + transition:all 180ms linear; + width:56px; +} +.floating-button:hover{ + -webkit-filter:brightness(0.9); + filter:brightness(0.9); +} +.floating-overlay{ + background-color:var(--overlay-background); + cursor:pointer; + height:100vh; + opacity:0; + pointer-events:none; + position:fixed; + right:0; + top:0; + -webkit-transition:opacity 180ms ease-out; + transition:opacity 180ms ease-out; + width:100vw; + z-index:var(--osui-floating-actions-layer); +} +.floating-overlay.is--open{ + opacity:1; + pointer-events:auto; +} +.desktop .floating-overlay{ + display:none; +} +.phone .layout-native .floating-actions-wrapper{ + margin:var(--space-base); +} +.phone.ios.portrait .layout-native .floating-actions-wrapper{ + margin-bottom:var(--os-safe-area-bottom); +} +.phone.ios.landscape .layout-native .floating-actions-wrapper{ + margin-right:calc(var(--os-safe-area-right) + var(--space-base)); +} +.tablet.ios .floating-actions-wrapper.bottom-bar-exists{ + margin-bottom:0; +} +.is-rtl .floating-actions-item-button{ + margin-left:var(--space-none); + margin-right:var(--space-base); +} +.is-rtl .floating-actions-wrapper{ + left:0; + right:auto; +} +.has-accessible-features .floating-button:focus{ + -webkit-box-shadow:0 0 0 3px var(--color-focus-outer); + box-shadow:0 0 0 3px var(--color-focus-outer); +} +.has-accessible-features .floating-actions-wrapper.is--open .floating-button:focus{ + -webkit-box-shadow:0 0 0 3px var(--color-focus-outer); + box-shadow:0 0 0 3px var(--color-focus-outer); +} +/*! 6.3.10. Input With Icon */ +.input-with-icon{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + position:relative; +} +.input-with-icon.input-with-icon-right .input-with-icon-content-icon{ + left:auto; + right:0; +} +.input-with-icon.input-with-icon-right .input-with-icon-content-icon:not(:empty) + .input-with-icon-input input{ + padding-left:var(--space-base); + padding-right:var(--space-xl); +} +.input-with-icon.input-with-icon-right .input-with-icon-content-icon.search-actions{ + left:0; + right:auto; +} +.input-with-icon .input-with-icon-content-icon{ + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; + height:100%; + left:0; + position:absolute; + width:40px; +} +.input-with-icon .input-with-icon-content-icon, +.input-with-icon .input-with-icon-content-icon a{ + color:var(--color-neutral-7); +} +.input-with-icon .input-with-icon-content-icon:not(:empty) + .input-with-icon-input input{ + padding-left:var(--space-xl); +} +.input-with-icon .input-with-icon-content-icon.search-actions{ + left:auto; + right:0; +} +.input-with-icon .input-with-icon-content-icon.search-actions:hover{ + color:var(--color-neutral-8); + cursor:pointer; +} +.input-with-icon .input-with-icon-input, +.input-with-icon .input-with-icon-input input{ + width:100%; +} +.input-with-icon .fa-fw{ + width:auto; +} +.input-with-icon span.validation-message{ + display:block; + position:absolute; +} +.form .input-with-icon .input-with-icon-content-icon{ + padding-bottom:var(--space-m); + z-index:var(--layer-local-tier-1); +} +/*! 6.3.11. Lightbox Image */ +.lightbox-item{ + -servicestudio-position:relative; +} +.lightbox-item:empty{ + -servicestudio-min-height:200px; +} +.lightbox-item img{ + display:block; +} +.lightbox-image:after{ + -servicestudio-background-color:rgba(0, 0, 0, 0.3); + -servicestudio-color:#fff; + -servicestudio-content:"Image"; + -servicestudio-font-size:9px; + -servicestudio-left:0; + -servicestudio-padding:3px; + -servicestudio-position:absolute; + -servicestudio-right:0; +} +.lightbox-thumbnail{ + -servicestudio-bottom:0; + -servicestudio-position:absolute; + -servicestudio-right:0; + -servicestudio-width:100%; +} +.lightbox-thumbnail:empty{ + -servicestudio-min-height:40%; +} +.lightbox-thumbnail:after{ + -servicestudio-background-color:rgba(0, 0, 0, 0.3); + -servicestudio-color:#fff; + -servicestudio-content:"Thumbnail"; + -servicestudio-font-size:9px; + -servicestudio-left:0; + -servicestudio-padding:3px; + -servicestudio-position:absolute; + -servicestudio-right:0; +} +.lightbox-content-thumbnail{ + -servicestudio-min-height:100px; +} +.hide-lightbox-image .lightbox-image{ + display:none; +} +.pswp__top-bar{ + padding-left:var(--os-safe-area-left); + padding-right:var(--os-safe-area-right); +} +.android[data-status-bar-height] .pswp__top-bar{ + top:var(--status-bar-height); +} +.ios .pswp__top-bar{ + padding-left:var(--os-safe-area-left); + padding-right:var(--os-safe-area-right); + top:var(--os-safe-area-top); +} +.ios .pswp__top-bar .pswp__counter{ + left:var(--os-safe-area-left); +} +.phone .pswp__caption__center{ + padding-bottom:calc(var(--os-safe-area-bottom) + 10px); +} +.has-accessible-features .lightbox-item a:focus{ + background-color:transparent; + -webkit-box-shadow:none; + box-shadow:none; + outline:3px solid var(--color-focus-outer); +} +.is-rtl .pswp__counter{ + left:inherit; + right:0; +} +.is-rtl .pswp__top-bar{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-orient:horizontal; + -webkit-box-direction:reverse; + -ms-flex-direction:row-reverse; + flex-direction:row-reverse; +} +/*! 6.3.12. MonthPicker */ +.osui-monthpicker__dropdown.flatpickr-calendar{ + width:auto; +} +.osui-monthpicker__dropdown .flatpickr-months{ + padding-bottom:0; +} +.flatpickr-monthSelect-months{ + display:grid; + gap:var(--space-xs); + grid-template-columns:repeat(3, 1fr); + justify-items:center; + margin:0; +} +.flatpickr-monthSelect-months .flatpickr-monthSelect-month{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + border:1px solid transparent; + border-radius:var(--border-radius-soft); + display:-webkit-box; + display:-ms-flexbox; + display:flex; + height:40px; + margin:0; + min-width:70px; + width:100%; +} +.flatpickr-monthSelect-months .flatpickr-monthSelect-month:hover, .flatpickr-monthSelect-months .flatpickr-monthSelect-month:focus{ + background:var(--color-neutral-2); +} +.flatpickr-monthSelect-months .flatpickr-monthSelect-month.selected{ + background-color:var(--color-primary); + border-color:transparent; + color:var(--color-neutral-0); +} +.flatpickr-monthSelect-months .flatpickr-monthSelect-month.flatpickr-disabled{ + background-color:var(--color-neutral-1); + color:var(--color-neutral-5); +} +.flatpickr-monthSelect-months .flatpickr-monthSelect-month.flatpickr-disabled:hover{ + background-color:var(--color-neutral-1) !important; +} +.flatpickr-monthSelect-months .flatpickr-monthSelect-month.flatpickr-disabled.today:hover, .flatpickr-monthSelect-months .flatpickr-monthSelect-month.flatpickr-disabled.today:focus{ + border:none; +} +.flatpickr-monthSelect-months .flatpickr-monthSelect-month.today:not(.selected):not(.flatpickr-disabled){ + border-color:var(--color-neutral-6); +} +.flatpickr-monthSelect-months .flatpickr-monthSelect-month.today:not(.selected):not(.flatpickr-disabled):hover, .flatpickr-monthSelect-months .flatpickr-monthSelect-month.today:not(.selected):not(.flatpickr-disabled):focus{ + background:var(--color-neutral-3); + border-color:var(--color-neutral-3); + color:var(--color-primary); +} +.is-rtl .osui-monthpicker__dropdown .flatpickr-monthSelect-months{ + direction:rtl; +} +.osui-monthpicker-ss-preview{ + display:none; +} +.osui-monthpicker-ss-preview{ + -servicestudio-background-image:url("data:image/png;base64,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"); + -servicestudio-background-position:top center; + -servicestudio-background-repeat:no-repeat; + -servicestudio-background-size:contain; + -servicestudio-display:inline-block; + -servicestudio-height:0; + -servicestudio-margin-left:-3px; + -servicestudio-margin-top:2px; + -servicestudio-max-width:320px; + -servicestudio-overflow:hidden; + -servicestudio-padding-top:min(250px, 100%); + -servicestudio-position:relative; + -servicestudio-width:100%; + -servicestudio-z-index:var(--layer-local-tier-1); +} +.osui-monthpicker-ss-preview + .placeholder-ss-preview{ + -servicestudio-height:0; + -servicestudio-opacity:0; + -servicestudio-overflow:hidden; + -servicestudio-width:100%; +} +.osui-monthpicker .not-valid + .input, +.osui-monthpicker .not-valid + .flatpickr-mobile{ + border-color:var(--color-error); +} +.osui-monthpicker input[disabled] + input{ + background-color:var(--color-neutral-2); + border:var(--border-size-s) solid var(--color-neutral-4); + color:var(--color-neutral-6); + pointer-events:none; +} +.osui-monthpicker input:first-of-type{ + display:none; +} +.osui-monthpicker input:first-of-type{ + -servicestudio-display:inline-flex !important; +} +.form .osui-monthpicker-ss-preview{ + -servicestudio-margin-top:-22px; +} +/*! 6.3.13. Notification */ +.osui-notification{ + --osui-notification-margin:var(--space-m); + background-color:var(--color-neutral-0); + border-radius:var(--border-radius-soft); + border:var(--border-size-s) solid var(--color-neutral-4); + -webkit-box-shadow:var(--shadow-xl); + box-shadow:var(--shadow-xl); + color:var(--color-neutral-10); + max-width:calc(100vw - var(--osui-notification-margin) * 2); + opacity:0; + padding:var(--space-m); + pointer-events:none; + position:fixed; + -webkit-transition:opacity 300ms ease-out, -webkit-transform 300ms ease-out; + transition:opacity 300ms ease-out, -webkit-transform 300ms ease-out; + transition:transform 300ms ease-out, opacity 300ms ease-out; + transition:transform 300ms ease-out, opacity 300ms ease-out, -webkit-transform 300ms ease-out; + -webkit-user-select:none; + -moz-user-select:none; + -ms-user-select:none; + user-select:none; + width:var(--notification-width); + z-index:var(--osui-notification-layer); +} +.osui-notification{ + -servicestudio-opacity:1; + -servicestudio-position:relative; +} +.osui-notification-preview{ + -servicestudio-position:relative; +} +.osui-notification-preview.bottom .is-bottom, .osui-notification-preview.bottom-right .is-bottom-right, .osui-notification-preview.bottom-left .is-bottom-left, .osui-notification-preview.center .is-center, .osui-notification-preview.right .is-right, .osui-notification-preview.left .is-left, .osui-notification-preview.top .is-top, .osui-notification-preview.top-right .is-top-right, .osui-notification-preview.top-left .is-top-left{ + -servicestudio-display:block; +} +.osui-notification-preview [class*=is-]{ + -servicestudio-display:none; +} +.osui-notification--is-top{ + left:50%; + -webkit-transform:translate(-50%, -100%); + -ms-transform:translate(-50%, -100%); + transform:translate(-50%, -100%); +} +.osui-notification--is-top, .osui-notification--is-top-right, .osui-notification--is-top-left{ + top:calc(var(--os-safe-area-top) + var(--osui-notification-margin)); +} +.osui-notification--is-top-right{ + right:calc(var(--os-safe-area-right) + var(--osui-notification-margin)); + -webkit-transform:translateX(100%); + -ms-transform:translateX(100%); + transform:translateX(100%); +} +.osui-notification--is-top-left{ + left:calc(var(--os-safe-area-left) + var(--osui-notification-margin)); + -webkit-transform:translateX(-100%); + -ms-transform:translateX(-100%); + transform:translateX(-100%); +} +.osui-notification--is-center{ + top:50%; + left:50%; + -webkit-transform:translate(-50%, -100%); + -ms-transform:translate(-50%, -100%); + transform:translate(-50%, -100%); +} +.osui-notification--is-right, .osui-notification--is-left{ + top:50%; +} +.osui-notification--is-right{ + right:calc(var(--os-safe-area-right) + var(--osui-notification-margin)); + -webkit-transform:translate(100%, -50%); + -ms-transform:translate(100%, -50%); + transform:translate(100%, -50%); +} +.osui-notification--is-left{ + left:calc(var(--os-safe-area-left) + var(--osui-notification-margin)); + -webkit-transform:translate(-100%, -50%); + -ms-transform:translate(-100%, -50%); + transform:translate(-100%, -50%); +} +.osui-notification--is-bottom{ + left:50%; + -webkit-transform:translate(-50%, 100%); + -ms-transform:translate(-50%, 100%); + transform:translate(-50%, 100%); +} +.osui-notification--is-bottom, .osui-notification--is-bottom-right, .osui-notification--is-bottom-left{ + bottom:calc(var(--os-safe-area-bottom) + var(--osui-notification-margin)); +} +.osui-notification--is-bottom-right{ + right:calc(var(--os-safe-area-right) + var(--osui-notification-margin)); + -webkit-transform:translateX(100%); + -ms-transform:translateX(100%); + transform:translateX(100%); +} +.osui-notification--is-bottom-left{ + left:calc(var(--os-safe-area-left) + var(--osui-notification-margin)); + -webkit-transform:translateX(-100%); + -ms-transform:translateX(-100%); + transform:translateX(-100%); +} +.osui-notification--is-open{ + opacity:1; + pointer-events:auto; +} +.osui-notification--is-open.osui-notification--is-top{ + -webkit-transform:translate(-50%); + -ms-transform:translate(-50%); + transform:translate(-50%); +} +.osui-notification--is-open.osui-notification--is-top-right, .osui-notification--is-open.osui-notification--is-top-left{ + -webkit-transform:translate(0, 0); + -ms-transform:translate(0, 0); + transform:translate(0, 0); +} +.osui-notification--is-open.osui-notification--is-center{ + -webkit-transform:translate(-50%, -50%); + -ms-transform:translate(-50%, -50%); + transform:translate(-50%, -50%); +} +.osui-notification--is-open.osui-notification--is-right, .osui-notification--is-open.osui-notification--is-left{ + -webkit-transform:translate(0, -50%); + -ms-transform:translate(0, -50%); + transform:translate(0, -50%); +} +.osui-notification--is-open.osui-notification--is-bottom{ + -webkit-transform:translate(-50%, 0); + -ms-transform:translate(-50%, 0); + transform:translate(-50%, 0); +} +.osui-notification--is-open.osui-notification--is-bottom-right, .osui-notification--is-open.osui-notification--is-bottom-left{ + -webkit-transform:translateX(0); + -ms-transform:translateX(0); + transform:translateX(0); +} +.slide-from-left-enter .layout-native .osui-notification, +.slide-from-left-leave .layout-native .osui-notification, +.slide-from-right-enter .layout-native .osui-notification, +.slide-from-right-leave .layout-native .osui-notification, +.slide-from-top-enter .layout-native .osui-notification, +.slide-from-top-leave .layout-native .osui-notification, +.slide-from-bottom-enter .layout-native .osui-notification, +.slide-from-bottom-leave .layout-native .osui-notification, +.fade-enter .layout-native .osui-notification, +.fade-leave .layout-native .osui-notification{ + display:none; +} +.phone .osui-notification{ + --osui-notification-margin:var(--space-base); +} +.android[data-status-bar-height] .layout-native .osui-notification--is-open{ + margin-top:var(--status-bar-height); +} +/*! 6.3.14. RangeSlider */ +.osui-range-slider{ + --range-slider-handle-size:24px; + --range-slider-thickness:4px; + --range-slider-handle-size-half:calc(var(--range-slider-handle-size) / 2); + --range-slider-thickness-half:calc(var(--range-slider-thickness) / 2); + --range-slider-handle-sliding-position:calc(var(--range-slider-handle-size-half) * -1); + padding:0 var(--space-base); +} +.osui-range-slider--is-vertical{ + height:var(--range-slider-size); + width:-webkit-fit-content; + width:-moz-fit-content; + width:fit-content; +} +.osui-range-slider--has-ticks .noUi-target{ + margin:var(--space-m) var(--space-none) var(--space-xl); +} +.osui-range-slider:not(.osui-range-slider--has-ticks) .noUi-target{ + margin:var(--space-m) var(--space-none); +} +.osui-range-slider{ + -servicestudio-margin-bottom:var(--space-base); + -servicestudio-display:block; + -servicestudio-min-width:150px; +} +.osui-range-slider .noUi-base{ + background-color:transparent; + border-radius:var(--border-radius-soft); +} +.osui-range-slider .noUi-target{ + background:var(--color-neutral-5); + border:var(--border-size-none); + border-radius:var(--border-radius-soft); + -webkit-box-shadow:none; + box-shadow:none; +} +.osui-range-slider .noUi-horizontal .noUi-handle, .osui-range-slider .noUi-vertical .noUi-handle{ + background-color:var(--color-neutral-0); + border:var(--border-size-s) solid var(--color-neutral-7); + border-radius:var(--border-radius-circle); + -webkit-box-shadow:var(--shadow-xs); + box-shadow:var(--shadow-xs); + cursor:pointer; + display:inline-block; + height:var(--range-slider-handle-size); + -webkit-transition:-webkit-transform 150ms ease-out; + transition:-webkit-transform 150ms ease-out; + transition:transform 150ms ease-out; + transition:transform 150ms ease-out, -webkit-transform 150ms ease-out; + width:var(--range-slider-handle-size); +} +.osui-range-slider .noUi-horizontal .noUi-handle:before, +.osui-range-slider .noUi-horizontal .noUi-handle:after, .osui-range-slider .noUi-vertical .noUi-handle:before, +.osui-range-slider .noUi-vertical .noUi-handle:after{ + background:transparent; + border-color:var(--color-neutral-6); + border-style:solid; + content:""; + height:calc(var(--range-slider-handle-size) / 2); + top:50%; + -webkit-transform:translateY(-50%); + -ms-transform:translateY(-50%); + transform:translateY(-50%); +} +.osui-range-slider .noUi-horizontal .noUi-handle:before, .osui-range-slider .noUi-vertical .noUi-handle:before{ + border-width:var(--border-size-none) var(--border-size-none) var(--border-size-none) var(--border-size-s); + left:calc(var(--range-slider-handle-size) / 4); + right:auto; +} +.osui-range-slider .noUi-horizontal .noUi-handle:after, .osui-range-slider .noUi-vertical .noUi-handle:after{ + border-width:var(--border-size-none) var(--border-size-s); + left:calc(var(--range-slider-handle-size) / 2.5); + width:3px; +} +.osui-range-slider .noUi-horizontal .noUi-handle.noUi-active, +.osui-range-slider .noUi-horizontal .noUi-handle:hover, .osui-range-slider .noUi-vertical .noUi-handle.noUi-active, +.osui-range-slider .noUi-vertical .noUi-handle:hover{ + border:var(--border-size-s) solid var(--color-primary); +} +.osui-range-slider .noUi-horizontal .noUi-handle.noUi-active:before, +.osui-range-slider .noUi-horizontal .noUi-handle.noUi-active:after, +.osui-range-slider .noUi-horizontal .noUi-handle:hover:before, +.osui-range-slider .noUi-horizontal .noUi-handle:hover:after, .osui-range-slider .noUi-vertical .noUi-handle.noUi-active:before, +.osui-range-slider .noUi-vertical .noUi-handle.noUi-active:after, +.osui-range-slider .noUi-vertical .noUi-handle:hover:before, +.osui-range-slider .noUi-vertical .noUi-handle:hover:after{ + border-color:var(--color-primary); +} +.osui-range-slider .noUi-vertical{ + height:var(--range-slider-size); + margin:var(--space-m) var(--space-none); + width:var(--range-slider-thickness); +} +.osui-range-slider .noUi-vertical .noUi-handle{ + bottom:var(--range-slider-handle-sliding-position); + left:calc((var(--range-slider-handle-size-half) + var(--range-slider-thickness-half)) * -1); +} +.osui-range-slider .noUi-vertical .noUi-handle{ + -servicestudio-left:-10px !important; +} +.osui-range-slider .noUi-horizontal{ + height:var(--range-slider-thickness); + width:var(--range-slider-size); +} +.osui-range-slider .noUi-horizontal .noUi-handle{ + right:var(--range-slider-handle-sliding-position); + top:calc((var(--range-slider-handle-size-half) - var(--range-slider-thickness-half)) * -1); +} +.osui-range-slider .noUi-horizontal .noUi-pips{ + color:var(--color-neutral-8); +} +.osui-range-slider .noUi-horizontal .noUi-pips-margin{ + margin-bottom:60px; +} +.osui-range-slider .noUi-connects{ + border-radius:var(--border-radius-soft); +} +.osui-range-slider .noUi-connect{ + background:var(--color-primary); +} +.osui-range-slider .noUi-background{ + -webkit-box-shadow:none; + box-shadow:none; +} +.osui-range-slider .noUi-pips-horizontal{ + height:40px; + left:0; + padding:12px 0 0; + top:100%; + width:100%; +} +.osui-range-slider .noUi-pips-vertical{ + color:var(--color-neutral-8); + height:100%; + left:100%; + padding:0 0 0 var(--space-base); + top:0; +} +.osui-range-slider .noUi-marker-large{ + background-color:var(--color-neutral-6); +} +.osui-range-slider .noUi-marker-horizontal.noUi-marker{ + height:4px; +} +.osui-range-slider .noUi-marker-vertical.noUi-marker-large{ + width:4px; +} +.osui-range-slider .noUi-value-horizontal{ + top:var(--space-s); +} +.osui-range-slider .noUi-value-vertical{ + padding-left:var(--space-s); +} +.osui-range-slider .noUi-tooltip{ + background:transparent; + border:none; + color:var(--color-neutral-10); + padding:var(--space-xs); +} +.osui-range-slider .noUi-rtl.noUi-vertical .noUi-handle{ + right:unset; +} +.osui-range-slider .noUi-rtl .noUi-value.noUi-value-vertical{ + padding-left:var(--space-none); + padding-right:var(--space-m); +} +.osui-range-slider .noUi-rtl .noUi-marker.noUi-marker-vertical{ + margin-right:var(--space-base); +} +.osui-range-slider .noUi-txt-dir-rtl.noUi-horizontal .noUi-origin{ + left:inherit; + right:inherit; +} +.osui-range-slider .osui-range-slider__provider[disabled]{ + pointer-events:none; +} +.osui-range-slider .osui-range-slider__provider[disabled] .noUi-target{ + background-color:var(--color-neutral-4); +} +.osui-range-slider .osui-range-slider__provider[disabled] .noUi-connect{ + background-color:var(--color-neutral-6); +} +.osui-range-slider .osui-range-slider__provider[disabled] .noUi-handle{ + background-color:var(--color-neutral-2); + border:var(--border-size-s) solid var(--color-neutral-5); + -webkit-box-shadow:none; + box-shadow:none; +} +.osui-range-slider .osui-range-slider__provider[disabled] .noUi-handle:before, .osui-range-slider .osui-range-slider__provider[disabled] .noUi-handle:after{ + border-color:var(--color-neutral-6); +} +.osui-range-slider .osui-range-slider__provider[disabled] .noUi-pips{ + color:var(--color-neutral-6); +} +.osui-range-slider .osui-range-slider__provider[disabled] .noUi-tooltip{ + color:var(--color-neutral-6); +} +.has-accessible-features .osui-range-slider{ + border:var(--border-size-m) solid transparent; +} +.has-accessible-features .osui-range-slider:focus-within{ + border-color:var(--color-focus-outer); +} +.has-accessible-features .osui-range-slider .noUi-handle:focus{ + border-color:var(--color-focus-inner); + -webkit-box-shadow:0 0 0 3px var(--color-focus-outer); + box-shadow:0 0 0 3px var(--color-focus-outer); +} +.is-rtl .osui-range-slider .noUi-pips-vertical{ + padding:0; +} +.noUi-origin .noUi-base, +.noUi-connect{ + z-index:var(--layer-local-tier-1); +} +.noUi-connects{ + z-index:var(--layer-global-screen); +} +/*! 6.3.15. Scrollable Area */ +.scrollable-area-content{ + --scrollable-area-height:auto; + --scrollable-area-width:100%; + height:var(--scrollable-area-height); + width:var(--scrollable-area-width); +} +.scrollable-area-content.horizontal-scroll .osui-deprecated.carousel .list.list-group, .scrollable-area-content.horizontal-scroll .osui-carousel .list.list-group, .scrollable-area-content.vertical-scroll .osui-deprecated.carousel .list.list-group, .scrollable-area-content.vertical-scroll .osui-carousel .list.list-group{ + overflow-x:initial; + overflow-y:initial; +} +.scrollable-area-content.none{ + -ms-overflow-style:none; + scrollbar-width:none; +} +.scrollable-area-content.none:hover{ + cursor:default; +} +.scrollable-area-content.none::-webkit-scrollbar{ + display:none; +} +.scrollable-area-content.horizontal-scroll, +.scrollable-area-content.horizontal-scroll .list.list-group{ + overflow-x:auto; + overflow-y:hidden; +} +.scrollable-area-content.vertical-scroll, +.scrollable-area-content.vertical-scroll .list.list-group{ + overflow-x:hidden; + overflow-y:auto; +} +.scrollable-area-content.compact.horizontal-scroll::-webkit-scrollbar, .scrollable-area-content.compact.vertical-scroll::-webkit-scrollbar{ + width:8px; + height:8px; +} +.scrollable-area-content.compact.horizontal-scroll::-webkit-scrollbar-track, .scrollable-area-content.compact.horizontal-scroll::-webkit-scrollbar-thumb, .scrollable-area-content.compact.horizontal-scroll:hover::-webkit-scrollbar-track, .scrollable-area-content.compact.vertical-scroll::-webkit-scrollbar-track, .scrollable-area-content.compact.vertical-scroll::-webkit-scrollbar-thumb, .scrollable-area-content.compact.vertical-scroll:hover::-webkit-scrollbar-track{ + background-color:transparent; +} +.scrollable-area-content.compact.horizontal-scroll:hover::-webkit-scrollbar-thumb, .scrollable-area-content.compact.vertical-scroll:hover::-webkit-scrollbar-thumb{ + background-color:rgba(173, 181, 189, 0.5); + border-radius:6px; +} +.scrollable-area-content.compact.horizontal-scroll::-webkit-scrollbar-thumb:hover, .scrollable-area-content.compact.vertical-scroll::-webkit-scrollbar-thumb:hover{ + background-color:rgba(106, 113, 120, 0.5); + border-radius:6px; +} +[data-block="Interaction.ScrollableArea"]::-webkit-scrollbar{ + width:8px; + height:8px; +} +[data-block="Interaction.ScrollableArea"]::-webkit-scrollbar-track, [data-block="Interaction.ScrollableArea"]::-webkit-scrollbar-thumb, [data-block="Interaction.ScrollableArea"]:hover::-webkit-scrollbar-track{ + background-color:transparent; +} +[data-block="Interaction.ScrollableArea"]:hover::-webkit-scrollbar-thumb{ + background-color:rgba(173, 181, 189, 0.5); + border-radius:6px; +} +[data-block="Interaction.ScrollableArea"]::-webkit-scrollbar-thumb:hover{ + background-color:rgba(106, 113, 120, 0.5); + border-radius:6px; +} +.is-rtl .horizontal-scroll > :not(:first-child), +.is-rtl .horizontal-scroll .list > :not(:first-child){ + margin-left:unset; + margin-right:var(--space-base); +} +/*! 6.3.16. Sidebar */ +.osui-sidebar{ + --overlay-opacity:0; + background-color:var(--color-neutral-0); + -webkit-box-shadow:var(--shadow-l); + box-shadow:var(--shadow-l); + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; + height:100%; + margin:var(--space-none); + position:fixed; + top:0; + -webkit-transition:all 130ms ease-in; + transition:all 130ms ease-in; + width:var(--sidebar-width); + will-change:transform; + z-index:var(--osui-sidebar-layer); +} +.osui-sidebar:not(.osui-sidebar--is-open):not(.no-transition){ + opacity:0; +} +.osui-sidebar:not(.osui-sidebar--is-open):not(.no-transition){ + -servicestudio-opacity:1; +} +.osui-sidebar:after{ + background-color:transparent; + content:""; + height:100%; + position:fixed; + width:24px; +} +.osui-sidebar--is-right{ + right:0; + -webkit-transform:translateX(102%); + -ms-transform:translateX(102%); + transform:translateX(102%); +} +.osui-sidebar--is-right:after{ + left:-24px; +} +.osui-sidebar--is-right.osui-sidebar--has-overlay::before{ + right:100%; +} +.osui-sidebar--is-right.osui-sidebar--has-overlay::before{ + -servicestudio-right:100%; +} +.osui-sidebar--is-right{ + -servicestudio-left:100%; + -servicestudio-transform:translateX(-100%); +} +.osui-sidebar--is-left{ + left:0; + -webkit-transform:translateX(-102%); + -ms-transform:translateX(-102%); + transform:translateX(-102%); +} +.osui-sidebar--is-left:after{ + right:-24px; +} +.osui-sidebar--is-left.osui-sidebar--has-overlay::before{ + left:100%; +} +.osui-sidebar--is-left.osui-sidebar--has-overlay::before{ + -servicestudio-left:100%; +} +.osui-sidebar--is-left{ + -servicestudio-left:0; + -servicestudio-transform:none; +} +.osui-sidebar__header, .osui-sidebar__content{ + padding:var(--space-base) var(--space-m); +} +.osui-sidebar__content{ + -webkit-box-flex:1; + -ms-flex:1; + flex:1; + overflow:auto; + -webkit-overflow-scrolling:touch; +} +.osui-sidebar--has-overlay::before{ + background-color:var(--overlay-background); + content:""; + cursor:pointer; + display:block; + height:100vh; + opacity:var(--overlay-opacity); + pointer-events:none; + position:fixed; + top:0; + -webkit-transition:opacity 130ms ease-in; + transition:opacity 130ms ease-in; + width:200vw; + will-change:opacity; + z-index:var(--osui-sidebar-layer); +} +.osui-sidebar--has-overlay::before{ + -servicestudio-width:100%; + -servicestudio-height:100%; + -servicestudio-opacity:1; +} +.osui-sidebar{ + -servicestudio-display:inline-block; + -servicestudio-position:relative; + -servicestudio-width:unset; +} +.active-screen .osui-sidebar--is-open{ + opacity:1; + -webkit-transform:none; + -ms-transform:none; + transform:none; + -webkit-transition:-webkit-transform 330ms ease-out; + transition:-webkit-transform 330ms ease-out; + transition:transform 330ms ease-out; + transition:transform 330ms ease-out, -webkit-transform 330ms ease-out; + will-change:transform; +} +.active-screen .osui-sidebar--is-open.osui-sidebar--has-overlay::before{ + opacity:1; + pointer-events:initial; +} +.desktop .osui-sidebar:after{ + display:none; +} +.android[data-status-bar-height] .layout-native .osui-sidebar{ + padding-top:var(--status-bar-height); +} +.ios .layout-native .osui-sidebar{ + padding-bottom:var(--os-safe-area-bottom); + padding-top:var(--os-safe-area-top); +} +.ios .phone.landscape .layout-native .osui-sidebar:before{ + left:calc((var(--os-safe-area-left) + 12px) * -1); + width:calc(var(--os-safe-area-left) + 12px); +} +.landscape .layout-native .osui-sidebar{ + padding-bottom:var(--os-safe-area-bottom); +} +.phone .osui-sidebar{ + max-width:85vw; +} +/*! 6.3.17. Search */ +.osui-search{ + position:relative; +} +.osui-search:empty{ + -servicestudio-height:40px; +} +.osui-search__input{ + position:relative; +} +.osui-search__input:empty{ + -servicestudio-background-color:#fff; + -servicestudio-border-radius:4px; + -servicestudio-height:40px; +} +.osui-search__input input[data-input]{ + background-image:url(data:image/svg+xml;base64,PHN2ZyBpZD0iU3ZnanNTdmcxMDAxIiB3aWR0aD0iMjg4IiBoZWlnaHQ9IjI4OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWxuczpzdmdqcz0iaHR0cDovL3N2Z2pzLmNvbS9zdmdqcyI+PGRlZnMgaWQ9IlN2Z2pzRGVmczEwMDIiPjwvZGVmcz48ZyBpZD0iU3ZnanNHMTAwOCI+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNjY0IDE2NjQiIHdpZHRoPSIyODgiIGhlaWdodD0iMjg4Ij48cGF0aCBmaWxsPSIjYWRiNWJkIiBkPSJNMTE1MiA3MDRxMC0xODUtMTMxLjUtMzE2LjVUNzA0IDI1NlQzODcuNSAzODcuNVQyNTYgNzA0dDEzMS41IDMxNi41VDcwNCAxMTUydDMxNi41LTEzMS41VDExNTIgNzA0em01MTIgODMycTAgNTItMzggOTB0LTkwIDM4cS01NCAwLTkwLTM4bC0zNDMtMzQycS0xNzkgMTI0LTM5OSAxMjRxLTE0MyAwLTI3My41LTU1LjV0LTIyNS0xNTB0LTE1MC0yMjVUMCA3MDR0NTUuNS0yNzMuNXQxNTAtMjI1dDIyNS0xNTBUNzA0IDB0MjczLjUgNTUuNXQyMjUgMTUwdDE1MCAyMjVUMTQwOCA3MDRxMCAyMjAtMTI0IDM5OWwzNDMgMzQzcTM3IDM3IDM3IDkweiIgY2xhc3M9ImNvbG9yY3VycmVudENvbG9yIHN2Z1NoYXBlIj48L3BhdGg+PC9zdmc+PC9nPjwvc3ZnPg==); + background-position:left var(--space-base) center; + background-repeat:no-repeat; + background-size:14px auto; +} +.osui-search .form-control[data-input]{ + padding-left:var(--space-xl); +} +.form .osui-search input[data-input]{ + margin-bottom:var(--space-none); +} +.is-rtl .osui-search__input:after{ + left:auto; + right:var(--space-base); +} +.is-rtl .osui-search .form-control[data-input]{ + padding-left:var(--space-base); + padding-right:var(--space-xl); +} +.layout-native .header .osui-search input[data-input], .layout-native .header .osui-search input[data-input]:empty{ + border:var(--border-size-none); + padding-left:var(--space-xl); +} +.layout-native .header-content .osui-search input[data-input], .layout-native .header-content .osui-search input[data-input]:empty{ + border-radius:var(--border-radius-none); +} +.slide-from-left-enter .layout-native .header-right .osui-search__input, +.slide-from-left-leave .layout-native .header-right .osui-search__input, +.slide-from-right-enter .layout-native .header-right .osui-search__input, +.slide-from-right-leave .layout-native .header-right .osui-search__input, +.slide-from-top-enter .layout-native .header-right .osui-search__input, +.slide-from-top-leave .layout-native .header-right .osui-search__input, +.slide-from-bottom-enter .layout-native .header-right .osui-search__input, +.slide-from-bottom-leave .layout-native .header-right .osui-search__input, +.fade-enter .header-right .layout-native .osui-search__input, +.fade-leave .header-right .layout-native .osui-search__input{ + display:none; +} +/*! 6.3.18. Stacked Cards */ +.stackedcards{ + position:relative; +} +.stackedcards *{ + -webkit-user-select:none; + -moz-user-select:none; + -ms-user-select:none; + user-select:none; +} +.stackedcards .stackedcards-container .OSAutoMarginTop{ + margin-top:var(--space-none); +} +.stackedcards .stackedcards-container .list.list-group{ + background-color:transparent; + height:100%; + z-index:var(--layer-global-screen); +} +.stackedcards .stackedcards-container .list.list-group > :nth-child(1){ + display:block; + position:relative; +} +.stackedcards .stackedcards-container > .list:not([data-virtualization-disabled]) > *, .stackedcards .stackedcards-container > .list:not([data-animation-disabled]) > *{ + -servicestudio-display:none !important; +} +.stackedcards .stackedcards-container > .list:not([data-virtualization-disabled]), .stackedcards .stackedcards-container > .list:not([data-animation-disabled]){ + -servicestudio-min-height:225px; + -servicestudio-pointer-events:none; +} +.stackedcards .stackedcards-container > .list:not([data-virtualization-disabled]):after, .stackedcards .stackedcards-container > .list:not([data-animation-disabled]):after{ + -servicestudio-background-color:#fff; + -servicestudio-background-position:center; + -servicestudio-background-repeat:no-repeat; + -servicestudio-background-size:291px 225px; + -servicestudio-content:" "; + -servicestudio-height:100%; + -servicestudio-left:0; + -servicestudio-min-height:225px; + -servicestudio-position:absolute; + -servicestudio-top:0; + -servicestudio-width:100%; +} +.stackedcards .stackedcards-container, .stackedcards .stackedcards-container .list.list-group > *{ + -servicestudio-min-height:80px; +} +.stackedcards .stackedcards-container > *{ + height:100%; + position:absolute; + top:0; + width:100%; + will-change:transform, opacity; +} +.stackedcards .stackedcards-container > *{ + -servicestudio-position:relative; +} +.stackedcards .stackedcards-container > :nth-child(1){ + display:block; + position:relative; +} +.stackedcards .stackedcards-overlay{ + height:100%; + position:absolute; + top:0; + width:100%; + will-change:transform, opacity; +} +.stackedcards .stackedcards-overlay{ + -servicestudio-position:relative; +} +.stackedcards-overflow{ + overflow-y:hidden !important; +} +.stackedcards--animatable{ + -webkit-transition:all 400ms ease; + transition:all 400ms ease; +} +.stackedcards .init{ + opacity:0; +} +.stackedcards .init{ + -servicestudio-opacity:1; +} +.stackedcards-origin-bottom{ + -webkit-transform-origin:bottom; + -ms-transform-origin:bottom; + transform-origin:bottom; +} +.stackedcards-origin-top{ + -webkit-transform-origin:top; + -ms-transform-origin:top; + transform-origin:top; +} +.stackedcards-bottom, .stackedcards-top, .stackedcards-none{ + background-color:var(--color-neutral-0); + height:100%; +} +.stackedcards > span{ + -servicestudio-display:block !important; +} +.stackedcards-container .list.list-group > *{ + height:100%; + position:absolute; + top:0; + width:100%; + will-change:transform, opacity; +} +.stackedcards-container .list.list-group > *{ + -servicestudio-position:relative; +} +.stackedcards-overlay.left, .stackedcards-overlay.right, .stackedcards-overlay.top{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + height:100%; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + left:0; + opacity:0; + top:0; +} +.stackedcards-overlay.left, .stackedcards-overlay.right, .stackedcards-overlay.top{ + -servicestudio-left:inherit; + -servicestudio-opacity:0.7; + -servicestudio-width:100%; +} +.stackedcards-overlay.left > div, .stackedcards-overlay.left > div, .stackedcards-overlay.left > div, .stackedcards-overlay.right > div, .stackedcards-overlay.right > div, .stackedcards-overlay.right > div, .stackedcards-overlay.top > div, .stackedcards-overlay.top > div, .stackedcards-overlay.top > div{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + height:100%; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + width:100%; +} +.stackedcards-overlay.top{ + background-color:var(--color-info); + color:var(--color-neutral-0); +} +.stackedcards-overlay.top{ + -servicestudio-background-color:#2980b9; + -servicestudio-float:none; + -servicestudio-min-height:80px; + -servicestudio-width:100%; + -servicestudio-z-index:var(--layer-local-tier-1); +} +.stackedcards-overlay.right{ + background-color:var(--color-success); + color:var(--color-neutral-0); +} +.stackedcards-overlay.right{ + -servicestudio-background-color:#27ae60; + -servicestudio-float:right; + -servicestudio-min-height:80px; + -servicestudio-width:50%; + -servicestudio-z-index:var(--layer-local-tier-2); +} +.stackedcards-overlay.left{ + background-color:var(--color-error); + color:var(--color-neutral-0); +} +.stackedcards-overlay.left{ + -servicestudio-background-color:#c0392b; + -servicestudio-float:none; + -servicestudio-min-height:80px; + -servicestudio-width:50%; + -servicestudio-z-index:var(--layer-local-tier-2); +} +.stackedcards-overlay-hidden{ + display:none; +} +/*! 6.3.19. TimePicker */ +.osui-timepicker__dropdown .numInputWrapper span.arrowUp:after{ + border-bottom-color:var(--color-neutral-8); +} +.osui-timepicker__dropdown .numInputWrapper span.arrowDown:after{ + border-top-color:var(--color-neutral-8); +} +.osui-timepicker__dropdown .numInputWrapper .numInput{ + color:var(--color-neutral-9); +} +.osui-timepicker__dropdown .flatpickr-time .flatpickr-time-separator, +.osui-timepicker__dropdown .flatpickr-time .numInputWrapper .numInput{ + font-weight:var(--font-semi-bold); +} +.osui-timepicker__dropdown .flatpickr-time .flatpickr-time-separator{ + color:var(--color-neutral-7); + line-height:var(--space-xl); +} +.osui-timepicker__dropdown .flatpickr-am-pm{ + background-color:var(--color-neutral-7); + border-radius:var(--border-radius-rounded); + height:var(--space-m); + line-height:var(--space-m); + position:absolute; + right:var(--space-xs); + text-transform:uppercase; + width:var(--space-xl); +} +.osui-timepicker__dropdown .flatpickr-am-pm:hover, .osui-timepicker__dropdown .flatpickr-am-pm:focus{ + background-color:var(--color-neutral-8); +} +.osui-timepicker input[type=time]::-webkit-inner-spin-button, .osui-timepicker input[type=time]::-webkit-calendar-picker-indicator, .osui-timepicker input[type=time]::-webkit-datetime-edit-year-field, .osui-timepicker input[type=time]::-webkit-datetime-edit-month-field, .osui-timepicker input[type=time]::-webkit-datetime-edit-day-field, .osui-timepicker input[type=time]::-webkit-datetime-edit-fields-wrapper{ + display:none; + -moz-appearance:none; +} +.osui-timepicker input.flatpickr-input[disabled] + input{ + background-color:var(--color-neutral-2); + border:var(--border-size-s) solid var(--color-neutral-4); + color:var(--color-neutral-6); + pointer-events:none; +} +.osui-timepicker input[type=time]:first-of-type{ + display:none; +} +.osui-timepicker input[type=time]:first-of-type{ + -servicestudio-display:inline-flex !important; +} +.osui-timepicker__dropdown-ss-preview{ + display:none; + -servicestudio-display:none; +} +.osui-timepicker__dropdown-ss-preview{ + -servicestudio-background-color:transparent; + -servicestudio-background-position:top left; + -servicestudio-background-repeat:no-repeat; + -servicestudio-background-size:contain; + -servicestudio-border-radius:var(--border-radius-soft); + -servicestudio-display:inline-block; + -servicestudio-height:0; + -servicestudio-margin-top:2px; + -servicestudio-max-width:320px; + -servicestudio-overflow:hidden; + -servicestudio-position:relative; + -servicestudio-width:100%; + -servicestudio-z-index:var(--layer-local-tier-1); +} +.osui-timepicker__dropdown-ss-preview.time12h{ + -servicestudio-background-image:url("data:image/png;base64,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"); + -servicestudio-height:var(--space-xl); +} +.osui-timepicker__dropdown-ss-preview.time24h{ + -servicestudio-background-image:url("data:image/png;base64,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"); + -servicestudio-height:var(--space-xl); +} +.osui-timepicker__dropdown-ss-preview + .placeholder-ss-preview{ + -servicestudio-height:0; + -servicestudio-opacity:0; + -servicestudio-overflow:hidden; + -servicestudio-width:100%; +} +.osui-timepicker .not-valid + .input, +.osui-timepicker .not-valid + .flatpickr-mobile{ + border-color:var(--color-error); +} +.osui-timepicker .flatpickr-mobile ~ span.validation-message{ + bottom:-40px; +} +.form .osui-timepicker__dropdown-ss-preview{ + -servicestudio-margin-top:-22px; +} +html[data-uieditorversion^="1"] .osui-timepicker__dropdown-ss-preview.time12h, html[data-uieditorversion^="1"] .osui-timepicker__dropdown-ss-preview.time24h{ + -servicestudio-padding-top:min(var(--space-xl), 100%); + -servicestudio-height:0; +} +.osui-timepicker__dropdown.hasTime.noCalendar .flatpickr-time{ + padding:0; + height:var(--space-xl); +} +.osui-timepicker__dropdown.hasTime.noCalendar .flatpickr-time.time24hr:after{ + display:none; +} +.osui-timepicker__dropdown.hasTime.noCalendar .flatpickr-time .numInputWrapper{ + height:var(--space-xl); + -webkit-box-flex:1; + -ms-flex-positive:1; + flex-grow:1; +} +.osui-timepicker__dropdown.hasTime.noCalendar .flatpickr-time .flatpickr-am-pm{ + position:relative; + margin-left:var(--space-s); + margin-right:var(--space-s); +} +.osui-timepicker__dropdown.hasTime.noCalendar.dropdown--is-large .flatpickr-time{ + height:var(--space-xxl); + max-height:var(--space-xxl); +} +.osui-timepicker__dropdown.hasTime.noCalendar.dropdown--is-large .flatpickr-time .numInputWrapper{ + height:var(--space-xxl); +} +.osui-timepicker__dropdown.hasTime.noCalendar.dropdown--is-large .flatpickr-time .flatpickr-time-separator{ + line-height:var(--space-xxl); +} +.osui-timepicker__dropdown.hasTime.noCalendar.dropdown--is-small .flatpickr-time{ + height:var(--space-l); + max-height:var(--space-l); +} +.osui-timepicker__dropdown.hasTime.noCalendar.dropdown--is-small .flatpickr-time .numInputWrapper{ + height:var(--space-l); +} +.osui-timepicker__dropdown.hasTime.noCalendar.dropdown--is-small .flatpickr-time .flatpickr-time-separator{ + line-height:var(--space-l); +} +.osui-timepicker__dropdown:before, .osui-timepicker__dropdown:after{ + display:none; +} +/*! 6.3.20. Video */ +.osui-video{ + -servicestudio-background-image:url("data:image/png;base64,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"); + -servicestudio-background-position:top center; + -servicestudio-background-repeat:no-repeat; + -servicestudio-background-size:cover; + -servicestudio-max-width:100%; +} +/*! 6.4. Navigation */ +/*! 6.4.1. Bottom Bar Item */ +.bottom-bar-wrapper{ + background-color:var(--color-neutral-0); + border-top:var(--border-size-s) solid var(--color-neutral-3); + height:100%; +} +.bottom-bar{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; +} +.bottom-bar:empty:after{ + color:var(--color-neutral-7); + content:"Add Bottom Bar Items to this Container"; + display:block; + font-size:12px; + padding:20px; + text-align:center; +} +.bottom-bar > a, .bottom-bar > div{ + -webkit-box-flex:1; + -ms-flex:1; + flex:1; + max-width:150px; + overflow:hidden; +} +.bottom-bar > a{ + color:var(--color-neutral-8); +} +.bottom-bar > a.active{ + color:var(--color-primary); +} +.bottom-bar-item{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; + height:100%; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + overflow:hidden; + padding:0 var(--space-s); + position:relative; +} +.bottom-bar-item-icon{ + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; + font-size:var(--font-size-h6); + height:auto; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; +} +.bottom-bar-item-text{ + font-size:10px; + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap; + word-wrap:break-word; +} +.layout-native .bottom-bar-wrapper{ + padding-bottom:var(--os-safe-area-bottom); +} +.layout-native .bottom-bar{ + height:100%; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; +} +.layout-native .footer{ + height:var(--bottom-bar-size); +} +.has-accessible-features .bottom-bar > a:focus{ + background-color:transparent; + -webkit-box-shadow:0 0 0 3px var(--color-focus-outer); + box-shadow:0 0 0 3px var(--color-focus-outer); +} +/*! 6.4.2. Breadcrumbs */ +.breadcrumbs-content{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-box; + display:-ms-flexbox; + display:flex; +} +.breadcrumbs-item{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + color:var(--color-neutral-8); + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; +} +.breadcrumbs-item .icon{ + color:var(--color-neutral-7); + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; + font-size:var(--font-size-xs); + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + margin:var(--space-none) var(--space-s); + width:auto; +} +/*! 6.4.3. OverflowMenu */ +.osui-overflow-menu{ + display:inline-block; + --osui-overflow-menu-min-width:170px; + --border-radius-rounded:16px; +} +.osui-overflow-menu__trigger{ + --osui-floating-offset:var(--space-s); + border:var(--border-size-s) solid transparent; + border-radius:var(--osui-overflow-menu-shape); + color:var(--color-neutral-9); + width:32px; +} +.osui-overflow-menu__trigger *{ + pointer-events:none; +} +.osui-overflow-menu--is-open .osui-overflow-menu__trigger{ + background-color:var(--color-neutral-4); +} +.osui-overflow-menu__balloon{ + min-width:var(--osui-overflow-menu-min-width); + overflow:hidden; +} +.osui-overflow-menu__balloon a{ + color:var(--color-neutral-9); +} +.osui-overflow-menu__balloon a:hover{ + background:var(--color-neutral-4); + text-decoration:none; +} +.osui-overflow-menu__balloon a{ + -servicestudio-align-items:center; + -servicestudio-display:inline-flex !important; + -servicestudio-color:var(--color-neutral-9); + -servicestudio-padding:var(--space-s) var(--space-base); +} +.osui-overflow-menu__balloon a:not([class^=padding-]){ + padding:var(--space-s) var(--space-base); +} +.tablet .osui-overflow-menu, +.phone .osui-overflow-menu{ + --border-radius-rounded:100%; +} +.tablet .osui-overflow-menu .osui-overflow-menu__trigger.btn, +.phone .osui-overflow-menu .osui-overflow-menu__trigger.btn{ + width:40px; +} +/*! 6.4.4. Pagination */ +.pagination{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-pack:justify; + -ms-flex-pack:justify; + justify-content:space-between; + margin-top:var(--space-m); +} +.pagination-container{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; +} +.pagination-container > .pagination-button:first-child{ + margin-left:0; +} +.pagination-container .list{ + -servicestudio-display:none; +} +.pagination-button{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + background-color:var(--color-neutral-0); + border:var(--border-size-s) solid var(--color-neutral-4); + border-radius:var(--border-radius-soft); + color:var(--color-neutral-8); + cursor:pointer; + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; + height:32px; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + margin-left:var(--space-s); + padding:0; + width:32px; +} +.pagination-button[disabled]{ + opacity:0.5; + pointer-events:none; +} +.pagination-button.is--active{ + border:var(--border-size-s) solid var(--color-primary); + color:var(--color-primary); + cursor:auto; + pointer-events:none; +} +.pagination-button.is--ellipsis{ + background-color:transparent; + border:0; + cursor:auto; + width:16px; +} +.pagination-input{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-box; + display:-ms-flexbox; + display:flex; +} +.pagination-input{ + -servicestudio-display:none; +} +.pagination-counter{ + color:var(--color-neutral-7); +} +.pagination .list.list-group{ + overflow:initial; +} +.pagination .form-control[data-input]{ + height:32px; + margin:var(--space-none) var(--space-s); + padding:0; + text-align:center; + width:32px; +} +.desktop .pagination-button:not(.is--ellipsis):hover{ + background-color:rgba(21, 24, 26, 0.04); + border:var(--border-size-s) solid var(--color-neutral-4); +} +.tablet .pagination-button, +.tablet .pagination .form-control[data-input]{ + height:40px; + width:40px; +} +.phone .pagination{ + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; +} +.phone .pagination-container{ + margin-top:var(--space-base); +} +.phone .pagination-button, +.phone .pagination .form-control[data-input]{ + height:40px; + width:40px; +} +.is-rtl .pagination-button{ + margin-left:0; + margin-right:var(--space-s); +} +.is-rtl .pagination-button .icon{ + -webkit-transform:rotate(180deg); + -ms-transform:rotate(180deg); + transform:rotate(180deg); +} +.has-accessible-features .pagination-button:focus{ + border-color:var(--color-focus-inner); +} +/*! 6.4.5. Section Index */ +.osui-section-index{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; + position:relative; +} +.osui-section-index::before{ + background-color:var(--color-neutral-5); + bottom:0; + content:""; + left:0; + position:absolute; + top:0; + width:1px; +} +.osui-section-index.osui-section-index--is-sticky{ + position:sticky; + top:var(--top-position); +} +.osui-section-index-item, .osui-section-index-item:visited{ + color:var(--color-neutral-8); + cursor:pointer; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + padding-bottom:var(--space-xs); + padding-left:var(--space-m); + padding-top:var(--space-xs); + position:relative; +} +.osui-section-index-item:hover{ + color:var(--color-neutral-9); +} +.osui-section-index-item--is-active{ + color:var(--color-neutral-9); + font-weight:var(--font-semi-bold); +} +.osui-section-index-item--is-active::before{ + background-color:var(--color-primary); + bottom:0; + content:""; + left:0; + position:absolute; + top:0; + width:2px; +} +.has-accessible-features .osui-section-index-item:focus{ + background-color:transparent; + -webkit-box-shadow:0 0 0 3px var(--color-focus-outer); + box-shadow:0 0 0 3px var(--color-focus-outer); +} +.is-rtl .osui-section-index::before{ + left:auto; + right:0; +} +.is-rtl .osui-section-index-item, .is-rtl .osui-section-index-item:visited{ + padding-left:var(--space-none); + padding-right:var(--space-m); +} +.is-rtl .osui-section-index-item--is-active::before{ + left:auto; + right:0; +} +.phone .osui-section-index--is-sticky{ + left:calc(var(--os-safe-area-right) + var(--space-base)); + padding:0 var(--space-base) 0 0; + position:fixed; + top:calc(var(--header-size) + var(--header-size-content) + var(--status-bar-height)); + z-index:var(--layer-local-tier-1); +} +.phone .is-rtl .osui-section-index--is-sticky{ + left:initial; + right:calc(var(--os-safe-area-right) + var(--space-base)); + padding:0 0 var(--space-base) 0; +} +/*! 6.4.6. Submenu */ +.osui-submenu{ + cursor:pointer; + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; + position:relative; +} +.osui-submenu{ + -servicestudio-height:auto !important; +} +.osui-submenu:first-of-type:not(.osui-submenu--is-open) .osui-submenu__items{ + display:none; + opacity:0; +} +.osui-submenu:first-of-type:not(.osui-submenu--is-open) .osui-submenu__header .osui-submenu__header__icon{ + top:-1px; + -webkit-transform:rotate(-45deg); + -ms-transform:rotate(-45deg); + transform:rotate(-45deg); +} +.osui-submenu:hover .osui-submenu__header__icon:before{ + border:var(--border-size-s) solid var(--color-neutral-9); + border-right:0; + border-top:0; +} +.osui-submenu.active--is-open .osui-submenu__header__item{ + color:var(--color-primary); +} +.osui-submenu.active .osui-submenu__header{ + border-bottom:var(--border-size-m) solid var(--color-primary); +} +.osui-submenu.active .osui-submenu__header__item, +.osui-submenu.active .osui-submenu__header__item a{ + color:var(--color-primary); + text-decoration:none; +} +.osui-submenu.active .osui-submenu__header__icon:before{ + border:var(--border-size-s) solid var(--color-primary); + border-right:0; + border-top:0; +} +.osui-submenu--is-open .osui-submenu__header__icon{ + top:3px; + -webkit-transform:rotate(135deg); + -ms-transform:rotate(135deg); + transform:rotate(135deg); +} +.osui-submenu--is-open .osui-submenu__items{ + opacity:1; + pointer-events:auto; + -webkit-transform:translateY(0px); + -ms-transform:translateY(0px); + transform:translateY(0px); +} +.osui-submenu--is-dropdown .osui-submenu__header__icon{ + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; +} +.osui-submenu--is-hover.osui-submenu--is-open .osui-submenu__header{ + position:relative; +} +.osui-submenu--is-hover.osui-submenu--is-open .osui-submenu__header:after{ + content:""; + height:100%; + left:0; + position:absolute; + right:0; + top:100%; +} +.osui-submenu__header{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + border-bottom:var(--border-size-m) solid transparent; + border-top:var(--border-size-m) solid transparent; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + padding:var(--space-none) var(--space-s); + -webkit-transition:all 150ms linear; + transition:all 150ms linear; +} +.osui-submenu__header__icon{ + display:none; + margin-left:var(--space-s); + position:relative; + top:-1px; + -webkit-transform:rotate(-45deg); + -ms-transform:rotate(-45deg); + transform:rotate(-45deg); + -webkit-transition:all 150ms linear; + transition:all 150ms linear; +} +.osui-submenu__header__icon:before{ + border:var(--border-size-s) solid var(--color-neutral-8); + border-right:0; + border-top:0; + -webkit-box-sizing:border-box; + box-sizing:border-box; + content:""; + height:6px; + -webkit-transition:all 150ms linear; + transition:all 150ms linear; + width:6px; +} +.osui-submenu__header__item{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + color:var(--color-neutral-9); + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; + height:100%; + position:relative; + -webkit-transition:all 150ms linear; + transition:all 150ms linear; + -servicestudio-min-width:100px; + -servicestudio-margin-left:calc(var(--space-s) * -1); +} +.osui-submenu__header__item a{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + color:var(--color-neutral-8); + display:-webkit-box; + display:-ms-flexbox; + display:flex; + height:100%; +} +.osui-submenu__header__item a:hover{ + text-decoration:none; +} +.osui-submenu__items{ + background-color:var(--color-neutral-0); + border:var(--border-size-s) solid var(--color-neutral-4); + border-radius:var(--border-radius-soft); + -webkit-box-shadow:var(--shadow-m); + box-shadow:var(--shadow-m); + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; + left:0; + min-width:100px; + opacity:0; + padding:var(--space-s) var(--space-none); + pointer-events:none; + position:absolute; + top:calc(100% + var(--space-xs)); + -webkit-transform:translateY(-8px); + -ms-transform:translateY(-8px); + transform:translateY(-8px); + -webkit-transition:all 130ms ease-out; + transition:all 130ms ease-out; + z-index:var(--layer-global-elevated); +} +.osui-submenu__items{ + -servicestudio-opacity:1 !important; + -servicestudio-pointer-events:auto !important; + -servicestudio-top:100% !important; + -servicestudio-transform:translateY(0px) !important; +} +.osui-submenu__items a{ + color:var(--color-neutral-8); + margin:0; + padding:var(--space-s) var(--space-base); + white-space:nowrap; +} +.osui-submenu__items a.active{ + color:var(--color-primary); +} +.layout:not(.layout-side) .app-menu-links .osui-submenu a{ + border-bottom:none; +} +.layout .header .osui-submenu__items{ + -servicestudio-display:none !important; +} +.layout-side .app-menu-links .osui-submenu a{ + border-left:none; +} +.layout-side .app-menu-links .osui-submenu{ + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; + width:100%; +} +.layout-side .app-menu-links .osui-submenu.active .osui-submenu__header{ + border-left:var(--border-size-m) solid var(--color-primary); +} +.layout-side .app-menu-links .osui-submenu--is-open > .osui-submenu__items{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; +} +.layout-side .app-menu-links .osui-submenu .osui-submenu__header{ + border-bottom:0; + border-left:var(--border-size-m) solid transparent; + border-top:0; + padding:var(--space-s) var(--space-m); +} +.layout-side .app-menu-links .osui-submenu .osui-submenu__header__item{ + -webkit-box-flex:1; + -ms-flex:1; + flex:1; +} +.layout-side .app-menu-links .osui-submenu__items{ + border:none; + -webkit-box-shadow:none; + box-shadow:none; + display:none; + opacity:1; + padding:var(--space-xs) var(--space-m); + pointer-events:auto; + position:relative; + top:0; + -webkit-transform:translateY(0); + -ms-transform:translateY(0); + transform:translateY(0); +} +.layout-side .app-menu-links .osui-submenu__items a{ + padding:var(--space-s) var(--space-base); +} +.layout-side .app-menu-links .osui-submenu__header a, +.menu-visible .app-menu-links .osui-submenu__header a{ + padding:var(--space-none); +} +.desktop .osui-submenu:hover .osui-submenu__header__item{ + color:var(--color-neutral-9); +} +.desktop .osui-submenu.active .osui-submenu__header:hover .osui-submenu__header__item{ + color:var(--color-primary); +} +.desktop .osui-submenu__header:hover{ + border-bottom:var(--border-size-m) solid var(--color-primary); +} +.desktop .osui-submenu__header__item a:hover{ + color:var(--color-neutral-9); +} +.desktop .osui-submenu__items a:hover{ + background-color:var(--color-neutral-2); + color:var(--color-neutral-9); +} +.desktop .osui-submenu__items a.active:hover{ + color:var(--color-primary); +} +.desktop .layout:not(.layout-side) .app-menu-links .osui-submenu{ + height:100%; +} +.desktop .layout-side .app-menu-links .osui-submenu__header:hover{ + border-bottom:none; + border-left:var(--border-size-m) solid var(--color-primary); +} +.has-accessible-features .osui-submenu:focus-within{ + -webkit-box-shadow:0 0 0 3px var(--color-focus-outer); + box-shadow:0 0 0 3px var(--color-focus-outer); + outline:0; +} +.tablet .has-accessible-features .osui-submenu:focus-within, +.phone .has-accessible-features .osui-submenu:focus-within{ + -webkit-box-shadow:0 0 0 3px var(--color-focus-outer); + box-shadow:0 0 0 3px var(--color-focus-outer); + outline:0; +} +.tablet .osui-submenu, +.phone .osui-submenu{ + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; + width:100%; +} +.tablet .osui-submenu.active .osui-submenu__header, +.phone .osui-submenu.active .osui-submenu__header{ + border-left:var(--border-size-m) solid var(--color-primary); + border-bottom:0; +} +.tablet .osui-submenu--is-open .osui-submenu__items, +.phone .osui-submenu--is-open .osui-submenu__items{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; +} +.tablet .osui-submenu__header, +.phone .osui-submenu__header{ + border-bottom:0; + border-left:var(--border-size-m) solid transparent; + border-top:0; + padding:var(--space-s) var(--space-m); +} +.tablet .osui-submenu__header__item, +.phone .osui-submenu__header__item{ + -webkit-box-flex:1; + -ms-flex:1; + flex:1; +} +.tablet .osui-submenu__items, +.phone .osui-submenu__items{ + border:none; + -webkit-box-shadow:none; + box-shadow:none; + display:none; + opacity:1; + padding:var(--space-xs) var(--space-m); + pointer-events:auto; + position:relative; + top:0; + -webkit-transform:translateY(0); + -ms-transform:translateY(0); + transform:translateY(0); +} +.is-rtl .layout-side .osui-submenu .osui-submenu__header{ + border-left:0; + border-right:var(--border-size-m) solid transparent; +} +.is-rtl .layout-side .osui-submenu.active .osui-submenu__header{ + border-left:var(--border-size-none); + border-right:var(--border-size-m) solid var(--color-primary); +} +.is-rtl.tablet .osui-submenu.active .osui-submenu__header, .is-rtl.phone .osui-submenu.active .osui-submenu__header{ + border-left:0; + border-right:var(--border-size-m) solid var(--color-primary); +} +.is-rtl.tablet .osui-submenu .osui-submenu__header, .is-rtl.phone .osui-submenu .osui-submenu__header{ + border-left:0; + border-right:var(--border-size-m) solid transparent; +} +.is-rtl .osui-submenu__header__icon{ + margin-left:var(--space-none); + margin-right:var(--space-s); +} +/*! 6.4.7. Tabs */ +.osui-tabs{ + --header-item-width:fit-content(30%); + --header-item-alignment:auto; + --tabs-indicator-size:1px; + display:grid; + height:var(--tabs-height); + overflow:hidden; +} +.osui-tabs--is-vertical.osui-tabs--is-right{ + grid-auto-flow:dense; + grid-template-columns:1fr var(--header-item-width); +} +.osui-tabs--is-vertical.osui-tabs--is-right > .osui-tabs__header{ + grid-column:2; +} +.osui-tabs--is-vertical.osui-tabs--is-right > .osui-tabs__header .osui-tabs__header-item{ + padding:var(--space-s) 0 var(--space-s) var(--space-base); +} +.osui-tabs--is-vertical.osui-tabs--is-right > .osui-tabs__header > .osui-tabs__header__indicator{ + left:0; +} +.osui-tabs--is-vertical.osui-tabs--is-right .osui-tabs__content{ + border-right:var(--border-size-s) solid var(--color-neutral-5); + margin-right:-1px; +} +.osui-tabs--is-vertical.osui-tabs--is-left{ + grid-auto-flow:row; + grid-template-columns:var(--header-item-width) 1fr; +} +.osui-tabs--is-vertical.osui-tabs--is-left > .osui-tabs__header .osui-tabs__header-item{ + -webkit-box-pack:start; + -ms-flex-pack:start; + justify-content:flex-start; + padding:var(--space-s) var(--space-base) var(--space-s) 0; +} +.osui-tabs--is-vertical.osui-tabs--is-left > .osui-tabs__header > .osui-tabs__header__indicator{ + right:0; +} +.osui-tabs--is-vertical.osui-tabs--is-left .osui-tabs__content{ + border-left:var(--border-size-s) solid var(--color-neutral-5); + margin-left:-1px; +} +.osui-tabs--is-vertical > .osui-tabs__header{ + -ms-flex-line-pack:start; + align-content:start; + grid-template-rows:repeat(var(--tabs-header-items), var(--header-item-alignment)); + overflow:hidden; +} +.osui-tabs--is-vertical > .osui-tabs__header .osui-tabs__header-item{ + -webkit-box-flex:0; + -ms-flex:none; + flex:none; +} +.osui-tabs--is-vertical > .osui-tabs__header > .osui-tabs__header__indicator{ + height:var(--tabs-indicator-size); + position:absolute; + top:0; + -webkit-transform:translateY(var(--tabs-indicator-transform)) translateX(0) translateZ(0); + transform:translateY(var(--tabs-indicator-transform)) translateX(0) translateZ(0); + width:2px; +} +.osui-tabs--is-vertical .osui-tabs__content{ + width:auto; +} +.osui-tabs--is-vertical .osui-tabs__content-item{ + padding:var(--space-none) var(--space-m); +} +.osui-tabs--is-horizontal{ + grid-auto-flow:column; + grid-template-rows:auto 1fr; +} +.osui-tabs--is-horizontal > .osui-tabs__header{ + grid-template-columns:repeat(var(--tabs-header-items), var(--header-item-alignment)); + -webkit-box-pack:start; + -ms-flex-pack:start; + justify-content:start; + overflow-y:hidden; + overflow-x:auto; + word-break:keep-all; +} +.osui-tabs--is-horizontal > .osui-tabs__header .osui-tabs__header-item{ + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + padding:var(--space-s) var(--space-base); +} +.osui-tabs--is-horizontal .osui-tabs__header__indicator{ + bottom:0; + height:2px; + -webkit-transform:translateX(var(--tabs-indicator-transform)) translateY(0) translateZ(0); + transform:translateX(var(--tabs-indicator-transform)) translateY(0) translateZ(0); + width:var(--tabs-indicator-size); +} +.osui-tabs--is-horizontal .osui-tabs__content{ + border-top:var(--border-size-s) solid var(--color-neutral-5); + margin-top:-1px; +} +.osui-tabs--is-justified{ + --header-item-alignment:1fr; +} +.osui-tabs--is-justified.osui-tabs--is-horizontal .osui-tabs__header{ + -webkit-box-pack:initial; + -ms-flex-pack:initial; + justify-content:initial; +} +.osui-tabs--is-justified.osui-tabs--is-vertical .osui-tabs__header{ + -ms-flex-line-pack:initial; + align-content:initial; +} +.osui-tabs--has-auto-height .osui-tabs__content-item{ + display:none; +} +.osui-tabs--has-auto-height .osui-tabs__content-item.osui-tabs--is-active{ + display:block; +} +.osui-tabs--has-drag:not(.osui-tabs--is-vertical) .osui-tabs__content{ + overflow-x:auto; + -ms-scroll-snap-type:x mandatory; + scroll-snap-type:x mandatory; +} +.osui-tabs:not(.osui-tabs--has-drag) .osui-tabs__content:not(:focus-within){ + -ms-scroll-snap-type:x mandatory; + scroll-snap-type:x mandatory; +} +.osui-tabs__header{ + display:grid; + height:-webkit-fit-content; + min-height:100%; + position:relative; +} +.osui-tabs__header-item{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + background-color:transparent; + border:none; + color:var(--color-neutral-8); + cursor:pointer; + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; + height:100%; + position:relative; + min-height:42px; + text-align:unset; + width:100%; +} +.osui-tabs__header-item:hover:not(.osui-tabs--is-active){ + color:var(--color-neutral-10); +} +.osui-tabs__header-item:hover[disabled]{ + color:var(--color-neutral-6); +} +.osui-tabs__header-item.osui-tabs--is-active{ + color:var(--color-neutral-10); + text-shadow:0 0 0.5px currentColor; +} +.osui-tabs__header-item[disabled]{ + color:var(--color-neutral-6); + cursor:auto; +} +.osui-tabs__header__indicator{ + background-color:var(--color-primary); + position:absolute; + -webkit-transition:-webkit-transform 200ms linear; + transition:-webkit-transform 200ms linear; + transition:transform 200ms linear; + transition:transform 200ms linear, -webkit-transform 200ms linear; + -webkit-transform-origin:0 0; + -ms-transform-origin:0 0; + transform-origin:0 0; + will-change:transform; + z-index:var(--layer-local-tier-1); +} +.osui-tabs__header__indicator[disabled]{ + background-color:var(--color-neutral-6); +} +.osui-tabs__header{ + -servicestudio-display:grid; + -servicestudio-grid-auto-flow:column; + -servicestudio-gap:var(--space-s); +} +.osui-tabs__content{ + display:grid; + grid-auto-flow:column; + grid-auto-columns:100%; + overflow:hidden; + overscroll-behavior-x:contain; + position:relative; + width:100%; +} +.osui-tabs__content::-webkit-scrollbar{ + display:none; +} +.osui-tabs__content-item{ + height:100%; + overflow-y:var(--tabs-content-item-overflow); + padding:var(--space-m) var(--space-none); + scroll-snap-align:start; + scroll-snap-stop:always; +} +.osui-tabs__content-item{ + -servicestudio-display:block !important; + -servicestudio-margin-bottom:var(--space-m); +} +.osui-tabs__content-item div:empty{ + -servicestudio-padding:var(--space-m); +} +.osui-tabs__content-item .columns{ + max-width:99.99%; +} +.osui-tabs__header > .ph > .OSBlockWidget, .osui-tabs__header > .ph > .list.list-group, .osui-tabs__content > .ph > .OSBlockWidget, .osui-tabs__content > .ph > .list.list-group{ + display:contents; +} +.osui-tabs .osui-tabs__header-item, +.osui-tabs .osui-tabs__header-item > *, +.osui-tabs .osui-tabs__content-item{ + -servicestudio-border:1px dashed var(--color-neutral-5); + -servicestudio-width:100%; +} +.osui-tabs .osui-tabs__content-item .display-contents{ + -servicestudio-display:block; +} +.is-rtl .osui-tabs.osui-tabs--is-vertical.osui-tabs--is-right .osui-tabs__header-item{ + -webkit-box-pack:start; + -ms-flex-pack:start; + justify-content:flex-start; + padding:var(--space-xs) var(--space-base) var(--space-xs) 0; +} +.is-rtl .osui-tabs.osui-tabs--is-vertical.osui-tabs--is-right .osui-tabs__header > .osui-tabs__header__indicator{ + left:unset; + right:0; +} +.is-rtl .osui-tabs.osui-tabs--is-vertical.osui-tabs--is-right .osui-tabs__content{ + border-left:var(--border-size-s) solid var(--color-neutral-5); + margin-left:-1px; + border-right:0; +} +.is-rtl .osui-tabs.osui-tabs--is-vertical.osui-tabs--is-left .osui-tabs__header{ + grid-column:1; +} +.is-rtl .osui-tabs.osui-tabs--is-vertical.osui-tabs--is-left .osui-tabs__header-item{ + padding:var(--space-xs) 0 var(--space-xs) var(--space-base); +} +.is-rtl .osui-tabs.osui-tabs--is-vertical.osui-tabs--is-left .osui-tabs__header > .osui-tabs__header__indicator{ + left:0; + right:unset; +} +.is-rtl .osui-tabs.osui-tabs--is-vertical.osui-tabs--is-left .osui-tabs__content{ + border-right:var(--border-size-s) solid var(--color-neutral-5); + margin-right:-1px; + border-left:0; +} +.is-rtl .osui-tabs.osui-tabs--is-horizontal .osui-tabs__header > .osui-tabs__header__indicator{ + -webkit-transform-origin:right; + -ms-transform-origin:right; + transform-origin:right; +} +.has-accessible-features .osui-tabs__header-item:focus{ + -webkit-box-shadow:none; + box-shadow:none; +} +.has-accessible-features .osui-tabs__header-item:focus-visible{ + background-color:var(--color-focus-outer); + color:var(--color-neutral-10); +} +.has-accessible-features .osui-tabs__content-item:focus-visible{ + -webkit-box-shadow:0 0 0 1px var(--color-focus-outer) inset; + box-shadow:0 0 0 1px var(--color-focus-outer) inset; +} +.windows.chrome .osui-accordion .osui-tabs__header__indicator, +.windows.chrome .section-expandable .osui-tabs__header__indicator, +.windows.edge .osui-accordion .osui-tabs__header__indicator, +.windows.edge .section-expandable .osui-tabs__header__indicator, +.osx.chrome .osui-accordion .osui-tabs__header__indicator, +.osx.chrome .section-expandable .osui-tabs__header__indicator, +.osx.edge .osui-accordion .osui-tabs__header__indicator, +.osx.edge .section-expandable .osui-tabs__header__indicator{ + -webkit-perspective:1000px; + perspective:1000px; +} +.osui-tabs__preview{ + display:none; +} +.osui-tabs__header__indicator{ + -servicestudio-display:none; +} +.osui-tabs--is-vertical .osui-tabs__header{ + -servicestudio-display:flex; + -servicestudio-flex-direction:column; +} +.osui-tabs--is-vertical .osui-tabs__header-item{ + -servicestudio-height:auto; +} +.osui-tabs--is-vertical .osui-tabs--is-active::after{ + -servicestudio-left:unset; + -servicestudio-right:0; + -servicestudio-width:2px; + -servicestudio-height:100%; +} +.osui-tabs--is-vertical.osui-tabs--is-right .osui-tabs--is-active::after{ + -servicestudio-left:0; + -servicestudio-right:unset; +} +.osui-tabs--is-active::after{ + -servicestudio-content:""; + -servicestudio-bottom:0; + -servicestudio-left:0; + -servicestudio-width:100%; + -servicestudio-height:2px; + -servicestudio-background-color:var(--color-primary); + -servicestudio-position:absolute; +} +html[data-uieditorversion^="1"] .osui-tabs__preview.osui-tabs__preview--is-active{ + -servicestudio-display:block; + -servicestudio-height:auto; + -servicestudio-min-height:48px; + -servicestudio-width:auto; + -servicestudio-position:relative; +} +html[data-uieditorversion^="1"] .osui-tabs__preview--is-active::after{ + -servicestudio-align-items:center; + -servicestudio-background-color:var(--color-neutral-0); + -servicestudio-border:1px solid var(--color-neutral-3); + -servicestudio-content:"TabsContentItems are currently hidden. Use the toggle to preview them inside Service Studio."; + -servicestudio-display:flex; + -servicestudio-justify-content:center; + -servicestudio-font-weight:var(--font-semi-bold); + -servicestudio-height:auto; + -servicestudio-padding:var(--space-s); + -servicestudio-position:absolute; + -servicestudio-width:100%; +} +/*! 6.4.8. Timeline */ +.timeline-item{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-pack:justify; + -ms-flex-pack:justify; + justify-content:space-between; + position:relative; +} +.timeline-item .timeline-content{ + -webkit-box-flex:1; + -ms-flex:1; + flex:1; + margin-bottom:var(--space-xl); +} +.timeline-icon{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-orient:vertical; + -webkit-box-direction:reverse; + -ms-flex-direction:column-reverse; + flex-direction:column-reverse; + position:relative; +} +.timeline-icon-line{ + background-color:var(--color-neutral-5); + -webkit-box-flex:1; + -ms-flex:1; + flex:1; + margin:var(--space-s) var(--space-none) var(--space-s); + width:1px; +} +.timeline-icon-container{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + border-radius:var(--border-radius-circle); + color:var(--color-neutral-0); + display:-webkit-box; + display:-ms-flexbox; + display:flex; + font-size:var(--font-size-xs); + height:24px; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + margin:var(--space-none) var(--space-base); + text-align:center; + width:24px; +} +.timeline-icon-container:empty{ + height:8px; + margin-top:var(--space-xs); + width:8px; +} +.timeline-right, .timeline-content-inner{ + color:var(--color-neutral-8); +} +[data-block="Navigation.TimelineItem"]:last-of-type .timeline-icon{ + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; +} +[data-block="Navigation.TimelineItem"]:last-of-type .timeline-icon-line{ + display:none; +} +/*! 6.4.9. Wizard */ +.wizard-wrapper.wizard-vertical [data-block*=WizardItem] .wizard-wrapper-item{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + -webkit-box-orient:horizontal; + -webkit-box-direction:normal; + -ms-flex-direction:row; + flex-direction:row; + margin-bottom:var(--space-l); +} +.wizard-wrapper.wizard-vertical [data-block*=WizardItem] .wizard-wrapper-item.label-top{ + -webkit-box-orient:horizontal; + -webkit-box-direction:reverse; + -ms-flex-direction:row-reverse; + flex-direction:row-reverse; +} +.wizard-wrapper.wizard-vertical [data-block*=WizardItem]:last-child{ + margin-bottom:var(--space-none); +} +.wizard-wrapper.wizard-vertical .list{ + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; +} +.wizard-wrapper [data-block*=WizardItem]{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-flex:1; + -ms-flex:1; + flex:1; + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; + position:relative; + width:100%; +} +.wizard-wrapper [data-block*=WizardItem]:first-child .wizard-item-icon-wrapper:before{ + content:none; +} +.wizard-wrapper [data-block*=WizardItem] .wizard-wrapper-item{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; + width:100%; +} +.wizard-wrapper [data-block*=WizardItem] .wizard-wrapper-item.label-top{ + -webkit-box-orient:vertical; + -webkit-box-direction:reverse; + -ms-flex-direction:column-reverse; + flex-direction:column-reverse; +} +.wizard-wrapper [data-block*=WizardItem] .wizard-item-label{ + color:var(--color-neutral-7); + text-align:center; +} +.wizard-wrapper .list{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + width:100%; +} +.wizard-item-icon{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + background-color:var(--color-neutral-0); + border:var(--border-size-s) solid var(--color-neutral-5); + border-radius:var(--border-radius-circle); + color:var(--color-neutral-7); + display:-webkit-box; + display:-ms-flexbox; + display:flex; + height:32px; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + margin:0 auto; + position:relative; + width:32px; + z-index:var(--layer-local-tier-1); +} +.wizard-item-icon:empty{ + height:8px; + width:8px; +} +.wizard-item-icon-wrapper{ + margin:var(--space-s) var(--space-none); + position:relative; + width:100%; +} +.wizard-item-icon-wrapper:before{ + content:""; + height:2px; + position:absolute; + right:calc(50% + 12px); + top:50%; + -webkit-transform:translateY(-50%); + -ms-transform:translateY(-50%); + transform:translateY(-50%); + width:calc(100% - 24px); + z-index:var(--layer-global-screen); +} +.wizard-item-icon .icon{ + font-size:var(--font-size-xs); + width:auto; +} +.wizard-wrapper-item.active .wizard-item-icon{ + background-color:var(--color-neutral-0); + border-color:var(--color-primary); + color:var(--color-primary); +} +.wizard-wrapper-item.active .wizard-item-icon-wrapper:before{ + background-color:var(--color-primary); +} +.wizard-wrapper-item.active .wizard-item-label{ + color:var(--color-neutral-10); +} +.wizard-wrapper-item.past .wizard-item-icon{ + background-color:var(--color-primary); + border-color:var(--color-primary); + color:var(--color-neutral-0); +} +.wizard-wrapper-item.past .wizard-item-icon-wrapper:before{ + background-color:var(--color-primary); +} +.wizard-wrapper-item.past .wizard-item-label{ + color:var(--color-neutral-8); +} +.wizard-wrapper-item.next .wizard-item-icon-wrapper:before{ + background-color:var(--color-neutral-5); +} +.wizard-wrapper-item.next .wizard-item-icon .fa-fw{ + color:var(--color-neutral-5); +} +.wizard-vertical .wizard-item-icon-wrapper{ + margin:var(--space-none) var(--space-s) var(--space-none) var(--space-none); + width:auto; +} +.wizard-vertical .wizard-wrapper-item .wizard-item-icon-wrapper:before{ + bottom:calc(50% + 12px); + height:calc(100% + 18px); + left:50%; + top:auto; + -webkit-transform:translateY(0) translateX(-50%); + -ms-transform:translateY(0) translateX(-50%); + transform:translateY(0) translateX(-50%); + width:2px; +} +.wizard-vertical .wizard-wrapper-item.label-top .wizard-item-label{ + text-align:right; +} +.wizard-vertical .wizard-wrapper-item.label-top .wizard-item-icon-wrapper{ + margin:var(--space-none) var(--space-none) var(--space-none) var(--space-s); +} +html[data-uieditorversion^="1"] .wizard-wrapper .OSBlockWidget{ + -servicestudio-display:contents; +} +html[data-uieditorversion^="1"] .wizard-wrapper .OSBlockWidget:first-child .wizard-item-icon-wrapper:before{ + -servicestudio-content:none; +} +html[data-uieditorversion^="1"] .wizard-wrapper .OSBlockWidget:first-child .wizard-item-icon-wrapper.label-top{ + -servicestudio-flex-direction:column-reverse; +} +html[data-uieditorversion^="1"] .wizard-wrapper.wizard-vertical .OSBlockWidget .wizard-wrapper-item.label-top{ + -servicestudio-flex-direction:row-reverse; +} +html[data-uieditorversion^="1"] .wizard-wrapper.wizard-vertical .OSBlockWidget:last-child{ + -servicestudio-margin-bottom:var(--space-none); +} +html[data-uieditorversion^="1"] .wizard-wrapper-item{ + -servicestudio-display:flex; + -servicestudio-flex-direction:column; + -servicestudio-width:100%; +} +.is-rtl .wizard-vertical .wizard-item-icon-wrapper{ + margin:var(--space-none) var(--space-none) var(--space-none) var(--space-s); +} +.is-rtl .wizard-vertical .wizard-wrapper-item.label-top .wizard-item-icon-wrapper{ + margin:var(--space-none) var(--space-s) var(--space-none) var(--space-none); +} +.is-rtl .wizard-item-icon-wrapper:before{ + left:calc(50% + 12px); + right:auto; +} +/*! 6.5. Numbers */ +/*! 6.5.1. Badge */ +.badge{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + color:var(--color-neutral-0); + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; + font-weight:var(--font-semi-bold); + height:32px; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + line-height:1; + min-width:32px; +} +.badge.background-neutral-0{ + color:var(--color-primary); +} +.badge.background-neutral-1, .badge.background-neutral-2, .badge.background-neutral-3, .badge.background-neutral-4{ + color:var(--color-neutral-9); +} +.badge.background-transparent{ + color:var(--color-primary); +} +.badge-small{ + font-size:var(--font-size-xs); + height:24px; + min-width:24px; + padding:var(--space-none) var(--space-xs); +} +.badge-medium{ + font-size:var(--font-size-base); + height:40px; + min-width:40px; +} +.badge span{ + width:auto; +} +/*! 6.5.2. Counter */ +.counter{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + padding:var(--space-none) var(--space-m); + word-break:keep-all; +} +.counter.background-transparent{ + border:none; +} +.counter .center-align{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + width:100%; +} +.counter .center-align.flex-direction-column{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; +} +.counter .center-align.flex-direction-row{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + -webkit-box-pack:justify; + -ms-flex-pack:justify; + justify-content:space-between; +} +/*! 6.5.3. Icon Badge */ +.icon-badge{ + display:inline-block; + position:relative; +} +.icon-badge .badge{ + left:45%; + position:absolute; + top:0; + border-radius:var(--border-radius-rounded); + font-size:var(--font-size-xs); + height:18px; + min-width:18px; + padding:var(--space-none) var(--space-xs); + -webkit-transform:translateY(-40%); + -ms-transform:translateY(-40%); + transform:translateY(-40%); + white-space:nowrap; +} +.icon-badge .badge [data-expression]{ + white-space:nowrap; +} +.icon-badge .icon{ + font-size:var(--font-size-h4); +} +.icon-badge div:first-child:empty{ + -servicestudio-height:30px; + -servicestudio-width:30px; +} +.layout-native .bottom-bar-wrapper .icon-badge .icon{ + font-size:inherit; +} +/*! 6.5.4. Progress */ +/*! 6.5.4.1 Progress Bar */ +.osui-progress-bar{ + --progress-value:0%; + min-height:var(--thickness); + position:relative; +} +.osui-progress-bar{ + -servicestudio-min-height:var(--thickness, 8px); +} +.osui-progress-bar__container{ + min-height:var(--thickness); + position:relative; +} +.osui-progress-bar__container{ + -servicestudio-min-height:var(--thickness, 8px); +} +.osui-progress-bar__container.animate-entrance .osui-progress-bar__value:before{ + -webkit-transition-delay:0.5s; + transition-delay:0.5s; +} +.osui-progress-bar__container.animate-entrance .osui-progress-bar__value:before, .osui-progress-bar__container.animate-progress-change .osui-progress-bar__value:before{ + -webkit-transition-duration:0.35s; + transition-duration:0.35s; +} +.osui-progress-bar__value{ + border-radius:calc(var(--shape) / 2); + height:var(--thickness); + left:0; + overflow:hidden; + position:absolute; + right:0; +} +.osui-progress-bar__value{ + -servicestudio-height:var(--thickness, 8px); +} +.osui-progress-bar__value:after, .osui-progress-bar__value:before{ + border-radius:calc(var(--shape) / 2); + content:""; + height:100%; + left:0; + position:absolute; + top:0; +} +.osui-progress-bar__value:after, .osui-progress-bar__value:before{ + -servicestudio-border-radius:var(--shape, var(--border-radius-rounded)); +} +.osui-progress-bar__value:after{ + background:var(--trail-color); + width:100%; +} +.osui-progress-bar__value:after{ + -servicestudio-background:var(--trail-color, var(--color-neutral-3)); +} +.osui-progress-bar__value:before{ + background:var(--progress-gradient, var(--progress-color)); + width:var(--progress-value); + z-index:var(--layer-local-tier-1); +} +.osui-progress-bar__value:before{ + -servicestudio-background:var(--progress-color, var(--color-primary)); + -servicestudio-width:var(--progress-value, 50%); +} +.osui-progress-bar__content{ + left:0; + padding:var(--space-none) var(--space-s); + position:absolute; + top:50%; + -webkit-transform:translateY(-50%); + -ms-transform:translateY(-50%); + transform:translateY(-50%); + width:100%; + z-index:var(--layer-local-tier-1); +} +.osui-progress-bar__content{ + -servicestudio-text-align:center; +} +.is-rtl .osui-progress-bar__value:before{ + left:inherit; + right:0; +} +/*! 6.5.4.2 Progress Circle */ +[data-block*=ProgressCircle]{ + display:inline-block; +} +.osui-progress-circle{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + height:var(--progress-circle-size); + position:relative; + width:var(--progress-circle-size); +} +.osui-progress-circle__container{ + display:inline-block; + height:var(--circle-size); + margin:0 auto; + position:relative; + width:var(--circle-size); + z-index:var(--layer-global-screen); +} +.osui-progress-circle__container > div{ + display:block; + min-height:inherit; + min-width:inherit; +} +.osui-progress-circle__container__progress-path, .osui-progress-circle__container__trail-path{ + cx:50%; + cy:50%; + fill:transparent; + left:0; + position:absolute; + r:var(--radius); + stroke-width:var(--thickness); + top:0; + -webkit-transform:rotate(-90deg); + -ms-transform:rotate(-90deg); + transform:rotate(-90deg); + -webkit-transform-origin:center; + -ms-transform-origin:center; + transform-origin:center; +} +.osui-progress-circle__container__progress-path{ + stroke:var(--progress-circle-gradient-url, var(--progress-color, var(--color-primary))); + stroke-dasharray:var(--stroke-dasharray); + stroke-dashoffset:var(--stroke-dashoffset); + stroke-linecap:var(--shape); + -webkit-transition:stroke-dashoffset 0; + transition:stroke-dashoffset 0; +} +.osui-progress-circle__container__progress-path.animate-entrance, .osui-progress-circle__container__progress-path.animate-progress-change{ + -webkit-transition-duration:0.35s; + transition-duration:0.35s; +} +.osui-progress-circle__container__progress-path.animate-entrance{ + -webkit-transition-delay:0.5s; + transition-delay:0.5s; +} +.osui-progress-circle__container__trail-path{ + stroke:var(--trail-color, var(--color-neutral-3)); +} +.osui-progress-circle__content{ + left:50%; + position:absolute; + text-align:center; + top:50%; + -webkit-transform:translate(-50%, -50%); + -ms-transform:translate(-50%, -50%); + transform:translate(-50%, -50%); + width:80%; + z-index:var(--layer-local-tier-1); +} +.osui-progress-circle .osui-inline-svg{ + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; + height:var(--circle-size) !important; + position:relative; + width:var(--circle-size); +} +.osui-progress-circle .osui-inline-svg svg{ + height:var(--circle-size); + width:var(--circle-size); +} +.is-rtl .osui-progress-circle .svg-wrapper{ + -webkit-transform:scaleX(-1); + -ms-transform:scaleX(-1); + transform:scaleX(-1); +} +/*! 6.5.5. Rating */ +.rating{ + position:relative; + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; + -ms-flex-wrap:wrap; + flex-wrap:wrap; + font-size:var(--rating-size); + pointer-events:none; + --rating-size:16px; +} +.rating{ + -servicestudio-display:inline-flex; +} +.rating.rating-small{ + --rating-size:8px; +} +.rating.rating-small .rating-item{ + padding-right:calc(var(--rating-size) + var(--space-xs)); +} +.rating.rating-medium{ + --rating-size:24px; +} +.rating.is-edit{ + pointer-events:initial; +} +.rating.is-edit .rating-item{ + cursor:pointer; + pointer-events:auto; +} +.rating fieldset{ + border:none; + display:contents; + margin:0; + padding:0; +} +.rating-item{ + display:inline-block; + height:var(--rating-size); + padding-right:calc(var(--rating-size) + var(--space-s)); + position:relative; + width:var(--rating-size); +} +.rating-item-filled, .rating-item-half, .rating-item-empty{ + left:0; + line-height:1; + position:absolute; + top:0; + -webkit-transition:opacity linear 150ms; + transition:opacity linear 150ms; +} +.rating-item-filled, .rating-item-half, .rating-item-empty{ + -servicestudio-margin-right:var(--space-s); + -servicestudio-min-height:24px; + -servicestudio-min-width:24px; + -servicestudio-opacity:1 !important; + -servicestudio-position:relative; +} +.rating-item-filled{ + opacity:1; + z-index:var(--layer-local-tier-1); +} +.rating-item-empty, .rating-item-half{ + opacity:0; + z-index:var(--layer-global-screen); +} +.rating-item:last-of-type{ + padding-right:0; +} +.rating input:checked + .rating-item .rating-item-empty, .rating input:checked ~ .rating-item .rating-item-filled{ + opacity:0; +} +.rating.is-half input:checked ~ .rating-item .rating-item-half{ + opacity:0; +} +.rating:hover input + .rating-item .rating-item-filled{ + opacity:1; +} +.rating input{ +} +.rating input:first-of-type + .rating-item{ + background:transparent; + display:none; + height:100%; + left:0; + position:absolute; + top:0; + width:100%; + -webkit-box-shadow:0 0 0 3px var(--color-focus-outer); + box-shadow:0 0 0 3px var(--color-focus-outer); +} +.rating input:first-of-type:focus:checked + .rating-item{ + display:block; +} +.rating input:checked + .rating-item .rating-item-filled, .rating input:checked + .rating-item .rating-item-half, .rating input:checked ~ .rating-item .rating-item-empty, .rating input:hover ~ .rating-item .rating-item-empty, .rating input:focus ~ .rating-item .rating-item-empty, .rating input:focus + .rating-item .rating-item-filled{ + opacity:1; +} +.rating input:hover ~ .rating-item .rating-item-filled, .rating input:hover ~ .rating-item .rating-item-half{ + opacity:0; +} +.rating input:hover + .rating-item .rating-item-filled{ + opacity:1; +} +.rating.is-half .rating-item-half{ + z-index:var(--layer-local-tier-1); +} +.rating.is-half input:checked + .rating-item .rating-item-half{ + opacity:1; +} +.rating.is-half input:checked + .rating-item .rating-item-filled{ + opacity:0; +} +.rating.is-half input:hover ~ .rating-item .rating-item-filled, +.rating.is-half input:hover ~ .rating-item .rating-item-half{ + opacity:0; +} +.rating.is-half:hover input:checked + .rating-item .rating-item-filled, +.rating.is-half input:hover + .rating-item .rating-item-filled{ + opacity:1; +} +.rating.is-half:hover input:hover ~ .rating-item .rating-item-filled{ + opacity:0; +} +.rating.is-half:hover input:hover + .rating-item .rating-item-filled{ + opacity:1; +} +.rating .icon-states{ + -servicestudio-display:flex; +} +.rating .icon-states span{ + -servicestudio-display:flex; +} +.form .rating span.wcag-hide-text{ + position:absolute; +} +.ios .rating .rating-item > *{ + display:block; + pointer-events:none; +} +.is-rtl .rating .rating-item{ + padding-left:calc(var(--rating-size) + var(--space-s)); + padding-right:0; + -webkit-transform:scaleX(-1); + -ms-transform:scaleX(-1); + transform:scaleX(-1); +} +.has-accessible-features .rating.is-half input:focus + .rating-item .rating-item-filled, +.has-accessible-features .rating.is-half input:focus + .rating-item .rating-item-filled *, .has-accessible-features .rating:not(.is-half) input:focus + .rating-item .rating-item-half, +.has-accessible-features .rating:not(.is-half) input:focus + .rating-item .rating-item-half *, +.has-accessible-features .rating input:checked + .rating-item .rating-item-empty, +.has-accessible-features .rating input:checked + .rating-item .rating-item-empty *{ + -webkit-box-shadow:none; + box-shadow:none; +} +.has-accessible-features .rating.is-half input:focus + .rating-item .rating-item-half, +.has-accessible-features .rating.is-half input:focus + .rating-item .rating-item-half *, .has-accessible-features .rating:not(.is-half) input:focus + .rating-item .rating-item-filled, +.has-accessible-features .rating:not(.is-half) input:focus + .rating-item .rating-item-filled *{ + -webkit-box-shadow:0 0 0 3px var(--color-focus-outer); + box-shadow:0 0 0 3px var(--color-focus-outer); +} +.chrome .osui-tabs .rating .wcag-hide-text, +.edge .osui-tabs .rating .wcag-hide-text{ + margin:unset; +} +/*! 6.6. Utilities */ +/*! 6.6.1. Align Center */ +.vertical-align{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-orient:horizontal; + -webkit-box-direction:normal; + -ms-flex-direction:row; + flex-direction:row; +} +.vertical-align > span.input-text, +.vertical-align > label ~ span{ + -webkit-box-flex:1; + -ms-flex:1; + flex:1; +} +.vertical-align span{ + display:inherit; +} +[style*="text-align: center"] .vertical-align{ + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; +} +[style*="text-align: right"] .vertical-align{ + -webkit-box-pack:end; + -ms-flex-pack:end; + justify-content:flex-end; +} +/*! 6.6.2. Button Loading */ +.osui-btn-loading{ + -servicestudio-display:inline-flex; +} +.osui-btn-loading-show-spinner.osui-btn-loading--is-loading .btn{ + font-size:0; +} +.osui-btn-loading-show-spinner.osui-btn-loading--is-loading .btn .osui-btn-loading__spinner-animation{ + margin-right:var(--space-none); +} +.osui-btn-loading-show-spinner.osui-btn-loading--is-loading .btn > span[data-expression]{ + display:none; +} +.osui-btn-loading.osui-btn-loading--is-loading, .osui-btn-loading.osui-btn-loading--is-loading *{ + pointer-events:none; +} +.osui-btn-loading.osui-btn-loading--is-loading .btn .osui-btn-loading__spinner-animation{ + display:inline-block; +} +.osui-btn-loading .btn{ + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; + -webkit-transition:none; + transition:none; + vertical-align:middle; + white-space:nowrap; +} +.osui-btn-loading .btn{ + -servicestudio-display:inline-flex; +} +.osui-btn-loading .btn > *{ + display:inline-block; + font-size:var(--font-size-s); + vertical-align:middle; +} +.osui-btn-loading .btn .osui-btn-loading__spinner-animation{ + display:none; + -webkit-animation:loadingSpinner 850ms cubic-bezier(0.7, 1.05, 0.78, 0.78) infinite; + animation:loadingSpinner 850ms cubic-bezier(0.7, 1.05, 0.78, 0.78) infinite; + border:var(--border-size-m) solid currentColor; + border-radius:var(--border-radius-circle); + border-top:var(--border-size-m) solid transparent; + height:16px; + margin-right:var(--space-s); + width:16px; + will-change:transform; +} +.osui-btn-loading .btn .osui-btn-loading__spinner-animation{ + -servicestudio-margin-right:var(--space-s); +} +.osui-btn-loading .btn > span[data-expression]{ + white-space:nowrap; +} +.is-rtl .osui-btn-loading-show-spinner.osui-btn-loading--is-loading .btn .osui-btn-loading__spinner-animation{ + margin-left:var(--space-none); +} +.is-rtl .osui-btn-loading--is-loading .btn .osui-btn-loading__spinner-animation{ + margin-left:var(--space-s); + margin-right:var(--space-none); +} +.phone .osui-btn-loading{ + width:100%; +} +/*! 6.6.3. Center Content */ +.center-content{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; + height:100%; + width:100%; +} +.center-content{ + -servicestudio-height:auto !important; +} +.center-content-header{ + width:100%; +} +.center-content-container{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-flex:1; + -ms-flex:1; + flex:1; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + width:100%; +} +.center-content-container > div{ + width:100%; +} +.center-content-bottom{ + width:100%; +} +.animate .center-content{ + -servicestudio-display:table; +} +/*! 6.6.4. Margin Container */ +.margin-container{ + padding:var(--space-m); +} +.layout-native .margin-container{ + padding:var(--space-l); +} +.tablet .layout-native .margin-container{ + padding:var(--space-m); +} +.phone .layout-native .margin-container{ + padding:var(--space-base); +} +/*! 6.6.5. Separator */ +.separator{ + background-color:var(--color-primary); +} +.separator-vertical{ + display:inline-block; + height:100%; + min-height:20px; + min-width:1px; + width:1px; +} +.separator-horizontal{ + height:1px; + width:100%; +} +/*! 6.6.6. Pull to Refresh */ +.pull-to-refresh{ + color:var(--color-neutral-6); + font-size:var(--font-size-h3); + left:0; + padding:var(--space-s); + position:absolute; + text-align:center; + width:100%; +} +.pull-to-refresh{ + -servicestudio-display:none; +} +.pull-to-refresh-loading{ + display:none; + text-align:center; +} +.pull-to-refresh .genericon{ + -webkit-transition:all 0.25s ease; + transition:all 0.25s ease; +} +.ptr-loading .content, +.ptr-loading .pull-to-refresh, .ptr-reset .content, +.ptr-reset .pull-to-refresh{ + -webkit-transition:all 0.25s ease; + transition:all 0.25s ease; +} +.ptr-loading .pull-to-refresh .genericon, .ptr-reset .pull-to-refresh .genericon{ + display:none; +} +.ptr-loading .pull-to-refresh-loading{ + display:block; +} +.ptr-loading .content{ + -webkit-transform:translate3D(0, 50px, 0); + -ms-transform:translate3D(0, 50px, 0); + transform:translate3D(0, 50px, 0); +} +.ptr-reset .content{ + -webkit-transform:translate3D(0, 0, 0); + -ms-transform:translate3D(0, 0, 0); + transform:translate3D(0, 0, 0); +} +.ptr-refresh .pull-to-refresh .genericon{ + -webkit-transform:rotate(180deg); + -ms-transform:rotate(180deg); + transform:rotate(180deg); +} +.slide-from-left-enter .layout-native .pull-to-refresh, +.slide-from-left-leave .layout-native .pull-to-refresh, +.slide-from-right-enter .layout-native .pull-to-refresh, +.slide-from-right-leave .layout-native .pull-to-refresh, +.slide-from-top-enter .layout-native .pull-to-refresh, +.slide-from-top-leave .layout-native .pull-to-refresh, +.slide-from-bottom-enter .layout-native .pull-to-refresh, +.slide-from-bottom-leave .layout-native .pull-to-refresh, +.fade-enter .layout-native .pull-to-refresh, +.fade-leave .layout-native .pull-to-refresh{ + display:none; +} +.ios.ptr-refresh .layout-native.ios-bounce .main{ + overflow:hidden; +} +/*! 6.6.7. List Updating */ +.list-updating{ + height:40px; + margin-top:var(--space-m); + position:relative; +} +.list-updating:before{ + -webkit-animation:spin 1s infinite linear, fade 300ms ease; + animation:spin 1s infinite linear, fade 300ms ease; + border:5px solid var(--color-neutral-5); + border-radius:50%; + border-top-color:var(--color-neutral-7); + -webkit-box-sizing:border-box; + box-sizing:border-box; + content:""; + height:40px; + left:50%; + margin-left:-20px; + position:absolute; + width:40px; +} +.list-updating:before{ + -servicestudio--webkit-animation:none; + -servicestudio-animation:none; +} +/*! 6.6.8. Provider Login Button */ +/*! Patterns - Utilities - Provider Login Button */ +.btn.btn-provider-login{ + background:var(--color-neutral-0); + border-color:var(--color-neutral-6); + border-radius:0; +} +.btn.btn-provider-login-logo-only{ + padding:10px; +} +.btn.btn-provider-login-logo-only .btn-provider-login-text{ + display:none; + -servicestudio-display:none !important; +} +.btn.btn-provider-login-logo svg{ + height:100%; + width:100%; +} +.btn.btn-provider-login.btn-small{ + padding:0 16px; +} +.btn.btn-provider-login.btn-small.btn-provider-login-logo-only{ + padding:5px; +} +.btn.btn-provider-login.btn-large{ + padding:10px 15px; +} +.btn.btn-provider-login.soft{ + border-radius:var(--border-radius-soft); +} +.btn.btn-provider-login.rounded{ + border-radius:var(--border-radius-rounded); +} +.btn.btn-provider-login .btn-provider-login-logo{ + border-radius:50%; + height:20px; + width:20px; +} +.btn.btn-provider-login .btn-provider-login-text{ + color:var(--color-neutral-7); + margin-left:10px; + white-space:nowrap; +} +.phone .layout .btn.btn-provider-login.btn-provider-login-logo-only{ + width:50px; +} +.phone .layout .btn.btn-provider-login.btn-provider-login-logo-only.btn-small{ + width:40px; +} +.phone .layout .btn.btn-provider-login.btn-provider-login-logo-only.btn-large{ + width:55px; +} +.phone .layout .btn.btn-provider-login .btn-provider-login-text-name{ + text-align:left; + width:70px; + -servicestudio-display:inline-block; +} +.phone .layout .btn.btn-provider-login.btn-small .btn-provider-login-text-name{ + width:53px; +} +/*! 6.7. Advanced */ +/*! 6.7.1. Dropdown ServerSide */ +.osui-dropdown-serverside__selected-values{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-flex:1; + -ms-flex:1; + flex:1; + height:inherit; + margin-right:var(--space-base); + overflow:hidden; +} +.osui-dropdown-serverside__selected-values:hover{ + border-color:var(--color-neutral-6); +} +.osui-dropdown-serverside__selected-values:after{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + color:var(--color-neutral-7); + content:"\f107"; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + font:normal normal normal 20px/1 FontAwesome; + height:100%; + pointer-events:none; + position:absolute; + right:16px; + top:0; + -webkit-transition:-webkit-transform 200ms ease-in-out; + transition:-webkit-transform 200ms ease-in-out; + transition:transform 200ms ease-in-out; + transition:transform 200ms ease-in-out, -webkit-transform 200ms ease-in-out; +} +.osui-dropdown-serverside__selected-values > *::-moz-selection{ + background-color:transparent; +} +.osui-dropdown-serverside__selected-values > *::selection{ + background-color:transparent; +} +.osui-dropdown-serverside__selected-values > *:first-child{ + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap; + width:100%; +} +.osui-dropdown-serverside__selected-values-wrapper{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + background-color:var(--color-neutral-0); + border-radius:var(--border-radius-soft); + border:var(--border-size-s) solid var(--color-neutral-5); + color:var(--color-neutral-9); + cursor:pointer; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + font-size:var(--font-size-s); + height:40px; + padding:var(--space-none) var(--space-base); + position:relative; + -webkit-transition:border 250ms ease-in-out; + transition:border 250ms ease-in-out; + width:100%; +} +.osui-dropdown-serverside__selected-values [data-expression]{ + white-space:nowrap; +} +.osui-dropdown-serverside__balloon-wrapper{ + top:calc(var(--osui-dropdown-ss-top) + var(--osui-dropdown-ss-input-height) + 2px); + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; + -webkit-box-flex:1; + -ms-flex:1; + flex:1; + left:var(--osui-dropdown-ss-left); + max-height:0; + max-width:var(--osui-dropdown-ss-width); + opacity:0; + overflow:hidden; + position:absolute; + -webkit-transition:opacity 300ms ease; + transition:opacity 300ms ease; + width:100%; + z-index:var(--layer-global-elevated); +} +.osui-dropdown-serverside__balloon-wrapper{ + -servicestudio-left:initial; + -servicestudio-max-height:320px; + -servicestudio-opacity:1; + -servicestudio-position:relative; + -servicestudio-top:2px; +} +.osui-dropdown-serverside__balloon-container{ + background-color:var(--color-neutral-0); + border-radius:var(--border-radius-soft); + border:var(--border-size-s) solid var(--color-neutral-5); + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; + height:100%; + opacity:0; + overflow:hidden; + -webkit-transform:translateY(calc(-1 * var(--osui-dropdown-ss-thresholdanimateval))); + -ms-transform:translateY(calc(-1 * var(--osui-dropdown-ss-thresholdanimateval))); + transform:translateY(calc(-1 * var(--osui-dropdown-ss-thresholdanimateval))); + -webkit-transition:opacity 250ms ease, -webkit-transform 300ms ease-in-out; + transition:opacity 250ms ease, -webkit-transform 300ms ease-in-out; + transition:opacity 250ms ease, transform 300ms ease-in-out; + transition:opacity 250ms ease, transform 300ms ease-in-out, -webkit-transform 300ms ease-in-out; +} +.osui-dropdown-serverside__balloon-container{ + -servicestudio-opacity:1; + -servicestudio-transform:none; +} +.osui-dropdown-serverside__balloon-search-wrapper{ + background-color:var(--color-neutral-0); + padding:var(--space-none); + position:relative; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; +} +.osui-dropdown-serverside__balloon-search{ + -webkit-box-flex:1; + -ms-flex:1; + flex:1; +} +.osui-dropdown-serverside__balloon-search:before{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + color:var(--color-neutral-6); + content:"\f002"; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + font:normal normal normal 14px/1 FontAwesome; + height:100%; + left:var(--space-base); + position:absolute; + top:0; +} +.osui-dropdown-serverside__balloon-search:empty + .osui-dropdown-serverside__balloon-search-icon{ + display:none; +} +.osui-dropdown-serverside__balloon-search input, +.osui-dropdown-serverside__balloon-search .form-control[data-input]{ + background-color:transparent; + border-radius:var(--border-size-none); + border:none; + color:inherit; + font-size:var(--font-size-s); + height:40px; + padding:var(--space-none) var(--space-s) var(--space-none) var(--space-xl); + width:100%; +} +.osui-dropdown-serverside__balloon-search-icon{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + height:100%; + padding:var(--space-none) var(--space-base); +} +.osui-dropdown-serverside__balloon-content{ + border-top:var(--border-size-s) solid var(--color-neutral-5); + -webkit-box-flex:1; + -ms-flex:1; + flex:1; + overflow-x:hidden; + overflow-y:auto; + padding:var(--space-none); +} +.osui-dropdown-serverside__balloon-content::-webkit-scrollbar{ + width:5px; +} +.osui-dropdown-serverside__balloon-content::-webkit-scrollbar-track{ + background:var(--color-neutral-4); +} +.osui-dropdown-serverside__balloon-content::-webkit-scrollbar-thumb{ + background-color:var(--color-neutral-6); +} +.osui-dropdown-serverside__balloon-content > *:not([data-list]){ + z-index:var(--layer-local-tier-2); +} +.osui-dropdown-serverside__balloon--has-not-search .osui-dropdown-serverside__balloon-content{ + border-top:none; +} +.osui-dropdown-serverside__balloon-footer{ + border-top:var(--border-size-s) solid var(--color-neutral-5); + padding:var(--space-s) var(--space-base); +} +.osui-dropdown-serverside__balloon--is-top.osui-dropdown-serverside__balloon-wrapper{ + bottom:calc(100vh - var(--osui-dropdown-ss-top) + 2px); + top:unset; +} +.osui-dropdown-serverside__balloon--is-top .osui-dropdown-serverside__balloon-container{ + -webkit-transform:translateY(0); + -ms-transform:translateY(0); + transform:translateY(0); + -webkit-transition:opacity 250ms ease; + transition:opacity 250ms ease; +} +.osui-dropdown-serverside__balloon--is-top .osui-dropdown-serverside__balloon-content{ + border-top-width:var(--border-size-none); +} +.osui-dropdown-serverside__balloon--is-top .osui-dropdown-serverside__balloon-search-wrapper{ + border-bottom:var(--border-size-none); + border-top:var(--border-size-s) solid var(--color-neutral-5); + -webkit-box-ordinal-group:4; + -ms-flex-order:3; + order:3; +} +.osui-dropdown-serverside--is-opened .osui-dropdown-serverside__selected-values-wrapper{ + border-color:var(--color-primary); +} +.osui-dropdown-serverside--is-opened .osui-dropdown-serverside__selected-values:after{ + color:var(--color-primary); + -webkit-transform:rotate(180deg); + -ms-transform:rotate(180deg); + transform:rotate(180deg); +} +.osui-dropdown-serverside--is-opened .osui-dropdown-serverside__balloon-container{ + opacity:1; + -webkit-transform:translateY(0); + -ms-transform:translateY(0); + transform:translateY(0); +} +.osui-dropdown-serverside--is-opened.osui-dropdown-serverside__balloon-wrapper{ + max-height:var(--osui-dropdown-ss-balloon-max-height); + opacity:1; +} +.osui-dropdown-serverside--is-opened.osui-dropdown-serverside__balloon-wrapper.osui-dropdown-serverside__balloon--is-top{ + max-height:calc(var(--osui-dropdown-ss-balloon-max-height) + var(--header-size)); + padding-top:var(--header-size); +} +.osui-dropdown-serverside--is-disabled .osui-dropdown-serverside__selected-values:after{ + border-color:var(--color-neutral-6); +} +.osui-dropdown-serverside--is-disabled .osui-dropdown-serverside__selected-values-wrapper{ + background-color:var(--color-neutral-2); + border-color:var(--color-neutral-4); + color:var(--color-neutral-6); + pointer-events:none; +} +.osui-dropdown-serverside--is-inside-popup .osui-dropdown-serverside__balloon-wrapper{ + top:calc(var(--osui-dropdown-ss-top) + var(--osui-dropdown-ss-input-height) + 4px); + position:fixed; + overflow:visible; +} +.osui-dropdown-serverside--is-inside-popup .osui-dropdown-serverside__balloon-wrapper.osui-dropdown-serverside--is-opened{ + z-index:calc(var(--osui-popup-layer) + var(--layer-local-tier-1)); +} +.osui-dropdown-serverside--not-valid .osui-dropdown-serverside__selected-values-wrapper{ + border-color:var(--color-error); +} +.osui-dropdown-serverside--not-valid + .osui-dropdown-serverside-error-message{ + color:var(--color-error); + font-size:var(--font-size-xs); + margin-left:var(--space-none); + margin-top:3px; +} +.osui-dropdown-serverside-visible:has(.osui-sidebar--is-open .osui-dropdown-serverside--is-opened) .osui-dropdown-serverside__balloon-wrapper.osui-dropdown-serverside--is-opened{ + z-index:calc(var(--osui-sidebar-layer) + var(--layer-local-tier-1)); +} +.osui-dropdown-serverside-visible:has(.osui-notification--is-open .osui-dropdown-serverside--is-opened) .osui-dropdown-serverside__balloon-wrapper.osui-dropdown-serverside--is-opened{ + z-index:calc(var(--osui-notification-layer) + var(--layer-local-tier-1)); +} +.osui-dropdown-serverside-visible:has(.osui-bottom-sheet--is-open .osui-dropdown-serverside--is-opened) .osui-dropdown-serverside__balloon-wrapper.osui-dropdown-serverside--is-opened{ + z-index:calc(var(--osui-bottom-sheet-layer) + var(--layer-local-tier-1)); +} +.firefox .osui-dropdown-serverside__balloon-wrapper.osui-dropdown-serverside--is-opened{ + z-index:var(--layer-global-instant-interaction); +} +.form .osui-dropdown-serverside--is-inside-popup input[data-input]{ + margin-bottom:0; +} +.has-accessible-features .osui-dropdown-serverside__selected-values:hover, .has-accessible-features .osui-dropdown-serverside__selected-values:after, .has-accessible-features .osui-dropdown-serverside__selected-values-wrapper, .has-accessible-features .osui-dropdown-serverside__selected-values-footer{ + border-color:var(--color-neutral-7); +} +.has-accessible-features .osui-dropdown-serverside__balloon-container{ + border-color:var(--color-neutral-7); +} +.has-accessible-features .osui-dropdown-serverside__balloon-search:before{ + color:var(--color-neutral-7); +} +.has-accessible-features .osui-dropdown-serverside__balloon-search input:focus, +.has-accessible-features .osui-dropdown-serverside__balloon-search .form-control[data-input]:focus{ + -webkit-box-shadow:inset 0 0 0 3px var(--color-focus-outer); + box-shadow:inset 0 0 0 3px var(--color-focus-outer); +} +.has-accessible-features .osui-dropdown-serverside__balloon-content::-webkit-scrollbar-thumb{ + background-color:var(--color-neutral-7); +} +.has-accessible-features .osui-dropdown-serverside__balloon-content:focus{ + -webkit-box-shadow:inset 0 0 0 3px var(--color-focus-outer); + box-shadow:inset 0 0 0 3px var(--color-focus-outer); +} +.is-rtl .osui-dropdown-serverside__selected-values{ + margin-left:var(--space-base); + margin-right:initial; +} +.is-rtl .osui-dropdown-serverside__selected-values:after{ + left:var(--space-base); + right:auto; +} +.is-rtl .osui-dropdown-serverside__balloon-search:before{ + left:auto; + right:var(--space-base); +} +.is-rtl .osui-dropdown-serverside__balloon-search input, +.is-rtl .osui-dropdown-serverside__balloon-search .form-control[data-input]{ + padding:var(--space-none) var(--space-xl) var(--space-none) var(--space-s); +} +.tablet .osui-dropdown-serverside__selected-values-wrapper, +.phone .osui-dropdown-serverside__selected-values-wrapper{ + height:48px; +} +.tablet .osui-dropdown-serverside__balloon-search input, +.tablet .osui-dropdown-serverside__balloon-search .form-control[data-input], +.phone .osui-dropdown-serverside__balloon-search input, +.phone .osui-dropdown-serverside__balloon-search .form-control[data-input]{ + font-size:var(--font-size-base); + height:48px; +} +.phone.android.landscape .osui-dropdown-serverside__balloon-container{ + max-height:90vh; +} +.phone.android .osui-dropdown-serverside__balloon-container{ + max-height:calc(85vh - var(--header-size)); +} +.phone.ios .osui-dropdown-serverside__search-input--is-focused .osui-dropdown-serverside__balloon-container{ + max-height:calc(100vw - 5vh - var(--header-size)); +} +.phone.landscape .osui-dropdown-serverside__balloon-container{ + max-height:50vh; +} +.phone.landscape .osui-dropdown-serverside__balloon--has-not-search .osui-dropdown-serverside__balloon-container{ + max-height:90vh; +} +.phone .osui-dropdown-serverside__balloon-wrapper{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + background-color:var(--overlay-background); + display:-webkit-box; + display:-ms-flexbox; + display:flex; + left:0; + max-width:100vw; + opacity:0; + overflow:hidden; + top:0; + -webkit-transition:opacity 250ms ease; + transition:opacity 250ms ease; + z-index:var(--layer-global-instant-interaction); +} +.phone .osui-dropdown-serverside__balloon-wrapper{ + -servicestudio-background-color:var(--color-neutral-0); + -servicestudio-left:initial; + -servicestudio-opacity:1; + -servicestudio-position:relative; + -servicestudio-top:2px; +} +.phone .osui-dropdown-serverside__balloon-container{ + -webkit-box-shadow:var(--shadow-xl); + box-shadow:var(--shadow-xl); + margin-top:5vh; + max-height:calc(85vh - var(--header-size)); + width:85vw; +} +.phone .osui-dropdown-serverside__balloon-container{ + -servicestudio-box-shadow:none; + -servicestudio-margin-top:initial; + -servicestudio-opacity:1; + -servicestudio-width:100%; +} +.phone .osui-dropdown-serverside__balloon--has-not-search .osui-dropdown-serverside__balloon-container{ + margin-top:5vh; + max-height:calc(var(--viewport-height) - 5vh - var(--header-size)); +} +.phone .osui-dropdown-serverside--is-opened.osui-dropdown-serverside__balloon-wrapper{ + min-height:100vh; + opacity:1; +} +/*! 6.7.2. Dropdown ServerSide Item */ +.osui-dropdown-serverside-item{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + background-color:transparent; + color:var(--color-neutral-9); + cursor:pointer; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-flex:1; + -ms-flex:1; + flex:1; + min-height:40px; + overflow:hidden; + padding:var(--space-s) var(--space-base); + position:relative; + -webkit-transition:background 250ms ease; + transition:background 250ms ease; + width:100%; + z-index:var(--layer-global-screen); +} +.osui-dropdown-serverside-item:hover, .osui-dropdown-serverside-item--is-selected{ + background-color:var(--color-neutral-2); + z-index:var(--layer-local-tier-1); +} +.osui-dropdown-serverside-item:hover, .osui-dropdown-serverside-item--is-selected{ + -servicestudio-background-color:var(--color-neutral-0); +} +.osui-dropdown-serverside-item__content{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-flex:1; + -ms-flex:1; + flex:1; + height:inherit; + overflow:hidden; + pointer-events:none; +} +.osui-dropdown-serverside-item__content > *:first-child{ + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap; + width:100%; +} +.has-accessible-features .osui-dropdown-serverside-item:hover{ + background-color:var(--color-neutral-4); +} +.has-accessible-features .osui-dropdown-serverside-item:focus{ + -webkit-box-shadow:inset 0 0 0 3px var(--color-focus-outer); + box-shadow:inset 0 0 0 3px var(--color-focus-outer); +} +.tablet .osui-dropdown-serverside-item, +.phone .osui-dropdown-serverside-item{ + height:48px; +} +/*! 6.8. Deprecated Patterns */ +/*! 6.8.1. Accordion */ +[data-block*=AccordionItem]:first-of-type .section-expandable{ + border-radius:var(--border-radius-soft) var(--border-radius-soft) var(--border-radius-none) var(--border-radius-none); +} +[data-block*=AccordionItem]:last-of-type .section-expandable{ + border-bottom-width:var(--border-size-s); + border-radius:var(--border-radius-none) var(--border-radius-none) var(--border-radius-soft) var(--border-radius-soft); +} +[data-block*=AccordionItem]:only-of-type .section-expandable{ + border-radius:var(--border-radius-soft); +} +.section-expandable{ + background-color:var(--color-neutral-0); + border:var(--border-size-s) solid var(--color-neutral-4); + border-bottom-width:var(--border-size-none); +} +.section-expandable.is--open{ + border-top:var(--border-size-m) solid var(--color-primary); +} +.section-expandable.is--open > .section-expandable-title{ + font-weight:var(--font-semi-bold); +} +.section-expandable.is--open > .section-expandable-title > .section-expandable-icon{ + -webkit-transform:rotate(180deg); + -ms-transform:rotate(180deg); + transform:rotate(180deg); +} +.section-expandable.is--disabled{ + color:var(--color-neutral-7); + pointer-events:none; +} +.section-expandable.is--disabled{ + -servicestudio-color:var(--color-neutral-9); + -servicestudio-pointer-events:auto; +} +.section-expandable.is--disabled .section-expandable-icon{ + color:var(--color-neutral-6); +} +.section-expandable .section-expandable-title{ + -webkit-box-align:start; + -ms-flex-align:start; + align-items:flex-start; + cursor:pointer; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + font-size:var(--font-size-h6); + line-height:1; + padding:var(--space-m); + width:100%; +} +.section-expandable .section-expandable-icon{ + color:var(--color-primary); + font-family:FontAwesome; + font-size:24px; + font-weight:400; + -webkit-transition:all 300ms ease-in-out; + transition:all 300ms ease-in-out; +} +.section-expandable .section-expandable-icon:after{ + content:"\f107"; +} +.section-expandable .section-expandable-content{ + display:block; + overflow:hidden; +} +.section-expandable .section-expandable-content-collapsed, .section-expandable .section-expandable-content.is--collapsed{ + height:0; + padding:var(--space-none) var(--space-m); + visibility:hidden; +} +.section-expandable .section-expandable-content-collapsed, .section-expandable .section-expandable-content.is--collapsed{ + -servicestudio-height:auto; + -servicestudio-padding:var(--space-none) var(--space-m) var(--space-m); +} +.section-expandable .section-expandable-content-expanded, .section-expandable .section-expandable-content.is--expanded{ + height:auto; + padding:var(--space-none) var(--space-m) var(--space-m); + visibility:visible; +} +.section-expandable .section-expandable-content-animating, .section-expandable .section-expandable-content.is--animating{ + -webkit-transition:all 300ms ease-in-out; + transition:all 300ms ease-in-out; +} +.section-expandable .section-expandable-content.no-padding{ + padding:var(--space-none); +} +.section-expandable .section-expandable-content [data-block*=AnimatedLabel]:first-child .animated-label{ + margin-top:var(--space-s); +} +.section-expandable .osui-accordion{ + margin-top:2px; +} +.section-expandable .pop-comp-wrapper{ + position:relative; + -webkit-transform:translate3d(0px, var(--space-xs), 0px) !important; + transform:translate3d(0px, var(--space-xs), 0px) !important; +} +.tablet .section-expandable .section-expandable-title{ + font-size:calc(var(--font-size-h6) - 1px); +} +.phone .section-expandable .section-expandable-title{ + font-size:calc(var(--font-size-h6) - 2px); +} +.phone .section-expandable .choices__list.choices__list--dropdown, .phone .section-expandable [data-dropdown] > div.dropdown-list{ + position:initial; +} +.layout-native .section-expandable .section-expandable-title{ + padding:var(--space-base); +} +.layout-native .section-expandable .section-expandable-content{ + padding:var(--space-none) var(--space-base); +} +.layout-native .section-expandable .section-expandable-content.is--collapsed{ + padding:var(--space-none) var(--space-base); +} +.layout-native .section-expandable .section-expandable-content.is--expanded{ + padding:var(--space-none) var(--space-base) var(--space-base); +} +.layout-native .section-expandable .section-expandable-content.no-padding{ + padding:var(--space-none); +} +.has-accessible-features .section-expandable .section-expandable-title:focus, +.has-accessible-features .section-expandable .section-expandable-content:focus{ + -webkit-box-shadow:none; + box-shadow:none; + outline:3px solid var(--color-focus-outer); +} +/*! 6.8.2. Button Loading */ +button.OSFillParent{ + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; +} +.is--loading{ + position:relative; +} +.is--loading .btn{ + display:inline-block; +} +.is--loading .btn, .is--loading .btn *{ + pointer-events:none; +} +.btn-loading{ + display:none; + position:absolute; +} +.btn-show-label .btn-loading{ + position:relative; +} +.is--loading .btn-loading{ + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; +} +.is--loading:not(.btn-show-label) .btn-loading{ + left:50%; + top:50%; + -webkit-transform:translate(-50%, -50%); + -ms-transform:translate(-50%, -50%); + transform:translate(-50%, -50%); +} +.is--loading .btn-label{ + opacity:0; +} +.btn-show-label .btn-label{ + opacity:1; +} +.btn-loading .loading-spinner{ + -webkit-animation:loadingSpinner 850ms cubic-bezier(0.7, 1.05, 0.78, 0.78) infinite; + animation:loadingSpinner 850ms cubic-bezier(0.7, 1.05, 0.78, 0.78) infinite; + border:var(--border-size-m) solid currentColor; + border-radius:var(--border-radius-circle); + border-top:var(--border-size-m) solid transparent; + height:16px; + width:16px; + will-change:transform; +} +/*! 6.8.3. Carousel */ +.carousel{ + overflow:hidden; + position:relative; + -webkit-transition:all 400ms ease; + transition:all 400ms ease; + will-change:transform; +} +.carousel{ + -servicestudio-max-height:100vh; + -servicestudio-max-height:none !important; + -servicestudio-min-height:80px !important; +} +.carousel:empty{ + -servicestudio-min-height:200px; +} +.carousel:not(.no-swipe) .carousel-container-content:hover{ + cursor:-webkit-grab; + cursor:grab; +} +.carousel.init{ + opacity:0; +} +.carousel.init{ + -servicestudio-opacity:1; +} +.carousel > .list:not([data-virtualization-disabled]) > *, .carousel > .list:not([data-animation-disabled]) > *{ + -servicestudio-display:none !important; +} +.carousel > .list:not([data-virtualization-disabled]), .carousel > .list:not([data-animation-disabled]){ + -servicestudio-min-height:225px; + -servicestudio-pointer-events:none; +} +.carousel > .list:not([data-virtualization-disabled]):after, .carousel > .list:not([data-animation-disabled]):after{ + -servicestudio-background-color:#fff; + -servicestudio-background-position:center; + -servicestudio-background-repeat:no-repeat; + -servicestudio-background-size:291px 225px; + -servicestudio-content:" "; + -servicestudio-height:100%; + -servicestudio-left:0; + -servicestudio-min-height:225px; + -servicestudio-position:absolute; + -servicestudio-top:0; + -servicestudio-width:100%; +} +.carousel--animatable{ + -webkit-transition:all 250ms linear; + transition:all 250ms linear; + will-change:transform; +} +.carousel [data-block*=Card] + [data-block*=Card] .card{ + margin-top:var(--space-none); +} +.carousel .carousel-container{ + --carousel-width:100%; + width:var(--carousel-width); + background-color:transparent; + white-space:nowrap; +} +.carousel .carousel-container{ + -servicestudio-min-height:80px !important; + -servicestudio-white-space:normal; +} +.carousel .carousel-container .list.list-group{ + background-color:transparent; + white-space:nowrap; +} +.carousel .carousel-container .list.list-group{ + -servicestudio-white-space:normal; +} +.carousel .carousel-container > .carousel-container-content > *:not(.list), .carousel .carousel-container > .carousel-container-content > .list > div{ + display:inline-block; + white-space:normal; + width:100%; +} +.carousel .carousel-container .carousel-container-content > .list:not([data-virtualization-disabled]) > *, +.carousel .carousel-container .carousel-container-content > .list:not([data-animation-disabled]) > *{ + -servicestudio-display:none !important; +} +.carousel .carousel-container .carousel-container-content > .list:not([data-virtualization-disabled]), +.carousel .carousel-container .carousel-container-content > .list:not([data-animation-disabled]){ + -servicestudio-min-height:225px; + -servicestudio-pointer-events:none; +} +.carousel .carousel-container .carousel-container-content > .list:not([data-virtualization-disabled]):after, +.carousel .carousel-container .carousel-container-content > .list:not([data-animation-disabled]):after{ + -servicestudio-background-color:#fff; + -servicestudio-background-position:center; + -servicestudio-background-repeat:no-repeat; + -servicestudio-background-size:291px 225px; + -servicestudio-content:" "; + -servicestudio-height:100%; + -servicestudio-left:0; + -servicestudio-min-height:225px; + -servicestudio-position:absolute; + -servicestudio-top:0; + -servicestudio-width:100%; +} +.carousel .carousel-container-content{ + -servicestudio-min-height:80px !important; +} +.carousel .carousel-container-content .OSFillParent{ + display:inline-block; +} +.carousel .carousel-container-content .grid-gallery .OSFillParent{ + display:inherit; +} +.carousel .carousel-navigation{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + background-color:var(--color-neutral-0); + border-radius:var(--border-radius-circle); + -webkit-box-shadow:var(--shadow-xs); + box-shadow:var(--shadow-xs); + color:var(--color-neutral-7); + cursor:pointer; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + font-size:var(--font-size-h4); + height:40px; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + opacity:1; + position:absolute; + top:50%; + -webkit-transform:translateY(-25px); + -ms-transform:translateY(-25px); + transform:translateY(-25px); + -webkit-transition:opacity 150ms linear; + transition:opacity 150ms linear; + width:40px; + will-change:opacity; + z-index:var(--layer-local-tier-2); +} +.carousel .carousel-navigation.disabled{ + opacity:0.3; +} +.carousel .carousel-navigation.hidden{ + display:none; +} +.carousel .carousel-navigation.carousel-navigation-left{ + left:24px; +} +.carousel .carousel-navigation.carousel-navigation-right{ + right:24px; + text-align:right; +} +.carousel .carousel-dots-container{ + margin-top:var(--space-base); + text-align:center; +} +.carousel .carousel-dots-container.disabled{ + display:none; +} +.carousel .carousel-dots-container .carousel-dot{ + background-color:var(--color-neutral-5); + border-radius:var(--border-radius-circle); + cursor:pointer; + display:inline-block; + height:8px; + margin:0 var(--space-xs); + width:8px; +} +.carousel .carousel-dots-container .carousel-dot.active{ + background-color:var(--color-primary); +} +.carousel-is-moving .hide-on-drag{ + opacity:0; + -webkit-transition:opacity 250ms ease; + transition:opacity 250ms ease; +} +.carousel .list.list-group{ + overflow:initial; +} +.carousel svg{ + max-width:100%; +} +.has-accessible-features .carousel .carousel-navigation:focus{ + -webkit-box-shadow:0 0 0 3px var(--color-focus-outer); + box-shadow:0 0 0 3px var(--color-focus-outer); +} +/*! 6.8.4. Datepicker */ +.pika-single{ + background:var(--color-neutral-0); + border:var(--border-size-s) solid var(--color-neutral-4); + border-radius:var(--border-radius-soft); + display:block; + margin-top:var(--space-xs); + max-width:320px; + position:relative; +} +.layout-native .pika-single{ + max-width:100%; +} +.pika-single.is-bound{ + -webkit-box-shadow:var(--shadow-s); + box-shadow:var(--shadow-s); + position:absolute !important; + z-index:var(--layer-global-elevated); +} +.pika-single.is-hidden{ + display:none; +} +.pika-title{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-pack:justify; + -ms-flex-pack:justify; + justify-content:space-between; + padding:var(--space-m) var(--space-base); +} +.pika-title select{ + cursor:pointer; + left:0; + margin:0; + opacity:0; + position:absolute; + right:0; +} +.pika-title .pika-time-container select{ + opacity:1; + position:static; +} +.pika-labels{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-flex:1; + -ms-flex:1; + flex:1; +} +.pika-select-month{ + margin-left:var(--space-base); + margin-right:0; +} +.year-first .pika-select-month{ + margin-left:var(--space-base); + margin-right:0; +} +.pika-prev{ + background-color:transparent; + border:var(--border-size-none); + color:var(--color-neutral-7); + cursor:pointer; + font:normal normal normal 0 FontAwesome; + padding:var(--space-none) var(--space-s); +} +.pika-prev:before{ + content:"\f104"; + font-size:var(--font-size-h5); + position:relative; +} +.pika-next{ + background-color:transparent; + border:var(--border-size-none); + color:var(--color-neutral-7); + cursor:pointer; + font:normal normal normal 0 FontAwesome; + margin-left:var(--space-base); + padding:var(--space-none) var(--space-s); +} +.pika-next:before{ + content:"\f105"; + font-size:var(--font-size-h5); + position:relative; +} +.pika-label{ + color:var(--color-primary); + cursor:pointer; + position:relative; +} +.pika-label:first-child{ + margin-right:var(--space-base); +} +.pika-label:hover{ + color:var(--color-primary-hover); + text-decoration:underline; +} +.pika-table{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; + padding:var(--space-none) var(--space-base) var(--space-base); + width:100%; +} +.pika-table thead{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-orient:horizontal; + -webkit-box-direction:normal; + -ms-flex-direction:row; + flex-direction:row; +} +.pika-table thead tr{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-flex:1; + -ms-flex:1; + flex:1; +} +.pika-table th{ + color:var(--color-neutral-7); + -webkit-box-flex:1; + -ms-flex:1; + flex:1; + font-weight:var(--font-regular); +} +.pika-table th abbr[title]{ + text-decoration:none; +} +.pika-table tbody{ + margin-top:var(--space-s); + overflow:hidden; +} +.pika-table tbody tr{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-orient:horizontal; + -webkit-box-direction:normal; + -ms-flex-direction:row; + flex-direction:row; + margin-bottom:var(--space-xs); +} +.pika-table tbody tr:last-child{ + margin-bottom:var(--space-none); +} +.pika-table tbody td{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; + -webkit-box-flex:1; + -ms-flex:1; + flex:1; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; +} +.pika-button{ + background-color:transparent; + border:var(--border-size-none); + border-radius:var(--border-radius-soft); + color:var(--color-neutral-9); + cursor:pointer; + height:32px; + padding:var(--space-none); + position:relative; + width:32px; + z-index:var(--layer-local-tier-1); +} +.pika-button:hover{ + background-color:var(--color-neutral-3); +} +.is-today .pika-button{ + background-color:var(--color-neutral-4); +} +.is-inrange .pika-button{ + background:var(--color-primary) var(--color-primary-lightest); +} +.is-startrange .pika-button, .is-selected .pika-button, .is-endrange .pika-button{ + background:var(--color-primary); + color:var(--color-neutral-0); +} +.is-disabled .pika-button, .is-disabled.is-outside-current-month .pika-button{ + color:var(--color-neutral-7); + pointer-events:none; + text-decoration:line-through; +} +.is-outside-current-month .pika-button{ + color:var(--color-neutral-7); + text-decoration:none; +} +.has-event .pika-button:before{ + background-color:var(--color-primary); + border-radius:var(--border-radius-circle); + bottom:3px; + content:""; + height:4px; + left:50%; + margin-left:-2px; + position:absolute; + width:4px; +} +.is-selected.has-event .pika-button:before{ + background-color:var(--color-neutral-0); +} +.pika-today-container{ + height:auto; + margin:var(--space-none) var(--space-none); + padding:var(--space-none) var(--space-none) var(--space-none); + width:100%; +} +.pika-today-container:hover{ + background-color:transparent; +} +.pika-go-today{ + background-color:transparent; + border:var(--border-size-none); + color:var(--color-primary); + cursor:pointer; + font-weight:normal; + padding:var(--space-none); +} +.pika-go-today:hover{ + color:var(--color-primary-hover); +} +.pika-month, .pika-year{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + margin-bottom:var(--space-base); + width:33.333%; +} +.pika-month.is-selected, .pika-year.is-selected{ + background-color:var(--color-primary); + color:var(--color-neutral-0); +} +.pika-time-container{ + margin:0 var(--space-base); +} +.pika-time-container select{ + background-color:transparent; + border:0; + color:var(--color-primary); +} +.pika-time-container option{ + color:var(--color-neutral-10); +} +input.OSFillParent.calendar-input{ + display:none; +} +.is-inrange{ + position:relative; +} +.is-inrange:before{ + background:var(--color-primary) var(--color-primary-lightest); + border-radius:var(--border-radius-soft); + content:""; + height:100%; + left:-8px; + position:absolute; + right:-14px; + top:0; +} +.is-inrange:first-child:before{ + left:3px; +} +.is-inrange:last-child:before{ + right:3px; +} +.month-picker, +.year-picker{ + -webkit-box-direction:normal; + -webkit-box-orient:horizontal; + -ms-flex-direction:row; + flex-direction:row; + -ms-flex-wrap:wrap; + flex-wrap:wrap; + padding:var(--space-none); +} +.prev-year, +.next-year{ + color:var(--color-neutral-7); +} +.calendar-help-dialog{ + background-color:var(--color-neutral-0); + bottom:0; + color:var(--color-neutral-10); + display:none; + left:0; + padding:var(--space-s); + position:absolute; + right:0; + top:0; + z-index:var(--laber-global-elevated); +} +.calendar-help-dialog.is--open{ + display:block; +} +.calendar-help-content{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; + height:100%; + -webkit-box-pack:justify; + -ms-flex-pack:justify; + justify-content:space-between; + overflow-y:auto; +} +.calendar-help-content p{ + margin:0; +} +.calendar-help-content ul{ + padding-left:var(--space-m); +} +.calendar-help-trigger{ + background-color:var(--color-info); + clip:rect(0, 0, 0, 0); + color:var(--color-neutral-0); + height:0; + left:50%; + overflow:hidden; + padding:var(--space-s); + position:absolute; + top:var(--space-xxl); + -webkit-transform:translateX(-50%); + -ms-transform:translateX(-50%); + transform:translateX(-50%); + white-space:nowrap; + width:0; +} +.calendar-help-trigger:focus{ + clip:initial; + height:auto; + overflow:visible; + width:auto; + z-index:var(--laber-global-elevated); +} +.calendar-help-close{ + background-color:var(--color-neutral-0); + color:var(--color-neutral-10); + height:auto; +} +.portal-class ~ .pika-single.is-bound{ + z-index:calc(var(--layer-above) + var(--popup-layer)); +} +.phone .pika-lendar tr{ + border-bottom:0; +} +.phone .pika-time td{ + display:initial; +} +.is-rtl .pika-next{ + margin-left:0; + margin-right:var(--space-m); + padding:var(--space-none) var(--space-xs); +} +.is-rtl .pika-next:before{ + content:"\f104"; +} +.is-rtl .pika-prev:before{ + content:"\f105"; +} +.is-rtl .pika-label:first-child{ + margin-left:var(--space-base); + margin-right:0; +} +.desktop .has-accessible-features .pika-title select{ + border:none; + color:var(--color-primary); + opacity:1; +} +.desktop .has-accessible-features .pika-title select:hover{ + border-bottom:var(--border-size-s) solid var(--color-primary); +} +.desktop .has-accessible-features .pika-title select option{ + color:var(--color-neutral-10); +} +.desktop .has-accessible-features .pika-title .pika-label{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-box; + display:-ms-flexbox; + display:flex; +} +/*! 6.8.5. Dropdown Search an Tags (Common) */ +.choices{ + min-width:150px; + position:relative; +} +.choices:focus{ + outline:none; +} +.choices:last-child{ + margin-bottom:var(--space-none); +} +.choices.is-open.is-focused .choices__inner{ + border:var(--border-size-s) solid var(--color-primary); + border-radius:var(--border-radius-soft); +} +.choices[data-type*=text] .choices__inner{ + cursor:text; +} +.choices[data-type*=text] .choices__button{ + border:var(--border-size-none); + display:inline-block; + line-height:1; + margin-bottom:var(--space-none); + margin-left:var(--space-s); + margin-right:-4px; + margin-top:var(--space-none); + padding-left:var(--space-base); + position:relative; + width:8px; +} +.choices[data-type*=text] .choices__button:hover, .choices[data-type*=text] .choices__button:focus{ + opacity:1; +} +.choices.Not_Valid .choices__inner{ + border:var(--border-size-s) solid var(--color-error); +} +.choices.is-disabled{ + pointer-events:none; +} +.choices.is-disabled .choices__inner, .choices.is-disabled .choices__input{ + background-color:var(--color-neutral-0); + cursor:not-allowed; + -webkit-user-select:none; + -moz-user-select:none; + -ms-user-select:none; + user-select:none; +} +.choices.is-disabled .choices__input::-webkit-input-placeholder{ + color:var(--color-neutral-6); +} +.choices.is-disabled .choices__input::-moz-placeholder{ + color:var(--color-neutral-6); +} +.choices.is-disabled .choices__input:-ms-input-placeholder{ + color:var(--color-neutral-6); +} +.choices.is-disabled .choices__input::-ms-input-placeholder{ + color:var(--color-neutral-6); +} +.choices.is-disabled .choices__input::placeholder{ + color:var(--color-neutral-6); +} +.choices.is-disabled .choices__item{ + cursor:not-allowed; +} +.choices.is-disabled .choices__item .choices__item--selectable{ + color:var(--color-neutral-6); +} +.choices.is-disabled .choices__inner{ + background-color:var(--color-neutral-2); + border:var(--border-size-s) solid var(--color-neutral-4); +} +.choices .choices__inner select{ + opacity:0; + pointer-events:none; + position:absolute; + width:1px; + z-index:var(--layer-global-negative); +} +.choices .search--wrapper{ + padding:var(--space-s); +} +.choices__inner{ + background-color:var(--color-neutral-0); + border:var(--border-size-s) solid var(--color-neutral-5); + border-radius:var(--border-radius-soft); + color:var(--color-neutral-3); + display:inline-block; + height:40px; + line-height:calc(var(--font-size-base) * 2); + padding-left:var(--space-base); + -webkit-transition:all 180ms linear; + transition:all 180ms linear; + vertical-align:top; + width:100%; +} +.choices__inner:hover{ + border:var(--border-size-s) solid var(--color-neutral-6); +} +.choices__list{ + list-style:none; + margin:var(--space-none); + padding-left:var(--space-none); +} +.choices__list::-webkit-scrollbar{ + width:5px; +} +.choices__list::-webkit-scrollbar-track{ + background:var(--color-neutral-4); +} +.choices__list::-webkit-scrollbar-thumb{ + background-color:var(--color-neutral-6); +} +.choices__list.choices__list--dropdown{ + border-radius:var(--border-radius-soft); +} +.choices__list.choices__list--dropdown.is-active{ + margin-top:var(--space-xs); +} +.choices__list--single{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; + height:100%; + padding-right:var(--space-base); + width:100%; +} +.choices__list--dropdown{ + background-color:var(--color-neutral-0); + border:var(--border-size-s) solid var(--color-neutral-5); + display:none; + overflow:hidden; + position:absolute; + top:100%; + width:100%; + word-break:break-all; + z-index:var(--layer-local-tier-3); +} +.choices__list--dropdown.is-active{ + display:block; +} +.choices__list--dropdown .choices__list{ + max-height:300px; + overflow:auto; + -webkit-overflow-scrolling:touch; + position:relative; + will-change:scroll-position; +} +.choices__list--dropdown .choices__item{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + height:auto; + min-height:40px; + padding:var(--space-none) var(--space-base); + position:relative; +} +.choices__list--dropdown .choices__item--selectable.is-highlighted{ + background-color:var(--color-neutral-2); +} +.choices__list--dropdown .choices__item--selectable.is-highlighted:after{ + opacity:0.5; +} +.choices__item{ + cursor:default; +} +.choices__item--disabled{ + cursor:not-allowed; + opacity:0.5; + -webkit-user-select:none; + -moz-user-select:none; + -ms-user-select:none; + user-select:none; +} +.choices__item--selectable{ + cursor:pointer; +} +.choices__heading{ + border-bottom:var(--border-size-s) solid var(--color-neutral-0); + color:var(--color-neutral-5); + font-size:var(--font-size-s); + font-weight:var(--font-semi-bold); + padding:var(--space-s); +} +.choices__button{ + -webkit-appearance:none; + -moz-appearance:none; + appearance:none; + background-color:transparent; + background-position:center; + background-repeat:no-repeat; + border:var(--border-size-none); + cursor:pointer; + text-indent:-9999px; +} +.choices__button:focus{ + outline:none; +} +.choices__input{ + background-color:var(--color-neutral-0); + border:var(--border-size-s) solid var(--color-neutral-5); + border-radius:var(--border-radius-soft); + display:inline-block; + vertical-align:baseline; + width:100%; +} +.choices__input:focus{ + outline:0; +} +.choices__placeholder{ + opacity:0.5; +} +.is-focused .choices__inner, .is-open .choices__inner{ + border-color:var(--color-primary); + border-radius:var(--border-radius-soft); + color:var(--color-neutral-1); +} +.is-open .choices__inner{ + border-radius:var(--border-radius-none); +} +.is-open.is-flipped .choices__inner{ + border-radius:var(--border-radius-none); +} +.is-flipped .choices__list--dropdown{ + border-radius:var(--border-radius-soft) var(--border-radius-soft) var(--border-radius-none) var(--border-radius-none); + bottom:100%; + margin-bottom:-1px; + margin-top:var(--space-none); + top:auto; +} +.search--wrapper{ + position:relative; +} +.search--wrapper:before{ + color:var(--color-neutral-6); + content:"\f002"; + font:normal normal normal 14px/1 FontAwesome; + font-family:"FontAwesome"; + left:var(--space-base); + position:absolute; + top:50%; + -webkit-transform:translateY(-50%); + -ms-transform:translateY(-50%); + transform:translateY(-50%); +} +.search--wrapper input{ + height:40px; + padding:var(--space-none) var(--space-base); + -webkit-transition:all 180ms linear; + transition:all 180ms linear; +} +.section-expandable-content .choices__list--dropdown.is-active{ + position:relative; +} +.tablet .choices__inner, +.phone .choices__inner{ + font-size:var(--font-size-base); + height:48px; +} +.choices[dir=rtl][data-type*=text] .choices__button{ + margin-left:0; + margin-right:var(--space-s); + padding-left:var(--space-none); +} +.choices[dir=rtl].is-disabled .choices__inner{ + background-position:center left 16px; +} +.choices[dir=rtl] .search--wrapper:before{ + right:var(--space-base); +} +.choices[dir=rtl] .search--wrapper input:not(.btn):not(.checkbox):not(.radio-button){ + padding-right:var(--space-xl); +} +.choices[dir=rtl] .choices__item, +.choices[dir=rtl] .choices__list--dropdown .choices__item{ + text-align:right; +} +.choices[dir=rtl] .choices__input{ + padding-left:var(--space-none); + padding-right:2px; +} +.has-accessible-features .choices__inner{ + border-color:var(--color-neutral-7); +} +.has-accessible-features .choices__inner:hover{ + border-color:var(--color-neutral-8); +} +.has-accessible-features .choices.is-open.is-focused .choices__inner{ + border-color:var(--color-focus-inner); +} +.has-accessible-features .search--wrapper input:focus{ + border-color:var(--color-focus-inner); +} +@media (min-width: 640px){ + .choices__list--dropdown .choices__item--selectable:after{ + content:attr(data-select-text); + font-size:var(--font-size-xs); + opacity:0; + position:absolute; + right:10px; + top:50%; + -webkit-transform:translateY(-50%); + -ms-transform:translateY(-50%); + transform:translateY(-50%); + } + .choices[dir=rtl] .choices__list--dropdown .choices__item--selectable{ + padding-right:var(--space-s); + text-align:right; + } + .choices[dir=rtl] .choices__list--dropdown .choices__item--selectable:after{ + left:10px; + right:auto; + } +} +.layout-native .tabs .choices .choices__list.choices__list--dropdown{ + position:relative; +} +/*! 6.8.6. Dropdown Search */ +.choices[data-type*=select-one]{ + cursor:pointer; +} +.choices[data-type*=select-one]:after{ + color:var(--color-neutral-7); + content:"\f107"; + font:normal normal normal 24px/1 FontAwesome; + font-family:"FontAwesome"; + position:absolute; + right:16px; + top:8px; + -webkit-transform-origin:center; + -ms-transform-origin:center; + transform-origin:center; + -webkit-transition:all 300ms ease; + transition:all 300ms ease; +} +.choices[data-type*=select-one].is-open:after{ + color:var(--color-primary); + -webkit-transform:rotate(180deg); + -ms-transform:rotate(180deg); + transform:rotate(180deg); +} +.choices[data-type*=select-one].is-disabled:after{ + color:var(--color-neutral-5); +} +.choices[data-type*=select-one].is-disabled .choices__list--single .choices__item{ + color:var(--color-neutral-6); +} +.choices[data-type*=select-one] .choices__button{ + display:none; + height:auto; + margin-right:var(--space-m); + margin-top:-10px; + padding:var(--space-none); + position:absolute; + right:0; + top:50%; + width:20px; +} +.choices[data-type*=select-one] .choices__button:hover, .choices[data-type*=select-one] .choices__button:focus{ + opacity:1; +} +.choices[data-type*=select-one] .choices__button:focus{ + -webkit-box-shadow:0 0 0 2px var(--shadow-xs); + box-shadow:0 0 0 2px var(--shadow-xs); +} +.choices[data-type*=select-one] .search--wrapper input:not(.btn):not(.checkbox):not(.radio-button), +.choices[data-type*=select-one] .search--wrapper .input{ + max-width:100%; + padding-left:var(--space-l); +} +.choices__list--single .choices__item{ + color:var(--color-neutral-10); + overflow:hidden; + padding-right:var(--space-base); + text-overflow:ellipsis; + white-space:nowrap; + width:99%; +} +.tablet .choices[data-type*=select-one]:after, +.phone .choices[data-type*=select-one]:after{ + top:14px; +} +.choices[dir=rtl][data-type*=select-one]:after{ + left:16px; + right:auto; +} +.choices[dir=rtl][data-type*=select-one] .choices__button{ + left:0; + margin-left:var(--space-m); + margin-right:var(--space-none); + right:auto; +} +.choices[dir=rtl] .choices__list--single{ + padding-left:var(--space-base); + padding-right:var(--space-xs); +} +.has-accessible-features .choices[data-type*=select-one]{ + border-radius:var(--border-radius-soft); +} +/*! 6.8.7. Dropdown Tags */ +.choices__list--multiple{ + display:inline; +} +.choices__list--multiple .choices__item{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + background-color:var(--color-neutral-3); + border:var(--border-size-s) solid var(--color-neutral-3); + border-radius:var(--border-radius-soft); + color:var(--color-neutral-9); + display:inline-table; + font-size:var(--font-size-xs); + font-weight:var(--font-semi-bold); + height:32px; + margin-left:var(--space-xs); + margin-top:var(--space-xs); + padding:var(--space-xs) var(--space-s); + vertical-align:middle; + word-break:break-all; +} +.choices__list--multiple .choices__item.is-highlighted{ + background-color:var(--color-primary); + border:var(--border-size-s) solid var(--color-primary); + color:var(--color-neutral-0); +} +.choices[data-type*=select-multiple].is-open.is-focused .choices__inner{ + border:var(--border-size-s) solid var(--color-primary); + border-radius:var(--border-radius-soft); +} +.choices[data-type*=select-multiple].is-open .choices__inner{ + border:var(--border-size-s) solid var(--color-neutral-5); +} +.choices[data-type*=select-multiple].is-disabled .choices__item.choices__item--selectable{ + color:var(--color-neutral-7); +} +.choices[data-type*=select-multiple] .choices__button{ + border:var(--border-size-none); + display:inline-block; + line-height:1; + margin-bottom:var(--space-none); + margin-left:var(--space-s); + margin-right:-4px; + margin-top:var(--space-none); + padding-left:var(--space-base); + position:relative; + width:8px; +} +.choices[data-type*=select-multiple] .choices__button::after{ + color:var(--color-neutral-7); + content:"\f00d"; + font:normal normal normal 14px/1 FontAwesome; + font-family:"FontAwesome"; + left:0; + position:absolute; + text-indent:0; + top:50%; + -webkit-transform:translateY(-50%); + -ms-transform:translateY(-50%); + transform:translateY(-50%); +} +.choices[data-type*=select-multiple] .choices__button:hover, .choices[data-type*=select-multiple] .choices__button:focus{ + opacity:1; +} +.choices[data-type*=select-multiple] .choices__inner{ + border-radius:var(--border-radius-soft); + cursor:text; + height:auto; + padding:0; +} +.choices[data-type*=select-multiple] .choices__item.is-highlighted .choices__button::after{ + color:var(--color-neutral-0); +} +.choices[data-type*=select-multiple] .choices__item[data-deletable]{ + padding-right:var(--space-xs); +} +.choices[data-type*=select-multiple] .choices__input{ + background-color:transparent; +} +.choices[data-type*=select-multiple] .search--wrapper{ + padding:0 var(--space-xs) 0 0; + width:auto; +} +.choices[data-type*=select-multiple] .search--wrapper::before{ + left:var(--space-base); +} +.choices[data-type*=select-multiple] .search--wrapper input:not(.btn):not(.checkbox):not(.radio-button), +.choices[data-type*=select-multiple] .search--wrapper .input{ + padding-left:var(--space-xl); + width:100% !important; +} +.choices[data-type*=select-multiple] .search--wrapper input{ + border:0; +} +.choices[data-type*=select-multiple] .search--wrapper input:focus{ + border:0; + -webkit-box-shadow:none; + box-shadow:none; +} +.is-disabled .choices__list--multiple .choices__item{ + background-color:var(--color-neutral-6); + border:var(--border-size-s) solid var(--color-neutral-7); +} +.dropdown-tag-select{ + opacity:0; +} +.dropdown-tag-preview .card{ + padding:var(--space-xs); +} +.choices[dir=rtl] .choices__list--multiple .choices__item{ + margin-left:var(--space-none); + margin-right:var(--space-xs); +} +.choices[dir=rtl][data-type*=select-multiple] .choices__button{ + margin-left:0; + margin-right:var(--space-s); + padding-left:var(--space-none); +} +.has-accessible-features .choices[data-type=select-multiple].is-open.is-focused .choices__inner{ + border-color:var(--color-focus-inner); + -webkit-box-shadow:0px 0px 0px 3px var(--color-focus-outer); + box-shadow:0px 0px 0px 3px var(--color-focus-outer); +} +/*! 6.8.8. Flip Content */ +.flip-content{ + position:relative; + -webkit-perspective:1000; + perspective:1000; + -servicestudio--webkit-perspective:initial; + -servicestudio-perspective:initial; +} +.flip-content-container{ + position:relative; + -webkit-transition:all 630ms cubic-bezier(0.03, 0.01, 0.67, 1.97); + transition:all 630ms cubic-bezier(0.03, 0.01, 0.67, 1.97); + -webkit-transform-style:preserve-3d; + transform-style:preserve-3d; + -servicestudio--webkit-transform-style:initial; + -servicestudio-transform-style:initial; +} +.flip-content-front, +.flip-content-back{ + left:0; + top:0; + -webkit-backface-visibility:hidden; + backface-visibility:hidden; +} +.flip-content-front:empty, +.flip-content-back:empty{ + -servicestudio-min-height:80px; +} +.flip-content-front{ + position:relative; + z-index:var(--layer-local-tier-1); +} +.flip-content-back{ + position:absolute; + width:100%; + -servicestudio-position:static; +} +.flip-content.flipped .flip-content-front{ + position:absolute; +} +.flip-content.flipped .flip-content-back{ + position:relative; + -webkit-transform:rotateY(90deg); + transform:rotateY(90deg); +} +.flip-content.flipped .flip-content-container{ + -webkit-transform:rotateY(-90deg); + transform:rotateY(-90deg); +} +/*! 6.8.9. Gallery */ +.grid-gallery, .grid-gallery > .list{ + display:grid; + grid-gap:var(--grid-gap); + grid-template-columns:repeat(var(--grid-desktop), 1fr); +} +.grid-gallery > *{ + margin-top:0; +} +.grid-gallery > .list{ + grid-column-end:calc(var(--grid-desktop) + 1); + grid-column-start:1; + overflow:initial; +} +.grid-gallery > .list .card, +.grid-gallery > .list .animate{ + height:100%; +} +.grid-gallery > img{ + -o-object-fit:cover; + object-fit:cover; +} +.tablet .grid-gallery, .tablet .grid-gallery > .list{ + grid-template-columns:repeat(var(--grid-tablet), 1fr); +} +.tablet .grid-gallery > .list{ + grid-column-end:calc(var(--grid-tablet) + 1); +} +.phone .grid-gallery, .phone .grid-gallery > .list{ + grid-template-columns:repeat(var(--grid-phone), 1fr); +} +.phone .grid-gallery > .list{ + grid-column-end:calc(var(--grid-phone) + 1); +} +/*! 6.8.10. Horizontal Scroll */ +.horizontal-scroll{ + overflow-x:auto; + overflow-y:hidden; + white-space:nowrap; +} +.horizontal-scroll{ + -servicestudio-min-height:80px; + -servicestudio-white-space:normal; +} +.horizontal-scroll > *{ + display:inline-block; + -webkit-transform:translateZ(0); + transform:translateZ(0); +} +.horizontal-scroll > .list > *{ + display:inline-block; + -webkit-transform:translateZ(0); + transform:translateZ(0); +} +.horizontal-scroll > .list > :not(:first-child){ + margin-left:var(--space-base); +} +.horizontal-scroll > .list > [data-block*=Card] + [data-block*=Card] .card{ + margin-top:var(--space-none); +} +.horizontal-scroll .list{ + background-color:transparent; +} +.horizontal-scroll > :not(:first-child){ + margin-left:var(--space-base); +} +.horizontal-scroll > [data-block*=Card] + [data-block*=Card] .card{ + margin-top:var(--space-none); +} +/*! 6.8.11. Notification */ +.notification{ + background-color:var(--color-neutral-0); + border:var(--border-size-s) solid var(--color-neutral-4); + border-radius:var(--border-radius-soft); + -webkit-box-shadow:var(--shadow-xl); + box-shadow:var(--shadow-xl); + color:var(--color-neutral-10); + left:50%; + padding:var(--space-m); + position:fixed; + top:0; + -webkit-transform:translateY(-120%) translateX(-50%); + -ms-transform:translateY(-120%) translateX(-50%); + transform:translateY(-120%) translateX(-50%); + -webkit-user-select:none; + -moz-user-select:none; + -ms-user-select:none; + user-select:none; + width:370px; + z-index:var(--layer-global-off-canvas); +} +.notification{ + -servicestudio--webkit-transform:translateY(0); + -servicestudio-position:static; + -servicestudio-transform:translateY(0); +} +.notification-content{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + display:-webkit-box; + display:-ms-flexbox; + display:flex; +} +.notification--visible{ + -webkit-transform:translateY(24px) translateX(-50%); + -ms-transform:translateY(24px) translateX(-50%); + transform:translateY(24px) translateX(-50%); +} +.notification--visible.notification--animatable{ + -webkit-transition:all 330ms ease-out; + transition:all 330ms ease-out; +} +.notification--animatable{ + -webkit-transition:all 130ms ease-in; + transition:all 130ms ease-in; +} +.layout-native .notification{ + left:50%; + margin-left:-185px; + -webkit-transform:translateY(-120%) translateX(0); + -ms-transform:translateY(-120%) translateX(0); + transform:translateY(-120%) translateX(0); +} +.layout-native .notification{ + -servicestudio-left:0; + -servicestudio-margin-left:0; + -servicestudio-transform:none; +} +.layout-native .notification--visible{ + -webkit-transform:translateY(24px) translateX(0); + -ms-transform:translateY(24px) translateX(0); + transform:translateY(24px) translateX(0); +} +.slide-from-left-enter .layout-native .notification, +.slide-from-left-leave .layout-native .notification, +.slide-from-right-enter .layout-native .notification, +.slide-from-right-leave .layout-native .notification, +.slide-from-top-enter .layout-native .notification, +.slide-from-top-leave .layout-native .notification, +.slide-from-bottom-enter .layout-native .notification, +.slide-from-bottom-leave .layout-native .notification, +.fade-enter .layout-native .notification, +.fade-leave .layout-native .notification{ + display:none; +} +.tablet .layout-native .notification{ + left:50%; + margin-left:-185px; +} +.phone .layout-native .notification{ + left:16px; + margin-left:0; + right:16px; + width:auto; +} +.android[data-status-bar-height] .layout-native .notification--visible{ + margin-top:var(--status-bar-height); +} +.ios.phone.landscape .layout-native .notification{ + left:calc(var(--os-safe-area-left) + 16px); + right:calc(var(--os-safe-area-right) + 16px); +} +.ios .layout-native .notification--visible{ + margin-top:var(--status-bar-height); +} +/*! 6.8.12. Progress Bar */ +.progress{ + background-color:var(--color-primary); + -webkit-transform-origin:left; + -ms-transform-origin:left; + transform-origin:left; + -webkit-transition:all 750ms ease-out; + transition:all 750ms ease-out; + will-change:width; +} +.progress-bar{ + background-color:var(--color-neutral-3); + overflow:hidden; + position:relative; +} +.progress-bar-text{ + display:none; +} +/*! 6.8.13. Progress Circle */ +.progress-circle{ + position:relative; +} +.progress-circle svg{ + height:100%; + stroke-linecap:round; +} +.progress-circle .progressbar-text{ + text-align:center; +} +.progress-circle-outer{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + padding:var(--space-base); +} +.progress-circle-small .progressbar-text{ + font-size:var(--font-size-h4); +} +.progress-circle-medium .progressbar-text{ + font-size:var(--font-size-h3); +} +.progress-circle-large .progressbar-text{ + font-size:var(--font-size-display); +} +/*! 6.8.14. Progress Circle Fraction */ +.progress-circle-text{ + left:50%; + position:absolute; + top:50%; + -webkit-transform:translate(-50%, -50%); + -ms-transform:translate(-50%, -50%); + transform:translate(-50%, -50%); + line-height:1.2; +} +.progress-circle-text{ + -servicestudio--webkit-transform:translate(0); + -servicestudio-position:static; +} +.progress-circle-text-numerator{ + font-size:var(--font-size-h4); +} +.progress-circle-text-denominator{ + font-size:var(--font-size-h6); +} +.progress-circle-medium .progress-circle-text-numerator{ + font-size:var(--font-size-h1); +} +.progress-circle-medium .progress-circle-text-denominator{ + font-size:var(--font-size-h4); +} +.progress-circle-large .progress-circle-text-numerator{ + font-size:44px; +} +.progress-circle-large .progress-circle-text-denominator{ + font-size:var(--font-size-h2); +} +/*! 6.8.15. Section Index */ +.section-index{ + border-left:var(--border-size-s) solid var(--color-neutral-5); + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; +} +.section-index.is--sticky{ + position:sticky; + top:var(--top-position); +} +.section-index-item{ + cursor:pointer; +} +.section-index-item:last-child{ + margin-bottom:var(--space-none); +} +.section-index-item.is--active{ + border-left:var(--border-size-m) solid var(--color-primary); + color:var(--color-neutral-9); + font-weight:var(--font-semi-bold); +} +.section-index a, .section-index a:visited{ + border-left:var(--border-size-m) solid transparent; + color:var(--color-neutral-8); + margin-bottom:var(--space-s); + padding-left:var(--space-base); +} +.section-index a:hover{ + color:var(--color-neutral-9); +} +.layout-native .section-index.is--sticky{ + position:fixed; + top:calc(var(--header-size) + var(--header-size-content) + var(--top-position) + var(--os-safe-area-top)); +} +.android[data-status-bar-height] .layout-native .section-index.is--sticky{ + top:calc(var(--header-size) + var(--header-size-content) + var(--top-position) + var(--status-bar-height)); +} +.safari [data-block*=SectionIndex]{ + display:contents; +} +.has-accessible-features .section-index a:focus{ + background-color:transparent; + -webkit-box-shadow:0 0 0 3px var(--color-focus-outer); + box-shadow:0 0 0 3px var(--color-focus-outer); +} +/*! 6.8.16. Sidebar */ +.sidebar{ + background-color:var(--color-neutral-0); + -webkit-box-shadow:var(--shadow-l); + box-shadow:var(--shadow-l); + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; + height:100%; + margin:var(--space-none); + position:fixed; + right:0; + top:0; + -webkit-transform:translateX(102%); + -ms-transform:translateX(102%); + transform:translateX(102%); + -webkit-transition:all 130ms ease-in; + transition:all 130ms ease-in; + width:500px; + will-change:transform; + z-index:var(--layer-global-off-canvas); +} +.sidebar{ + -servicestudio-bottom:20px; + -servicestudio-height:auto; + -servicestudio-margin-left:auto; + -servicestudio-position:relative; + -servicestudio-transform:none; + -servicestudio-webkit-transform:none; +} +.sidebar:before{ + background-color:transparent; + content:""; + height:100%; + left:-24px; + position:fixed; + width:24px; +} +.sidebar-header, .sidebar-content{ + padding:var(--space-base) var(--space-m); +} +.sidebar-content{ + -webkit-box-flex:1; + -ms-flex:1; + flex:1; + overflow:auto; + -webkit-overflow-scrolling:touch; +} +.active-screen.screen-container .sidebar.sidebar-open{ + -webkit-transform:none; + -ms-transform:none; + transform:none; + -webkit-transition:all 330ms ease-out; + transition:all 330ms ease-out; + will-change:transform; +} +.desktop .sidebar:before{ + display:none; +} +.android[data-status-bar-height] .layout-native .sidebar{ + padding-top:var(--status-bar-height); +} +.ios .layout-native .sidebar{ + padding-bottom:var(--os-safe-area-bottom); + padding-top:var(--os-safe-area-top); +} +.ios .phone.landscape .layout-native .sidebar:before{ + left:calc((var(--os-safe-area-left) + 12px) * -1); + width:calc(var(--os-safe-area-left) + 12px); +} +.landscape .layout-native .sidebar{ + padding-bottom:var(--os-safe-area-bottom); +} +.tablet .sidebar.full-width, +.phone .sidebar.full-width{ + width:100%; +} +.tablet .sidebar.full-width-vw, +.phone .sidebar.full-width-vw{ + width:100vw; +} +.tablet .layout-native .sidebar{ + width:336px; +} +.phone .sidebar{ + width:85vw; +} +/*! 6.8.17. Search */ +.search{ + position:relative; +} +.search:empty{ + -servicestudio-height:40px; +} +.search-input{ + position:relative; +} +.search-input:empty{ + -servicestudio-background-color:#fff; + -servicestudio-border-radius:4px; + -servicestudio-height:40px; +} +.search-input:after{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + color:var(--color-neutral-6); + content:"\f002"; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + font:normal normal normal 14px/1 FontAwesome; + height:100%; + left:16px; + position:absolute; + top:0; +} +.search-preview{ + display:none; +} +.search .form-control[data-input]{ + padding-left:var(--space-xl); +} +.form .search input[data-input]{ + margin-bottom:var(--space-none); +} +.is-rtl .search-input:after{ + left:auto; + right:16px; +} +.is-rtl .search .form-control[data-input]{ + padding-left:var(--space-base); + padding-right:var(--space-xl); +} +.layout-native .header .search input[data-input], .layout-native .header .search input[data-input]:empty{ + border:var(--border-size-none); + padding-left:var(--space-xl); +} +.layout-native .header-right .search{ + background-color:transparent; + padding:var(--space-none); + position:static; +} +.layout-native .header-right .search.open .search-glass .search-round, .layout-native .header-right .search.open .search-glass .search-stick-bottom{ + height:24px; + right:17px; +} +.layout-native .header-right .search.open .search-glass .search-round{ + border-radius:var(--border-radius-none); + -webkit-box-shadow:inset 0 0 0 3px var(--color-neutral-6); + box-shadow:inset 0 0 0 3px var(--color-neutral-6); + -webkit-transform:rotate(135deg); + -ms-transform:rotate(135deg); + transform:rotate(135deg); + width:3px; +} +.layout-native .header-right .search.open .search-glass .search-stick-bottom{ + background-color:var(--color-neutral-6); + top:12px; + -webkit-transform:rotate(45deg); + -ms-transform:rotate(45deg); + transform:rotate(45deg); +} +.layout-native .header-right .search.open .search-input{ + -webkit-transform:translate(0, 0); + -ms-transform:translate(0, 0); + transform:translate(0, 0); +} +.layout-native .header-right .search-glass{ + display:inline-block; + height:44px; + position:relative; + width:40px; +} +.layout-native .header-right .search-round{ + border-radius:var(--border-radius-circle); + -webkit-box-shadow:inset 0 0 0 3px var(--color-neutral-6); + box-shadow:inset 0 0 0 3px var(--color-neutral-6); + height:16px; + margin-top:-10px; + position:absolute; + right:13px; + top:50%; + -webkit-transition:all 300ms ease; + transition:all 300ms ease; + width:16px; +} +.layout-native .header-right .search-stick-bottom{ + background-color:var(--color-neutral-6); + content:""; + height:10px; + position:absolute; + right:12px; + top:23px; + -webkit-transform:rotate(-45deg); + -ms-transform:rotate(-45deg); + transform:rotate(-45deg); + -webkit-transition:all 300ms ease; + transition:all 300ms ease; + width:3px; +} +.layout-native .header-right .search-input{ + left:var(--os-safe-area-left); + position:absolute; + right:0; + top:var(--os-safe-area-top); + -webkit-transform:translate(0, calc(-100% - var(--os-safe-area-top))); + -ms-transform:translate(0, calc(-100% - var(--os-safe-area-top))); + transform:translate(0, calc(-100% - var(--os-safe-area-top))); + -webkit-transition:all 300ms ease; + transition:all 300ms ease; +} +.layout-native .header-right .search-input input[data-input], .layout-native .header-right .search-input input[data-input]:empty{ + height:34px; + padding-left:var(--space-xl); + -webkit-transition:none; + transition:none; +} +.layout-native .header-right .search-input input[data-input]:focus{ + border-bottom:var(--border-size-s) solid transparent; +} +.layout-native .header-right .search-input ::-webkit-input-placeholder{ + color:var(--color-neutral-6); +} +.layout-native .header-content .search input[data-input], .layout-native .header-content .search input[data-input]:empty{ + border-radius:var(--border-radius-none); + height:var(--header-size); +} +.slide-from-left-enter .layout-native .header-right .search-input, +.slide-from-left-leave .layout-native .header-right .search-input, +.slide-from-right-enter .layout-native .header-right .search-input, +.slide-from-right-leave .layout-native .header-right .search-input, +.slide-from-top-enter .layout-native .header-right .search-input, +.slide-from-top-leave .layout-native .header-right .search-input, +.slide-from-bottom-enter .layout-native .header-right .search-input, +.slide-from-bottom-leave .layout-native .header-right .search-input, +.fade-enter .header-right .layout-native .search-input, +.fade-leave .header-right .layout-native .search-input{ + display:none; +} +/*! 6.8.18. Submenu */ +.submenu{ + cursor:pointer; + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; + height:100%; + margin-left:var(--space-base); + position:relative; +} +.submenu{ + -servicestudio-height:auto !important; +} +.submenu:hover .submenu-icon:before{ + border:var(--border-size-s) solid var(--color-neutral-9); + border-right:0; + border-top:0; +} +.submenu.active.open .submenu-item{ + color:var(--color-primary); +} +.submenu.active .submenu-header{ + border-bottom:var(--border-size-m) solid var(--color-primary); +} +.submenu.active .submenu-item, +.submenu.active .submenu-item a{ + color:var(--color-primary); +} +.submenu.active .submenu-icon:before{ + border:var(--border-size-s) solid var(--color-primary); + border-right:0; + border-top:0; +} +.submenu.open .submenu-icon{ + top:3px; + -webkit-transform:rotate(135deg); + -ms-transform:rotate(135deg); + transform:rotate(135deg); +} +.submenu.open .submenu-items{ + opacity:1; + pointer-events:auto; + -webkit-transform:translateY(0px); + -ms-transform:translateY(0px); + transform:translateY(0px); +} +.submenu.is--dropdown .submenu-icon{ + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; +} +.submenu-header{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + border-bottom:var(--border-size-m) solid transparent; + border-top:var(--border-size-m) solid transparent; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + padding:var(--space-none) var(--space-s); + -webkit-transition:all 150ms linear; + transition:all 150ms linear; +} +.submenu-icon{ + display:none; + margin-left:var(--space-s); + position:relative; + top:-1px; + -webkit-transform:rotate(-45deg); + -ms-transform:rotate(-45deg); + transform:rotate(-45deg); + -webkit-transition:all 150ms linear; + transition:all 150ms linear; +} +.submenu-icon:before{ + border:var(--border-size-s) solid var(--color-neutral-8); + border-right:0; + border-top:0; + -webkit-box-sizing:border-box; + box-sizing:border-box; + content:""; + height:6px; + -webkit-transition:all 150ms linear; + transition:all 150ms linear; + width:6px; +} +.submenu-item{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + color:var(--color-neutral-9); + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; + height:100%; + position:relative; + -webkit-transition:all 150ms linear; + transition:all 150ms linear; +} +.submenu-item a{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + color:var(--color-neutral-8); + display:-webkit-box; + display:-ms-flexbox; + display:flex; + height:100%; +} +.submenu-items{ + background-color:var(--color-neutral-0); + border:var(--border-size-s) solid var(--color-neutral-4); + border-radius:var(--border-radius-soft); + -webkit-box-shadow:var(--shadow-m); + box-shadow:var(--shadow-m); + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; + left:0; + min-width:100px; + opacity:0; + padding:var(--space-s) var(--space-none); + pointer-events:none; + position:absolute; + top:calc(100% + var(--space-xs)); + -webkit-transform:translateY(-8px); + -ms-transform:translateY(-8px); + transform:translateY(-8px); + -webkit-transition:all 130ms ease-out; + transition:all 130ms ease-out; + z-index:var(--layer-global-elevated); +} +.submenu-items{ + -servicestudio-opacity:1 !important; + -servicestudio-pointer-events:auto !important; + -servicestudio-top:100% !important; + -servicestudio-transform:translateY(0px) !important; +} +.submenu-items a{ + color:var(--color-neutral-8); + margin:0; + padding:var(--space-s) var(--space-base); + white-space:nowrap; +} +.submenu-items a.active{ + color:var(--color-primary); +} +.layout:not(.layout-side) .app-menu-links .submenu a{ + border-bottom:none; +} +.layout .header .submenu-items{ + -servicestudio-display:none !important; +} +.layout .submenu{ + -servicestudio-height:100% !important; +} +.layout-side .app-menu-links .submenu a{ + border-left:none; +} +.layout-side .submenu{ + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; + margin-left:var(--space-none); + width:100%; +} +.layout-side .submenu.active .submenu-header{ + border-left:var(--border-size-m) solid var(--color-primary); +} +.layout-side .submenu.open .submenu-items{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; +} +.layout-side .submenu .submenu-header{ + border-bottom:0; + border-left:var(--border-size-m) solid transparent; + border-top:0; + padding:var(--space-s) var(--space-m); +} +.layout-side .submenu-item{ + -webkit-box-flex:1; + -ms-flex:1; + flex:1; +} +.layout-side .submenu-items{ + border:none; + -webkit-box-shadow:none; + box-shadow:none; + display:none; + opacity:1; + padding:var(--space-xs) var(--space-m); + pointer-events:auto; + position:relative; + top:0; + -webkit-transform:translateY(0); + -ms-transform:translateY(0); + transform:translateY(0); +} +.layout-side .submenu-items a{ + padding:var(--space-s) var(--space-base); +} +.layout-side .app-menu-links .submenu-header a, +.menu-visible .app-menu-links .submenu-header a{ + padding:var(--space-none); +} +.desktop .submenu:hover .submenu-item{ + color:var(--color-neutral-9); +} +.desktop .submenu.active .submenu-header:hover .submenu-item{ + color:var(--color-primary); +} +.desktop .submenu-header:hover{ + border-bottom:var(--border-size-m) solid var(--color-primary); +} +.desktop .submenu-item a:hover{ + color:var(--color-neutral-9); +} +.desktop .submenu-items a:hover{ + background-color:var(--color-neutral-2); + color:var(--color-neutral-9); +} +.desktop .submenu-items a.active:hover{ + color:var(--color-primary); +} +.desktop .layout-side .submenu .submenu-header{ + border-bottom:var(--border-size-m) solid transparent; +} +.desktop .layout-side .submenu .submenu-header:hover{ + border-bottom:var(--border-size-m) solid transparent; +} +.tablet .submenu, +.phone .submenu{ + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; + margin-left:var(--space-none); + width:100%; +} +.tablet .submenu.active .submenu-header, +.phone .submenu.active .submenu-header{ + border-left:var(--border-size-m) solid var(--color-primary); + border-bottom:0; +} +.tablet .submenu.open .submenu-items, +.phone .submenu.open .submenu-items{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; +} +.tablet .submenu-header, +.phone .submenu-header{ + border-bottom:0; + border-left:var(--border-size-m) solid transparent; + border-top:0; + padding:var(--space-s) var(--space-m); +} +.tablet .submenu-item, +.phone .submenu-item{ + -webkit-box-flex:1; + -ms-flex:1; + flex:1; +} +.tablet .submenu-items, +.phone .submenu-items{ + border:none; + -webkit-box-shadow:none; + box-shadow:none; + display:none; + opacity:1; + padding:var(--space-xs) var(--space-m); + pointer-events:auto; + position:relative; + top:0; + -webkit-transform:translateY(0); + -ms-transform:translateY(0); + transform:translateY(0); +} +.is-rtl .layout-side .submenu .submenu-header{ + border-left:0; + border-right:var(--border-size-m) solid transparent; +} +.is-rtl.tablet .submenu.active .submenu-header, .is-rtl.phone .submenu.active .submenu-header{ + border-left:0; + border-right:var(--border-size-m) solid var(--color-primary); +} +.is-rtl.tablet .submenu .submenu-header, .is-rtl.phone .submenu .submenu-header{ + border-left:0; + border-right:var(--border-size-m) solid transparent; +} +.is-rtl .submenu-icon{ + margin-left:var(--space-none); + margin-right:var(--space-s); +} +.is-rtl .layout-side .submenu.active .submenu-header{ + border-left:var(--border-size-none); + border-right:var(--border-size-m) solid var(--color-primary); +} +/*! 6.8.19. Tabs */ +.tabs{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -ms-flex-wrap:wrap; + flex-wrap:wrap; +} +.tabs.justified .tabs-header{ + width:100%; +} +.tabs.justified [data-block*=TabsHeaderItem]{ + -webkit-box-flex:1; + -ms-flex:1; + flex:1; +} +.tabs.justified [data-block*=TabsHeaderItem] .tabs-header-tab{ + margin-left:var(--space-none); +} +.tabs.tabs-vertical{ + -webkit-box-orient:horizontal; + -webkit-box-direction:normal; + -ms-flex-direction:row; + flex-direction:row; + -ms-flex-wrap:nowrap; + flex-wrap:nowrap; +} +.tabs.tabs-vertical.justified .tabs-header{ + height:auto; +} +.tabs.tabs-vertical.tabs-header-right .tabs-header{ + -webkit-box-ordinal-group:3; + -ms-flex-order:2; + order:2; +} +.tabs.tabs-vertical.tabs-header-right .tabs-header .tabs-header-tab{ + border-left:var(--border-size-m) solid transparent; + border-right:var(--border-size-none); + padding:var(--space-s) var(--space-none) var(--space-s) var(--space-m); +} +.tabs.tabs-vertical.tabs-header-right .tabs-header .tabs-header-tab.active{ + border-left:var(--border-size-m) solid var(--color-primary); +} +.tabs.tabs-vertical.tabs-header-right .tabs-content{ + border-left:var(--border-size-none); + border-right:var(--border-size-s) solid var(--color-neutral-5); + margin-left:var(--space-none); + margin-right:-1px; +} +.tabs.tabs-vertical .tabs-header, +.tabs.tabs-vertical .tabs-header .ListRecords{ + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; + height:100%; + width:auto; + word-break:initial; +} +.tabs.tabs-vertical .tabs-header .tabs-header-tab{ + border-bottom:var(--border-size-none); + border-right:var(--border-size-m) solid transparent; + -webkit-box-pack:start; + -ms-flex-pack:start; + justify-content:flex-start; + margin-left:var(--space-none); + padding:var(--space-s) var(--space-m) var(--space-s) var(--space-none); +} +.tabs.tabs-vertical .tabs-header-tab.active{ + border-right:var(--border-size-m) solid var(--color-primary); +} +.tabs.tabs-vertical .tabs-content{ + border-left:var(--border-size-s) solid var(--color-neutral-5); + border-top:var(--border-size-none); + margin-left:-1px; + margin-top:var(--space-none); + padding:var(--space-none) var(--space-m); +} +.tabs-header, +.tabs-header .list{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; + overflow-x:auto; + position:relative; + width:100%; + z-index:var(--layer-local-tier-1); +} +.tabs-header-tab{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + border-bottom:var(--border-size-m) solid transparent; + color:var(--color-neutral-8); + cursor:pointer; + display:-webkit-box; + display:-ms-flexbox; + display:flex; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; + margin-left:var(--space-l); + padding:var(--space-base) var(--space-xs); + -webkit-transition:border 150ms linear; + transition:border 150ms linear; + white-space:nowrap; +} +.tabs-header-tab.active{ + border-bottom:var(--border-size-m) solid var(--color-primary); + color:var(--color-neutral-10); + font-weight:var(--font-semi-bold); +} +.tabs-content{ + border-top:var(--border-size-s) solid var(--color-neutral-5); + -webkit-box-flex:1; + -ms-flex-positive:1; + flex-grow:1; + margin-top:-1px; + padding:var(--space-m) var(--space-none); + position:relative; + width:100%; + z-index:var(--layer-global-auto); +} +.tabs-content-tab:not(.open){ + display:none; +} +.tabs-content-tab:not(.open){ + -servicestudio-display:block !important; +} +[data-block*=TabsHeaderItem]:first-child .tabs-header-tab{ + margin-left:var(--space-none); +} +.popup-dialog .tabs .tabs-content-tab:not(.open){ + display:none; +} +.popup-dialog .tabs .tabs-content-tab:not(.open){ + -servicestudio-display:block !important; +} +.layout-native .tabs.tabs-section-group .tabs-content{ + overflow:initial; +} +.layout-native .tabs.tabs-vertical .tabs-content-tab:not(.open){ + display:none; +} +.layout-native .tabs.tabs-vertical .tabs-content .tabs-content-wrapper{ + -webkit-transform:translateX(0px) translateZ(0px) !important; + transform:translateX(0px) translateZ(0px) !important; +} +.layout-native .tabs-content{ + overflow:hidden; + white-space:nowrap; + width:100%; +} +.layout-native .tabs-content{ + -servicestudio-overflow:visible; + -servicestudio-white-space:normal; +} +.layout-native .tabs-content-wrapper{ + -webkit-transition:-webkit-transform 230ms ease-in-out; + transition:-webkit-transform 230ms ease-in-out; + transition:transform 230ms ease-in-out; + transition:transform 230ms ease-in-out, -webkit-transform 230ms ease-in-out; +} +.layout-native .tabs-content-tab{ + display:-webkit-inline-box; + display:-ms-inline-flexbox; + display:inline-flex; + height:100%; + position:relative; + vertical-align:top; + white-space:normal; + width:100%; + overflow:hidden; +} +.layout-native .tabs-content-tab > *{ + left:0; + position:absolute; + top:0; + width:100%; +} +.layout-native .tabs-content-tab > *{ + -servicestudio-position:relative; +} +.layout-native .tabs-content-tab.open > *{ + position:relative; +} +.layout-native .tabs-content-tab:not(.open){ + display:inline-block; +} +.desktop .tabs.tabs-vertical .tabs-header-tab:hover{ + border-bottom:var(--border-size-none); + border-right:var(--border-size-m) solid var(--color-neutral-6); +} +.desktop .tabs.tabs-vertical .tabs-header-tab.active:hover{ + border-right:var(--border-size-m) solid var(--color-primary); +} +.desktop .tabs.tabs-vertical.tabs-header-right .tabs-header-tab:hover{ + border-left:var(--border-size-m) solid var(--color-neutral-6); +} +.desktop .tabs.tabs-vertical.tabs-header-right .tabs-header-tab.active:hover{ + border-left:var(--border-size-m) solid var(--color-primary); + border-right:var(--border-size-none); +} +.desktop .tabs-header-tab:hover{ + border-bottom:var(--border-size-m) solid var(--color-neutral-6); + color:var(--color-neutral-10); +} +.desktop .tabs-header-tab.active:hover{ + border-bottom:var(--border-size-m) solid var(--color-primary); +} +.is-rtl .tabs.tabs-vertical.tabs-header-right .tabs-header .tabs-header-tab{ + border-left:var(--border-size-none); + border-right:var(--border-size-m) solid transparent; + margin:0; + padding:var(--space-s) var(--space-m) var(--space-s) var(--space-none); +} +.is-rtl .tabs.tabs-vertical.tabs-header-right .tabs-content{ + border-left:var(--border-size-s) solid var(--color-neutral-5); + border-right:0; +} +.is-rtl .tabs.tabs-vertical .tabs-header-tab{ + border-left:var(--border-size-m) solid transparent; + border-right:var(--border-size-none); + margin:0; + padding:var(--space-s) var(--space-none) var(--space-s) var(--space-m); +} +.is-rtl .tabs.tabs-vertical .tabs-header-tab.active{ + border-left:var(--border-size-m) solid var(--color-primary); + border-right:var(--border-size-none); +} +.is-rtl .tabs.tabs-vertical .tabs-content{ + border-left:0; + border-right:var(--border-size-s) solid var(--color-neutral-5); +} +.is-rtl .tabs-header-tab{ + margin-left:0; + margin-right:var(--space-l); +} +.is-rtl [data-block*=TabsHeaderItem]:first-child .tabs-header-tab{ + margin-right:0; +} +.is-rtl.desktop .tabs.tabs-vertical .tabs-header-tab:hover{ + border-left:var(--border-size-m) solid var(--color-neutral-6); + border-right:var(--border-size-none); +} +.is-rtl.desktop .tabs.tabs-vertical .tabs-header-tab.active{ + border-left:var(--border-size-m) solid var(--color-primary); + border-right:var(--border-size-none); +} +/*! 6.8.20. Tooltip */ +.tooltip{ + display:inline-block; + position:relative; +} +.tooltip{ + -servicestudio-z-index:var(--layer-global-screen); +} +.tooltip-content{ + -servicestudio-min-width:90px; +} +.tooltip-wrapper{ + background-color:var(--color-neutral-9); + border-radius:var(--border-radius-soft); + color:var(--color-neutral-0); + min-width:80px; + padding:var(--space-s) var(--space-base); + position:absolute; + text-align:center; + z-index:var(--layer-global-elevated); +} +.tooltip-wrapper{ + -servicestudio-position:relative; + -servicestudio-width:150px; +} +.tooltip-wrapper.top{ + bottom:calc(100% + var(--space-s)); + left:50%; + -webkit-transform:translateX(-50%); + -ms-transform:translateX(-50%); + transform:translateX(-50%); +} +.tooltip-wrapper.top{ + -servicestudio-bottom:130%; +} +.tooltip-wrapper.top:after{ + border:8px solid transparent; + border-top:8px solid var(--color-neutral-9); + bottom:-14px; + content:""; + height:0; + left:50%; + position:absolute; + -webkit-transform:translateX(-50%); + -ms-transform:translateX(-50%); + transform:translateX(-50%); + width:0; +} +.tooltip-wrapper.top-left{ + bottom:calc(100% + var(--space-s)); + right:calc(100% - var(--space-m)); +} +.tooltip-wrapper.top-left:after{ + border:8px solid transparent; + border-top:8px solid var(--color-neutral-9); + bottom:-14px; + content:""; + height:0; + position:absolute; + right:7px; + width:0; +} +.tooltip-wrapper.top-right{ + bottom:calc(100% + var(--space-s)); + left:calc(100% - var(--space-m)); +} +.tooltip-wrapper.top-right:after{ + border:8px solid transparent; + border-top:8px solid var(--color-neutral-9); + bottom:-14px; + content:""; + height:0; + left:7px; + position:absolute; + width:0; +} +.tooltip-wrapper.bottom{ + left:50%; + top:calc(100% + var(--space-s)); + -webkit-transform:translateX(-50%); + -ms-transform:translateX(-50%); + transform:translateX(-50%); +} +.tooltip-wrapper.bottom:after{ + border:8px solid transparent; + border-bottom:8px solid var(--color-neutral-9); + content:""; + height:0; + left:50%; + position:absolute; + top:-14px; + -webkit-transform:translateX(-50%); + -ms-transform:translateX(-50%); + transform:translateX(-50%); + width:0; +} +.tooltip-wrapper.bottom-left{ + right:calc(100% - var(--space-m)); + top:calc(100% + var(--space-s)); +} +.tooltip-wrapper.bottom-left:after{ + border:8px solid transparent; + border-bottom:8px solid var(--color-neutral-9); + content:""; + height:0; + position:absolute; + right:7px; + top:-14px; + width:0; +} +.tooltip-wrapper.bottom-right{ + left:calc(100% - var(--space-m)); + top:calc(100% + var(--space-s)); +} +.tooltip-wrapper.bottom-right:after{ + border:8px solid transparent; + border-bottom:8px solid var(--color-neutral-9); + content:""; + height:0; + left:7px; + position:absolute; + top:-14px; + width:0; +} +.tooltip-wrapper.left{ + right:calc(100% + var(--space-s)); + top:50%; + -webkit-transform:translateY(-50%); + -ms-transform:translateY(-50%); + transform:translateY(-50%); +} +.tooltip-wrapper.left:after{ + border:8px solid transparent; + border-left:8px solid var(--color-neutral-9); + content:""; + height:0; + left:calc(100% - 1px); + position:absolute; + top:50%; + -webkit-transform:translateY(-50%); + -ms-transform:translateY(-50%); + transform:translateY(-50%); + width:0; +} +.tooltip-wrapper.right{ + left:calc(100% + var(--space-s)); + top:50%; + -webkit-transform:translateY(-50%); + -ms-transform:translateY(-50%); + transform:translateY(-50%); +} +.tooltip-wrapper.right:after{ + border:8px solid transparent; + border-right:8px solid var(--color-neutral-9); + content:""; + height:0; + position:absolute; + right:calc(100% - 1px); + top:50%; + -webkit-transform:translateY(-50%); + -ms-transform:translateY(-50%); + transform:translateY(-50%); + width:0; +} +.tooltip-background{ + height:100%; + left:0; + position:fixed; + top:0; + width:100%; + z-index:var(--layer-local-tier-1); +} +.tooltip-background{ + -servicestudio-display:none; +} +.layout-native .tabs-content .tooltip-background{ + position:absolute; +} +/*! 6.8.21. Video */ +.video-preview{ + display:block; +} +.video-wrapper.hide-controls{ + pointer-events:none; +} +.video-wrapper.hide-controls::-webkit-media-controls-panel, .video-wrapper.hide-controls::-webkit-media-controls-panel-container{ + display:none !important; +} +/*! ============================================================================== +7. Usefull Classes +=============================================================================== */ +/*! 7.1. a11y (Accessibility) */ +.wcag-hide-text{ + border:0; + clip:rect(0 0 0 0); + height:1px; + margin:-1px; + overflow:hidden; + padding:0; + position:absolute; + white-space:nowrap; + width:1px; +} +.wcag-hide-text{ + -servicestudio-display:none; +} +.skip-nav{ + left:var(--space-xl); + opacity:0; + padding:var(--space-s) var(--space-base); + pointer-events:none; + position:absolute; + text-transform:uppercase; + top:10px; + z-index:var(--layer-global-instant-interaction); +} +.skip-nav[data-showskipcontent=false]{ + display:none; +} +.skip-nav[data-showskipcontent=true]{ + display:block; +} +.has-accessible-features .skip-nav:focus, .has-accessible-features .skip-nav:active{ + opacity:1; + pointer-events:auto; +} +/*! 7.2. Colors - Brand */ +.background-primary{ + background-color:var(--color-primary); +} +.background-primary-lightest{ + background-color:var(--color-neutral-0); +} +.background-secondary{ + background-color:var(--color-secondary); +} +.background-secondary-lightest{ + background-color:var(--color-neutral-0); +} +.text-primary, .text-primary-darker{ + color:var(--color-primary); +} +.text-secondary, .text-secondary-darker{ + color:var(--color-secondary); +} +/*! 7.3. Colors - Neutral */ +.background-neutral-0{ + background-color:var(--color-neutral-0); +} +.background-neutral-0-lightest{ + background-color:var(--color-neutral-9); +} +.background-neutral-1{ + background-color:var(--color-neutral-1); +} +.background-neutral-1-lightest{ + background-color:var(--color-neutral-9); +} +.background-neutral-2{ + background-color:var(--color-neutral-2); +} +.background-neutral-2-lightest{ + background-color:var(--color-neutral-9); +} +.background-neutral-3{ + background-color:var(--color-neutral-3); +} +.background-neutral-3-lightest{ + background-color:var(--color-neutral-9); +} +.background-neutral-4{ + background-color:var(--color-neutral-4); +} +.background-neutral-4-lightest{ + background-color:var(--color-neutral-9); +} +.background-neutral-5{ + background-color:var(--color-neutral-5); +} +.background-neutral-5-lightest{ + background-color:var(--color-neutral-0); +} +.background-neutral-6{ + background-color:var(--color-neutral-6); +} +.background-neutral-6-lightest{ + background-color:var(--color-neutral-0); +} +.background-neutral-7{ + background-color:var(--color-neutral-7); +} +.background-neutral-7-lightest{ + background-color:var(--color-neutral-0); +} +.background-neutral-8{ + background-color:var(--color-neutral-8); +} +.background-neutral-8-lightest{ + background-color:var(--color-neutral-0); +} +.background-neutral-9{ + background-color:var(--color-neutral-9); +} +.background-neutral-9-lightest{ + background-color:var(--color-neutral-0); +} +.background-neutral-10{ + background-color:var(--color-neutral-10); +} +.background-neutral-10-lightest{ + background-color:var(--color-neutral-0); +} +.text-neutral-0{ + color:var(--color-neutral-0); +} +.text-neutral-1{ + color:var(--color-neutral-1); +} +.text-neutral-2{ + color:var(--color-neutral-2); +} +.text-neutral-3{ + color:var(--color-neutral-3); +} +.text-neutral-4{ + color:var(--color-neutral-4); +} +.text-neutral-5{ + color:var(--color-neutral-5); +} +.text-neutral-5-darker{ + color:var(--color-neutral-5); +} +.text-neutral-6{ + color:var(--color-neutral-6); +} +.text-neutral-6-darker{ + color:var(--color-neutral-6); +} +.text-neutral-7{ + color:var(--color-neutral-7); +} +.text-neutral-7-darker{ + color:var(--color-neutral-7); +} +.text-neutral-8{ + color:var(--color-neutral-8); +} +.text-neutral-8-darker{ + color:var(--color-neutral-8); +} +.text-neutral-9{ + color:var(--color-neutral-9); +} +.text-neutral-9-darker{ + color:var(--color-neutral-9); +} +.text-neutral-10{ + color:var(--color-neutral-10); +} +.text-neutral-10-darker{ + color:var(--color-neutral-10); +} +/*! 7.4. Colors - Palette */ +.background-red-lightest{ + background-color:var(--color-red-lightest); +} +.background-red-lighter{ + background-color:var(--color-red-lighter); +} +.background-red-light{ + background-color:var(--color-red-light); +} +.background-red{ + background-color:var(--color-red); +} +.background-red-dark{ + background-color:var(--color-red-dark); +} +.background-red-darker{ + background-color:var(--color-red-darker); +} +.background-red-darkest{ + background-color:var(--color-red-darkest); +} +.background-orange-lightest{ + background-color:var(--color-orange-lightest); +} +.background-orange-lighter{ + background-color:var(--color-orange-lighter); +} +.background-orange-light{ + background-color:var(--color-orange-light); +} +.background-orange{ + background-color:var(--color-orange); +} +.background-orange-dark{ + background-color:var(--color-orange-dark); +} +.background-orange-darker{ + background-color:var(--color-orange-darker); +} +.background-orange-darkest{ + background-color:var(--color-orange-darkest); +} +.background-yellow-lightest{ + background-color:var(--color-yellow-lightest); +} +.background-yellow-lighter{ + background-color:var(--color-yellow-lighter); +} +.background-yellow-light{ + background-color:var(--color-yellow-light); +} +.background-yellow{ + background-color:var(--color-yellow); +} +.background-yellow-dark{ + background-color:var(--color-yellow-dark); +} +.background-yellow-darker{ + background-color:var(--color-yellow-darker); +} +.background-yellow-darkest{ + background-color:var(--color-yellow-darkest); +} +.background-lime-lightest{ + background-color:var(--color-lime-lightest); +} +.background-lime-lighter{ + background-color:var(--color-lime-lighter); +} +.background-lime-light{ + background-color:var(--color-lime-light); +} +.background-lime{ + background-color:var(--color-lime); +} +.background-lime-dark{ + background-color:var(--color-lime-dark); +} +.background-lime-darker{ + background-color:var(--color-lime-darker); +} +.background-lime-darkest{ + background-color:var(--color-lime-darkest); +} +.background-green-lightest{ + background-color:var(--color-green-lightest); +} +.background-green-lighter{ + background-color:var(--color-green-lighter); +} +.background-green-light{ + background-color:var(--color-green-light); +} +.background-green{ + background-color:var(--color-green); +} +.background-green-dark{ + background-color:var(--color-green-dark); +} +.background-green-darker{ + background-color:var(--color-green-darker); +} +.background-green-darkest{ + background-color:var(--color-green-darkest); +} +.background-teal-lightest{ + background-color:var(--color-teal-lightest); +} +.background-teal-lighter{ + background-color:var(--color-teal-lighter); +} +.background-teal-light{ + background-color:var(--color-teal-light); +} +.background-teal{ + background-color:var(--color-teal); +} +.background-teal-dark{ + background-color:var(--color-teal-dark); +} +.background-teal-darker{ + background-color:var(--color-teal-darker); +} +.background-teal-darkest{ + background-color:var(--color-teal-darkest); +} +.background-cyan-lightest{ + background-color:var(--color-cyan-lightest); +} +.background-cyan-lighter{ + background-color:var(--color-cyan-lighter); +} +.background-cyan-light{ + background-color:var(--color-cyan-light); +} +.background-cyan{ + background-color:var(--color-cyan); +} +.background-cyan-dark{ + background-color:var(--color-cyan-dark); +} +.background-cyan-darker{ + background-color:var(--color-cyan-darker); +} +.background-cyan-darkest{ + background-color:var(--color-cyan-darkest); +} +.background-blue-lightest{ + background-color:var(--color-blue-lightest); +} +.background-blue-lighter{ + background-color:var(--color-blue-lighter); +} +.background-blue-light{ + background-color:var(--color-blue-light); +} +.background-blue{ + background-color:var(--color-blue); +} +.background-blue-dark{ + background-color:var(--color-blue-dark); +} +.background-blue-darker{ + background-color:var(--color-blue-darker); +} +.background-blue-darkest{ + background-color:var(--color-blue-darkest); +} +.background-indigo-lightest{ + background-color:var(--color-indigo-lightest); +} +.background-indigo-lighter{ + background-color:var(--color-indigo-lighter); +} +.background-indigo-light{ + background-color:var(--color-indigo-light); +} +.background-indigo{ + background-color:var(--color-indigo); +} +.background-indigo-dark{ + background-color:var(--color-indigo-dark); +} +.background-indigo-darker{ + background-color:var(--color-indigo-darker); +} +.background-indigo-darkest{ + background-color:var(--color-indigo-darkest); +} +.background-violet-lightest{ + background-color:var(--color-violet-lightest); +} +.background-violet-lighter{ + background-color:var(--color-violet-lighter); +} +.background-violet-light{ + background-color:var(--color-violet-light); +} +.background-violet{ + background-color:var(--color-violet); +} +.background-violet-dark{ + background-color:var(--color-violet-dark); +} +.background-violet-darker{ + background-color:var(--color-violet-darker); +} +.background-violet-darkest{ + background-color:var(--color-violet-darkest); +} +.background-grape-lightest{ + background-color:var(--color-grape-lightest); +} +.background-grape-lighter{ + background-color:var(--color-grape-lighter); +} +.background-grape-light{ + background-color:var(--color-grape-light); +} +.background-grape{ + background-color:var(--color-grape); +} +.background-grape-dark{ + background-color:var(--color-grape-dark); +} +.background-grape-darker{ + background-color:var(--color-grape-darker); +} +.background-grape-darkest{ + background-color:var(--color-grape-darkest); +} +.background-pink-lightest{ + background-color:var(--color-pink-lightest); +} +.background-pink-lighter{ + background-color:var(--color-pink-lighter); +} +.background-pink-light{ + background-color:var(--color-pink-light); +} +.background-pink{ + background-color:var(--color-pink); +} +.background-pink-dark{ + background-color:var(--color-pink-dark); +} +.background-pink-darker{ + background-color:var(--color-pink-darker); +} +.background-pink-darkest{ + background-color:var(--color-pink-darkest); +} +.text-red-lightest{ + color:var(--color-red-lightest); +} +.text-red-lighter{ + color:var(--color-red-lighter); +} +.text-red-light{ + color:var(--color-red-light); +} +.text-red{ + color:var(--color-red); +} +.text-red-dark{ + color:var(--color-red-dark); +} +.text-red-darker{ + color:var(--color-red-darker); +} +.text-red-darkest{ + color:var(--color-red-darkest); +} +.text-orange-lightest{ + color:var(--color-orange-lightest); +} +.text-orange-lighter{ + color:var(--color-orange-lighter); +} +.text-orange-light{ + color:var(--color-orange-light); +} +.text-orange{ + color:var(--color-orange); +} +.text-orange-dark{ + color:var(--color-orange-dark); +} +.text-orange-darker{ + color:var(--color-orange-darker); +} +.text-orange-darkest{ + color:var(--color-orange-darkest); +} +.text-yellow-lightest{ + color:var(--color-yellow-lightest); +} +.text-yellow-lighter{ + color:var(--color-yellow-lighter); +} +.text-yellow-light{ + color:var(--color-yellow-light); +} +.text-yellow{ + color:var(--color-yellow); +} +.text-yellow-dark{ + color:var(--color-yellow-dark); +} +.text-yellow-darker{ + color:var(--color-yellow-darker); +} +.text-yellow-darkest{ + color:var(--color-yellow-darkest); +} +.text-lime-lightest{ + color:var(--color-lime-lightest); +} +.text-lime-lighter{ + color:var(--color-lime-lighter); +} +.text-lime-light{ + color:var(--color-lime-light); +} +.text-lime{ + color:var(--color-lime); +} +.text-lime-dark{ + color:var(--color-lime-dark); +} +.text-lime-darker{ + color:var(--color-lime-darker); +} +.text-lime-darkest{ + color:var(--color-lime-darkest); +} +.text-green-lightest{ + color:var(--color-green-lightest); +} +.text-green-lighter{ + color:var(--color-green-lighter); +} +.text-green-light{ + color:var(--color-green-light); +} +.text-green{ + color:var(--color-green); +} +.text-green-dark{ + color:var(--color-green-dark); +} +.text-green-darker{ + color:var(--color-green-darker); +} +.text-green-darkest{ + color:var(--color-green-darkest); +} +.text-teal-lightest{ + color:var(--color-teal-lightest); +} +.text-teal-lighter{ + color:var(--color-teal-lighter); +} +.text-teal-light{ + color:var(--color-teal-light); +} +.text-teal{ + color:var(--color-teal); +} +.text-teal-dark{ + color:var(--color-teal-dark); +} +.text-teal-darker{ + color:var(--color-teal-darker); +} +.text-teal-darkest{ + color:var(--color-teal-darkest); +} +.text-cyan-lightest{ + color:var(--color-cyan-lightest); +} +.text-cyan-lighter{ + color:var(--color-cyan-lighter); +} +.text-cyan-light{ + color:var(--color-cyan-light); +} +.text-cyan{ + color:var(--color-cyan); +} +.text-cyan-dark{ + color:var(--color-cyan-dark); +} +.text-cyan-darker{ + color:var(--color-cyan-darker); +} +.text-cyan-darkest{ + color:var(--color-cyan-darkest); +} +.text-blue-lightest{ + color:var(--color-blue-lightest); +} +.text-blue-lighter{ + color:var(--color-blue-lighter); +} +.text-blue-light{ + color:var(--color-blue-light); +} +.text-blue{ + color:var(--color-blue); +} +.text-blue-dark{ + color:var(--color-blue-dark); +} +.text-blue-darker{ + color:var(--color-blue-darker); +} +.text-blue-darkest{ + color:var(--color-blue-darkest); +} +.text-indigo-lightest{ + color:var(--color-indigo-lightest); +} +.text-indigo-lighter{ + color:var(--color-indigo-lighter); +} +.text-indigo-light{ + color:var(--color-indigo-light); +} +.text-indigo{ + color:var(--color-indigo); +} +.text-indigo-dark{ + color:var(--color-indigo-dark); +} +.text-indigo-darker{ + color:var(--color-indigo-darker); +} +.text-indigo-darkest{ + color:var(--color-indigo-darkest); +} +.text-violet-lightest{ + color:var(--color-violet-lightest); +} +.text-violet-lighter{ + color:var(--color-violet-lighter); +} +.text-violet-light{ + color:var(--color-violet-light); +} +.text-violet{ + color:var(--color-violet); +} +.text-violet-dark{ + color:var(--color-violet-dark); +} +.text-violet-darker{ + color:var(--color-violet-darker); +} +.text-violet-darkest{ + color:var(--color-violet-darkest); +} +.text-grape-lightest{ + color:var(--color-grape-lightest); +} +.text-grape-lighter{ + color:var(--color-grape-lighter); +} +.text-grape-light{ + color:var(--color-grape-light); +} +.text-grape{ + color:var(--color-grape); +} +.text-grape-dark{ + color:var(--color-grape-dark); +} +.text-grape-darker{ + color:var(--color-grape-darker); +} +.text-grape-darkest{ + color:var(--color-grape-darkest); +} +.text-pink-lightest{ + color:var(--color-pink-lightest); +} +.text-pink-lighter{ + color:var(--color-pink-lighter); +} +.text-pink-light{ + color:var(--color-pink-light); +} +.text-pink{ + color:var(--color-pink); +} +.text-pink-dark{ + color:var(--color-pink-dark); +} +.text-pink-darker{ + color:var(--color-pink-darker); +} +.text-pink-darkest{ + color:var(--color-pink-darkest); +} +/*! 7.5. Colors - Semantic */ +.background-error-light{ + background-color:var(--color-error-light); +} +.background-error{ + background-color:var(--color-error); +} +.background-warning-light{ + background-color:var(--color-warning-light); +} +.background-warning{ + background-color:var(--color-warning); +} +.background-success-light{ + background-color:var(--color-success-light); +} +.background-success{ + background-color:var(--color-success); +} +.background-info-light{ + background-color:var(--color-info-light); +} +.background-info{ + background-color:var(--color-info); +} +.text-error-light{ + color:var(--color-error-light); +} +.text-error{ + color:var(--color-error); +} +.text-warning-light{ + color:var(--color-warning-light); +} +.text-warning{ + color:var(--color-warning); +} +.text-success-light{ + color:var(--color-success-light); +} +.text-success{ + color:var(--color-success); +} +.text-info-light{ + color:var(--color-info-light); +} +.text-info{ + color:var(--color-info); +} +/*! 7.6. Colors - Others */ +.background-transparent, .ie11 .background-transparent{ + background-color:transparent; +} +/*! 7.7. Text */ +.break-word{ + word-break:break-word; +} +.text-align-left{ + text-align:left; +} +.text-align-center{ + text-align:center; +} +.text-align-right{ + text-align:right; +} +.white-space-nowrap{ + white-space:nowrap; +} +.is-rtl [align=right], +.is-rtl .text-align-right{ + text-align:left; +} +.is-rtl [align=left], +.is-rtl .text-align-left{ + text-align:right; +} +/*! 7.8. Typography */ +.font-size-base{ + font-size:var(--font-size-base); +} +.font-size-s{ + font-size:var(--font-size-s); +} +.font-size-xs{ + font-size:var(--font-size-xs); +} +.font-size-label{ + font-size:var(--font-size-label); +} +.font-light{ + font-weight:var(--font-light); +} +.font-regular{ + font-weight:var(--font-regular); +} +.font-semi-bold{ + font-weight:var(--font-semi-bold); +} +.font-bold{ + font-weight:var(--font-bold); +} +.bold{ + font-weight:var(--font-bold); +} +.italic{ + font-style:italic; +} +.oblique{ + font-style:oblique; +} +.text-lowercase{ + text-transform:lowercase; +} +.text-uppercase{ + text-transform:uppercase; +} +.text-capitalize{ + text-transform:capitalize; +} +.text-ellipsis{ + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap; +} +/*! 7.9. Border Size */ +.border-size-none{ + border-width:var(--border-size-none); +} +.border-size-s{ + border:var(--border-size-s) solid currentColor; +} +.border-size-m{ + border:var(--border-size-m) solid currentColor; +} +.border-size-l{ + border:var(--border-size-l) solid currentColor; +} +.border-top-s:not(.columns), .border-top-s.columns > .columns-item:not(:last-child){ + border-top:var(--border-size-s) solid currentColor; +} +.border-top-m:not(.columns), .border-top-m.columns > .columns-item:not(:last-child){ + border-top:var(--border-size-m) solid currentColor; +} +.border-top-l:not(.columns), .border-top-l.columns > .columns-item:not(:last-child){ + border-top:var(--border-size-l) solid currentColor; +} +.border-right-s:not(.columns), .border-right-s.columns > .columns-item:not(:last-child){ + border-right:var(--border-size-s) solid currentColor; +} +.border-right-m:not(.columns), .border-right-m.columns > .columns-item:not(:last-child){ + border-right:var(--border-size-m) solid currentColor; +} +.border-right-l:not(.columns), .border-right-l.columns > .columns-item:not(:last-child){ + border-right:var(--border-size-l) solid currentColor; +} +.border-bottom-s:not(.columns), .border-bottom-s.columns > .columns-item:not(:last-child){ + border-bottom:var(--border-size-s) solid currentColor; +} +.border-bottom-m:not(.columns), .border-bottom-m.columns > .columns-item:not(:last-child){ + border-bottom:var(--border-size-m) solid currentColor; +} +.border-bottom-l:not(.columns), .border-bottom-l.columns > .columns-item:not(:last-child){ + border-bottom:var(--border-size-l) solid currentColor; +} +.border-left-s:not(.columns), .border-left-s.columns > .columns-item:not(:last-child){ + border-left:var(--border-size-s) solid currentColor; +} +.border-left-m:not(.columns), .border-left-m.columns > .columns-item:not(:last-child){ + border-left:var(--border-size-m) solid currentColor; +} +.border-left-l:not(.columns), .border-left-l.columns > .columns-item:not(:last-child){ + border-left:var(--border-size-l) solid currentColor; +} +/*! 7.10. Border Radius */ +.border-radius-none{ + border-radius:var(--border-radius-none); +} +.border-radius-top-left-none{ + border-top-left-radius:var(--border-radius-none); +} +.border-radius-top-right-none{ + border-top-right-radius:var(--border-radius-none); +} +.border-radius-bottom-right-none{ + border-bottom-right-radius:var(--border-radius-none); +} +.border-radius-bottom-left-none{ + border-bottom-left-radius:var(--border-radius-none); +} +.border-radius-top-none{ + border-top-left-radius:var(--border-radius-none); + border-top-right-radius:var(--border-radius-none); +} +.border-radius-bottom-none{ + border-bottom-left-radius:var(--border-radius-none); + border-bottom-right-radius:var(--border-radius-none); +} +.border-radius-soft{ + border-radius:var(--border-radius-soft); +} +.border-radius-top-left-soft{ + border-top-left-radius:var(--border-radius-soft); +} +.border-radius-top-right-soft{ + border-top-right-radius:var(--border-radius-soft); +} +.border-radius-bottom-right-soft{ + border-bottom-right-radius:var(--border-radius-soft); +} +.border-radius-bottom-left-soft{ + border-bottom-left-radius:var(--border-radius-soft); +} +.border-radius-top-soft{ + border-top-left-radius:var(--border-radius-soft); + border-top-right-radius:var(--border-radius-soft); +} +.border-radius-bottom-soft{ + border-bottom-left-radius:var(--border-radius-soft); + border-bottom-right-radius:var(--border-radius-soft); +} +.border-radius-rounded{ + border-radius:var(--border-radius-rounded); +} +.border-radius-top-left-rounded{ + border-top-left-radius:var(--border-radius-rounded); +} +.border-radius-top-right-rounded{ + border-top-right-radius:var(--border-radius-rounded); +} +.border-radius-bottom-right-rounded{ + border-bottom-right-radius:var(--border-radius-rounded); +} +.border-radius-bottom-left-rounded{ + border-bottom-left-radius:var(--border-radius-rounded); +} +.border-radius-top-rounded{ + border-top-left-radius:var(--border-radius-rounded); + border-top-right-radius:var(--border-radius-rounded); +} +.border-radius-bottom-rounded{ + border-bottom-left-radius:var(--border-radius-rounded); + border-bottom-right-radius:var(--border-radius-rounded); +} +.border-radius-circle{ + border-radius:var(--border-radius-circle); +} +.border-radius-top-left-circle{ + border-top-left-radius:var(--border-radius-circle); +} +.border-radius-top-right-circle{ + border-top-right-radius:var(--border-radius-circle); +} +.border-radius-bottom-right-circle{ + border-bottom-right-radius:var(--border-radius-circle); +} +.border-radius-bottom-left-circle{ + border-bottom-left-radius:var(--border-radius-circle); +} +.border-radius-top-circle{ + border-top-left-radius:var(--border-radius-circle); + border-top-right-radius:var(--border-radius-circle); +} +.border-radius-bottom-circle{ + border-bottom-left-radius:var(--border-radius-circle); + border-bottom-right-radius:var(--border-radius-circle); +} +/*! 7.11. Space - Margin */ +.margin-none{ + margin:var(--space-none); +} +.margin-top-none{ + margin-top:var(--space-none); +} +.margin-right-none{ + margin-right:var(--space-none); +} +.margin-bottom-none{ + margin-bottom:var(--space-none); +} +.margin-left-none{ + margin-left:var(--space-none); +} +.margin-x-none{ + margin-left:var(--space-none); + margin-right:var(--space-none); +} +.margin-y-none{ + margin-bottom:var(--space-none); + margin-top:var(--space-none); +} +.margin-xs{ + margin:var(--space-xs); +} +.margin-top-xs{ + margin-top:var(--space-xs); +} +.margin-right-xs{ + margin-right:var(--space-xs); +} +.margin-bottom-xs{ + margin-bottom:var(--space-xs); +} +.margin-left-xs{ + margin-left:var(--space-xs); +} +.margin-x-xs{ + margin-left:var(--space-xs); + margin-right:var(--space-xs); +} +.margin-y-xs{ + margin-bottom:var(--space-xs); + margin-top:var(--space-xs); +} +.margin-s{ + margin:var(--space-s); +} +.margin-top-s{ + margin-top:var(--space-s); +} +.margin-right-s{ + margin-right:var(--space-s); +} +.margin-bottom-s{ + margin-bottom:var(--space-s); +} +.margin-left-s{ + margin-left:var(--space-s); +} +.margin-x-s{ + margin-left:var(--space-s); + margin-right:var(--space-s); +} +.margin-y-s{ + margin-bottom:var(--space-s); + margin-top:var(--space-s); +} +.margin-base{ + margin:var(--space-base); +} +.margin-top-base{ + margin-top:var(--space-base); +} +.margin-right-base{ + margin-right:var(--space-base); +} +.margin-bottom-base{ + margin-bottom:var(--space-base); +} +.margin-left-base{ + margin-left:var(--space-base); +} +.margin-x-base{ + margin-left:var(--space-base); + margin-right:var(--space-base); +} +.margin-y-base{ + margin-bottom:var(--space-base); + margin-top:var(--space-base); +} +.margin-m{ + margin:var(--space-m); +} +.margin-top-m{ + margin-top:var(--space-m); +} +.margin-right-m{ + margin-right:var(--space-m); +} +.margin-bottom-m{ + margin-bottom:var(--space-m); +} +.margin-left-m{ + margin-left:var(--space-m); +} +.margin-x-m{ + margin-left:var(--space-m); + margin-right:var(--space-m); +} +.margin-y-m{ + margin-bottom:var(--space-m); + margin-top:var(--space-m); +} +.margin-l{ + margin:var(--space-l); +} +.margin-top-l{ + margin-top:var(--space-l); +} +.margin-right-l{ + margin-right:var(--space-l); +} +.margin-bottom-l{ + margin-bottom:var(--space-l); +} +.margin-left-l{ + margin-left:var(--space-l); +} +.margin-x-l{ + margin-left:var(--space-l); + margin-right:var(--space-l); +} +.margin-y-l{ + margin-bottom:var(--space-l); + margin-top:var(--space-l); +} +.margin-xl{ + margin:var(--space-xl); +} +.margin-top-xl{ + margin-top:var(--space-xl); +} +.margin-right-xl{ + margin-right:var(--space-xl); +} +.margin-bottom-xl{ + margin-bottom:var(--space-xl); +} +.margin-left-xl{ + margin-left:var(--space-xl); +} +.margin-x-xl{ + margin-left:var(--space-xl); + margin-right:var(--space-xl); +} +.margin-y-xl{ + margin-bottom:var(--space-xl); + margin-top:var(--space-xl); +} +.margin-xxl{ + margin:var(--space-xxl); +} +.margin-top-xxl{ + margin-top:var(--space-xxl); +} +.margin-right-xxl{ + margin-right:var(--space-xxl); +} +.margin-bottom-xxl{ + margin-bottom:var(--space-xxl); +} +.margin-left-xxl{ + margin-left:var(--space-xxl); +} +.margin-x-xxl{ + margin-left:var(--space-xxl); + margin-right:var(--space-xxl); +} +.margin-y-xxl{ + margin-bottom:var(--space-xxl); + margin-top:var(--space-xxl); +} +.margin-auto{ + margin:0 auto; +} +.is-rtl .margin-right-none{ + margin-left:var(--space-none); + margin-right:var(--space-none); +} +.is-rtl .margin-left-none{ + margin-left:var(--space-none); + margin-right:var(--space-none); +} +.is-rtl .margin-right-xs{ + margin-left:var(--space-xs); + margin-right:var(--space-none); +} +.is-rtl .margin-left-xs{ + margin-left:var(--space-none); + margin-right:var(--space-xs); +} +.is-rtl .margin-right-s{ + margin-left:var(--space-s); + margin-right:var(--space-none); +} +.is-rtl .margin-left-s{ + margin-left:var(--space-none); + margin-right:var(--space-s); +} +.is-rtl .margin-right-base{ + margin-left:var(--space-base); + margin-right:var(--space-none); +} +.is-rtl .margin-left-base{ + margin-left:var(--space-none); + margin-right:var(--space-base); +} +.is-rtl .margin-right-m{ + margin-left:var(--space-m); + margin-right:var(--space-none); +} +.is-rtl .margin-left-m{ + margin-left:var(--space-none); + margin-right:var(--space-m); +} +.is-rtl .margin-right-l{ + margin-left:var(--space-l); + margin-right:var(--space-none); +} +.is-rtl .margin-left-l{ + margin-left:var(--space-none); + margin-right:var(--space-l); +} +.is-rtl .margin-right-xl{ + margin-left:var(--space-xl); + margin-right:var(--space-none); +} +.is-rtl .margin-left-xl{ + margin-left:var(--space-none); + margin-right:var(--space-xl); +} +.is-rtl .margin-right-xxl{ + margin-left:var(--space-xxl); + margin-right:var(--space-none); +} +.is-rtl .margin-left-xxl{ + margin-left:var(--space-none); + margin-right:var(--space-xxl); +} +/*! 7.12. Space - Padding */ +.padding-none{ + padding:var(--space-none); +} +.padding-top-none{ + padding-top:var(--space-none); +} +.padding-right-none{ + padding-right:var(--space-none); +} +.padding-bottom-none{ + padding-bottom:var(--space-none); +} +.padding-left-none{ + padding-left:var(--space-none); +} +.padding-x-none{ + padding-left:var(--space-none); + padding-right:var(--space-none); +} +.padding-y-none{ + padding-bottom:var(--space-none); + padding-top:var(--space-none); +} +.padding-xs{ + padding:var(--space-xs); +} +.padding-top-xs{ + padding-top:var(--space-xs); +} +.padding-right-xs{ + padding-right:var(--space-xs); +} +.padding-bottom-xs{ + padding-bottom:var(--space-xs); +} +.padding-left-xs{ + padding-left:var(--space-xs); +} +.padding-x-xs{ + padding-left:var(--space-xs); + padding-right:var(--space-xs); +} +.padding-y-xs{ + padding-bottom:var(--space-xs); + padding-top:var(--space-xs); +} +.padding-s{ + padding:var(--space-s); +} +.padding-top-s{ + padding-top:var(--space-s); +} +.padding-right-s{ + padding-right:var(--space-s); +} +.padding-bottom-s{ + padding-bottom:var(--space-s); +} +.padding-left-s{ + padding-left:var(--space-s); +} +.padding-x-s{ + padding-left:var(--space-s); + padding-right:var(--space-s); +} +.padding-y-s{ + padding-bottom:var(--space-s); + padding-top:var(--space-s); +} +.padding-base{ + padding:var(--space-base); +} +.padding-top-base{ + padding-top:var(--space-base); +} +.padding-right-base{ + padding-right:var(--space-base); +} +.padding-bottom-base{ + padding-bottom:var(--space-base); +} +.padding-left-base{ + padding-left:var(--space-base); +} +.padding-x-base{ + padding-left:var(--space-base); + padding-right:var(--space-base); +} +.padding-y-base{ + padding-bottom:var(--space-base); + padding-top:var(--space-base); +} +.padding-m{ + padding:var(--space-m); +} +.padding-top-m{ + padding-top:var(--space-m); +} +.padding-right-m{ + padding-right:var(--space-m); +} +.padding-bottom-m{ + padding-bottom:var(--space-m); +} +.padding-left-m{ + padding-left:var(--space-m); +} +.padding-x-m{ + padding-left:var(--space-m); + padding-right:var(--space-m); +} +.padding-y-m{ + padding-bottom:var(--space-m); + padding-top:var(--space-m); +} +.padding-l{ + padding:var(--space-l); +} +.padding-top-l{ + padding-top:var(--space-l); +} +.padding-right-l{ + padding-right:var(--space-l); +} +.padding-bottom-l{ + padding-bottom:var(--space-l); +} +.padding-left-l{ + padding-left:var(--space-l); +} +.padding-x-l{ + padding-left:var(--space-l); + padding-right:var(--space-l); +} +.padding-y-l{ + padding-bottom:var(--space-l); + padding-top:var(--space-l); +} +.padding-xl{ + padding:var(--space-xl); +} +.padding-top-xl{ + padding-top:var(--space-xl); +} +.padding-right-xl{ + padding-right:var(--space-xl); +} +.padding-bottom-xl{ + padding-bottom:var(--space-xl); +} +.padding-left-xl{ + padding-left:var(--space-xl); +} +.padding-x-xl{ + padding-left:var(--space-xl); + padding-right:var(--space-xl); +} +.padding-y-xl{ + padding-bottom:var(--space-xl); + padding-top:var(--space-xl); +} +.padding-xxl{ + padding:var(--space-xxl); +} +.padding-top-xxl{ + padding-top:var(--space-xxl); +} +.padding-right-xxl{ + padding-right:var(--space-xxl); +} +.padding-bottom-xxl{ + padding-bottom:var(--space-xxl); +} +.padding-left-xxl{ + padding-left:var(--space-xxl); +} +.padding-x-xxl{ + padding-left:var(--space-xxl); + padding-right:var(--space-xxl); +} +.padding-y-xxl{ + padding-bottom:var(--space-xxl); + padding-top:var(--space-xxl); +} +.padding-auto{ + padding:0 auto; +} +.is-rtl .padding-right-none{ + padding-left:var(--space-none); + padding-right:var(--space-none); +} +.is-rtl .padding-left-none{ + padding-left:var(--space-none); + padding-right:var(--space-none); +} +.is-rtl .padding-right-xs{ + padding-left:var(--space-xs); + padding-right:var(--space-none); +} +.is-rtl .padding-left-xs{ + padding-left:var(--space-none); + padding-right:var(--space-xs); +} +.is-rtl .padding-right-s{ + padding-left:var(--space-s); + padding-right:var(--space-none); +} +.is-rtl .padding-left-s{ + padding-left:var(--space-none); + padding-right:var(--space-s); +} +.is-rtl .padding-right-base{ + padding-left:var(--space-base); + padding-right:var(--space-none); +} +.is-rtl .padding-left-base{ + padding-left:var(--space-none); + padding-right:var(--space-base); +} +.is-rtl .padding-right-m{ + padding-left:var(--space-m); + padding-right:var(--space-none); +} +.is-rtl .padding-left-m{ + padding-left:var(--space-none); + padding-right:var(--space-m); +} +.is-rtl .padding-right-l{ + padding-left:var(--space-l); + padding-right:var(--space-none); +} +.is-rtl .padding-left-l{ + padding-left:var(--space-none); + padding-right:var(--space-l); +} +.is-rtl .padding-right-xl{ + padding-left:var(--space-xl); + padding-right:var(--space-none); +} +.is-rtl .padding-left-xl{ + padding-left:var(--space-none); + padding-right:var(--space-xl); +} +.is-rtl .padding-right-xxl{ + padding-left:var(--space-xxl); + padding-right:var(--space-none); +} +.is-rtl .padding-left-xxl{ + padding-left:var(--space-none); + padding-right:var(--space-xxl); +} +/*! 7.13. Shadow */ +.shadow-none{ + -webkit-box-shadow:var(--shadow-none); + box-shadow:var(--shadow-none); +} +.shadow-xs{ + -webkit-box-shadow:var(--shadow-xs); + box-shadow:var(--shadow-xs); +} +.shadow-s{ + -webkit-box-shadow:var(--shadow-s); + box-shadow:var(--shadow-s); +} +.shadow-m{ + -webkit-box-shadow:var(--shadow-m); + box-shadow:var(--shadow-m); +} +.shadow-l{ + -webkit-box-shadow:var(--shadow-l); + box-shadow:var(--shadow-l); +} +.shadow-xl{ + -webkit-box-shadow:var(--shadow-xl); + box-shadow:var(--shadow-xl); +} +/*! 7.14. Box Width */ +.full-width{ + width:100%; +} +.full-width-vw{ + width:100vw; +} +.half-width{ + width:50%; +} +.half-width-vw{ + width:50vw; +} +/*! 7.15. Box Height */ +.full-height{ + height:100%; +} +.full-height-vh{ + height:100vh; +} +.full-height-minus-header{ + height:calc(100vh - var(--header-size)); +} +.full-height-minus-header{ + -servicestudio-height:auto; +} +.half-height{ + height:50%; +} +.half-height-vh{ + height:50vh; +} +.half-height-vh{ + -servicestudio-height:auto; +} +.auto-height{ + height:auto; +} +/*! 7.16. Display */ +.display-block{ + display:block; +} +.display-contents{ + display:contents; +} +/*! 7.17. Display - Flex */ +.display-flex{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; +} +.flex1{ + -webkit-box-flex:1; + -ms-flex:1; + flex:1; +} +.flex2{ + -webkit-box-flex:2; + -ms-flex:2; + flex:2; +} +.flex3{ + -webkit-box-flex:3; + -ms-flex:3; + flex:3; +} +.flex-direction-column{ + -webkit-box-orient:vertical; + -webkit-box-direction:normal; + -ms-flex-direction:column; + flex-direction:column; +} +.flex-direction-column-reverse{ + -webkit-box-orient:vertical; + -webkit-box-direction:reverse; + -ms-flex-direction:column-reverse; + flex-direction:column-reverse; +} +.flex-direction-row{ + -webkit-box-orient:horizontal; + -webkit-box-direction:normal; + -ms-flex-direction:row; + flex-direction:row; +} +.flex-direction-row-reverse{ + -webkit-box-orient:horizontal; + -webkit-box-direction:reverse; + -ms-flex-direction:row-reverse; + flex-direction:row-reverse; +} +.flex-wrap{ + -ms-flex-wrap:wrap; + flex-wrap:wrap; +} +.flex-wrap-reverse{ + -ms-flex-wrap:wrap-reverse; + flex-wrap:wrap-reverse; +} +.flex-nowrap{ + -ms-flex-wrap:nowrap; + flex-wrap:nowrap; +} +.justify-content-flex-end{ + -webkit-box-pack:end; + -ms-flex-pack:end; + justify-content:flex-end; +} +.justify-content-flex-start{ + -webkit-box-pack:start; + -ms-flex-pack:start; + justify-content:flex-start; +} +.justify-content-center{ + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; +} +.justify-content-space-between{ + -webkit-box-pack:justify; + -ms-flex-pack:justify; + justify-content:space-between; +} +.justify-content-space-around{ + -ms-flex-pack:distribute; + justify-content:space-around; +} +.justify-content-space-evenly{ + -webkit-box-pack:space-evenly; + -ms-flex-pack:space-evenly; + justify-content:space-evenly; +} +.gap-xs{ + gap:var(--space-xs); +} +.gap-s{ + gap:var(--space-s); +} +.gap-base{ + gap:var(--space-base); +} +.gap-m{ + gap:var(--space-m); +} +.gap-l{ + gap:var(--space-l); +} +.gap-xl{ + gap:var(--space-xl); +} +.gap-xxl{ + gap:var(--space-xxl); +} +.row-gap-xs{ + row-gap:var(--space-xs); +} +.row-gap-s{ + row-gap:var(--space-s); +} +.row-gap-base{ + row-gap:var(--space-base); +} +.row-gap-m{ + row-gap:var(--space-m); +} +.row-gap-l{ + row-gap:var(--space-l); +} +.row-gap-xl{ + row-gap:var(--space-xl); +} +.row-gap-xxl{ + row-gap:var(--space-xxl); +} +.column-gap-xs{ + -webkit-column-gap:var(--space-xs); + -moz-column-gap:var(--space-xs); + column-gap:var(--space-xs); +} +.column-gap-s{ + -webkit-column-gap:var(--space-s); + -moz-column-gap:var(--space-s); + column-gap:var(--space-s); +} +.column-gap-base{ + -webkit-column-gap:var(--space-base); + -moz-column-gap:var(--space-base); + column-gap:var(--space-base); +} +.column-gap-m{ + -webkit-column-gap:var(--space-m); + -moz-column-gap:var(--space-m); + column-gap:var(--space-m); +} +.column-gap-l{ + -webkit-column-gap:var(--space-l); + -moz-column-gap:var(--space-l); + column-gap:var(--space-l); +} +.column-gap-xl{ + -webkit-column-gap:var(--space-xl); + -moz-column-gap:var(--space-xl); + column-gap:var(--space-xl); +} +.column-gap-xxl{ + -webkit-column-gap:var(--space-xxl); + -moz-column-gap:var(--space-xxl); + column-gap:var(--space-xxl); +} +/*! 7.18. Display - Align */ +.align-items-flex-start{ + -webkit-box-align:start; + -ms-flex-align:start; + align-items:flex-start; +} +.align-items-flex-end{ + -webkit-box-align:end; + -ms-flex-align:end; + align-items:flex-end; +} +.align-items-center{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; +} +.align-items-stretch{ + -webkit-box-align:stretch; + -ms-flex-align:stretch; + align-items:stretch; +} +.align-items-baseline{ + -webkit-box-align:baseline; + -ms-flex-align:baseline; + align-items:baseline; +} +.align-items-initial{ + -webkit-box-align:initial; + -ms-flex-align:initial; + align-items:initial; +} +.align-self-flex-start{ + -ms-flex-item-align:start; + align-self:flex-start; +} +.align-self-flex-end{ + -ms-flex-item-align:end; + align-self:flex-end; +} +.align-self-center{ + -ms-flex-item-align:center; + align-self:center; +} +.align-self-stretch{ + -ms-flex-item-align:stretch; + align-self:stretch; +} +.align-self-baseline{ + -ms-flex-item-align:baseline; + align-self:baseline; +} +.align-content-flex-start{ + -ms-flex-line-pack:start; + align-content:flex-start; +} +.align-content-flex-end{ + -ms-flex-line-pack:end; + align-content:flex-end; +} +.align-content-center{ + -ms-flex-line-pack:center; + align-content:center; +} +.align-content-space-between{ + -ms-flex-line-pack:justify; + align-content:space-between; +} +.align-content-space-around{ + -ms-flex-line-pack:distribute; + align-content:space-around; +} +.align-content-space-evenly{ + -ms-flex-line-pack:space-evenly; + align-content:space-evenly; +} +.align-content-stretch{ + -ms-flex-line-pack:stretch; + align-content:stretch; +} +.align-content-baseline{ + -ms-flex-line-pack:baseline; + align-content:baseline; +} +.top-left{ + -webkit-box-align:start; + -ms-flex-align:start; + align-items:flex-start; + -webkit-box-pack:start; + -ms-flex-pack:start; + justify-content:flex-start; +} +.top-center{ + -webkit-box-align:start; + -ms-flex-align:start; + align-items:flex-start; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; +} +.top-right{ + -webkit-box-align:start; + -ms-flex-align:start; + align-items:flex-start; + -webkit-box-pack:end; + -ms-flex-pack:end; + justify-content:flex-end; +} +.center{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; +} +.center-left{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + -webkit-box-pack:start; + -ms-flex-pack:start; + justify-content:flex-start; +} +.center-right{ + -webkit-box-align:center; + -ms-flex-align:center; + align-items:center; + -webkit-box-pack:end; + -ms-flex-pack:end; + justify-content:flex-end; +} +.bottom-left{ + -webkit-box-align:end; + -ms-flex-align:end; + align-items:flex-end; + -webkit-box-pack:start; + -ms-flex-pack:start; + justify-content:flex-start; +} +.bottom-center{ + -webkit-box-align:end; + -ms-flex-align:end; + align-items:flex-end; + -webkit-box-pack:center; + -ms-flex-pack:center; + justify-content:center; +} +.bottom-right{ + -webkit-box-align:end; + -ms-flex-align:end; + align-items:flex-end; + -webkit-box-pack:end; + -ms-flex-pack:end; + justify-content:flex-end; +} +/*! 7.19. Images */ +.img-cover{ + height:100%; + -o-object-fit:cover; + object-fit:cover; +} +img.img-rounded{ + border-radius:10px; +} +img.img-circle{ + border-radius:var(--border-radius-circle); +} +img.thumbnail{ + background-color:var(--color-neutral-0); + border:var(--border-size-s) solid var(--color-neutral-4); + padding:var(--space-xs); +} +/*! 7.20. Overflow */ +.overflow-hidden{ + overflow:hidden; +} +.overflow-hidden{ + -servicestudio-overflow:visible; +} +.overflow-horizontal{ + overflow-x:auto; +} +.overflow-horizontal{ + -servicestudio-overflow:visible; +} +.overflow-vertical{ + overflow-y:auto; +} +.overflow-vertical{ + -servicestudio-overflow:visible; +} +/*! 7.21. Visibility */ +.ph:empty{ + display:none; +} +.hidden{ + display:none; +} +.hide-scrollbar{ + -ms-overflow-style:none; + scrollbar-width:none; +} +.hide-scrollbar:hover{ + cursor:all-scroll; +} +.hide-scrollbar::-webkit-scrollbar{ + display:none; +} +.hide-on-service-studio{ + -servicestudio-display:none; +} +/*! 7.22. Position */ +.position-relative{ + position:relative; +} +.fixed{ + position:fixed; +} +.sticky{ + position:sticky; +} +/*! 7.23. Position - Absolute */ +.position-absolute{ + position:absolute; +} +.absolute-top{ + top:0; +} +.absolute-top-right{ + right:0; + top:0; +} +.absolute-top-left{ + left:0; + top:0; +} +.absolute-top-plus-header{ + top:calc(var(--header-size) + var(--os-safe-area-top)); +} +.absolute-right{ + right:0; +} +.absolute-bottom{ + bottom:0; +} +.absolute-bottom-right{ + bottom:0; + right:0; +} +.absolute-bottom-left{ + bottom:0; + left:0; +} +.absolute-bottom.absolute-center{ + bottom:0; + left:50%; + -webkit-transform:translateX(-50%); + -ms-transform:translateX(-50%); + transform:translateX(-50%); +} +.absolute-left{ + left:0; +} +.absolute-center{ + left:50%; + top:50%; + -webkit-transform:translate(-50%, -50%); + -ms-transform:translate(-50%, -50%); + transform:translate(-50%, -50%); +} +.absolute-center-top{ + left:50%; + top:0; + -webkit-transform:translateX(-50%); + -ms-transform:translateX(-50%); + transform:translateX(-50%); +} +.absolute-center-right{ + right:0; + top:50%; + -webkit-transform:translateY(-50%); + -ms-transform:translateY(-50%); + transform:translateY(-50%); +} +.absolute-center-bottom{ + bottom:0; + left:50%; + -webkit-transform:translateX(-50%); + -ms-transform:translateX(-50%); + transform:translateX(-50%); +} +.absolute-center-left{ + left:0; + top:50%; + -webkit-transform:translateY(-50%); + -ms-transform:translateY(-50%); + transform:translateY(-50%); +} +/*! 7.24. Miscellaneous */ +.no-transition{ + -webkit-transition:none !important; + transition:none !important; +} +.no-transform{ + -webkit-transform:none !important; + -ms-transform:none !important; + transform:none !important; +} +.sticky-observer{ + height:var(--header-size); + left:0; + position:absolute; + right:0; + top:0; + visibility:hidden; +} +[data-allow-event-propagation=true] > *, +[data-allow-event-propagation=True] > *{ + pointer-events:none; +} +.tablet .tablet-full-width, +.phone .phone-full-width{ + margin-left:0; + width:100%; +} +/*! ============================================================================== +8. Screen Transitions +=============================================================================== */ +.slide-from-left-enter .layout-native .app-menu-content, .slide-from-left-leave .layout-native .app-menu-content, +.slide-from-right-enter .layout-native .app-menu-content, +.slide-from-right-leave .layout-native .app-menu-content, +.slide-from-bottom-enter .layout-native .app-menu-content, +.slide-from-bottom-leave .layout-native .app-menu-content, +.fade-enter .layout-native .app-menu-content, +.fade-leave .layout-native .app-menu-content{ + display:none; +} +.slide-from-left-enter .layout-native .app-menu-overlay, .slide-from-left-leave .layout-native .app-menu-overlay, +.slide-from-right-enter .layout-native .app-menu-overlay, +.slide-from-right-leave .layout-native .app-menu-overlay, +.slide-from-bottom-enter .layout-native .app-menu-overlay, +.slide-from-bottom-leave .layout-native .app-menu-overlay, +.fade-enter .layout-native .app-menu-overlay, +.fade-leave .layout-native .app-menu-overlay{ + display:none; +} +.slide-from-right-enter.slide-from-right-enter-active, +.slide-from-right-leave.slide-from-right-leave-active, +.slide-from-left-enter.slide-from-left-enter-active, +.slide-from-left-leave.slide-from-left-leave-active, +.slide-from-top-enter.slide-from-top-enter-active, +.slide-from-top-leave.slide-from-top-leave-active, +.slide-from-bottom-enter.slide-from-bottom-enter-active, +.slide-from-bottom-leave.slide-from-bottom-leave-active, +.fade-enter.fade-enter-active, +.fade-leave.fade-leave-active{ + -webkit-transition:opacity 400ms ease-in-out, -webkit-transform 400ms ease-in-out; + transition:opacity 400ms ease-in-out, -webkit-transform 400ms ease-in-out; + transition:transform 400ms ease-in-out, opacity 400ms ease-in-out; + transition:transform 400ms ease-in-out, opacity 400ms ease-in-out, -webkit-transform 400ms ease-in-out; +} +.slide-from-right-enter.slide-from-right-enter-active .content, +.slide-from-right-leave.slide-from-right-leave-active .content, +.slide-from-left-enter.slide-from-left-enter-active .content, +.slide-from-left-leave.slide-from-left-leave-active .content, +.slide-from-top-enter.slide-from-top-enter-active .content, +.slide-from-top-leave.slide-from-top-leave-active .content, +.slide-from-bottom-enter.slide-from-bottom-enter-active .content, +.slide-from-bottom-leave.slide-from-bottom-leave-active .content, +.fade-enter.fade-enter-active .content, +.fade-leave.fade-leave-active .content{ + -webkit-transition:opacity 400ms ease-in-out, -webkit-transform 400ms ease-in-out; + transition:opacity 400ms ease-in-out, -webkit-transform 400ms ease-in-out; + transition:transform 400ms ease-in-out, opacity 400ms ease-in-out; + transition:transform 400ms ease-in-out, opacity 400ms ease-in-out, -webkit-transform 400ms ease-in-out; +} +.slide-from-right-enter .content, +.slide-from-left-leave.slide-from-left-leave-active .content{ + -webkit-transform:translateX(100vw) translateZ(0); + transform:translateX(100vw) translateZ(0); +} +.slide-from-right-leave, +.slide-from-right-enter.slide-from-right-enter-active, +.slide-from-left-leave, +.slide-from-left-enter.slide-from-left-enter-active{ + -webkit-transform:none; + -ms-transform:none; + transform:none; +} +.slide-from-right-leave .content, +.slide-from-right-enter.slide-from-right-enter-active .content, +.slide-from-left-leave .content, +.slide-from-left-enter.slide-from-left-enter-active .content{ + -webkit-transform:translateX(0vw) translateZ(0); + transform:translateX(0vw) translateZ(0); +} +.slide-from-right-leave.slide-from-right-leave-active, +.slide-from-left-enter{ + -webkit-transform:none; + -ms-transform:none; + transform:none; +} +.slide-from-right-leave.slide-from-right-leave-active .content, +.slide-from-left-enter .content{ + -webkit-transform:translateX(-100vw) translateZ(0); + transform:translateX(-100vw) translateZ(0); +} +.slide-from-right-enter, +.slide-from-left-leave.slide-from-left-leave-active{ + -webkit-transform:none; + -ms-transform:none; + transform:none; +} +.slide-from-right-leave.slide-from-right-leave-active .header, +.slide-from-left-leave.slide-from-left-leave-active .header{ + opacity:0; +} +.slide-from-top-leave.slide-from-top-leave-active{ + opacity:0; + -webkit-transform:translateY(30vh) translateZ(0); + transform:translateY(30vh) translateZ(0); +} +.slide-from-right-leave.slide-from-right-leave-active .content{ + opacity:0; + -webkit-transform:translateX(-30vw) translateZ(0); + transform:translateX(-30vw) translateZ(0); +} +.slide-from-bottom-leave.slide-from-bottom-leave-active{ + opacity:0; + -webkit-transform:translateY(-30vh) translateZ(0); + transform:translateY(-30vh) translateZ(0); +} +.slide-from-left-leave.slide-from-left-leave-active .content{ + opacity:0; + -webkit-transform:translateX(30vw) translateZ(0); + transform:translateX(30vw) translateZ(0); +} +.fade-enter{ + opacity:initial; +} +.fade-enter.fade-enter-active{ + opacity:initial; +} +.fade-enter.fade-enter-active .content{ + opacity:1; +} +.fade-enter.fade-enter-active .header{ + -webkit-transition:opacity 400ms ease-in-out, -webkit-transform 400ms ease-in-out; + transition:opacity 400ms ease-in-out, -webkit-transform 400ms ease-in-out; + transition:transform 400ms ease-in-out, opacity 400ms ease-in-out; + transition:transform 400ms ease-in-out, opacity 400ms ease-in-out, -webkit-transform 400ms ease-in-out; +} +.fade-enter .content{ + opacity:0; + will-change:opacity; +} +.fade-leave.fade-leave-active{ + opacity:0; + -webkit-transition:all 400ms ease-in-out; + transition:all 400ms ease-in-out; +} +.fade-leave.fade-leave-active .header{ + opacity:0; + -webkit-transform:translateY(-200px) translateZ(0); + transform:translateY(-200px) translateZ(0); + -webkit-transition:none; + transition:none; +} +.fade-leave.screen-container{ + position:fixed; + top:0; + width:100%; + z-index:var(--layer-global-negative); +} +.desktop .slide-from-left-enter .layout-native.aside-visible .app-menu-content, .desktop .slide-from-left-leave .layout-native.aside-visible .app-menu-content, +.desktop .slide-from-right-enter .layout-native.aside-visible .app-menu-content, +.desktop .slide-from-right-leave .layout-native.aside-visible .app-menu-content, +.desktop .slide-from-bottom-enter .layout-native.aside-visible .app-menu-content, +.desktop .slide-from-bottom-leave .layout-native.aside-visible .app-menu-content, +.desktop .fade-enter .layout-native.aside-visible .app-menu-content, +.desktop .fade-leave .layout-native.aside-visible .app-menu-content, +.tablet.landscape .slide-from-left-enter .layout-native.aside-visible .app-menu-content, +.tablet.landscape .slide-from-left-leave .layout-native.aside-visible .app-menu-content, +.tablet.landscape .slide-from-right-enter .layout-native.aside-visible .app-menu-content, +.tablet.landscape .slide-from-right-leave .layout-native.aside-visible .app-menu-content, +.tablet.landscape .slide-from-bottom-enter .layout-native.aside-visible .app-menu-content, +.tablet.landscape .slide-from-bottom-leave .layout-native.aside-visible .app-menu-content, +.tablet.landscape .fade-enter .layout-native.aside-visible .app-menu-content, +.tablet.landscape .fade-leave .layout-native.aside-visible .app-menu-content{ + display:-webkit-box; + display:-ms-flexbox; + display:flex; +} +/*! ============================================================================== +9. Keyframes - Animations +=============================================================================== */ +/*! 9.1. Animate */ +@-webkit-keyframes bottomtotop{ + from{ + opacity:0; + -webkit-transform:translateX(0) translateY(60%) translateZ(0); + transform:translateX(0) translateY(60%) translateZ(0); + } + to{ + opacity:1; + -webkit-transform:translateX(0) translateY(0) translateZ(0); + transform:translateX(0) translateY(0) translateZ(0); + } +} +@keyframes bottomtotop{ + from{ + opacity:0; + -webkit-transform:translateX(0) translateY(60%) translateZ(0); + transform:translateX(0) translateY(60%) translateZ(0); + } + to{ + opacity:1; + -webkit-transform:translateX(0) translateY(0) translateZ(0); + transform:translateX(0) translateY(0) translateZ(0); + } +} +@-webkit-keyframes bounce{ + from, 20%, 53%, 80%, to{ + -webkit-transform:translateX(0) translateY(0) translateZ(0); + transform:translateX(0) translateY(0) translateZ(0); + } + 40%, 43%{ + -webkit-transform:translateX(0) translateY(-30px) translateZ(0); + transform:translateX(0) translateY(-30px) translateZ(0); + } + 70%{ + -webkit-transform:translateX(0) translateY(-15px) translateZ(0); + transform:translateX(0) translateY(-15px) translateZ(0); + } + 90%{ + -webkit-transform:translateX(0) translateY(-4px) translateZ(0); + transform:translateX(0) translateY(-4px) translateZ(0); + } +} +@keyframes bounce{ + from, 20%, 53%, 80%, to{ + -webkit-transform:translateX(0) translateY(0) translateZ(0); + transform:translateX(0) translateY(0) translateZ(0); + } + 40%, 43%{ + -webkit-transform:translateX(0) translateY(-30px) translateZ(0); + transform:translateX(0) translateY(-30px) translateZ(0); + } + 70%{ + -webkit-transform:translateX(0) translateY(-15px) translateZ(0); + transform:translateX(0) translateY(-15px) translateZ(0); + } + 90%{ + -webkit-transform:translateX(0) translateY(-4px) translateZ(0); + transform:translateX(0) translateY(-4px) translateZ(0); + } +} +@-webkit-keyframes fadein{ + 0%{ + opacity:0; + } + 20%{ + opacity:0; + } + 100%{ + opacity:1; + } +} +@keyframes fadein{ + 0%{ + opacity:0; + } + 20%{ + opacity:0; + } + 100%{ + opacity:1; + } +} +@-webkit-keyframes lefttoright{ + 0%{ + opacity:0; + -webkit-transform:translateX(-60%) translateY(0) translateZ(0); + transform:translateX(-60%) translateY(0) translateZ(0); + } + 100%{ + opacity:1; + -webkit-transform:translateX(0) translateY(0) translateZ(0); + transform:translateX(0) translateY(0) translateZ(0); + } +} +@keyframes lefttoright{ + 0%{ + opacity:0; + -webkit-transform:translateX(-60%) translateY(0) translateZ(0); + transform:translateX(-60%) translateY(0) translateZ(0); + } + 100%{ + opacity:1; + -webkit-transform:translateX(0) translateY(0) translateZ(0); + transform:translateX(0) translateY(0) translateZ(0); + } +} +@-webkit-keyframes righttoleft{ + 0%{ + opacity:0; + -webkit-transform:translateX(60%) translateY(0) translateZ(0); + transform:translateX(60%) translateY(0) translateZ(0); + } + 100%{ + opacity:1; + -webkit-transform:translateX(0) translateY(0) translateZ(0); + transform:translateX(0) translateY(0) translateZ(0); + } +} +@keyframes righttoleft{ + 0%{ + opacity:0; + -webkit-transform:translateX(60%) translateY(0) translateZ(0); + transform:translateX(60%) translateY(0) translateZ(0); + } + 100%{ + opacity:1; + -webkit-transform:translateX(0) translateY(0) translateZ(0); + transform:translateX(0) translateY(0) translateZ(0); + } +} +@-webkit-keyframes toptobottom{ + 0%{ + opacity:0; + -webkit-transform:translateX(0) translateY(-60%) translateZ(0); + transform:translateX(0) translateY(-60%) translateZ(0); + } + 100%{ + opacity:1; + -webkit-transform:translateX(0) translateY(0) translateZ(0); + transform:translateX(0) translateY(0) translateZ(0); + } +} +@keyframes toptobottom{ + 0%{ + opacity:0; + -webkit-transform:translateX(0) translateY(-60%) translateZ(0); + transform:translateX(0) translateY(-60%) translateZ(0); + } + 100%{ + opacity:1; + -webkit-transform:translateX(0) translateY(0) translateZ(0); + transform:translateX(0) translateY(0) translateZ(0); + } +} +@-webkit-keyframes scale{ + 0%{ + opacity:0; + -webkit-transform:translateX(0) translateY(0) translateZ(0) scale(0); + transform:translateX(0) translateY(0) translateZ(0) scale(0); + } + 80%{ + opacity:1; + -webkit-transform:translateX(0) translateY(0) translateZ(0) scale(1.2); + transform:translateX(0) translateY(0) translateZ(0) scale(1.2); + } + 100%{ + opacity:1; + -webkit-transform:translateX(0) translateY(0) translateZ(0) scale(1); + transform:translateX(0) translateY(0) translateZ(0) scale(1); + } +} +@keyframes scale{ + 0%{ + opacity:0; + -webkit-transform:translateX(0) translateY(0) translateZ(0) scale(0); + transform:translateX(0) translateY(0) translateZ(0) scale(0); + } + 80%{ + opacity:1; + -webkit-transform:translateX(0) translateY(0) translateZ(0) scale(1.2); + transform:translateX(0) translateY(0) translateZ(0) scale(1.2); + } + 100%{ + opacity:1; + -webkit-transform:translateX(0) translateY(0) translateZ(0) scale(1); + transform:translateX(0) translateY(0) translateZ(0) scale(1); + } +} +@-webkit-keyframes scaledown{ + 0%{ + opacity:0; + -webkit-transform:translateX(0) translateY(0) translateZ(0) scale(1.5); + transform:translateX(0) translateY(0) translateZ(0) scale(1.5); + } + 100%{ + opacity:1; + -webkit-transform:translateX(0) translateY(0) translateZ(0) scale(1); + transform:translateX(0) translateY(0) translateZ(0) scale(1); + } +} +@keyframes scaledown{ + 0%{ + opacity:0; + -webkit-transform:translateX(0) translateY(0) translateZ(0) scale(1.5); + transform:translateX(0) translateY(0) translateZ(0) scale(1.5); + } + 100%{ + opacity:1; + -webkit-transform:translateX(0) translateY(0) translateZ(0) scale(1); + transform:translateX(0) translateY(0) translateZ(0) scale(1); + } +} +@-webkit-keyframes scaleup{ + 0%{ + opacity:0; + -webkit-transform:translateX(0) translateY(0) translateZ(0) scale(0); + } + 100%{ + opacity:1; + -webkit-transform:translateX(0) translateY(0) translateZ(0) scale(1); + } +} +@keyframes scaleup{ + 0%{ + opacity:0; + -webkit-transform:translateX(0) translateY(0) translateZ(0) scale(0); + } + 100%{ + opacity:1; + -webkit-transform:translateX(0) translateY(0) translateZ(0) scale(1); + } +} +@-webkit-keyframes spinner{ + 0%{ + -webkit-transform:rotate(0deg); + transform:rotate(0deg); + } + 100%{ + -webkit-transform:rotate(359deg); + transform:rotate(359deg); + } +} +@keyframes spinner{ + 0%{ + -webkit-transform:rotate(0deg); + transform:rotate(0deg); + } + 100%{ + -webkit-transform:rotate(359deg); + transform:rotate(359deg); + } +} +/*! 9.2. Button Loading */ +@-webkit-keyframes loadingSpinner{ + 0%{ + -webkit-transform:rotate(0deg) translateZ(0); + transform:rotate(0deg) translateZ(0); + } + 100%{ + -webkit-transform:rotate(360deg) translateZ(0); + transform:rotate(360deg) translateZ(0); + } +} +@keyframes loadingSpinner{ + 0%{ + -webkit-transform:rotate(0deg) translateZ(0); + transform:rotate(0deg) translateZ(0); + } + 100%{ + -webkit-transform:rotate(360deg) translateZ(0); + transform:rotate(360deg) translateZ(0); + } +} +/*! 9.3. List Item */ +@-webkit-keyframes list-item-scale-animation{ + from{ + opacity:0.3; + -webkit-transform:scale(0, 1) translateZ(0); + transform:scale(0, 1) translateZ(0); + } + to{ + opacity:0; + -webkit-transform:scale(400, 300) translateZ(0); + transform:scale(400, 300) translateZ(0); + } +} +@keyframes list-item-scale-animation{ + from{ + opacity:0.3; + -webkit-transform:scale(0, 1) translateZ(0); + transform:scale(0, 1) translateZ(0); + } + to{ + opacity:0; + -webkit-transform:scale(400, 300) translateZ(0); + transform:scale(400, 300) translateZ(0); + } +} +/*! 9.4. Feedback Message */ +@-webkit-keyframes feedbackMessageSlideDownThenUp{ + 0%{ + -webkit-transform:translateY(-100%) translateX(-50%) translateZ(0); + transform:translateY(-100%) translateX(-50%) translateZ(0); + } + 5%{ + -webkit-transform:translateY(24px) translateX(-50%) translateZ(0); + transform:translateY(24px) translateX(-50%) translateZ(0); + } + 95%{ + -webkit-transform:translateY(24px) translateX(-50%) translateZ(0); + transform:translateY(24px) translateX(-50%) translateZ(0); + } + 100%{ + -webkit-transform:translateY(-100%) translateX(-50%) translateZ(0); + transform:translateY(-100%) translateX(-50%) translateZ(0); + } +} +@keyframes feedbackMessageSlideDownThenUp{ + 0%{ + -webkit-transform:translateY(-100%) translateX(-50%) translateZ(0); + transform:translateY(-100%) translateX(-50%) translateZ(0); + } + 5%{ + -webkit-transform:translateY(24px) translateX(-50%) translateZ(0); + transform:translateY(24px) translateX(-50%) translateZ(0); + } + 95%{ + -webkit-transform:translateY(24px) translateX(-50%) translateZ(0); + transform:translateY(24px) translateX(-50%) translateZ(0); + } + 100%{ + -webkit-transform:translateY(-100%) translateX(-50%) translateZ(0); + transform:translateY(-100%) translateX(-50%) translateZ(0); + } +} +@-webkit-keyframes feedbackMessageSlideDown{ + 0%{ + -webkit-transform:translateY(-100%) translateX(-50%) translateZ(0); + transform:translateY(-100%) translateX(-50%) translateZ(0); + } + 100%{ + -webkit-transform:translateY(24px) translateX(-50%) translateZ(0); + transform:translateY(24px) translateX(-50%) translateZ(0); + } +} +@keyframes feedbackMessageSlideDown{ + 0%{ + -webkit-transform:translateY(-100%) translateX(-50%) translateZ(0); + transform:translateY(-100%) translateX(-50%) translateZ(0); + } + 100%{ + -webkit-transform:translateY(24px) translateX(-50%) translateZ(0); + transform:translateY(24px) translateX(-50%) translateZ(0); + } +} +@-webkit-keyframes feedbackMessageSlideDownThenUpPhone{ + 0%{ + -webkit-transform:translateY(-100%) translateX(-50%) translateZ(0); + transform:translateY(-100%) translateX(-50%) translateZ(0); + } + 5%{ + -webkit-transform:translateY(0) translateX(-50%) translateZ(0); + transform:translateY(0) translateX(-50%) translateZ(0); + } + 95%{ + -webkit-transform:translateY(0) translateX(-50%) translateZ(0); + transform:translateY(0) translateX(-50%) translateZ(0); + } + 100%{ + -webkit-transform:translateY(-100%) translateX(-50%) translateZ(0); + transform:translateY(-100%) translateX(-50%) translateZ(0); + } +} +@keyframes feedbackMessageSlideDownThenUpPhone{ + 0%{ + -webkit-transform:translateY(-100%) translateX(-50%) translateZ(0); + transform:translateY(-100%) translateX(-50%) translateZ(0); + } + 5%{ + -webkit-transform:translateY(0) translateX(-50%) translateZ(0); + transform:translateY(0) translateX(-50%) translateZ(0); + } + 95%{ + -webkit-transform:translateY(0) translateX(-50%) translateZ(0); + transform:translateY(0) translateX(-50%) translateZ(0); + } + 100%{ + -webkit-transform:translateY(-100%) translateX(-50%) translateZ(0); + transform:translateY(-100%) translateX(-50%) translateZ(0); + } +} +@-webkit-keyframes feedbackMessageSlideDownPhone{ + 0%{ + -webkit-transform:translateY(-100%) translateX(-50%) translateZ(0); + transform:translateY(-100%) translateX(-50%) translateZ(0); + } + 100%{ + -webkit-transform:translateY(0) translateX(-50%) translateZ(0); + transform:translateY(0) translateX(-50%) translateZ(0); + } +} +@keyframes feedbackMessageSlideDownPhone{ + 0%{ + -webkit-transform:translateY(-100%) translateX(-50%) translateZ(0); + transform:translateY(-100%) translateX(-50%) translateZ(0); + } + 100%{ + -webkit-transform:translateY(0) translateX(-50%) translateZ(0); + transform:translateY(0) translateX(-50%) translateZ(0); + } +} +@-webkit-keyframes feedbackMessageSlideDownThenUpPhoneRTL{ + 0%{ + -webkit-transform:translateY(-100%) translateX(0) translateZ(0); + transform:translateY(-100%) translateX(0) translateZ(0); + } + 5%{ + -webkit-transform:translateY(0) translateX(0) translateZ(0); + transform:translateY(0) translateX(0) translateZ(0); + } + 95%{ + -webkit-transform:translateY(0) translateX(0) translateZ(0); + transform:translateY(0) translateX(0) translateZ(0); + } + 100%{ + -webkit-transform:translateY(-100%) translateX(0) translateZ(0); + transform:translateY(-100%) translateX(0) translateZ(0); + } +} +@keyframes feedbackMessageSlideDownThenUpPhoneRTL{ + 0%{ + -webkit-transform:translateY(-100%) translateX(0) translateZ(0); + transform:translateY(-100%) translateX(0) translateZ(0); + } + 5%{ + -webkit-transform:translateY(0) translateX(0) translateZ(0); + transform:translateY(0) translateX(0) translateZ(0); + } + 95%{ + -webkit-transform:translateY(0) translateX(0) translateZ(0); + transform:translateY(0) translateX(0) translateZ(0); + } + 100%{ + -webkit-transform:translateY(-100%) translateX(0) translateZ(0); + transform:translateY(-100%) translateX(0) translateZ(0); + } +} +@-webkit-keyframes feedbackMessageSlideDownPhoneRTL{ + 0%{ + -webkit-transform:translateY(-100%) translateX(0) translateZ(0); + transform:translateY(-100%) translateX(0) translateZ(0); + } + 100%{ + -webkit-transform:translateY(0) translateX(0) translateZ(0); + transform:translateY(0) translateX(0) translateZ(0); + } +} +@keyframes feedbackMessageSlideDownPhoneRTL{ + 0%{ + -webkit-transform:translateY(-100%) translateX(0) translateZ(0); + transform:translateY(-100%) translateX(0) translateZ(0); + } + 100%{ + -webkit-transform:translateY(0) translateX(0) translateZ(0); + transform:translateY(0) translateX(0) translateZ(0); + } +} +/*! 9.5. Pull To Refresh */ +@-webkit-keyframes ptr-loading{ + 0%{ + opacity:0; + -webkit-transform:translateY(0) scale(0.3); + transform:translateY(0) scale(0.3); + } + 100%{ + background-color:var(--color-neutral-0); + opacity:1; + -webkit-transform:scale(1); + transform:scale(1); + } +} +@keyframes ptr-loading{ + 0%{ + opacity:0; + -webkit-transform:translateY(0) scale(0.3); + transform:translateY(0) scale(0.3); + } + 100%{ + background-color:var(--color-neutral-0); + opacity:1; + -webkit-transform:scale(1); + transform:scale(1); + } +} +/*! 9.6. Miscellaneous */ +@-webkit-keyframes fade{ + 0%, 50%{ + opacity:0; + } + 100%{ + opacity:1; + } +} +@keyframes fade{ + 0%, 50%{ + opacity:0; + } + 100%{ + opacity:1; + } +} +@-webkit-keyframes spin{ + 0%{ + -webkit-transform:rotate(0deg); + transform:rotate(0deg); + } + 100%{ + -webkit-transform:rotate(360deg); + transform:rotate(360deg); + } +} +@keyframes spin{ + 0%{ + -webkit-transform:rotate(0deg); + transform:rotate(0deg); + } + 100%{ + -webkit-transform:rotate(360deg); + transform:rotate(360deg); + } +} +/*! ============================================================================== +10. Service Studio Preview +=============================================================================== */ +body > .app-menu-content{ + -servicestudio-align-items:flex-start; + -servicestudio-height:100% !important; + -servicestudio-left:0 !important; + -servicestudio-position:relative !important; + -servicestudio-width:100% !important; +} +body > .app-menu-content .app-menu-links{ + -servicestudio-align-items:flex-start; + -servicestudio-padding:var(--space-none); + -servicestudio-width:100% !important; +} +.tablet .app-menu-links a, +.phone .app-menu-links a{ + -servicestudio-margin-left:var(--space-none); + -servicestudio-padding:var(--space-s) var(--space-m); + -servicestudio-width:100%; +} +html[data-uieditorversion^="1"] body:not(.phone):not(.tablet) .layout-side aside{ + -servicestudio-background-color:var(--color-neutral-0); + -servicestudio-bottom:0; + -servicestudio-position:fixed; + -servicestudio-top:0; + -servicestudio-width:var(--side-menu-size); + -servicestudio-z-index:var(--layer-global-navigation); +} +html[data-uieditorversion^="1"] body .app-menu-content{ + -servicestudio-align-items:flex-start; + -servicestudio-height:100% !important; + -servicestudio-left:0; + -servicestudio-position:relative; + -servicestudio-width:100% !important; +} +html[data-uieditorversion^="1"] body .app-menu-content > *{ + -servicestudio-align-items:flex-start; + -servicestudio-display:flex; +} +html[data-uieditorversion^="1"] body .app-menu-content .app-login-info{ + -servicestudio-display:flex; +} +html[data-uieditorversion^="1"] body .app-menu-links{ + -servicestudio-height:auto; + -servicestudio-width:100%; +} +html[data-uieditorversion^="1"] body .app-menu-overlay{ + pointer-events:none !important; +} +html[data-uieditorversion^="1"] body.phone .layout .app-menu-content, +html[data-uieditorversion^="1"] body.tablet .layout .app-menu-content, +html[data-uieditorversion^="1"] body:not(.phone):not(.tablet) .layout-side .menu-icon{ + -servicestudio-display:none; +} +html[data-uieditorversion^="1"] .ph:empty{ + -servicestudio-display:block; +} +html[data-uieditorversion^="1"] .table tr:empty{ + -servicestudio-display:block !important; +} +html[data-uieditorversion^="1"] .blank-slate > div{ + -servicestudio-display:flex; + -servicestudio-flex-direction:column; + -servicestudio-justify-content:space-around; + -servicestudio-text-align:center; + -servicestudio-width:100%; +} +html[data-uieditorversion^="1"] .card-background-image .card{ + -servicestudio-display:flex; +} +html[data-uieditorversion^="1"] .icon-states .uieditor-if-branch-widget{ + -servicestudio-display:inline-flex; +} +html[data-uieditorversion^="1"] .icon-states .uieditor-if-branch-widget:empty{ + -servicestudio-display:none; +} +html[data-uieditorversion^="1"] .phone .table:not(.table-responsive){ + display:block; +} +html[data-uieditorversion^="1"] .phone .layout:not(.layout-native) .table{ + -servicestudio-display:block; +} +html[data-uieditorversion^="1"] .phone .layout:not(.layout-native) .table td{ + -servicestudio-min-width:10vw; +} +html[data-uieditorversion^="1"] .phone .layout:not(.layout-native) .table:not(.table-no-responsive) th{ + -servicestudio-display:none; +} +html[data-uieditorversion^="1"] .phone .layout:not(.layout-native) .table-no-responsive thead > tr:not(:empty):before{ + -servicestudio-display:none; +} +html[data-uieditorversion^="1"] .phone .layout:not(.layout-native) thead, +html[data-uieditorversion^="1"] .tablet .layout:not(.layout-native) thead{ + display:initial; +} +html[data-uieditorversion^="1"] .phone .layout:not(.layout-native) thead > tr, +html[data-uieditorversion^="1"] .tablet .layout:not(.layout-native) thead > tr{ + -servicestudio-position:relative; +} +html[data-uieditorversion^="1"] .phone .layout:not(.layout-native) table.table > thead > tr, +html[data-uieditorversion^="1"] .tablet .layout:not(.layout-native) table.table > thead > tr{ + display:none; +} +html[data-uieditorversion^="1"] .phone .layout:not(.layout-native) table.table > thead > tr:empty, +html[data-uieditorversion^="1"] .tablet .layout:not(.layout-native) table.table > thead > tr:empty{ + display:block; +} +html[data-uieditorversion^="1"] .phone .layout:not(.layout-native) .table-no-responsive thead, +html[data-uieditorversion^="1"] .tablet .layout:not(.layout-native) .table-no-responsive thead{ + -servicestudio-display:table-header-group !important; +} +html:not([data-uieditorversion^="1"]) .phone td, +html:not([data-uieditorversion^="1"]) .tablet td{ + -servicestudio-display:table-cell; +} +html:not([data-uieditorversion^="1"]) .table{ + -servicestudio-white-space:unset; +} +.osui-deprecated:before{ + display:none; + -servicestudio-background:#fff1dc; + -servicestudio-background:var(--color-yellow-lightest); + -servicestudio-border-radius:var(--border-radius-soft); + -servicestudio-color:#333; + -servicestudio-content:"⚠ DEPRECATED"; + -servicestudio-font-weight:var(--font-semi-bold); + -servicestudio-display:block; + -servicestudio-font-size:9px; + -servicestudio-line-height:8px; + -servicestudio-margin-right:-83px; + -servicestudio-margin-bottom:-17px; + -servicestudio-padding:4px 6px 4px 5px; + -servicestudio-position:relative; + -servicestudio-top:-9px; + -servicestudio-height:9px; + -servicestudio-width:72px; + -servicestudio-z-index:var(--layer-local-tier-3); +} +/*! The CSS classes below will be excluded in the Style Classes dropwdown of Widgets */ +/*! ExcludeFromPickers: accordion, accordion-item, accordion-item-content, accordion-item-header, accordion-item-icon, accordion-item-title, active, alert, alert-close, alert-icon, alert-message, align-items-center, animate, +animated-label, animated-label-inline, animated-label-input, animated-label-text, Application_Menu, app-logo, badge, badge-icon, badge-medium, badge-small, balloon, balloon-container, balloon-content, balloon-footer, balloon-title, +blank-slate, blank-slate-content, bottom-center, bottom-left, bottom-right, breadcrumbs, breadcrumbs-item, Button, button-group, card-background, card-background-color, card-background-content, card-background-image, card-content, +card-footer, card-image, card-sectioned, card-sectioned-right, card-sectioned-top, card-title, carousel, carousel-arrow-left, carousel-arrow-right, carousel-navigation, carousel-padding-none, center, center-align, +center-left, center-right, chat, chat-message, chat-message-actions, chat-message-content, chat-message-name, chat-photo, checkbox, choices, choices__button, choices__heading, choices__inner, choices__input, +choices__input--cloned, choices__item, choices__item--disabled, choices__item--selectable, choices__list, choices__list--dropdown, choices__list--multiple, choices__list--single, choices__placeholder, ColumnHeader, +columns, columns2, columns3, columns4, columns5, columns6, columns-item, columns-medium-left, columns-medium-right, columns-small-left, columns-small-right, content, content-bottom, content-breadcrumbs, content-middle, content-top, +content-top-actions, content-top-title, ControlActions, controls, counter, Counter_Message, customize-tools, desktop, desktop-big, desktop-hd, desktop-small, dropdown, dropdown-container, dropdown-content, dropdown-content-list, +dropdown-header, dropdown-icon, EditableTable, EditRecord, enter-bottom, enter-fade, enter-left, enter-right, enter-scale, enter-top, expandable-row, fa, fa-fw, fail, Feedback_AjaxWait, Feedback_AjaxWait_CursorProgress, +Feedback_Message_Error, Feedback_Message_Info, Feedback_Message_Success, Feedback_Message_Warning, Feedback_Message_Wrapper, Feedback_Message_Wrapper_Close, file-upload, file-upload-button, file-upload-delete, +file-upload-icon, file-upload-message, file-upload-widget, Form, gallery-content, gallery-item, has-event, header, header-center, header-content, header-left, header-right, header-top, hide-on-service-studio, icon, +icon-silk-angle-down, icon-silk-chevron-down, icon-silk-rocket, icon-silk-search, ie10, ie11, img, img-1, img-2, img-3, img-4, img-5, img-6, img-7, img-8, InEditMode, input, input-with-icon, input-with-icon-content-icon, +input-with-icon-input, interval, Is_Default, is-active, is--active, is--animating, is-bound, is--closed, is--collapsed, is-disabled, is--disabled, is--expanded, is-flipped, is-focused, is-hidden, is--hidden, +is-highlighted, is-inline, is-open, is--open, is-outside-current-month, is-right, is-rtl, is-selected, is-today, is--visible, jello, justified, justify-content-flex-end, label-top, layout, layout-left, layout-login, +layout-login-background, layout-login-form, layout-login-form-content, layout-login-simple, layout-side, layout-top, lazyload, leave-bottom, leave-fade, leave-left, leave-right, leave-scale, leave-top, left, lightbox, +lightbox-content-thumbnail, light-theme, ListNavigation_CurrentPageNumber, ListNavigation_DisabledNext, ListNavigation_DisabledPrevious, ListNavigation_Ellipsis, ListNavigation_Next, ListNavigation_PageNumber, +ListNavigation_Previous, ListNavigation_Wrapper, list-navigation-circle, list-navigation-inline, list-navigation-sharp, ListRecords, loaded, logo-preview, lt-ie9, main, main-content, MandatoryLabel, +Menu_DropDownArrow, Menu_DropDownButton, Menu_DropDownPanel, Menu_SubItemsPlaceholder, Menu_SubMenuItemActive, Menu_TopMenu, Menu_TopMenuActive, Menu_TopMenus, menu-icon, menu-icon-line, modal, modal-close, modal-content, +modal-footer, modal-overlay, modal-title, modal-top, modal-wrapper, month-picker, nav, navigation, navigation-bar, navigation-bar-item, navigation-bar-item-content, navigation-bar-item-subitem, navigation-bar-item-title, +navigation-bottom, navigation-menu, navigation-top, nav-toggle-handle, next, next-year, Not_Valid, noUi-active, noUi-connect, noUi-connects, noUi-handle, noUi-horizontal, noUi-marker, noUi-marker-horizontal, noUi-pips, +noUi-pips-horizontal, noUi-pips-vertical, noUi-target, noUi-value-horizontal, noUi-value-vertical, noUi-vertical, OnEdit, only-balloon, open, os-internal-header-space, os-internal-Popup, os-internal-PopupCallOut, +os-internal-ui-autocomplete, os-internal-ui-dialog, os-internal-ui-dialog-buttonpane, os-internal-ui-dialog-content, os-internal-ui-dialog-title, os-internal-ui-dialog-titlebar, os-internal-ui-dialog-titlebar-close, +os-internal-ui-dialog-titlebar-close-hover, os-internal-ui-dialog-titlebar-close-no-title, os-internal-ui-draggable, os-internal-ui-resizable-e, os-internal-ui-resizable-n, os-internal-ui-resizable-ne, os-internal-ui-resizable-nw, +os-internal-ui-resizable-s, os-internal-ui-resizable-se, os-internal-ui-resizable-sw, os-internal-ui-resizable-w, os-internal-ui-state-hover, os-internal-ui-widget-overlay, osui-deprecated, OUTSYSTEMS_INTERNAL_BLOCK_INSTANCE, panel, panel-actions, +panel-content, panel-footer, panel-header, panel-title, past, ph, phone, phone-break-all, phone-break-first, phone-break-last, phone-break-middle, pika-button, pika-days-picker, pika-go-today, pika-label, pika-labels, +pika-month, pika-next, pika-prev, pika-select-month, pika-select-year, pika-single, pika-table, pika-title, pika-today-container, pika-year, playbutton-wrapper, portrait, prev, prev-year, progress, progress-bar-base, +progress-bar-extra-small, progress-bar-small, progress-container, progress-content, progress-title, progress-value, pswp, pswp__bg, pswp__button, pswp__button--arrow--left, pswp__button--arrow--right, pswp__button--close, +pswp__button--fs, pswp__button--share, pswp__button--zoom, pswp__caption, pswp__caption__center, pswp__caption--empty, pswp__caption--fake, pswp__container, pswp__counter, pswp__element--disabled, pswp__error-msg, pswp__img, +pswp__img--placeholder, pswp__img--placeholder--blank, pswp__item, pswp__preloader, pswp__preloader__cut, pswp__preloader__donut, pswp__preloader__icn, pswp__preloader--active, pswp__scroll-wrap, pswp__share--download, +pswp__share--facebook, pswp__share-modal, pswp__share-modal--fade-in, pswp__share-modal--hidden, pswp__share--pinterest, pswp__share-tooltip, pswp__share--twitter, pswp__top-bar, pswp__ui, pswp__ui--fit, +pswp__ui--hidden, pswp__ui--idle, pswp__ui--one-slide, pswp__ui--over-close, pswp__zoom-wrap, pswp--animate_opacity, pswp--animated-in, pswp--css_animation, pswp--dragging, pswp--fs, pswp--has_mouse, pswp--ie, pswp--minimal--dark, +pswp--open, pswp--supports-fs, pswp--touch, pswp--zoom-allowed, pswp--zoomed-in, radio-button, range-slider, range-slider-label, range-slider-object, range-slider-separator, range-slider-values, ReadOnly, right, rollOut, +RowControlGroup, scrollable-row, search, search-actions, search-balloon, search-balloon-answers, search--wrapper, section-actions, section-content, section-header, select, Selected, separator, separator-horizontal, +separator-vertical, sidebar, sidebar-container, sidebar-content, sidebar-header, sidebar-overlay, SmartInput_Changed, SortColumns_Sortable, SortColumns_Sorted, subtitle, suite-container, table-no-header, TableRecords, +TableRecords_BottomNavigation, TableRecords_EvenLine, TableRecords_ExpandedRow, TableRecords_Header, TableRecords_Label, TableRecords_OddLine, table-records-medium, table-records-small, table-records-stripping, +tablet, tablet-break-all, tablet-break-first, tablet-break-last, tablet-break-middle, tabs, tabs-content, tabs-content-item, tabs-header, tabs-header-item, tabs-header-right, tabs-vertical, tag, tag-medium, tag-small, +textarea, ThemeGrid_Container, ThemeGrid_MarginGutter, thumbnails, timeline-item, timeline-item-date, timeline-item-icon, timeline-item-left, timeline-item-right, timeline-item-separator, tippy-arrow, tippy-backdrop, +tippy-iOS, tippy-notransition, tippy-popper, tippy-roundarrow, tippy-tooltip, title, Title_Links, tns-ah, tns-controls, tns-fadeIn, tns-fadeOut, tns-gallery, tns-horizontal, tns-item, tns-lazy-img, tns-moving, tns-nav, +tns-no-calc, tns-normal, tns-no-subpixel, tns-outer, tns-ovh, tns-slide-active, tns-slider, tns-subpixel, tns-transparent, tns-visually-hidden, toggle-button, toggle-button-label, tooltip, tooltip-bottom, tooltip-container, +tooltip-left, tooltip-right, tooltip-top, tooltip-widget, top-center, top-left, top-right, user-avatar, ValidationMessage, vertical, visually-hidden, wizard, wizard-item, wizard-item-icon, wizard-item-icon-wraper, wizard-item-label, +wizard-vertical, wrapper, year-picker, Heading2, osui-gallery, osui-accordion, osui-accordion-item, osui-accordion-item__content, osui-accordion-item__content--is-animating, osui-accordion-item__content--is-collapsed, +osui-accordion-item__content--is-expanded, osui-accordion-item__icon, osui-accordion-item__icon--caret, osui-accordion-item__icon--custom, osui-accordion-item__icon--hidden, osui-accordion-item__icon--plus-minus, +osui-accordion-item__title, osui-accordion-item__title__placeholder, osui-accordion-item__title--is-left, osui-accordion-item--is-disabled, +osui-accordion-item--is-open, osui-flip-content, osui-flip-content__container, osui-flip-content__container__back, osui-flip-content__container__front, osui-flip-content__container--flip-self, osui-flip-content--flipped, +osui-tooltip, osui-tooltip__balloon-wrapper, osui-tooltip__balloon-wrapper__balloon, osui-tooltip__content, osui-tooltip--is-hover, osui-tooltip--is-opened, is-active, is-initialized, is-rendered, osui-carousel, +osui-carousel__content, splide, splide__arrow, splide__arrow--next, splide__arrow--prev, splide__arrows, splide__container, splide__list, splide__pagination, splide__pagination__page, splide__progress__bar, +splide__slide, splide__slider, splide__spinner, splide__track, splide--draggable, splide--fade, splide--nav, splide--rtl, splide--ttb, animate, arrowBottom, arrowCenter, arrowDown, arrowLeft, arrowRight, arrowTop, +arrowUp, cur-month, cur-year, dayContainer, dayContainer, endRange, flatpickr-am-pm, flatpickr-calendar, flatpickr-current-month, flatpickr-day, flatpickr-days, flatpickr-disabled, flatpickr-hour, flatpickr-innerContainer, +flatpickr-input, flatpickr-minute, flatpickr-month, flatpickr-monthDropdown-month, flatpickr-monthDropdown-months, flatpickr-months, flatpickr-next-month, flatpickr-prev-month, flatpickr-rContainer, flatpickr-second, +flatpickr-time, flatpickr-time-separator, flatpickr-today-button, flatpickr-weekdaycontainer, flatpickr-weekdays, flatpickr-weeks, flatpickr-weekwrapper, flatpickr-wrapper, has-today-btn, hasSeconds, hasTime, hasWeeks, +inline, inRange, multiMonth, nextMonthDay, noCalendar, notAllowed, numInput, numInputWrapper, open, osui-datepicker, osui-datepicker-calendar-ss-preview, placeholder-ss-preview, prevMonthDay, rangeMode, rightMost, +selected, single, startRange, static, time12h, time24h, today, week, osui-dropdown-serverside__balloon--has-not-search, osui-dropdown-serverside__balloon--is-top, osui-dropdown-serverside__balloon-container, +osui-dropdown-serverside__balloon-content, osui-dropdown-serverside__balloon-focus-bottom, osui-dropdown-serverside__balloon-focus-top, osui-dropdown-serverside__balloon-footer, osui-dropdown-serverside__balloon-search, +osui-dropdown-serverside__balloon-wrapper, osui-dropdown-serverside__selected-values, osui-dropdown-serverside__selected-values-footer, osui-dropdown-serverside__selected-values-wrapper, osui-dropdown-serverside--is-disabled, +osui-dropdown-serverside--is-opened, osui-dropdown-serverside--not-valid, osui-dropdown-serverside-error-message, osui-dropdown-error-message, osui-dropdown-option-icon, osui-dropdown-option-image, osui-dropdown-serverside-item, +osui-dropdown-serverside-item__content, osui-dropdown-serverside-item--is-selected, osui-dropdown--not-valid, osui-dropdown-search, osui-dropdown-search-ss-preview, vscomp-toggle-button, osui-dropdown--not-valid, osui-dropdown-tags, +osui-dropdown-tags-ss-preview, vscomp-toggle-button, osui-notification, osui-notification--is-bottom, osui-notification--is-bottom-left, osui-notification--is-bottom-right, osui-notification--is-center, osui-notification--is-left, +osui-notification--is-open, osui-notification--is-right, osui-notification--is-top, osui-notification--is-top-left, osui-notification--is-top-right, osui-notification-preview, noUi-active, noUi-background, noUi-base, noUi-connect, +noUi-connects, noUi-draggable, noUi-handle, noUi-horizontal, noUi-marker, noUi-marker-horizontal, noUi-marker-large, noUi-marker-sub, noUi-marker-vertical, noUi-origin, noUi-pips, noUi-pips-horizontal, noUi-pips-margin, +noUi-pips-vertical, noUi-rtl, noUi-state-drag, noUi-state-tap, noUi-target, noUi-tooltip, noUi-touch-area, noUi-txt-dir-rtl, noUi-value, noUi-value-horizontal, noUi-value-vertical, noUi-vertical, osui-range-slider, +osui-range-slider__provider, osui-range-slider--is-vertical, osui-sidebar, osui-sidebar__content, osui-sidebar__header, osui-sidebar--has-overlay, osui-sidebar--is-left, osui-sidebar--is-open, osui-sidebar--is-right, +osui-submenu, osui-submenu__header, osui-submenu__header__icon, osui-submenu__header__item, osui-submenu__items, osui-submenu--is-open, osui-progress-bar, osui-progress-bar__container, osui-progress-bar__content, +osui-progress-bar__value, osui-progress-circle, osui-progress-circle__container, osui-progress-circle__container__progress-path, osui-progress-circle__container__trail-path, osui-progress-circle__content, osui-btn-loading, +osui-btn-loading__spinner-animation, osui-btn-loading--is-loading, osui-btn-loading-show-spinner, osui-deprecated, osui-bottom-sheet--has-handler, osui-bottom-sheet--has-scroll, osui-bottom-sheet--is-open, osui-bottom-sheet__content, +osui-bottom-sheet__header, osui-bottom-sheet-overlay, osui-bottom-sheet__header__top-bar, osui-bottom-sheet, focus-trap-top, focus-trap-bottom, osui-timepicker, osui-timepicker-dropdown-ss-preview, osui-monthpicker, osui-monthpicker__dropdown*/ \ No newline at end of file diff --git a/dist/ODC.OutSystemsUI.d.ts b/dist/ODC.OutSystemsUI.d.ts new file mode 100644 index 0000000000..bd983bdcf6 --- /dev/null +++ b/dist/ODC.OutSystemsUI.d.ts @@ -0,0 +1,6133 @@ +declare namespace osui { + function GetVersion(): string; + function ToggleClass(el: HTMLElement, state: unknown, className: string): void; + function GetClosest(elem: HTMLElement, selector: string): unknown; + function FixInputs(): void; + function HasMasterDetail(): boolean; + function HideOnScroll(): unknown; +} +declare namespace OSFramework.OSUI.Constants { + const A11YAttributes: { + Aria: { + Atomic: string; + Busy: string; + Controls: string; + Describedby: string; + Disabled: string; + Expanded: string; + Haspopup: string; + Hidden: string; + Label: string; + Labelledby: string; + Multiselectable: string; + Selected: string; + ValueMax: string; + ValueMin: string; + }; + AriaLive: { + AttrName: string; + Assertive: string; + Polite: string; + Off: string; + }; + Role: { + Alert: string; + AlertDialog: string; + AttrName: string; + Button: string; + Complementary: string; + Listbox: string; + MenuItem: string; + Option: string; + Presentation: string; + Progressbar: string; + Region: string; + Search: string; + Tab: string; + TabList: string; + TabPanel: string; + Tooltip: string; + }; + TabIndex: string; + States: { + Empty: string; + False: string; + TabIndexHidden: string; + TabIndexShow: string; + True: string; + }; + }; + const AccessibilityHideElementClass = "wcag-hide-text"; + const AllowPropagationAttr = "[data-allow-event-propagation]"; + const Comma = ","; + const Dot = "."; + const EmptyString = ""; + const EnableLogMessages = false; + const FocusableElems = "a[href]:not([disabled]),[tabindex=\"0\"], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled])"; + const FocusTrapIgnoreAttr = "ignore-focus-trap"; + const HasAccessibilityClass = "has-accessible-features"; + const InvalidNumber = -1; + const IsRTLClass = "is-rtl"; + const JavaScriptTypes: { + Undefined: string; + Boolean: string; + Number: string; + String: string; + Symbol: string; + Function: string; + Object: string; + }; + const JustInputs = "input:not([type=button]):not([type=checkbox]):not([type=color]):not([type=file]):not([type=hidden]):not([type=image]):not([type=image]):not([type=radio]):not([type=range]):not([type=reset]):not([type=submit]), textarea"; + const Language: { + code: string; + short: string; + }; + const Months: string[]; + const NoTransition = "no-transition"; + const OSUIPlatform = "<\u2022>platformType<\u2022>"; + const OSUIVersion = "2.18.2"; + const ZeroValue = 0; +} +declare namespace OSFramework.OSUI.ErrorCodes { + const AbstractChild: { + FailParentNotFound: string; + }; + const Accordion: { + FailChildItemClicked: string; + FailSetNewChildItem: string; + FailToSetChildItemAction: string; + FailUnsetNewChildItem: string; + }; + const Dropdown: { + FailOptionItemClicked: string; + FailOptionItemKeyPressed: string; + FailSetNewOptionItem: string; + FailToSetOptionItemAction: string; + FailUnsetNewOptionItem: string; + HasNoImplementation: { + code: string; + message: string; + }; + }; + const DropdownServerSide: { + FailOnSetIntersectionObserver: string; + }; + const RangeSlider: { + FailSetValue: string; + }; + const SectionIndex: { + FailChildItemClicked: string; + FailSetNewChildItem: string; + FailToSetChildItemAction: string; + FailUnsetNewChildItem: string; + }; + const SectionIndexItem: { + FailToSetTargetElement: string; + }; + const Tooltip: { + FailOnSetIntersectionObserver: string; + }; + const Tabs: { + FailChildItemClicked: string; + FailSetNewChildContentItem: string; + FailSetNewChildHeaderItem: string; + FailToSetChildItemAction: string; + FailUnsetNewChildContentItem: string; + FailUnsetNewChildHeaderItem: string; + }; + const AbstractParent: { + FailChildNotFound: string; + FailChildsNotFound: string; + FailTypeNotFound: string; + }; + const AbstractProviderPattern: { + FailProviderEventHandler: string; + FailProviderEventRemoval: { + code: string; + message: string; + }; + FailProviderEventSet: { + code: string; + message: string; + }; + }; + const ProviderEventsManager: { + FailPendingEventRemoval: string; + FailSavingPendingEvent: string; + FailSavedEventRemoval: string; + FailSavingEvent: string; + }; +} +declare namespace OSFramework.OSUI.GlobalCallbacks { + type Generic = { + (...args: unknown[]): unknown; + }; + type OSGeneric = { + (patternId: string, ...args: unknown[]): void; + }; +} +declare namespace OSFramework.OSUI.GlobalEnum { + enum CommonPatternsProperties { + ExtendedClass = "ExtendedClass" + } + enum CssClassElements { + AcessibilityStyleTag = "acessibility-style-tag", + ActiveScreen = "active-screen", + AsideExpandable = "aside-expandable", + Container = "screen-container", + Content = "content", + DeprecatedSubmenu = "submenu", + Footer = "footer", + Header = "header", + HeaderHideOnScroll = "hide-header-on-scroll", + HeaderIsFixed = "fixed-header", + HeaderIsVisible = "header-is--visible", + HeaderTopContent = "header-top-content", + InputNotValid = "not-valid", + IsTouch = "is--touch", + Layout = "layout", + LayoutNative = "layout-native", + LayoutSide = "layout-side", + LayoutTop = "layout-top", + List = "list", + LoginPassword = "login-password", + MainContent = "main-content", + MenuLinks = "app-menu-links", + Placeholder = "ph", + Popup = "popup-dialog", + SkipContent = "skip-nav" + } + enum CSSSelectors { + InputFormControl = "input.form-control", + IosBounceScroll = "ios .ios-bounce:not(.hide-header-on-scroll) .content", + LayoutNativeHeader = "layout-native:not(.hide-header-on-scroll) .header" + } + enum CSSVariables { + FooterHeight = "--footer-height", + HeaderContentHeight = "--header-size-content", + OverlayOpacity = "--overlay-opacity", + ViewportHeight = "--viewport-height" + } + enum Position { + Bottom = "bottom", + BottomLeft = "bottom-left", + BottomRight = "bottom-right", + Center = "center", + Left = "left", + Right = "right", + Top = "top", + TopLeft = "top-left", + TopRight = "top-right" + } + enum FloatingAlignment { + Center = "center", + End = "end", + Start = "start" + } + enum FloatingPosition { + Auto = "auto", + Bottom = "bottom", + BottomEnd = "bottom-end", + BottomStart = "bottom-start", + Center = "center", + Left = "left", + LeftEnd = "left-end", + LeftStart = "left-start", + Right = "right", + RightEnd = "right-end", + RightStart = "right-start", + Top = "top", + TopEnd = "top-end", + TopStart = "top-start" + } + enum CssProperties { + Auto = "auto", + Initial = "initial", + None = "none", + PaddingTop = "padding-top" + } + enum DataBlocksTag { + DataBlock = "[data-block]", + Input = "[data-input]", + Label = "[data-label]", + TextArea = "[data-textarea]" + } + enum DateFormat { + D = "D", + d = "d", + DD = "DD", + DDD = "DDD", + M = "M", + m = "m", + MM = "MM", + MMM = "MMM", + Y = "Y", + y = "y", + YY = "YY", + YYY = "YYY", + YYYY = "YYYY" + } + enum Direction { + Bottom = "bottom", + Down = "down", + Left = "left", + LTR = "ltr", + None = "", + Right = "right", + RTL = "rtl", + Top = "top", + TTB = "ttb", + Up = "up" + } + enum ScrollBehavior { + Auto = "auto", + Smooth = "smooth" + } + enum HTMLAttributes { + AllowEventPropagation = "[data-allow-event-propagation=true], [data-allow-event-propagation=True]", + Class = "class", + DataInput = "data-input", + Disabled = "disabled", + Href = "href", + Id = "id", + Name = "name", + StatusBar = "data-status-bar-height", + Style = "style", + Type = "type", + Value = "value" + } + enum HTMLElement { + Body = "body", + Button = "button", + Div = "div", + FieldSet = "fieldset", + Input = "input", + Link = "a", + Radio = "radio", + Span = "span" + } + enum HTMLEvent { + AnimationEnd = "animationend", + AnimationStart = "animationstart", + Blur = "blur", + Click = "click", + Focus = "focus", + keyDown = "keydown", + MouseDown = "mousedown", + MouseEnter = "mouseenter", + MouseLeave = "mouseleave", + MouseUp = "mouseup", + OrientationChange = "orientationchange", + Prefix = "on", + Resize = "resize", + Scroll = "scroll", + ScrollEnd = "scrollend", + TouchEnd = "touchend", + TouchMove = "touchmove", + TouchStart = "touchstart", + TransitionEnd = "transitionend", + Message = "message" + } + enum CustomEvent { + BalloonOnToggle = "balloon.onToggle" + } + enum InlineStyle { + Display = "display", + Height = "height", + Left = "left", + Opacity = "opacity", + PointerEvents = "pointerEvents", + Top = "top", + Transform = "transform", + Width = "width" + } + const InlineStyleValue: { + Display: { + block: string; + inline: string; + none: string; + unset: string; + }; + }; + enum Keycodes { + ArrowDown = "ArrowDown", + ArrowLeft = "ArrowLeft", + ArrowRight = "ArrowRight", + ArrowUp = "ArrowUp", + End = "End", + Enter = "Enter", + Escape = "Escape", + Home = "Home", + Shift = "Shift", + ShiftTab = "ShiftTab", + Space = " ", + Tab = "Tab" + } + enum KeyframesEffectOptions { + EasingLinear = "linear", + FillBoth = "both" + } + enum MobileOS { + Android = "android", + IOS = "ios", + MacOS = "osx", + Unknown = "unknown", + Windows = "windows" + } + enum Orientation { + Horizontal = "horizontal", + None = "", + Vertical = "vertical" + } + enum PatternName { + Accordion = "Accordion", + AccordionItem = "Accordion Item", + AnimatedLabel = "Animated Label", + Balloon = "Balloon", + BottomSheet = "Bottom Sheet", + ButtonLoading = "ButtonLoading", + Carousel = "Carousel", + Datepicker = "Datepicker", + Dropdown = "Dropdown", + DropdownServerSideItem = "DropdownServerSideItem", + FlipContent = "Flip Content", + FloatingActions = "Floating Actions", + FloatingActionsItem = "Floating Actions Item", + Gallery = "Gallery", + InlineSvg = "InlineSVG", + MonthPicker = "MonthPicker", + Notification = "Notification", + OverflowMenu = "OverflowMenu", + ProgressBar = "Progress Bar", + ProgressCircle = "Progress Circle", + RangeSlider = "Range Slider", + RangeSliderInterval = "Range Slider Interval", + Rating = "Rating", + Search = "Search", + SectionIndex = "Section Index", + SectionIndexItem = "Section Index Item", + Sidebar = "Sidebar", + Submenu = "Submenu", + SwipeEvents = "SwipeEvents", + Tabs = "Tabs", + TabsContentItem = "TabsContentItem", + TabsHeaderItem = "TabsHeaderItem", + Timepicker = "Timepicker", + Tooltip = "Tooltip", + TouchEvents = "TouchEvents", + Video = "Video" + } + enum ShapeTypes { + Rounded = "rounded", + Sharp = "none", + SoftRounded = "soft" + } + enum InputClassTypes { + InputLarge = "input-large", + InputSmall = "input-small" + } + enum InputTypeAttr { + Date = "date", + DateTime = "date-time-edit", + Password = "password", + Text = "text", + Time = "time" + } + enum Units { + Percentage = "%", + Pixel = "px", + Em = "em" + } + enum Browser { + chrome = "chrome", + edge = "edge", + firefox = "firefox", + ie = "ie", + kindle = "kindle", + miui = "miui", + opera = "opera", + safari = "safari", + samsung = "samsung", + uc = "uc", + unknown = "unknown", + yandex = "yandex" + } + enum DeviceOrientation { + landscape = "landscape", + portrait = "portrait", + unknown = "unknown" + } + enum DeviceType { + desktop = "desktop", + phone = "phone", + tablet = "tablet" + } + enum NotchClasses { + IPhoneX = "iphonex" + } + enum FocusTrapClasses { + FocusTrapBottom = "focus-trap-bottom", + FocusTrapTop = "focus-trap-top" + } + enum WarningMessages { + FeatureNotImplemented = "This feature is not yet implemented!", + MethodNotImplemented = "This Method has no implementation on the context of this pattern." + } + enum NullValues { + Time = "00:00:00" + } + enum ProviderEvents { + Initialized = "Initialized", + OnProviderConfigsApplied = "OnProviderConfigsApplied" + } + enum SVGHelperConstants { + DOMType = "image/svg+xml", + ParserError = "parsererror", + SVG = "svg" + } + enum Time { + HourInSeconds = 3600, + MinuteInSeconds = 60 + } +} +declare namespace OSFramework.OSUI.Behaviors { + type SpringAnimationProperties = { + friction: number; + mass: number; + tension: number; + }; + type SpringAnimationConfigs = { + addSpringAnimation: boolean; + springAnimationProperties: SpringAnimationProperties; + }; + class DragParams { + DragOrientation: GlobalEnum.Orientation; + ExpectedDirection: GlobalEnum.Direction; + InvalidDrag: boolean; + IsMoving: boolean; + IsOpen: boolean; + IsReadyToTriggerCallback: boolean; + LastX: number; + LastY: number; + MoveX: number; + MoveY: number; + Size: any; + SpringAnimation: Animation; + VerticalDrag: boolean; + } + export class AnimateOnDrag { + private _dragParams; + private readonly _swipeTriggerSpeed; + private _targetElement; + constructor(target: HTMLElement); + private _checkIsDraggingInsideBounds; + private _updateLastPositions; + private _updateUI; + get dragParams(): DragParams; + onDragEnd(offsetX: number, offsetY: number, timeTaken: number, callback: GlobalCallbacks.Generic, springProperties?: SpringAnimationConfigs): void; + onDragMove(offsetX: number, offsetY: number, currentX: number, currentY: number, event: TouchEvent): void; + onDragStart(verticalDrag: boolean, expectedDirection: GlobalEnum.Direction, currentX: number, currentY: number, isOpen: boolean, size: string): void; + } + export abstract class OverlayTransitionOnDrag { + static Set(target: HTMLElement, currentDragValue: number, direction: GlobalEnum.Direction, size: string): void; + static UnSet(target: HTMLElement): void; + } + export abstract class SpringAnimation { + private static _createSpringEffect; + static CreateSpringAnimation(target: HTMLElement, offsetX: number, offsetY: number, orientation: GlobalEnum.Orientation, springProperties: SpringAnimationProperties): Animation; + } + export {}; +} +declare namespace OSFramework.OSUI.Behaviors { + class FocusManager { + private _lastFocusedElem; + constructor(); + setFocusToStoredElement(): void; + storeLastFocusedElement(): void; + } +} +declare namespace OSFramework.OSUI.Behaviors { + type FocusTrapParams = { + focusBottomCallback: GlobalCallbacks.Generic; + focusTargetElement: HTMLElement; + focusTopCallback: GlobalCallbacks.Generic; + }; + class FocusTrap { + private _firstFocusableElement; + private _focusBottomCallback; + private _focusTopCallback; + private _focusableElements; + private _hasBeenPassThoughFirstOne; + private _lastFocusableElement; + private _predictableBottomElement; + private _predictableTopElement; + private _targetElement; + constructor(opts: FocusTrapParams); + private _buildPredictableElements; + private _focusBottomHandler; + private _focusHandler; + private _focusTopHandler; + private _removeEventListeners; + private _setEventListeners; + private _setFocusableElements; + private _setFocusableProperties; + private _unsetCallbacks; + disableForA11y(): void; + dispose(): void; + enableForA11y(): void; + get bottomElement(): HTMLElement; + get topElement(): HTMLElement; + get focusableElements(): HTMLElement[]; + } +} +declare namespace OSFramework.OSUI.Behaviors { + function Scroll(element: HTMLElement, offSet: OffsetValues, isSmooth?: boolean): void; + function ScrollVerticalPosition(scrollableElement?: HTMLElement): ScrollPosition; +} +declare namespace OSFramework.OSUI.Event.DOMEvents { + abstract class AbstractEvent implements IEvent { + private _handlers; + get handlers(): GlobalCallbacks.OSGeneric[]; + addHandler(handler: GlobalCallbacks.OSGeneric): void; + hasHandlers(): boolean; + removeHandler(handler: GlobalCallbacks.OSGeneric): void; + trigger(data?: T, ...args: unknown[]): void; + abstract addEvent(): void; + abstract removeEvent(): void; + } +} +declare namespace OSFramework.OSUI.Event.DOMEvents { + abstract class AbstractEventsManager { + private _events; + constructor(); + addHandler(eventType: ET, handler: GlobalCallbacks.Generic): void; + hasHandlers(eventType: ET): boolean; + removeHandler(eventType: ET, handler: GlobalCallbacks.Generic): void; + trigger(eventType: ET, data?: D, ...args: unknown[]): void; + get events(): Map>; + protected abstract getInstanceOfEventType(eventType: ET): IEvent; + } +} +declare namespace OSFramework.OSUI.Event.DOMEvents { + interface IEvent { + handlers: GlobalCallbacks.OSGeneric[]; + addEvent(): void; + addHandler(handler: GlobalCallbacks.OSGeneric, ...args: any[]): void; + hasHandlers(): boolean; + removeEvent(): void; + removeHandler(handler: GlobalCallbacks.OSGeneric): void; + trigger(data: D, ...args: unknown[]): unknown; + } +} +declare namespace OSFramework.OSUI.Event.DOMEvents.Listeners { + abstract class AbstractListener extends AbstractEvent implements IListener { + private _eventName; + private _eventTarget; + private _eventType; + protected eventCallback: EventListenerObject; + protected useCapture: boolean; + constructor(eventTarget: HTMLElement | Document | Window, eventType: GlobalEnum.HTMLEvent | GlobalEnum.CustomEvent, isCustomEvent?: boolean); + addEvent(): void; + removeEvent(): void; + } +} +declare namespace OSFramework.OSUI.Event.DOMEvents.Listeners { + class BalloonOnToggle extends AbstractListener { + constructor(); + private _onToggleTrigger; + } +} +declare namespace OSFramework.OSUI.Event.DOMEvents.Listeners { + class BodyOnClick extends AbstractListener { + private _enableBodyClick; + constructor(); + private _bodyTrigger; + disableBodyClickEvent(): void; + enableBodyClickEvent(): void; + get getBodyClickStatus(): boolean; + } +} +declare namespace OSFramework.OSUI.Event.DOMEvents.Listeners { + class BodyOnMouseDown extends AbstractListener { + constructor(); + private _bodyTrigger; + } +} +declare namespace OSFramework.OSUI.Event.DOMEvents.Listeners { + interface IListener extends IEvent { + disableBodyClickEvent?(): void; + enableBodyClickEvent?(): void; + } +} +declare namespace OSFramework.OSUI.Event.DOMEvents.Listeners { + enum Type { + BalloonOnToggle = "balloon.onToggle", + BodyOnClick = "body.onclick", + BodyOnMouseDown = "body.mousedown", + OrientationChange = "window.onorientationchange", + ScreenOnScroll = "screen.onscroll", + WindowResize = "window.onresize", + WindowMessage = "window.message" + } +} +declare namespace OSFramework.OSUI.Event.DOMEvents.Listeners { + class ListenerManager extends AbstractEventsManager { + protected getInstanceOfEventType(listenerType: Type): IListener; + } + class GlobalListenerManager { + private static _listenerManager; + static get Instance(): ListenerManager; + } +} +declare namespace OSFramework.OSUI.Event.DOMEvents.Listeners { + class OrientationChange extends AbstractListener { + constructor(); + private _orientationTrigger; + } +} +declare namespace OSFramework.OSUI.Event.DOMEvents.Listeners { + class ScreenOnScroll extends AbstractListener { + constructor(); + private _screenTrigger; + } +} +declare namespace OSFramework.OSUI.Event.DOMEvents.Listeners { + class WindowMessage extends AbstractListener { + constructor(); + private _windowTrigger; + } +} +declare namespace OSFramework.OSUI.Event.DOMEvents.Listeners { + class WindowResize extends AbstractListener { + private _timeout; + constructor(); + private _windowTrigger; + } +} +declare namespace OSFramework.OSUI.Event.DOMEvents.Observers { + abstract class AbstractObserver extends AbstractEvent implements IObserver { + private _observerOptions; + private _observerTarget; + protected observer: ResizeObserver | MutationObserver; + constructor(observerOptions: O, observerTarget: HTMLElement); + protected startObserver(): void; + removeEvent(): void; + get observerOptions(): O; + get observerTarget(): HTMLElement; + } +} +declare namespace OSFramework.OSUI.Event.DOMEvents.Observers { + interface IObserver extends IEvent { + observerOptions: O; + observerTarget: HTMLElement; + } +} +declare namespace OSFramework.OSUI.Event.DOMEvents.Observers { + enum ObserverEvent { + RTL = "RTL" + } +} +declare namespace OSFramework.OSUI.Event.DOMEvents.Observers { + class ObserverManager extends AbstractEventsManager { + protected getInstanceOfEventType(observerType: Observers.ObserverEvent): Observers.IObserver; + } + class GlobalObserverManager { + private static _observerManager; + static get Instance(): ObserverManager; + } +} +declare namespace OSFramework.OSUI.Event.DOMEvents.Observers.MutationObservers { + abstract class AbstractMutationObserver extends AbstractObserver implements IObserver { + constructor(observerOptions: MutationObserverInit, observerTarget: HTMLElement); + addEvent(): void; + protected abstract observerHandler(mutationList: MutationRecord[]): void; + } +} +declare namespace OSFramework.OSUI.Event.DOMEvents.Observers.MutationObservers.RTL { + class RTLObserver extends AbstractMutationObserver { + private _hasAlreadyRTL; + constructor(); + observerHandler(mutationList: MutationRecord[]): void; + } +} +declare namespace OSFramework.OSUI.Event.DOMEvents.Observers.MutationObservers.RTL { + class RTLObserverConfigs implements MutationObserverInit { + attributeFilter: Array; + attributeOldValue: boolean; + subtree: boolean; + constructor(); + } +} +declare namespace OSFramework.OSUI.Event { + abstract class AbstractGestureEvent implements GestureEvent.IGestureEvent { + private _endEvent; + private _endTriggerCallback; + private _gestureParams; + private _moveEvent; + private _moveTriggerCallback; + private _startEvent; + private _startTriggerCallback; + private _targetElement; + constructor(target: HTMLElement); + private _eventTouchEnd; + private _eventTouchMove; + private _eventTouchStart; + private _removeEventListeners; + private _unsetCallbacks; + protected setCallbacks(onStartCallback?: GlobalCallbacks.Generic, onMoveCallback?: GlobalCallbacks.Generic, onEndCallback?: GlobalCallbacks.Generic): void; + protected setEventListeners(): void; + get targetElement(): HTMLElement; + unsetTouchEvents(): void; + protected abstract setSwipeEvents(...args: GlobalCallbacks.Generic[]): void; + } +} +declare namespace OSFramework.OSUI.Event.GestureEvent.Callbacks { + type GestureStart = { + (x: number, y: number): void; + }; + type GestureMove = { + (x: number, y: number, offsetX: number, offsetY: number, evt: TouchEvent): void; + }; + type GestureEnd = { + (offsetX: number, offsetY: number, timeTaken: number): void; + }; + type SwipeDown = { + (): void; + }; + type SwipeLeft = { + (): void; + }; + type SwipeRight = { + (): void; + }; + type SwipeUp = { + (): void; + }; +} +declare namespace OSFramework.OSUI.Event.GestureEvent { + class DragEvent extends AbstractGestureEvent { + constructor(target: HTMLElement); + setSwipeEvents(onStartCallback: Event.GestureEvent.Callbacks.GestureStart, onMoveCallback: Event.GestureEvent.Callbacks.GestureMove, onEndCallback?: Event.GestureEvent.Callbacks.GestureEnd): void; + } +} +declare namespace OSFramework.OSUI.Event.GestureEvent { + interface IGestureEvent { + targetElement: HTMLElement; + unsetTouchEvents(): void; + } +} +declare namespace OSFramework.OSUI.Event.GestureEvent { + class SwipeEvent extends AbstractGestureEvent { + private _swipeDownCallback; + private _swipeLeftCallback; + private _swipeRightCallback; + private _swipeUpCallback; + private _threshold; + private _velocity; + constructor(target: HTMLElement); + private _onGestureEnd; + protected setSwipeCallbacks(swipeDownCallback: GlobalCallbacks.Generic, swipeLeftCallback: GlobalCallbacks.Generic, swipeRightCallback: GlobalCallbacks.Generic, swipeUpCallback: GlobalCallbacks.Generic): void; + setSwipeEvents(swipeDownCallback: Event.GestureEvent.Callbacks.SwipeDown, swipeLeftCallback: Event.GestureEvent.Callbacks.SwipeLeft, swipeRightCallback: Event.GestureEvent.Callbacks.SwipeRight, swipeUpCallback: Event.GestureEvent.Callbacks.SwipeUp): void; + } +} +declare namespace OSFramework.OSUI.Event.ProviderEvents { + interface IProviderEvent { + callback: GlobalCallbacks.Generic; + eventName: string; + eventUniqueId: string; + } +} +declare namespace OSFramework.OSUI.Event.ProviderEvents { + interface IProviderEventManager { + addPendingEvent(eventName: string, callback: GlobalCallbacks.Generic, eventUniqueId: string): void; + get events(): Map; + get hasEvents(): boolean; + get hasPendingEvents(): boolean; + get pendingEvents(): Map; + removePendingEvent(eventUniqueId: string): void; + removeSavedEvent(eventUniqueId: string): void; + saveEvent(eventName: string, callback: GlobalCallbacks.Generic, eventUniqueId: string): void; + } +} +declare namespace OSFramework.OSUI.Event.ProviderEvents { + class ProviderEvent implements IProviderEvent { + callback: GlobalCallbacks.Generic; + eventName: string; + eventUniqueId: string; + constructor(callback: GlobalCallbacks.Generic, eventName: string, eventUniqueId: string); + } +} +declare namespace OSFramework.OSUI.Event.ProviderEvents { + class ProviderEventsManager implements IProviderEventManager { + private _eventsMap; + private _pendingEventsMap; + addPendingEvent(eventName: string, callback: GlobalCallbacks.Generic, eventUniqueId: string): void; + removePendingEvent(eventUniqueId: string): void; + removeSavedEvent(eventUniqueId: string): void; + saveEvent(eventName: string, callback: GlobalCallbacks.Generic, eventUniqueId: string): void; + get events(): Map; + get pendingEvents(): Map; + get hasEvents(): boolean; + get hasPendingEvents(): boolean; + } +} +declare namespace OSFramework.OSUI.Feature { + abstract class AbstractFeature implements IFeature { + private _featureElem; + private _featureOptions; + private _featurePattern; + constructor(featurePattern: PT, featureElem: HTMLElement, options: O); + dispose(): void; + get featureElem(): HTMLElement; + get featureOptions(): O; + get featurePattern(): PT; + } +} +declare namespace OSFramework.OSUI.Feature { + interface IFeature extends Interface.IDisposable { + } +} +declare namespace OSFramework.OSUI.Feature.Balloon { + type BalloonOptions = { + alignment: GlobalEnum.FloatingAlignment; + allowedPlacements: Array; + anchorElem: HTMLElement; + position: GlobalEnum.FloatingPosition; + shape: GlobalEnum.ShapeTypes; + }; + class Balloon extends AbstractFeature implements IBalloon { + private _currentFocusedElementIndex; + private _eventBodyClick; + private _eventOnKeypress; + private _floatingInstance; + private _floatingOptions; + private _focusManagerInstance; + private _focusTrapInstance; + private _focusableBalloonElements; + private _isOpenedByApi; + private _onToggleEvent; + isOpen: boolean; + constructor(featurePattern: PT, featureElem: HTMLElement, options: BalloonOptions); + private _bodyClickCallback; + private _handleFocusBehavior; + private _manageFocusInsideBalloon; + private _onkeypressCallback; + private _removeEventListeners; + private _setA11YProperties; + private _setCallbacks; + private _setEventListeners; + private _toggleBalloon; + private _unsetCallbacks; + build(): void; + close(): void; + dispose(): void; + open(isOpenedByApi: boolean, arrowKeyPressed?: GlobalEnum.Keycodes.ArrowDown | GlobalEnum.Keycodes.ArrowUp): void; + setBalloonShape(shape?: GlobalEnum.ShapeTypes): void; + setFloatingBehaviour(isUpdate?: boolean): void; + setFloatingConfigs(): void; + updateFloatingConfigs(floatingConfigs?: Utils.FloatingPosition.FloatingPositionConfig): void; + updatePositionOption(position: GlobalEnum.FloatingPosition): void; + } +} +declare namespace OSFramework.OSUI.Feature.Balloon.Enum { + enum CssClasses { + IsOpen = "osui-balloon--is-open", + Pattern = "osui-balloon" + } + enum CssCustomProperties { + Shape = "--osui-balloon-shape" + } + enum Properties { + AnchorId = "AnchorId", + BalloonPosition = "BalloonPosition", + BalloonShape = "BalloonShape" + } +} +declare namespace OSFramework.OSUI.Feature.Balloon { + interface IBalloon extends Feature.IFeature, Interface.IOpenable { + open(isOpenedByApi?: boolean, arrowKeyPressed?: GlobalEnum.Keycodes.ArrowDown | GlobalEnum.Keycodes.ArrowUp): void; + setBalloonShape(shape?: GlobalEnum.ShapeTypes): void; + updatePositionOption(position: GlobalEnum.FloatingPosition): void; + } +} +declare namespace OSFramework.OSUI.Helper { + function AsyncInvocation(callback: GlobalCallbacks.Generic, ...args: unknown[]): void; + function ApplySetTimeOut(callback: GlobalCallbacks.Generic, time: number, ...args: unknown[]): void; +} +declare namespace OSFramework.OSUI.Helper { + abstract class BoundPosition { + private static _checkIsOutBounds; + static GetBodyBounds(): DOMRect; + static GetRecommendedPosition(element: HTMLElement, testAgainstElement?: HTMLElement, elementOffset?: number | OffsetValues): string | undefined; + static GetRecommendedPositionByBounds(elementBounds: DOMRect, testAgainstElementBounds: DOMRect): string | undefined; + static IsOutBounds(element: HTMLElement, testAgainstElement?: HTMLElement, elementOffset?: number | OffsetValues): OutOfBoundaries; + } +} +declare namespace OSFramework.OSUI.Helper { + abstract class Dates { + private static _serverFormat; + static GetTimeFromDate(_date: Date): string; + static IsBeforeThan(date1: string, date2: string): boolean; + static IsNull(date: string | Date): boolean; + static IsValid(date: string): boolean; + static NormalizeDateTime(date: string | Date, normalizeToMax?: boolean): Date; + static SetServerDateFormat(date: string): void; + static get ServerFormat(): string; + } +} +declare namespace OSFramework.OSUI.Helper { + abstract class DeviceInfo { + private static _browser; + private static _iphoneDetails; + private static _isAndroid; + private static _isIos; + private static _isIphoneWithNotch; + private static _isNativeApp; + private static _isPwa; + private static _isTouch; + private static _operatingSystem; + private static _getOperatingSystem; + private static _getUserAgent; + private static _isChrome; + private static _isEdge; + private static _isFirefox; + private static _isIE; + private static _isKindle; + private static _isMiui; + private static _isOpera; + private static _isSafari; + private static _isSamsung; + private static _isUC; + private static _isYandex; + static get HasAccessibilityEnabled(): boolean; + static get IsDesktop(): boolean; + static get IsPhone(): boolean; + static get IsIphoneWithNotch(): boolean; + static get IsTablet(): boolean; + static get IsPwa(): boolean; + static get IsNative(): boolean; + static get IsAndroid(): boolean; + static get IsIos(): boolean; + static get IsTouch(): boolean; + static get NotchPosition(): GlobalEnum.Position; + static GetBrowser(userAgent?: string): GlobalEnum.Browser; + static GetDeviceOrientation(): GlobalEnum.DeviceOrientation; + static GetDeviceType(): GlobalEnum.DeviceType; + static GetOperatingSystem(userAgent?: string): GlobalEnum.MobileOS; + static RefreshOperatingSystem(): void; + } +} +declare namespace OSFramework.OSUI.Helper { + abstract class AttributeManipulation { + static Get(element: HTMLElement, attrName: string): string | undefined; + static Has(element: HTMLElement, attrName: string): boolean; + static Id(element: HTMLElement): string | undefined; + static Remove(element: HTMLElement, attrName: string): void; + static Set(element: HTMLElement, attrName: string, attrValue: boolean | number | string): void; + } + abstract class StyleManipulation { + static AddClass(element: HTMLElement, cssClass: string): void; + static ContainsClass(element: HTMLElement, cssClass: string): boolean; + static ExtendedClass(element: HTMLElement, currentCssClasses: string, newCssClass: string): void; + static GetBorderRadiusValueFromShapeType(shapeName: string): string; + static GetColorValueFromColorType(colorName: string): string; + static GetCssClasses(element: HTMLElement): Set; + static RemoveClass(element: HTMLElement, cssClass: string): void; + static RemoveStyleAttribute(element: HTMLElement, cssProperty: string): void; + static SetStyleAttribute(element: HTMLElement, cssProperty: string, ruleValue: number | string): void; + static ToggleClass(element: HTMLElement, cssClass: string): void; + } + export abstract class Dom { + static get Attribute(): typeof AttributeManipulation; + static get Styles(): typeof StyleManipulation; + static ClassSelector(element: HTMLElement | Document, cssClass: string): HTMLElement | undefined; + static Disable(element: HTMLElement): void; + static Enable(element: HTMLElement): void; + static GenerateUniqueId(): string; + static GetElementById(id: string): HTMLElement; + static GetElementByUniqueId(uniqueId: string): HTMLElement; + static GetFocusableElements(element: HTMLElement): HTMLElement[]; + static IsInsidePopupWidget(element: HTMLElement): boolean; + static Move(element: HTMLElement, target: HTMLElement): void; + static SetInputValue(inputElem: HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement, value: string): void; + static TagSelector(element: HTMLElement, htmlTag: string): HTMLElement | undefined; + static TagSelectorAll(element: HTMLElement | Document, htmlTag: string): HTMLElement[] | undefined; + } + export {}; +} +declare namespace OSFramework.OSUI.Helper { + abstract class InvalidInputs { + private static _checkInvalidInputs; + private static _scrollToInvalidInput; + private static _searchElementId; + static FocusFirstInvalidInput(elementId: string, isSmooth: boolean, elementParentClass: string): string; + } +} +declare namespace OSFramework.OSUI.Helper { + abstract class Language { + private static _lang; + static get Lang(): string; + static get ShortLang(): string; + static Set(language: string): void; + } +} +declare namespace OSFramework.OSUI.Helper { + function LogMessage(message: string): string; +} +declare namespace OSFramework.OSUI.Helper { + abstract class A11Y { + static AriaAtomicFalse(element: HTMLElement): void; + static AriaAtomicTrue(element: HTMLElement): void; + static AriaBusyFalse(element: HTMLElement): void; + static AriaBusyTrue(element: HTMLElement): void; + static AriaControls(element: HTMLElement, targetId: string): void; + static AriaDescribedBy(element: HTMLElement, targetId: string): void; + static AriaDisabled(element: HTMLElement, isDisabled: boolean): void; + static AriaDisabledFalse(element: HTMLElement): void; + static AriaDisabledTrue(element: HTMLElement): void; + static AriaExpanded(element: HTMLElement, value: string): void; + static AriaExpandedFalse(element: HTMLElement): void; + static AriaExpandedTrue(element: HTMLElement): void; + static AriaHasPopup(element: HTMLElement, value: string): void; + static AriaHasPopupFalse(element: HTMLElement): void; + static AriaHasPopupTrue(element: HTMLElement): void; + static AriaHidden(element: HTMLElement, value: string): void; + static AriaHiddenFalse(element: HTMLElement): void; + static AriaHiddenTrue(element: HTMLElement): void; + static AriaLabel(element: HTMLElement, value: string): void; + static AriaLabelledBy(element: HTMLElement, targetId: string): void; + static AriaLiveAssertive(element: HTMLElement): void; + static AriaLiveOff(element: HTMLElement): void; + static AriaLivePolite(element: HTMLElement): void; + static AriaSelectedFalse(element: HTMLElement): void; + static AriaSelectedTrue(element: HTMLElement): void; + static AriaValueMax(element: HTMLElement, value: number): void; + static AriaValueMin(element: HTMLElement, value: number): void; + static MultiselectableFalse(element: HTMLElement): void; + static MultiselectableTrue(element: HTMLElement): void; + static RoleAlert(element: HTMLElement): void; + static RoleButton(element: HTMLElement): void; + static RoleComplementary(element: HTMLElement): void; + static RoleListbox(element: HTMLElement): void; + static RoleMenuItem(element: HTMLElement): void; + static RoleOption(element: HTMLElement): void; + static RolePresentation(element: HTMLElement): void; + static RoleProgressBar(element: HTMLElement): void; + static RoleRegion(element: HTMLElement): void; + static RoleSearch(element: HTMLElement): void; + static RoleTab(element: HTMLElement): void; + static RoleTabList(element: HTMLElement): void; + static RoleTabPanel(element: HTMLElement): void; + static RoleTooltip(element: HTMLElement): void; + static SetElementsTabIndex(state: boolean, elements: HTMLElement[]): void; + static TabIndex(element: HTMLElement, value: string): void; + static TabIndexFalse(element: HTMLElement): void; + static TabIndexTrue(element: HTMLElement): void; + } +} +declare namespace OSFramework.OSUI.Helper.MapOperation { + function FindInMap(patternName: string, patternId: string, map: Map): Interface.IPattern; + function ExportKeys(map: Map): Array; +} +declare namespace OSFramework.OSUI.Helper { + abstract class SVG { + static IsValid(svgString: string): boolean; + } +} +declare namespace OSFramework.OSUI.Helper { + function Sanitize(value: string): string; +} +declare namespace OSFramework.OSUI.Helper { + abstract class Times { + static ConvertInSeconds(time: Date): number; + static IsNull(time: string): boolean; + } +} +declare namespace OSFramework.OSUI.Helper { + abstract class URL { + static IsImage(url: string): boolean; + static IsValid(url: string): boolean; + } +} +declare namespace OSFramework.OSUI.Interface { + interface IBuilder { + build(): void; + } +} +declare namespace OSFramework.OSUI.Interface { + interface ICallback { + registerCallback(callback: GlobalCallbacks.OSGeneric, eventName?: string): void; + } +} +declare namespace OSFramework.OSUI.Interface { + interface IChild extends IPattern { + get isFirstChild(): boolean; + set isFirstChild(value: boolean); + get isLastChild(): boolean; + set isLastChild(value: boolean); + setBlur?(): void; + setFocus?(): void; + setTabindex?(): void; + unsetTabindex?(): void; + } +} +declare namespace OSFramework.OSUI.Interface { + interface IDisposable { + dispose(): void; + } +} +declare namespace OSFramework.OSUI.Interface { + interface IDragEvent extends IGestureEvent { + gestureEventInstance: Event.GestureEvent.DragEvent; + setGestureEvents(onGestureStart: Event.GestureEvent.Callbacks.GestureStart, onGestureMove: Event.GestureEvent.Callbacks.GestureMove, onGestureEnd: Event.GestureEvent.Callbacks.GestureEnd): any; + } +} +declare namespace OSFramework.OSUI.Interface { + interface IFloatable extends IOpenable { + } +} +declare namespace OSFramework.OSUI.Interface { + interface IGestureEvent { + hasGestureEvents: boolean; + removeGestureEvents(): void; + } +} +declare namespace OSFramework.OSUI.Interface { + interface IOpenable { + isOpen?: boolean; + close(): void; + open(isOpenedByApi?: boolean): void; + } +} +declare namespace OSFramework.OSUI.Interface { + interface IParent extends IPattern { + beNotifiedByChild(childItem: IChild, notifiedTo: string): void; + } +} +declare namespace OSFramework.OSUI.Interface { + interface IPattern extends IBuilder, IDisposable, ISearchById { + isBuilt: boolean; + selfElement: HTMLElement; + uniqueId: string; + widgetId: string; + changeProperty(propertyName: string, propertyValue: unknown): void; + registerCallback(eventName: string, callback: GlobalCallbacks.OSGeneric): void; + } +} +declare namespace OSFramework.OSUI.Interface { + interface IProviderPattern

extends Interface.IPattern { + provider: P; + providerInfo: ProviderInfo; + setProviderConfigs(newConfigs: ProviderConfigs): void; + updateProviderEvents(providerInfo: ProviderInfo): void; + } +} +declare namespace OSFramework.OSUI.Interface { + interface IRenderUpdate { + updateOnRender(): void; + } +} +declare namespace OSFramework.OSUI.Interface { + interface ISearchById { + equalsToID(id: string): boolean; + } +} +declare namespace OSFramework.OSUI.Interface { + interface ISwipeEvent extends IGestureEvent { + gestureEventInstance: Event.GestureEvent.SwipeEvent; + setGestureEvents(swipeDownCallback: Event.GestureEvent.Callbacks.SwipeDown, swipeLeftCallback: Event.GestureEvent.Callbacks.SwipeLeft, swipeRightCallback: Event.GestureEvent.Callbacks.SwipeRight, swipeUpCallback: Event.GestureEvent.Callbacks.SwipeUp): any; + } +} +declare namespace OSFramework.OSUI.Patterns { + abstract class AbstractPattern implements Interface.IPattern { + private _configs; + private _isBuilt; + private _platformEventInitialized; + private _selfElem; + private _uniqueId; + private _widgetId; + protected isProviderBased: boolean; + constructor(uniqueId: string, configs: C); + private _setCommonHtmlElements; + private _unsetCommonHtmlElements; + protected finishBuild(): void; + protected triggerPlatformEventCallback(platFormCallback: GlobalCallbacks.OSGeneric, ...args: unknown[]): void; + protected triggerPlatformInitializedEventCallback(): void; + protected unsetGlobalCallbacks(): void; + build(): void; + changeProperty(propertyName: string, propertyValue: unknown): void; + dispose(): void; + equalsToID(patternId: string): boolean; + registerCallback(eventName: string, callback: GlobalCallbacks.OSGeneric): void; + protected get _enableAccessibility(): boolean; + get selfElement(): HTMLElement; + get isBuilt(): boolean; + get configs(): C; + get uniqueId(): string; + get widgetId(): string; + protected abstract setA11YProperties(): void; + protected abstract setCallbacks(): void; + protected abstract setHtmlElements(): void; + protected abstract unsetCallbacks(): void; + protected abstract unsetHtmlElements(): void; + } +} +declare namespace OSFramework.OSUI.Patterns { + abstract class AbstractChild extends AbstractPattern implements Interface.IChild { + private _isFirstChild; + private _isLastChild; + private _parentId; + private _parentObject; + protected notifyParent(actionType: string): void; + protected setParentInfo(parentSelector: string, getPatternByIdAPI: Function, canBeOrphan?: boolean): void; + get isFirstChild(): boolean; + set isFirstChild(value: boolean); + get isLastChild(): boolean; + set isLastChild(value: boolean); + get parentId(): string; + get parentObject(): PT; + } +} +declare namespace OSFramework.OSUI.Patterns { + abstract class AbstractConfiguration { + ExtendedClass: string; + constructor(config: JSON); + protected validateBoolean(value: boolean | undefined, defaultValue: boolean): boolean; + protected validateDate(value: string | Date, defaultValue: string): string | Date; + protected validateInRange(value: unknown, defaultValue: unknown, ...args: unknown[]): unknown; + protected validateNumber(value: number, defaultValue: number): number; + protected validateString(value: string | undefined, defaultValue: string): string; + protected validateTime(value: string, defaultValue: string): string; + validateCanChange(_isBuilt: boolean, _key: string): boolean; + validateDefault(_key: string, value: unknown): unknown; + } +} +declare namespace OSFramework.OSUI.Patterns { + abstract class AbstractParent extends AbstractPattern implements Interface.IParent { + private _childIdsByType; + private _childItemsByType; + protected getChild(childId: string): CT; + protected getChildByIndex(index: number, childType?: string): CT; + protected getChildIndex(childId: string): number; + protected setChild(childItem: CT): void; + protected unsetChild(childId: string): void; + getChildItems(type?: string): Array; + abstract beNotifiedByChild(childItem: CT, notifiedTo: string): void; + } +} +declare namespace OSFramework.OSUI.Patterns { + abstract class AbstractProviderConfiguration extends AbstractConfiguration { + protected mergeConfigs(commonConfigs: ProviderConfigs, specificConfigs: ProviderConfigs, extendedConfigs?: ProviderConfigs): ProviderConfigs; + abstract getProviderConfig(): ProviderConfigs; + } +} +declare namespace OSFramework.OSUI.Patterns { + abstract class AbstractProviderPattern extends AbstractPattern implements Interface.IProviderPattern

{ + private _platformEventProviderConfigsAppliedCallback; + private _provider; + private _providerInfo; + protected providerEventsManagerInstance: Event.ProviderEvents.IProviderEventManager; + constructor(uniqueId: string, configs: C); + private _getEventIndexFromArray; + private _handleProviderEventsAPI; + protected redraw(): void; + protected unsetCallbacks(): void; + build(): void; + checkAddedProviderEvents(): void; + checkPendingProviderEvents(): void; + dispose(): void; + registerCallback(eventName: string, callback: GlobalCallbacks.OSGeneric): void; + setProviderConfigs(providerConfigs: unknown): void; + setProviderEvent(eventName: string, callback: GlobalCallbacks.Generic, uniqueId: string, saveEvent?: boolean): void; + unsetProviderEvent(eventId: string): void; + updateProviderEvents(providerInfo: ProviderInfo): void; + get providerInfo(): ProviderInfo; + set providerInfo(providerInfo: ProviderInfo); + set provider(p: P); + get provider(): P; + protected abstract prepareConfigs(): void; + } +} +declare namespace OSFramework.OSUI.Patterns.Accordion { + class Accordion extends AbstractParent implements IAccordion { + constructor(uniqueId: string, configs: JSON); + protected setA11YProperties(): void; + protected setCallbacks(): void; + protected setHtmlElements(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + addAccordionItem(childItem: AccordionItem.IAccordionItem): void; + beNotifiedByChild(childItem: AccordionItem.IAccordionItem, notifiedTo: Enum.ChildNotifyActionType): void; + build(): void; + changeProperty(propertyName: string, propertyValue: unknown): void; + collapseAllItems(): void; + dispose(): void; + expandAllItems(): void; + removeAccordionItem(childId: string): void; + triggerAccordionItemClose(childId: string): void; + } +} +declare namespace OSFramework.OSUI.Patterns.Accordion { + class AccordionConfig extends AbstractConfiguration { + MultipleItems: boolean; + constructor(config: JSON); + validateDefault(key: string, value: unknown): unknown; + } +} +declare namespace OSFramework.OSUI.Patterns.Accordion.Enum { + enum ChildNotifyActionType { + Add = "add", + Click = "click", + Removed = "removed" + } + enum CssClass { + Pattern = "osui-accordion" + } + enum Properties { + MultipleItems = "MultipleItems" + } +} +declare namespace OSFramework.OSUI.Patterns.Accordion { + interface IAccordion extends Interface.IParent { + addAccordionItem(accordionItem: AccordionItem.IAccordionItem): void; + collapseAllItems(): void; + expandAllItems(): void; + removeAccordionItem(uniqueId: string): void; + triggerAccordionItemClose(accordionItemId: string): void; + } +} +declare namespace OSFramework.OSUI.Patterns.AccordionItem { + class AccordionItem extends AbstractChild implements IAccordionItem { + private _accordionItemContentElem; + private _accordionItemIconCustomElem; + private _accordionItemIconElem; + private _accordionItemPlaceholder; + private _accordionItemTitleElem; + private _accordionTitleFocusableChildren; + private _allowTitleEvents; + private _collapsedHeight; + private _eventOnClick; + private _eventOnTransitionEnd; + private _eventOnkeyPress; + private _expandedHeight; + private _isOpen; + private _platformEventOnToggle; + constructor(uniqueId: string, configs: JSON); + private _accordionOnClickHandler; + private _addEvents; + private _animationAsync; + private _handleTabIndex; + private _onKeyboardPress; + private _onToggleCallback; + private _removeEvents; + private _setAccordionParent; + private _setIconPosition; + private _setIconType; + private _setIsDisabledState; + private _transitionEndHandler; + protected setA11YProperties(): void; + protected setCallbacks(): void; + protected setHtmlElements(): void; + protected setInitialCssClasses(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + get isDisabled(): boolean; + get isOpen(): boolean; + allowTitleEvents(): void; + build(): void; + changeProperty(propertyName: string, propertyValue: unknown): void; + close(): void; + dispose(): void; + open(): void; + registerCallback(eventName: string, callback: GlobalCallbacks.OSGeneric): void; + } +} +declare namespace OSFramework.OSUI.Patterns.AccordionItem { + class AccordionItemConfig extends AbstractConfiguration { + Icon: string; + IconPosition: string; + IsDisabled: boolean; + StartsExpanded: boolean; + constructor(config: JSON); + validateCanChange(isBuilt: boolean, key: string): boolean; + validateDefault(key: string, value: unknown): unknown; + } +} +declare namespace OSFramework.OSUI.Patterns.AccordionItem.Enum { + enum Properties { + IconPosition = "IconPosition", + IsDisabled = "IsDisabled", + Icon = "Icon", + StartsExpanded = "StartsExpanded" + } + enum CssClass { + PatternAnimating = "osui-accordion-item__content--is-animating", + PatternClosed = "osui-accordion-item--is-closed", + PatternCollapsed = "osui-accordion-item__content--is-collapsed", + PatternDisabled = "osui-accordion-item--is-disabled", + PatternExpanded = "osui-accordion-item__content--is-expanded", + PatternContent = "osui-accordion-item__content", + PatternIcon = "osui-accordion-item__icon", + PatternIconCaret = "osui-accordion-item__icon--caret", + PatternIconCustom = "osui-accordion-item__icon--custom", + PatternIconHidden = "osui-accordion-item__icon--hidden", + PatternIconPlusMinus = "osui-accordion-item__icon--plus-minus", + PatternIconPositionIsLeft = "osui-accordion-item__title--is-left", + PatternIconPositionIsRight = "osui-accordion-item__title--is-right", + PatternOpen = "osui-accordion-item--is-open", + PatternTitle = "osui-accordion-item__title" + } + enum Events { + OnToggle = "OnToggle" + } + enum IconType { + Caret = "Caret", + Custom = "Custom", + PlusMinus = "PlusMinus" + } +} +declare namespace OSFramework.OSUI.Patterns.AccordionItem { + interface IAccordionItem extends Interface.IChild, Interface.IOpenable { + isDisabled: boolean; + isOpen: boolean; + allowTitleEvents(): void; + } +} +declare namespace OSFramework.OSUI.Patterns.AnimatedLabel { + class AnimatedLabel extends AbstractPattern implements IAnimatedLabel { + private _eventAnimationStart; + private _eventBlur; + private _eventFocus; + private _inputElement; + private _inputPhElement; + private _isLabelFocus; + private _labelPhElement; + constructor(uniqueId: string, configs: JSON); + private _addEvents; + private _inputAnimationStartCallback; + private _inputBlurCallback; + private _inputFocusCallback; + private _inputStateToggle; + private _removeEvents; + protected setA11YProperties(): void; + protected setCallbacks(): void; + protected setHtmlElements(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + build(): void; + dispose(): void; + updateOnRender(): void; + } +} +declare namespace OSFramework.OSUI.Patterns.AnimatedLabel { + class AnimatedLabelConfig extends AbstractConfiguration { + constructor(config: JSON); + } +} +declare namespace OSFramework.OSUI.Patterns.AnimatedLabel.Enum { + enum AnimationEvent { + OnAutoFillStart = "onAutoFillStart" + } + enum CssClasses { + InputPlaceholder = "animated-label-input", + IsActive = "active", + LabelPlaceholder = "animated-label-text", + Pattern = "animated-label" + } + enum Messages { + InputNotFound = "Missing input or textarea.", + LabelNotFound = "We notice that a label is missing inside the Label Placeholder. In order to grant accessibility add it and assign the Input Widget accordingly." + } +} +declare namespace OSFramework.OSUI.Patterns.AnimatedLabel { + interface IAnimatedLabel extends Interface.IPattern, Interface.IRenderUpdate { + } +} +declare namespace OSFramework.OSUI.Patterns.BottomSheet { + class BottomSheet extends AbstractPattern implements IBottomSheet, Interface.IDragEvent { + private _animateOnDragInstance; + private _bottomSheetContentElem; + private _bottomSheetHeaderElem; + private _eventOnContentScroll; + private _eventOnKeypress; + private _focusManagerInstance; + private _focusTrapInstance; + private _gestureEventInstance; + private _hasGestureEvents; + private _isOpen; + private _parentSelf; + private _platformEventOnToggle; + springAnimationConfigs: { + addSpringAnimation: boolean; + springAnimationProperties: { + tension: number; + friction: number; + mass: number; + }; + }; + get gestureEventInstance(): Event.GestureEvent.DragEvent; + get hasGestureEvents(): boolean; + constructor(uniqueId: string, configs: JSON); + private _handleFocusBehavior; + private _handleGestureEvents; + private _handleShape; + private _onContentScrollCallback; + private _onGestureEnd; + private _onGestureMove; + private _onGestureStart; + private _onkeypressCallback; + private _toggleBottomSheet; + private _toggleHandler; + private _triggerOnToggleEvent; + protected removeEventListeners(): void; + protected setA11YProperties(): void; + protected setCallbacks(): void; + protected setEventListeners(): void; + protected setHtmlElements(): void; + protected setInitialOptions(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + build(): void; + changeProperty(propertyName: string, propertyValue: unknown): void; + close(): void; + dispose(): void; + open(): void; + registerCallback(eventName: string, callback: GlobalCallbacks.OSGeneric): void; + removeGestureEvents(): void; + setGestureEvents(onGestureStart: Event.GestureEvent.Callbacks.GestureStart, onGestureMove: Event.GestureEvent.Callbacks.GestureMove, onGestureEnd: Event.GestureEvent.Callbacks.GestureEnd): void; + } +} +declare namespace OSFramework.OSUI.Patterns.BottomSheet { + class BottomSheetConfig extends AbstractConfiguration { + Shape: GlobalEnum.ShapeTypes; + ShowHandler: boolean; + constructor(config: JSON); + validateDefault(key: string, value: unknown): unknown; + } +} +declare namespace OSFramework.OSUI.Patterns.BottomSheet.Callbacks { + type OSOnToggleEvent = { + (bottomsheetId: string, isOpen: boolean): void; + }; +} +declare namespace OSFramework.OSUI.Patterns.BottomSheet.Enum { + enum CssClass { + HasHandler = "osui-bottom-sheet--has-handler", + HasSCroll = "osui-bottom-sheet--has-scroll", + IsOpen = "osui-bottom-sheet--is-open", + IsActive = "osui-bottom-sheet--is-active", + PatternContent = "osui-bottom-sheet__content", + PatternHeader = "osui-bottom-sheet__header", + PatternOverlay = "osui-bottom-sheet-overlay", + PatternTopBar = "osui-bottom-sheet__header__top-bar" + } + enum CssCustomProperties { + Shape = "--bottom-sheet-shape" + } + enum Events { + OnToggle = "OnToggle" + } + enum Properties { + Shape = "Shape", + ShowHandler = "ShowHandler" + } +} +declare namespace OSFramework.OSUI.Patterns.BottomSheet { + interface IBottomSheet extends Interface.IPattern { + close(): void; + open(): void; + } +} +declare namespace OSFramework.OSUI.Patterns.ButtonLoading { + class ButtonLoading extends AbstractPattern implements IButtonLoading { + private _buttonElement; + private _spinnerElement; + constructor(uniqueId: string, configs: JSON); + private _setInitialButtonState; + private _setIsLoading; + private _setLoadingLabel; + protected setA11YProperties(): void; + protected setCallbacks(): void; + protected setHtmlElements(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + build(): void; + changeProperty(propertyName: string, propertyValue: unknown): void; + dispose(): void; + } +} +declare namespace OSFramework.OSUI.Patterns.ButtonLoading { + class ButtonLoadingConfig extends AbstractConfiguration { + IsLoading: boolean; + ShowLoadingAndLabel: boolean; + constructor(config: JSON); + } +} +declare namespace OSFramework.OSUI.Patterns.ButtonLoading.Enum { + enum Properties { + IsLoading = "IsLoading", + ShowLoadingAndLabel = "ShowLoadingAndLabel" + } + enum CssClass { + Button = "btn", + IsLoading = "osui-btn-loading--is-loading", + ShowSpinnerOnly = "osui-btn-loading-show-spinner", + Spinner = "osui-btn-loading__spinner-animation" + } +} +declare namespace OSFramework.OSUI.Patterns.ButtonLoading { + interface IButtonLoading extends Interface.IPattern { + } +} +declare namespace OSFramework.OSUI.Patterns.Carousel { + abstract class AbstractCarousel extends AbstractProviderPattern implements ICarousel { + constructor(uniqueId: string, configs: C); + build(): void; + abstract goTo(index: number): void; + abstract next(): void; + abstract previous(): void; + abstract setCarouselDirection(direction: string): void; + abstract toggleDrag(hasDrag: boolean): void; + abstract toggleOnRender(blockOnRender: boolean): void; + abstract updateOnRender(): void; + } +} +declare namespace OSFramework.OSUI.Patterns.Carousel { + abstract class AbstractCarouselConfig extends Patterns.AbstractProviderConfiguration { + AutoPlay: boolean; + Direction: GlobalEnum.Direction.LTR | GlobalEnum.Direction.RTL | GlobalEnum.Direction.TTB; + Height: string | number; + ItemsDesktop: number; + ItemsGap: string | number; + ItemsPhone: number; + ItemsTablet: number; + Loop: boolean; + Navigation: Enum.Navigation; + Padding: string | number; + StartingPosition: number; + constructor(config: JSON); + validateCanChange(isBuilt: boolean, key: string): boolean; + validateDefault(key: string, value: unknown): unknown; + } +} +declare namespace OSFramework.OSUI.Patterns.Carousel.Callbacks { + type OSOnSlideMovedEvent = { + (carouselId: string, index: number): void; + }; +} +declare namespace OSFramework.OSUI.Patterns.Carousel.Factory { + function NewCarousel(carouselId: string, configs: string, provider: string): Patterns.Carousel.ICarousel; +} +declare namespace OSFramework.OSUI.Patterns.Carousel.Enum { + enum CarouselEvents { + OnSlideMoved = "OnSlideMoved" + } + enum CssVariables { + CarouselWidth = "--osui-carousel-track-width" + } + enum CssClass { + CarouselWrapper = "osui-carousel", + Content = "osui-carousel__content", + HasPagination = "osui-carousel--has-pagination", + Track = "osui-carousel__track" + } + enum Direction { + None = "", + LeftToRight = "LeftToRight", + RightToLeft = "RightToLeft" + } + enum Properties { + AutoPlay = "AutoPlay", + Height = "Height", + ItemsDesktop = "ItemsDesktop", + ItemsGap = "ItemsGap", + ItemsPhone = "ItemsPhone", + ItemsTablet = "ItemsTablet", + Loop = "Loop", + Navigation = "Navigation", + Padding = "Padding", + StartingPosition = "StartingPosition" + } + enum Provider { + Splide = "Splide" + } + enum Navigation { + Arrows = "arrows", + Both = "both", + Dots = "dots", + None = "none" + } + enum Defaults { + Height = "auto", + SpaceNone = "0px" + } +} +declare namespace OSFramework.OSUI.Patterns.Carousel { + interface ICarousel extends Interface.IPattern { + goTo(index: number): void; + next(): void; + previous(): void; + registerCallback(eventName: string, callback: GlobalCallbacks.OSGeneric): void; + setCarouselDirection(direction: string): void; + setProviderConfigs(providerConfigs: ProviderConfigs): void; + setProviderEvent(eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.Generic, uniqueId: string): void; + toggleDrag(hasDrag: boolean): void; + toggleOnRender(blockOnRender: boolean): void; + unsetProviderEvent(eventId: string): void; + updateOnRender(): void; + } +} +declare namespace OSFramework.OSUI.Patterns.DatePicker { + abstract class AbstractDatePicker extends AbstractProviderPattern implements IDatePicker { + constructor(uniqueId: string, configs: C); + abstract clear(): void; + abstract close(): void; + abstract disableDays(value: string[]): void; + abstract disableWeekDays(value: number[]): void; + abstract open(): void; + abstract setLanguage(value: string): void; + abstract updateInitialDate(date1: string, date2?: string): void; + abstract updatePrompt(promptMessage: string): void; + } +} +declare namespace OSFramework.OSUI.Patterns.DatePicker { + abstract class AbstractDatePickerConfig extends Patterns.AbstractProviderConfiguration { + DateFormat: string; + FirstWeekDay: number; + MaxDate: string; + MinDate: string; + ShowTodayButton: boolean; + ShowWeekNumbers: boolean; + TimeFormat: string; + constructor(config: JSON); + validateDefault(key: string, value: unknown): unknown; + } +} +declare namespace OSFramework.OSUI.Patterns.DatePicker.Callbacks { + type OSOnChangeEvent = { + (datepickerId: string, selectedDate: string | string[]): void; + }; +} +declare namespace OSFramework.OSUI.Patterns.DatePicker.Factory { + function NewDatePicker(datePickerId: string, configs: string, mode: Enum.Mode, provider: string): Patterns.DatePicker.IDatePicker; +} +declare namespace OSFramework.OSUI.Patterns.DatePicker.Enum { + enum CssClass { + Calendar = "osui-datepicker-calendar", + Pattern = "osui-datepicker" + } + enum DatePickerEvents { + OnChange = "OnChange", + OnInitialize = "OnInitialize" + } + enum Mode { + Range = "range", + Single = "single" + } + enum Properties { + DateFormat = "DateFormat", + FirstWeekDay = "FirstWeekDay", + MaxDate = "MaxDate", + MinDate = "MinDate", + ShowTodayButton = "ShowTodayButton", + ShowWeekNumbers = "ShowWeekNumbers", + TimeFormat = "TimeFormat" + } + enum Provider { + FlatPicker = "flatpickr" + } + enum TimeFormatMode { + Disable = "disabled", + Time12hFormat = "12", + Time24hFormat = "24" + } +} +declare namespace OSFramework.OSUI.Patterns.DatePicker { + interface IDatePicker extends Interface.IPattern { + clear(): void; + close(): void; + disableDays(disableDays: string[]): void; + disableWeekDays(disableDays: number[]): void; + open(): void; + setLanguage(value: string): void; + setProviderConfigs(providerConfigs: ProviderConfigs): void; + setProviderEvent(eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.Generic, uniqueId: string): void; + unsetProviderEvent(eventId: string): void; + updateInitialDate(date1: string, date2?: string): void; + updatePrompt(promptMessage: string): void; + } +} +declare namespace OSFramework.OSUI.Patterns.Dropdown { + abstract class AbstractDropdown extends AbstractProviderPattern implements IDropdown { + constructor(uniqueId: string, configs: C); + abstract clear(): void; + abstract close(): void; + abstract disable(): void; + abstract enable(): void; + abstract getSelectedValues(): string; + abstract open(): void; + abstract validation(isValid: boolean, validationMessage: string): void; + } +} +declare namespace OSFramework.OSUI.Patterns.Dropdown { + abstract class AbstractDropdownConfig extends Patterns.AbstractProviderConfiguration { + IsDisabled: boolean; + ShowDropboxAsPopup: boolean; + constructor(config: JSON); + validateDefault(key: string, value: unknown): unknown; + } +} +declare namespace OSFramework.OSUI.Patterns.Dropdown.Callbacks { + type OSOnSelectEvent = { + (dropdownId: string, selectedOptions: string[]): void; + }; +} +declare namespace OSFramework.OSUI.Patterns.Dropdown.Factory { + function NewDropdown(dropdownId: string, mode: string, provider: string, configs: string): Patterns.Dropdown.IDropdown; +} +declare namespace OSFramework.OSUI.Patterns.Dropdown.Enum { + enum CssClass { + DropdownLarge = "dropdown--is-large", + DropdownSmall = "dropdown--is-small" + } + enum Mode { + Search = "search", + ServerSide = "server-side", + Tags = "tags" + } + enum Properties { + IsDisabled = "IsDisabled" + } + enum Provider { + OSUIComponents = "osui-components", + VirtualSelect = "virtual-select" + } +} +declare namespace OSFramework.OSUI.Patterns.Dropdown { + interface IDropdown extends Interface.IPattern { + clear(): void; + close(): void; + disable(): void; + enable(): void; + getSelectedValues(): string; + open(): void; + setProviderConfigs(providerConfigs: ProviderConfigs): void; + setProviderEvent(eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.Generic, uniqueId: string): void; + unsetProviderEvent(eventId: string): void; + validation(isValid: boolean, validationMessage: string): void; + } +} +declare namespace OSFramework.OSUI.Patterns.Dropdown.ServerSide { + class OSUIDropdownServerSide extends Patterns.AbstractParent implements IDropdownServerSide { + private _activeScreenElement; + private _balloonContainerElement; + private _balloonContentElement; + private _balloonFocusableElemsInFooter; + private _balloonFooterElement; + private _balloonOptionsAriaLabel; + private _balloonOptionsWrapperElement; + private _balloonPositionClass; + private _balloonSearchInputElement; + private _balloonSearchInputWrapperElement; + private _balloonWrapperElement; + private _closeDynamically; + private _eventOnBodyClick; + private _eventOnClick; + private _eventOnClickInputSearch; + private _eventOnCloseTransitionEnd; + private _eventOnOrientationChange; + private _eventOnScreenScroll; + private _eventOnSearchInputBlur; + private _eventOnSearchInputFocus; + private _eventOnSpanFocus; + private _eventOnTouchMove; + private _eventOnWindowResize; + private _eventOnkeyboardPress; + private _focusTrapInstance; + private _hasA11yEnabled; + private _intersectionObserver; + private _isBlocked; + private _isInsidePopup; + private _isOpen; + private _platformEventOnToggleCallback; + private _selectValuesWrapper; + private _selectValuesWrapperAriaLabel; + private _selfElementBoundingClientRect; + private _windowWidth; + constructor(uniqueId: string, configs: JSON); + private _addErrorMessage; + private _close; + private _endOfCloseAnimation; + private _getRecommendedPosition; + private _handleFocusTrap; + private _hasNoImplementation; + private _moveBallonElement; + private _onBodyClick; + private _onKeyboardPressed; + private _onOrientationChange; + private _onScreenScroll; + private _onSearchInputBlur; + private _onSearchInputClicked; + private _onSearchInputFocus; + private _onSelectValuesWrapperClicked; + private _onSpanElementFocus; + private _onTouchMove; + private _onWindowResize; + private _open; + private _optionItemHasBeenClicked; + private _optionItemKeyPressed; + private _setBalloonCoordinates; + private _setBalloonWrapperExtendedClass; + private _setCssClasses; + private _setInitialOptions; + private _setNewOptionItem; + private _setObserver; + private _setUpEvents; + private _touchMove; + private _triggerToogleCalbackEvent; + private _unsetEvents; + private _unsetNewOptionItem; + private _unsetObserver; + private _updateBalloonAccessibilityElements; + private _updateOptionItemFocuStateOnKeyPress; + private _updatePatternState; + protected setA11YProperties(): void; + protected setCallbacks(): void; + protected setHtmlElements(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + beNotifiedByChild(childItem: Patterns.DropdownServerSideItem.DropdownServerSideItem, notifiedTo: Enum.ChildNotifyActionType): void; + build(): void; + changeProperty(propertyName: string, propertyValue: unknown): void; + clear(): void; + close(): void; + disable(): void; + dispose(): void; + enable(): void; + getSelectedValues(): string; + open(): void; + registerCallback(eventName: string, callback: GlobalCallbacks.OSGeneric): void; + setBalloonOptionsAriaLabel(value?: string): void; + setProviderConfigs(): string; + setProviderEvent(): string; + setSelectAriaLabel(value?: string): void; + unsetProviderEvent(): string; + validation(isValid: boolean, validationMessage: string): void; + } +} +declare namespace OSFramework.OSUI.Patterns.Dropdown.ServerSide { + class OSUIDropdownServerSideConfig extends Patterns.AbstractConfiguration { + private _balloonMaxHeight; + private _balloonOptionsArialabel; + private _selectValuesWrapperAriaLabel; + AllowMultipleSelection: boolean; + IsDisabled: boolean; + constructor(config: JSON); + validateDefault(key: string, value: unknown): unknown; + get balloonMaxHeight(): number; + get balloonOptionsArialabel(): string; + get selectValuesWrapperAriaLabel(): string; + } +} +declare namespace OSFramework.OSUI.Patterns.Dropdown.ServerSide.Enum { + enum ChildNotifyActionType { + Add = "add", + Click = "click", + KeyPressed = "keyPressed", + Removed = "removed" + } + enum CssClass { + BalloonContainer = "osui-dropdown-serverside__balloon-container", + BalloonContent = "osui-dropdown-serverside__balloon-content", + BalloonFooter = "osui-dropdown-serverside__balloon-footer", + BalloonHasNotSearchInput = "osui-dropdown-serverside__balloon--has-not-search", + BalloonPositionBottom = "osui-dropdown-serverside__balloon--is-bottom", + BalloonPositionTop = "osui-dropdown-serverside__balloon--is-top", + BalloonSearch = "osui-dropdown-serverside__balloon-search", + BalloonWrapper = "osui-dropdown-serverside__balloon-wrapper", + ErrorMessage = "osui-dropdown-serverside-error-message", + IsDisabled = "osui-dropdown-serverside--is-disabled", + IsInsidePopup = "osui-dropdown-serverside--is-inside-popup", + IsOpened = "osui-dropdown-serverside--is-opened", + IsVisible = "osui-dropdown-serverside-visible", + NotValid = "osui-dropdown-serverside--not-valid", + Pattern = "osui-dropdown-serverside", + SearchInputIsFocused = "osui-dropdown-serverside__search-input--is-focused", + SelectText = "osui-dropdown-serverside__text", + SelectValuesWrapper = "osui-dropdown-serverside__selected-values-wrapper" + } + enum Events { + OnToggle = "OnToggle" + } + enum InlineCssVariables { + BalloonMaxHeight = "--osui-dropdown-ss-balloon-max-height", + InputHeight = "--osui-dropdown-ss-input-height", + Left = "--osui-dropdown-ss-left", + ThresholVerticalAnimate = "--osui-dropdown-ss-thresholdanimateval", + Top = "--osui-dropdown-ss-top", + Width = "--osui-dropdown-ss-width" + } + enum Properties { + AllowMultipleSelection = "AllowMultipleSelection", + IsDisabled = "IsDisabled" + } + enum PropertiesValues { + BalloonOptionsWrapperAriaLabelMultipleValue = "Select one or more options", + BalloonOptionsWrapperAriaLabelSingleValue = "Select an option", + MaxHeight = 320, + SelectValuesWrapperAriaLabelValue = "Select an option", + ThresholVerticalAnimateValue = 20 + } +} +declare namespace OSFramework.OSUI.Patterns.Dropdown.ServerSide { + interface IDropdownServerSide extends Patterns.Dropdown.IDropdown, Interface.IParent { + } +} +declare namespace OSFramework.OSUI.Patterns.DropdownServerSideItem.Callbacks { + type OSOnSelectEvent = { + (dropdownId: string, itemId: any): void; + }; +} +declare namespace OSFramework.OSUI.Patterns.DropdownServerSideItem { + class DropdownServerSideItem extends AbstractChild implements IDropdownServerSideItem { + private _eventOnClick; + private _eventOnkeyboardPress; + private _platformEventOnClickCallback; + keyboardTriggeredKey: string; + constructor(uniqueId: string, configs: JSON); + private _onKeyboardPressed; + private _onSelected; + private _removeEvents; + private _setUpEvents; + private _updateSelectedStatus; + protected setA11YProperties(): void; + protected setCallbacks(): void; + protected setHtmlElements(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + build(): void; + changeProperty(propertyName: string, propertyValue: unknown): void; + dispose(): void; + registerCallback(eventName: string, callback: GlobalCallbacks.OSGeneric): void; + setBlur(): void; + setFocus(): void; + setTabindex(): void; + toggleSelected(triggerCallback?: boolean): void; + unsetTabindex(): void; + get IsSelected(): boolean; + get ItemId(): string; + } +} +declare namespace OSFramework.OSUI.Patterns.DropdownServerSideItem { + class DropdownServerSideItemConfig extends AbstractConfiguration { + IsSelected: boolean; + ItemId: string; + constructor(config: JSON); + validateDefault(key: string, value: unknown): unknown; + } +} +declare namespace OSFramework.OSUI.Patterns.DropdownServerSideItem.Enum { + enum CssClass { + DropdownParentBalloon = "osui-dropdown-serverside__balloon-wrapper", + IsSelected = "osui-dropdown-serverside-item--is-selected" + } + enum Events { + OnSelected = "OnSelected" + } + enum Properties { + IsSelected = "IsSelected", + ItemId = "ItemId" + } +} +declare namespace OSFramework.OSUI.Patterns.DropdownServerSideItem { + interface IDropdownServerSideItem extends Interface.IChild { + keyboardTriggeredKey: string; + get IsSelected(): boolean; + get ItemId(): string; + toggleSelected(triggerCallback?: boolean): void; + } +} +declare namespace OSFramework.OSUI.Patterns.FlipContent.Enum { + enum Properties { + FlipSelf = "FlipSelf", + IsFlipped = "IsFlipped" + } + enum CssClass { + PatternBack = "osui-flip-content__container__back", + PatternContainer = "osui-flip-content__container", + PatternDataFlipped = "data-flipped", + PatternFlipSelf = "osui-flip-content--flip-self", + PatternFront = "osui-flip-content__container__front", + PatternIsFlipped = "osui-flip-content--flipped" + } + enum Events { + OnToggle = "OnToggle" + } +} +declare namespace OSFramework.OSUI.Patterns.FlipContent { + class FlipContent extends AbstractPattern implements IFlipContent { + private _eventClick; + private _eventKeydown; + private _flipWrapperElement; + private _platformEventOnToggle; + constructor(uniqueId: string, configs: JSON); + private _keydownCallback; + private _removeEvents; + private _setEventHandlers; + private _setStartsFlipped; + private _toggleClasses; + private _triggerPlatformEvent; + private _updateA11yProperties; + protected setA11YProperties(): void; + protected setCallbacks(): void; + protected setHtmlElements(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + build(): void; + changeProperty(propertyName: string, propertyValue: unknown): void; + dispose(): void; + registerCallback(eventName: string, callback: GlobalCallbacks.OSGeneric): void; + showBackContent(): void; + showFrontContent(): void; + toggleFlipContent(): void; + } +} +declare namespace OSFramework.OSUI.Patterns.FlipContent { + class FlipContentConfig extends AbstractConfiguration { + FlipSelf: boolean; + IsFlipped: boolean; + constructor(config: JSON); + validateCanChange(isBuilt: boolean, key: string): boolean; + } +} +declare namespace OSFramework.OSUI.Patterns.FlipContent { + interface IFlipContent extends Interface.IPattern { + showBackContent(): void; + showFrontContent(): void; + toggleFlipContent(): void; + } +} +declare namespace OSFramework.OSUI.Patterns.Gallery.Enum { + enum CssVariables { + PatternItemsDesktop = "--gallery-desktop-items", + PatternItemsTablet = "--gallery-tablet-items", + PatternItemsPhone = "--gallery-phone-items", + PatternItemsGap = "--gallery-gap", + PatternListItemsDesktop = "--gallery-list-desktop-items", + PatternListItemsTablet = "--gallery-list-tablet-items", + PatternListItemsPhone = "--gallery-list-phone-items" + } + enum Properties { + ItemsGap = "ItemsGap", + RowItemsDesktop = "RowItemsDesktop", + RowItemsPhone = "RowItemsPhone", + RowItemsTablet = "RowItemsTablet", + MinRowItemsAllowed = 1 + } +} +declare namespace OSFramework.OSUI.Patterns.Gallery { + class Gallery extends AbstractPattern implements IGallery { + constructor(uniqueId: string, configs: JSON); + private _setItemsGap; + private _setRowItemsDesktop; + private _setRowItemsPhone; + private _setRowItemsTablet; + protected setA11YProperties(): void; + protected setCallbacks(): void; + protected setHtmlElements(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + build(): void; + changeProperty(propertyName: string, propertyValue: unknown): void; + } +} +declare namespace OSFramework.OSUI.Patterns.Gallery { + class GalleryConfig extends AbstractConfiguration { + ItemsGap: string; + RowItemsDesktop: number; + RowItemsPhone: number; + RowItemsTablet: number; + constructor(config: JSON); + } +} +declare namespace OSFramework.OSUI.Patterns.Gallery { + interface IGallery extends Interface.IPattern { + } +} +declare namespace OSFramework.OSUI.Patterns.InlineSvg.Callbacks { + type OSInitializedEvent = { + (inlineSvgId: string): void; + }; +} +declare namespace OSFramework.OSUI.Patterns.InlineSvg.Enum { + enum CssClass { + Pattern = "osui-inline-svg" + } + enum Properties { + SVGCode = "SVGCode" + } +} +declare namespace OSFramework.OSUI.Patterns.InlineSvg { + interface IInlineSvg extends Interface.IPattern { + } +} +declare namespace OSFramework.OSUI.Patterns.InlineSvg { + class InlineSvg extends AbstractPattern implements IInlineSvg { + constructor(uniqueId: string, configs: JSON); + private _setSvgCode; + protected setA11YProperties(): void; + protected setCallbacks(): void; + protected setHtmlElements(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + build(): void; + changeProperty(propertyName: string, propertyValue: unknown): void; + dispose(): void; + } +} +declare namespace OSFramework.OSUI.Patterns.InlineSvg { + class InlineSvgConfig extends AbstractConfiguration { + SVGCode: string; + constructor(config: any); + validateDefault(key: string, value: unknown): unknown; + } +} +declare namespace OSFramework.OSUI.Patterns.MonthPicker { + abstract class AbstractMonthPicker extends AbstractProviderPattern implements IMonthPicker { + constructor(uniqueId: string, configs: C); + abstract clear(): void; + abstract close(): void; + abstract open(): void; + abstract setLanguage(value: string): void; + abstract updateInitialMonth(monthYear: MonthYear): void; + abstract updatePrompt(promptMessage: string): void; + } +} +declare namespace OSFramework.OSUI.Patterns.MonthPicker { + abstract class AbstractMonthPickerConfig extends Patterns.AbstractProviderConfiguration { + DateFormat: string; + InitialMonth: MonthYear; + MaxMonth: MonthYear; + MinMonth: MonthYear; + constructor(config: JSON); + validateDefault(key: string, value: unknown): unknown; + } +} +declare namespace OSFramework.OSUI.Patterns.MonthPicker.Callbacks { + type OSOnSelectedEvent = { + (monthPickerId: string, selectedMonth: string, monthOrder: number, selectedYear: number): void; + }; +} +declare namespace OSFramework.OSUI.Patterns.MonthPicker.Enum { + enum CssClass { + Dropdown = "osui-monthpicker__dropdown", + Pattern = "osui-monthpicker" + } + enum Events { + OnSelected = "OnSelected" + } + enum Properties { + DateFormat = "DateFormat", + InitialMonth = "InitialMonth", + MinMonth = "MinMonth", + MaxMonth = "MaxMonth" + } + enum Provider { + Flatpickr = "flatpickr" + } +} +declare namespace OSFramework.OSUI.Patterns.MonthPicker { + interface IMonthPicker extends Interface.IPattern, Interface.IOpenable { + clear(): void; + setLanguage(value: string): void; + setProviderConfigs(providerConfigs: ProviderConfigs): void; + setProviderEvent(eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.Generic, uniqueId: string): void; + unsetProviderEvent(eventId: string): void; + updateInitialMonth(monthYear: MonthYear): void; + } +} +declare namespace OSFramework.OSUI.Patterns.MonthPicker.Factory { + function NewMonthPicker(monthPickerId: string, provider: string, configs: string): OSFramework.OSUI.Patterns.MonthPicker.IMonthPicker; +} +declare namespace OSFramework.OSUI.Patterns.Notification.Callbacks { + type OSOnToggleEvent = { + (notificationId: string, isOpen: boolean): void; + }; +} +declare namespace OSFramework.OSUI.Patterns.Notification.Enum { + enum CssClass { + Pattern = "osui-notification", + PatternIsOpen = "osui-notification--is-open", + PatternPosition = "osui-notification--is-" + } + enum CssProperty { + Width = "--notification-width" + } + enum Defaults { + DefaultPosition = "top", + DefaultWidth = "370px" + } + enum Events { + OnToggle = "OnToggle" + } + enum Properties { + CloseAfterTime = "CloseAfterTime", + InteractToClose = "InteractToClose", + NeedsSwipes = "NeedsSwipes", + Position = "Position", + StartsOpen = "StartsOpen", + Width = "Width" + } +} +declare namespace OSFramework.OSUI.Patterns.Notification { + interface INotification extends Interface.IPattern { + hide(): void; + show(): void; + } +} +declare namespace OSFramework.OSUI.Patterns.Notification { + class Notification extends AbstractPattern implements INotification, Interface.ISwipeEvent { + private _eventOnClick; + private _eventOnKeypress; + private _eventType; + private _focusManagerInstance; + private _focusTrapInstance; + private _gestureEventInstance; + private _hasGestureEvents; + private _isOpen; + private _parentSelf; + private _platformEventOnToggle; + constructor(uniqueId: string, configs: JSON); + private _autoCloseNotification; + private _clickCallback; + private _handleFocusBehavior; + private _handleGestureEvents; + private _hideNotification; + private _keypressCallback; + private _removeEvents; + private _showNotification; + private _triggerOnToggleEvent; + private _updateA11yProperties; + private _updateCloseAfterTime; + private _updateInteractToClose; + private _updatePosition; + private _updateWidth; + protected setA11YProperties(): void; + protected setCallbacks(): void; + protected setHtmlElements(): void; + protected setInitialStates(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + build(): void; + changeProperty(propertyName: string, propertyValue: any): void; + dispose(): void; + hide(): void; + onSwipeBottom(): void; + onSwipeLeft(): void; + onSwipeRight(): void; + onSwipeUp(): void; + registerCallback(eventName: string, callback: GlobalCallbacks.OSGeneric): void; + removeGestureEvents(): void; + setGestureEvents(onSwipeDownCallback: Event.GestureEvent.Callbacks.SwipeDown, onSwipeLeftCallback: Event.GestureEvent.Callbacks.SwipeLeft, onSwipeRightCallback: Event.GestureEvent.Callbacks.SwipeRight, onSwipeUpCallback: Event.GestureEvent.Callbacks.SwipeUp): void; + show(): void; + get gestureEventInstance(): Event.GestureEvent.SwipeEvent; + get hasGestureEvents(): boolean; + } +} +declare namespace OSFramework.OSUI.Patterns.Notification { + class NotificationConfig extends AbstractConfiguration { + CloseAfterTime: number; + InteractToClose: boolean; + NeedsSwipes: boolean; + Position: string; + StartsOpen: boolean; + Width: string; + validateCanChange(isBuilt: boolean, key: string): boolean; + validateDefault(key: string, value: unknown): unknown; + } +} +declare namespace OSFramework.OSUI.Patterns.OverflowMenu.Callbacks { + type OSOnToggleEvent = { + (overflowMenuId: string, isOpen: boolean): void; + }; +} +declare namespace OSFramework.OSUI.Patterns.OverflowMenu.Enum { + enum AriaLabel { + Trigger = "Trigger the balloon" + } + enum CssClass { + Open = "osui-overflow-menu--is-open", + Trigger = "osui-overflow-menu__trigger", + Balloon = "osui-overflow-menu__balloon" + } + enum CssCustomProperties { + Shape = "--osui-overflow-menu-shape" + } + enum Events { + OnMenuToggle = "OnToggle" + } + enum Properties { + Position = "Position", + Shape = "Shape" + } +} +declare namespace OSFramework.OSUI.Patterns.OverflowMenu { + interface IOverflowMenu extends Interface.IPattern, Interface.IOpenable { + disable(): void; + enable(): void; + open(isOpenedByApi?: boolean, arrowKeyPressed?: GlobalEnum.Keycodes.ArrowDown | GlobalEnum.Keycodes.ArrowUp): void; + } +} +declare namespace OSFramework.OSUI.Patterns.OverflowMenu { + class OverflowMenu extends AbstractPattern implements IOverflowMenu { + private _ariaLabelTrigger; + private _balloonElem; + private _balloonFeature; + private _eventBalloonOnToggle; + private _eventOnClick; + private _eventOnKeydown; + private _isDisabled; + private _isOpenedByApi; + private _platformEventOnToggle; + private _triggerElem; + balloonOptions: Feature.Balloon.BalloonOptions; + isOpen: boolean; + constructor(uniqueId: string, configs: JSON); + private _balloonOnToggleCallback; + private _onClickCallback; + private _onKeydownCallback; + private _setBalloonFeature; + private _setOverflowMenuShape; + private _togglePattern; + private _triggerOnToggleEvent; + protected removeEventListeners(): void; + protected setA11YProperties(): void; + protected setCallbacks(): void; + protected setEventListeners(): void; + protected setHtmlElements(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + build(): void; + changeProperty(propertyName: string, propertyValue: unknown): void; + close(): void; + disable(): void; + dispose(): void; + enable(): void; + open(isOpenedByApi: boolean, keyPressed?: GlobalEnum.Keycodes.ArrowDown | GlobalEnum.Keycodes.ArrowUp): void; + registerCallback(eventName: string, callback: GlobalCallbacks.OSGeneric): void; + setBalloonOptions(balloonOptions?: Feature.Balloon.BalloonOptions): void; + setTriggerAriaLabel(ariaLabelText: string): void; + } +} +declare namespace OSFramework.OSUI.Patterns.OverflowMenu { + class OverflowMenuConfig extends AbstractConfiguration { + Position: GlobalEnum.FloatingPosition; + Shape: GlobalEnum.ShapeTypes; + constructor(config: JSON); + validateDefault(key: string, value: unknown): unknown; + } +} +declare namespace OSFramework.OSUI.Patterns.Progress { + abstract class AbstractProgress extends AbstractPattern implements IProgress { + private _eventAnimateEntranceEnd; + protected contentElem: HTMLElement; + protected gradientLength: number; + protected progressElem: HTMLElement; + protected progressType: ProgressEnum.ProgressTypes; + constructor(uniqueId: string, configs: C); + private _animateEntranceEnd; + private _setAccessibilityProps; + protected animateInitial(): void; + protected animateOnValueChange(): void; + protected setCallbacks(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + protected updatedProgressValue(): void; + build(): void; + progressApplyGradient(gradientType: string, colors: GradientColor): void; + resetProgressValue(): void; + setProgressValue(value: number): void; + protected abstract addInitialAnimation(): void; + protected abstract setElementProgressValue(value: number): void; + } +} +declare namespace OSFramework.OSUI.Patterns.Progress { + abstract class ProgressConfiguration extends AbstractConfiguration { + AnimateInitialProgress: boolean; + InitialProgress: number; + Progress: number; + ProgressCircleSize: string; + ProgressColor: string; + Shape: string; + Thickness: number; + TrailColor: string; + constructor(config: any); + } +} +declare namespace OSFramework.OSUI.Patterns.Progress { + interface IProgress extends Interface.IPattern { + progressApplyGradient(gradientType: string, colors: GradientColor): void; + resetProgressValue(): void; + setProgressValue(value: number): void; + } +} +declare namespace OSFramework.OSUI.Patterns.Progress.ProgressEnum { + enum AriaLabel { + Progress = "progress" + } + enum CssClass { + AddInitialAnimation = "animate-entrance", + AnimateProgressChange = "animate-progress-change", + Container = "osui-progress-bar__container", + ProgressBarContent = "osui-progress-bar__content", + ProgressCircleContent = "osui-progress-circle__content" + } + enum InlineStyleProp { + ProgressColor = "--progress-color", + ProgressValue = "--progress-value", + ProgressGradient = "--progress-gradient", + Shape = "--shape", + Thickness = "--thickness", + TrailColor = "--trail-color" + } + enum Gradient { + LinearHorizontal = "LinearHorizontal", + LinearVertical = "LinearVertical", + LinearDiagonally = "LinearDiagonally", + Radial = "Radial" + } + enum Properties { + ExtendedClass = "ExtendedClass", + MaxProgressValue = 100, + MinProgressValue = 0, + Progress = "Progress", + ProgressColor = "ProgressColor", + ProgressCircleSize = "ProgressCircleSize", + Shape = "Shape", + Thickness = "Thickness", + TrailColor = "TrailColor" + } + enum ProgressTypes { + Bar = "Bar", + Circle = "Circle" + } + enum ShapeTypes { + Round = "round", + Rounded = "rounded", + Soft = "soft", + Sharp = "sharp" + } +} +declare namespace OSFramework.OSUI.Patterns.Progress.Factory { + function NewProgress(progressId: string, type: string, configs: string): Patterns.Progress.IProgress; +} +declare namespace OSFramework.OSUI.Patterns.Progress.Bar { + class Bar extends Progress.AbstractProgress { + constructor(uniqueId: string, configs: any); + private _setCssVariables; + private _updateProgressColor; + private _updateShape; + private _updateThickness; + private _updateTrailColor; + protected addInitialAnimation(): void; + protected setA11YProperties(): void; + protected setCallbacks(): void; + protected setElementProgressValue(value: number): void; + protected setHtmlElements(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + build(): void; + changeProperty(propertyName: string, propertyValue: unknown): void; + dispose(): void; + progressApplyGradient(gradientType: string, colors: GradientColor): void; + } +} +declare namespace OSFramework.OSUI.Patterns.Progress.Bar { + class ProgressBarConfig extends Progress.ProgressConfiguration { + constructor(config: any); + } +} +declare namespace OSFramework.OSUI.Patterns.Progress.Circle.Enum { + enum CssClass { + Progress = "osui-progress-circle__container__progress-path", + SVG = "svg-wrapper", + Trail = "osui-progress-circle__container__trail-path" + } + enum InlineStyleProp { + CircleRadius = "--radius", + CircleSize = "--circle-size", + GradientURL = "--progress-circle-gradient-url", + ProgressCircleSize = "--progress-circle-size", + StrokeDasharray = "--stroke-dasharray", + StrokeDashoffset = "--stroke-dashoffset" + } + enum DefaultValues { + GradientId = "progressGradient-", + RadialFr = "15%", + RadialRadius = "95%", + Size = "auto" + } + enum GradientName { + Linear = "linearGradient", + Radial = "radialGradient" + } +} +declare namespace OSFramework.OSUI.Patterns.Progress.Circle { + class Circle extends Progress.AbstractProgress { + private _blockParent; + private _circleCircumference; + private _circleSize; + private _gradientElem; + private _needsResizeObserver; + private _resizeObserver; + private _strokeDasharray; + private _strokeDashoffset; + linearGradientCoords: { + x1: number; + x2: number; + y1: number; + y2: number; + }; + radialGradientCoords: { + fr: Enum.DefaultValues; + r: Enum.DefaultValues; + }; + constructor(uniqueId: string, configs: any); + private _addResizeOberser; + private _checkResizeObserver; + private _progressToOffset; + private _removeResizeOberver; + private _setCssVariables; + private _setGradientCoords; + private _updateCircleProps; + private _updateProgressValue; + protected addInitialAnimation(): void; + protected setA11YProperties(): void; + protected setCallbacks(): void; + protected setElementProgressValue(value: number): void; + protected setHtmlElements(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + protected updateProgressColor(): void; + protected updateShape(): void; + protected updateThickness(): void; + protected updateTrailColor(): void; + build(): void; + changeProperty(propertyName: string, propertyValue: unknown): void; + createSVGGradient(gradientId: string, gradientName: string, gradientCoords: unknown, gradientLenght: number, colors: GradientColor): void; + dispose(): void; + progressApplyGradient(gradientType: string, colors: GradientColor): void; + } +} +declare namespace OSFramework.OSUI.Patterns.Progress.Circle { + class ProgressCircleConfig extends Progress.ProgressConfiguration { + constructor(config: any); + } +} +declare namespace OSFramework.OSUI.Patterns.RangeSlider { + abstract class AbstractRangeSlider extends AbstractProviderPattern implements IRangeSlider { + constructor(uniqueId: string, configs: C); + abstract disable(): void; + abstract enable(): void; + abstract setRangeIntervalChangeOnDragEnd(): void; + } +} +declare namespace OSFramework.OSUI.Patterns.RangeSlider { + abstract class AbstractRangeSliderConfig extends Patterns.AbstractProviderConfiguration { + InitialValueFrom: number; + InitialValueTo: number; + IsDisabled: boolean; + IsInterval: boolean; + MaxValue: number; + MinValue: number; + Orientation: Orientation; + ShowFloatingLabel: boolean; + ShowTickMarks: boolean; + Size: string; + StartingValueFrom: number; + StartingValueTo: number; + Step: number; + TickMarksInterval: number; + constructor(config: JSON); + validateDefault(key: string, value: unknown): unknown; + } +} +declare namespace OSFramework.OSUI.Patterns.RangeSlider.Callbacks { + type OSOnValueChangeEvent = { + (rangeSliderId: string, startValue: number, endValue: number): void; + }; +} +declare namespace OSFramework.OSUI.Patterns.RangeSlider.Enum { + enum CssClass { + ClassModifier = "osui-range-slider--is-", + IsInterval = "osui-range-slider--is-interval", + HasTicks = "osui-range-slider--has-ticks", + RangeSlider = "osui-range-slider", + RangeSliderProviderElem = "osui-range-slider__provider" + } + enum CssProperties { + Size = "--range-slider-size" + } + enum DefaultValues { + PercentualSize = "100%", + PixelSize = "100px" + } + enum Mode { + Single = "single", + Interval = "interval" + } + enum Properties { + InitialValueTo = "InitialValueTo", + InitialValueFrom = "InitialValueFrom", + IsDisabled = "IsDisabled", + MaxValue = "MaxValue", + MinValue = "MinValue", + Orientation = "Orientation", + ShowTickMarks = "ShowTickMarks", + ShowFloatingLabel = "ShowFloatingLabel", + Size = "Size", + StartingValueTo = "StartingValueTo", + StartingValueFrom = "StartingValueFrom", + Step = "Step", + TickMarksInterval = "TickMarksInterval" + } + enum Provider { + NoUiSlider = "noUiSlider" + } + enum RangeSliderEvents { + OnInitialize = "OnInitialize", + OnValueChange = "OnValueChange" + } + enum RangeSliderTypes { + Slider = "slider", + Interval = "interval" + } +} +declare namespace OSFramework.OSUI.Patterns.RangeSlider { + interface IRangeSlider extends Interface.IPattern { + disable(uniqueId: string): void; + enable(uniqueId: string): void; + setProviderConfigs(providerConfigs: ProviderConfigs): void; + setProviderEvent(eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.Generic, uniqueId: string): void; + unsetProviderEvent(eventId: string): void; + } +} +declare namespace OSFramework.OSUI.Patterns.RangeSlider.Factory { + function NewRangeSlider(rangeSliderId: string, configs: string, mode: Enum.Mode, provider: string): Patterns.RangeSlider.IRangeSlider; +} +declare namespace OSFramework.OSUI.Patterns.Rating.Enum { + enum CssClass { + IconStates = "icon-states", + IsEdit = "is-edit", + IsHalf = "is-half", + RatingInput = "rating-input", + RatingItem = "rating-item", + Size = "rating-", + WCAGHideText = "wcag-hide-text" + } + enum Events { + OnSelected = "OnSelected" + } + enum Properties { + IsEdit = "IsEdit", + MaxRatingScale = 100, + MinRatingScale = 0, + RatingScale = "RatingScale", + RatingValue = "RatingValue", + Size = "Size" + } +} +declare namespace OSFramework.OSUI.Patterns.Rating { + interface IRating extends Interface.IPattern { + } +} +declare namespace OSFramework.OSUI.Patterns.Rating { + class Rating extends AbstractPattern implements IRating { + private _clonedPlaceholders; + private _decimalValue; + private _disabled; + private _eventOnRatingClick; + private _isHalfValue; + private _platformEventOnSelect; + private _ratingFieldsetElem; + private _ratingHasEventAdded; + private _ratingIconStatesElem; + private _ratingInputName; + constructor(uniqueId: string, configs: JSON); + private _createItems; + private _getDecimalValue; + private _getIsHalfValue; + private _getValue; + private _handlePlaceholders; + private _manageRatingEvent; + private _ratingOnClick; + private _removeEvents; + private _renderItem; + private _setFieldsetDisabledStatus; + private _setInitialCssClasses; + private _setInitialPropertiesValues; + private _setIsDisabled; + private _setIsEdit; + private _setScale; + private _setSize; + private _setValue; + private _triggerOnSelectEvent; + protected setA11YProperties(): void; + protected setCallbacks(): void; + protected setHtmlElements(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + build(): void; + changeProperty(propertyName: string, propertyValue: unknown): void; + dispose(): void; + registerCallback(eventName: string, callback: GlobalCallbacks.OSGeneric): void; + } +} +declare namespace OSFramework.OSUI.Patterns.Rating { + class RatingConfig extends AbstractConfiguration { + IsEdit: boolean; + RatingScale: number; + RatingValue: number; + Size: string; + constructor(config: JSON); + } +} +declare namespace OSFramework.OSUI.Patterns.Search { + interface ISearch extends Interface.IPattern { + } +} +declare namespace OSFramework.OSUI.Patterns.Search { + class Search extends AbstractPattern implements ISearch { + constructor(uniqueId: string, configs: JSON); + protected setA11YProperties(): void; + protected setCallbacks(): void; + protected setHtmlElements(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + build(): void; + dispose(): void; + } +} +declare namespace OSFramework.OSUI.Patterns.Search { + class SearchConfig extends AbstractConfiguration { + constructor(config: JSON); + } +} +declare namespace OSFramework.OSUI.Patterns.SectionIndex.Enum { + enum ChildNotifyActionType { + Active = "active", + Add = "add", + Click = "click", + KeyPressed = "keyPressed", + Inactive = "unactive", + Removed = "removed" + } + enum CssClass { + IsActiveItem = "osui-section-index-item--is-active", + IsSticky = "osui-section-index--is-sticky", + Pattern = "osui-section-index" + } + enum CssVariable { + TopPosition = "--top-position" + } + enum Properties { + IsFixed = "IsFixed", + SmoothScrolling = "SmoothScrolling" + } +} +declare namespace OSFramework.OSUI.Patterns.SectionIndex { + interface ISectionIndex extends Interface.IParent { + contentPaddingTop: string | number; + } +} +declare namespace OSFramework.OSUI.Patterns.SectionIndex { + class SectionIndex extends AbstractParent implements ISectionIndex { + private _activeSectionIndexItem; + private _contentPaddingTop; + private _mainScrollContainerElement; + private _navigateOnClick; + private _scrollTimeout; + constructor(uniqueId: string, configs: JSON); + private _addSectionIndexItem; + private _childItemHasBeenClicked; + private _getContentPaddingTop; + private _removeSectionIndexItem; + private _setActiveChildOnClick; + private _setActiveChildOnScroll; + private _toggleIsFixed; + protected setA11YProperties(): void; + protected setCallbacks(): void; + protected setHtmlElements(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + beNotifiedByChild(childItem: Patterns.SectionIndexItem.SectionIndexItem, notifiedTo: Enum.ChildNotifyActionType): void; + build(): void; + changeProperty(propertyName: string, propertyValue: unknown): void; + dispose(): void; + get contentPaddingTop(): string | number; + } +} +declare namespace OSFramework.OSUI.Patterns.SectionIndex { + class SectionIndexConfig extends AbstractConfiguration { + IsFixed: boolean; + SmoothScrolling: boolean; + validateDefault(key: string, value: unknown): unknown; + } +} +declare namespace OSFramework.OSUI.Patterns.SectionIndexItem.Enum { + enum Properties { + ScrollToWidgetId = "ScrollToWidgetId" + } + enum DataTypes { + dataItem = "data-item" + } +} +declare namespace OSFramework.OSUI.Patterns.SectionIndexItem { + interface ISectionIndexItem extends Interface.IChild { + IsSelected: boolean; + TargetElement: HTMLElement; + TargetElementOffset: OffsetValues; + setIsActive(): void; + unsetIsActive(): void; + } +} +declare namespace OSFramework.OSUI.Patterns.SectionIndexItem { + class SectionIndexItem extends AbstractChild implements ISectionIndexItem { + private _eventOnClick; + private _eventOnScreenScroll; + private _eventOnkeyBoardPress; + private _headerHeight; + private _headerIsFixed; + private _isActive; + private _mainScrollContainerElement; + private _targetElement; + private _targetElementOffset; + constructor(uniqueId: string, configs: JSON); + private _onKeyboardPressed; + private _onScreenScroll; + private _onSelected; + private _removeEvents; + private _setHeaderSize; + private _setLinkAttribute; + private _setTargetElement; + private _setTargetOffsetInfo; + private _setUpEvents; + protected setA11YProperties(): void; + protected setCallbacks(): void; + protected setHtmlElements(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + build(): void; + changeProperty(propertyName: string, propertyValue: unknown): void; + dispose(): void; + setIsActive(): void; + unsetIsActive(): void; + get IsSelected(): boolean; + get TargetElement(): HTMLElement; + get TargetElementOffset(): OffsetValues; + } +} +declare namespace OSFramework.OSUI.Patterns.SectionIndexItem { + class SectionIndexItemConfig extends AbstractConfiguration { + ScrollToWidgetId: string; + validateCanChange(isBuilt: boolean, key: string): boolean; + } +} +declare namespace OSFramework.OSUI.Patterns.Sidebar.Callbacks { + type OSOnToggleEvent = { + (sidebarId: string, isOpen: boolean): void; + }; +} +declare namespace OSFramework.OSUI.Patterns.Sidebar.Enum { + enum Properties { + StartsOpen = "StartsOpen", + Direction = "Direction", + Width = "Width", + HasOverlay = "HasOverlay" + } + enum Defaults { + Width = "500px" + } + enum CssClass { + Aside = "osui-sidebar", + Content = "osui-sidebar__content", + ClassModifier = "osui-sidebar--is-", + HasOverlay = "osui-sidebar--has-overlay", + Header = "osui-sidebar__header", + IsOpen = "osui-sidebar--is-open", + Overlay = "osui-sidebar__overlay" + } + enum CssProperty { + Width = "--sidebar-width" + } + enum Events { + OnToggle = "OnToggle" + } +} +declare namespace OSFramework.OSUI.Patterns.Sidebar { + interface ISidebar extends Interface.IPattern, Interface.IOpenable { + clickOutsideToClose(closeOnOutSIdeClick: boolean): void; + toggleGestures(enableSwipe: boolean): void; + } +} +declare namespace OSFramework.OSUI.Patterns.Sidebar { + class Sidebar extends AbstractPattern implements ISidebar, Interface.IDragEvent { + private _animateOnDragInstance; + private _clickOutsideToClose; + private _clickedOutsideElement; + private _currentDirectionCssClass; + private _eventOverlayClick; + private _eventOverlayMouseDown; + private _eventSidebarKeypress; + private _focusManagerInstance; + private _focusTrapInstance; + private _gestureEventInstance; + private _hasGestureEvents; + private _isOpen; + private _parentSelf; + private _platformEventOnToggle; + constructor(uniqueId: string, configs: JSON); + private _closeSidebar; + private _handleFocusBehavior; + private _handleGestureEvents; + private _onGestureEnd; + private _onGestureMove; + private _onGestureStart; + private _openSidebar; + private _overlayClickCallback; + private _overlayMouseDownCallback; + private _removeEvents; + private _setDirection; + private _setHasOverlay; + private _setInitialCssClasses; + private _setWidth; + private _sidebarKeypressCallback; + private _toggle; + private _toggleGesturesSidebar; + private _triggerOnToggleEvent; + protected setA11YProperties(): void; + protected setCallbacks(): void; + protected setHtmlElements(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + build(): void; + changeProperty(propertyName: string, propertyValue: unknown): void; + clickOutsideToClose(closeOnOutSideClick: boolean): void; + close(): void; + dispose(): void; + open(): void; + registerCallback(eventName: string, callback: GlobalCallbacks.OSGeneric): void; + removeGestureEvents(): void; + setGestureEvents(onGestureStartCallback: Event.GestureEvent.Callbacks.GestureStart, onGestureMoveCallback: Event.GestureEvent.Callbacks.GestureMove, onGestureEndCallback: Event.GestureEvent.Callbacks.GestureEnd): void; + toggleGestures(enableSwipe: boolean): void; + get gestureEventInstance(): Event.GestureEvent.DragEvent; + get hasGestureEvents(): boolean; + } +} +declare namespace OSFramework.OSUI.Patterns.Sidebar { + class SidebarConfig extends AbstractConfiguration { + Direction: GlobalEnum.Direction; + HasOverlay: boolean; + StartsOpen: boolean; + Width: string; + constructor(config: JSON); + validateCanChange(isBuilt: boolean, key: string): boolean; + validateDefault(key: string, value: unknown): unknown; + } +} +declare namespace OSFramework.OSUI.Patterns.Submenu.Enum { + enum CssClass { + Pattern = "osui-submenu", + PatternActive = "active", + PatternHeader = "osui-submenu__header", + PatternIsDropdown = "osui-submenu--is-dropdown", + PatternIsHidden = "osui-submenu--is-hidden", + PatternIsHover = "osui-submenu--is-hover", + PatternIsOpen = "osui-submenu--is-open", + PatternIcon = "osui-submenu__header__icon", + PatternItem = "osui-submenu__header__item", + PatternLinks = "osui-submenu__items" + } + enum Events { + OnToggle = "OnToggle" + } + enum Properties { + OpenOnHover = "OpenOnHover" + } +} +declare namespace OSFramework.OSUI.Patterns.Submenu { + interface ISubmenu extends Interface.IPattern, Interface.IOpenable, Interface.IRenderUpdate { + clickOutsideToClose(clickOutsideToClose: boolean): void; + setOpenOnHover(): void; + } +} +declare namespace OSFramework.OSUI.Patterns.Submenu { + class Submenu extends AbstractPattern implements ISubmenu { + private _eventBalloonKeypress; + private _eventClick; + private _eventKeypress; + private _eventOnMouseEnter; + private _eventOnMouseLeave; + private _focusManagerInstance; + private _focusTrapInstance; + private _globalEventBody; + private _hasActiveLinks; + private _hasElements; + private _isActive; + private _isOpen; + private _platformEventOnToggleCallback; + private _submenuActiveLinksElement; + private _submenuAllLinksElement; + private _submenuHeaderElement; + private _submenuLinksElement; + hasClickOutsideToClose: boolean; + constructor(uniqueId: string, configs: JSON); + private _bodyClickCallback; + private _checkForActiveLinks; + private _clickCallback; + private _handleFocusBehavior; + private _keypressBalloonCallback; + private _keypressCallback; + private _onMouseEnterCallback; + private _onMouseLeaveCallback; + private _removeActive; + private _removeEvents; + private _setActive; + private _show; + private _toggleSubmenu; + private _updateA11yProperties; + protected setA11YProperties(): void; + protected setCallbacks(): void; + protected setHtmlElements(): void; + protected setInitialStates(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + build(): void; + clickOutsideToClose(clickOutsideToClose: boolean): void; + close(): void; + dispose(): void; + open(): void; + registerCallback(eventName: string, callback: GlobalCallbacks.OSGeneric): void; + setOpenOnHover(): void; + updateOnRender(): void; + } +} +declare namespace OSFramework.OSUI.Patterns.Submenu { + class SubmenuConfig extends AbstractConfiguration { + OpenOnHover: boolean; + validateDefault(key: string, value: unknown): unknown; + } +} +declare namespace OSFramework.OSUI.Patterns.SwipeEvents.Enum { + enum Events { + SwipeUp = "SwipeUp", + SwipeDown = "SwipeDown", + SwipeRight = "SwipeRight", + SwipeLeft = "SwipeLeft" + } + enum Properties { + Threshold = 10, + Velocity = 0.3 + } +} +declare namespace OSFramework.OSUI.Patterns.SwipeEvents { + interface ISwipeEvents extends Interface.IPattern { + EventGestureEnd: GlobalCallbacks.Generic; + EventGestureMove: GlobalCallbacks.Generic; + } +} +declare namespace OSFramework.OSUI.Patterns.SwipeEvents { + class SwipeEvents extends AbstractPattern implements ISwipeEvents { + private _gestureMoveEvent; + private _gestureStartEvent; + private _swipableElement; + private _swipeDownCallback; + private _swipeLeftCallback; + private _swipeRightCallback; + private _swipeUpCallback; + private _threshold; + private _velocity; + constructor(uniqueId: string, configs: JSON); + private _removeEventListeners; + private _setEventListeners; + private _triggerSwipeDown; + private _triggerSwipeLeft; + private _triggerSwipeRight; + private _triggerSwipeUp; + protected setA11YProperties(): void; + protected setCallbacks(): void; + protected setHtmlElements(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + EventGestureEnd(offsetX: number, offsetY: number, timeTaken: number): void; + EventGestureMove(event: TouchEvent): void; + build(): void; + dispose(): void; + registerCallback(eventName: string, callback: GlobalCallbacks.OSGeneric): void; + } +} +declare namespace OSFramework.OSUI.Patterns.SwipeEvents { + class SwipeEventsConfig extends AbstractConfiguration { + WidgetId: string; + constructor(config: JSON); + } +} +declare namespace OSFramework.OSUI.Patterns.Tabs.Callbacks { + type OSOnChangeEvent = { + (tabsId: string, ActiveTab: number): void; + }; +} +declare namespace OSFramework.OSUI.Patterns.Tabs.Enum { + enum ChildNotifyActionType { + AddContentItem = "add-content-item", + AddHeaderItem = "add-header-item", + Click = "click", + RemovedContentItem = "removed-content-item", + RemovedHeaderItem = "removed-header-item", + DisabledHeaderItem = "disabled-header-item", + EnabledHeaderItem = "enabled-header-item", + UpdateIndicator = "update-indicator" + } + enum CssClasses { + ActiveTab = "osui-tabs--is-active", + IsVertical = "osui-tabs--is-vertical", + IsHorizontal = "osui-tabs--is-horizontal", + IsJustified = "osui-tabs--is-justified", + HasContentAutoHeight = "osui-tabs--has-auto-height", + HasDragGestures = "osui-tabs--has-drag", + Modifier = "osui-tabs--is-", + TabsWrapper = "osui-tabs", + TabsHeader = "osui-tabs__header", + TabsContent = "osui-tabs__content", + TabsHeaderItem = "osui-tabs__header-item", + TabsContentItem = "osui-tabs__content-item", + TabsIndicatorElem = "osui-tabs__header__indicator" + } + enum Attributes { + DataTab = "data-tab", + DataDirection = "data-direction" + } + enum CssProperty { + TabsContentItemOverflow = "--tabs-content-item-overflow", + TabsHeaderItems = "--tabs-header-items", + TabsHeight = "--tabs-height", + TabsIndicatorSize = "--tabs-indicator-size", + TabsIndicatorTransform = "--tabs-indicator-transform" + } + enum Properties { + ContentAutoHeight = "ContentAutoHeight", + Height = "Height", + JustifyHeaders = "JustifyHeaders", + StartingTab = "StartingTab", + TabsOrientation = "TabsOrientation", + TabsVerticalPosition = "TabsVerticalPosition" + } + enum ObserverOptions { + RootMargin = "1px" + } + enum ElementsBlockingOnChange { + Dropdown = ".pop-comp-active" + } + enum ChildTypes { + TabsContentItem = "TabsContentItem", + TabsHeaderItem = "TabsHeaderItem" + } + enum Events { + OnChange = "OnChange" + } +} +declare namespace OSFramework.OSUI.Patterns.Tabs { + interface ITabs extends Interface.IParent { + changeTab(tabIndex: number, tabsHeaderItem: TabsHeaderItem.ITabsHeaderItem, blockObserver?: boolean, triggerEvent?: boolean, triggeredByObserver?: boolean): void; + toggleDragGestures(addDragGestures: boolean): void; + } +} +declare namespace OSFramework.OSUI.Patterns.Tabs { + class Tabs extends AbstractParent implements ITabs { + private _activeTabContentElement; + private _activeTabHeaderElement; + private _currentOrientation; + private _currentVerticalPositon; + private _dragObserver; + private _eventOnHeaderKeypress; + private _eventOnResize; + private _hasDragGestures; + private _hasSingleContent; + private _headerItemsLength; + private _platformEventTabsOnChange; + private _requestAnimationFrameOnIndicatorResize; + private _tabsContentElement; + private _tabsHeaderElement; + private _tabsHeadersEnabled; + private _tabsIndicatorElement; + constructor(uniqueId: string, configs: JSON); + private _addContentItem; + private _addEvents; + private _addHeaderItem; + private _changeActiveContentItem; + private _changeActiveHeaderItem; + private _getTargetIndex; + private _handleKeypressEvent; + private _handleOnResizeEvent; + private _handleTabIndicator; + private _prepareHeaderAndContentItems; + private _removeContentItem; + private _removeEvents; + private _removeHeaderItem; + private _scrollToTargetContent; + private _setContentAutoHeight; + private _setDragObserver; + private _setHeaderItemsCustomProperty; + private _setHeight; + private _setInitialOptions; + private _setIsJustified; + private _setOrientation; + private _setPosition; + private _setTabHeaderItemDisabledStatus; + private _tabHeaderItemHasBeenClicked; + private _triggerOnChangeEvent; + private _unsetDragObserver; + private _updateItemsConnection; + private _updateListOfEnabledTabsHeader; + protected setA11YProperties(): void; + protected setCallbacks(): void; + protected setHtmlElements(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + beNotifiedByChild(childItem: Patterns.TabsHeaderItem.TabsHeaderItem | Patterns.TabsContentItem.TabsContentItem, notifiedTo: Enum.ChildNotifyActionType): void; + build(): void; + changeProperty(propertyName: string, propertyValue: unknown): void; + changeTab(tabIndex?: number, tabsHeaderItem?: Patterns.TabsHeaderItem.ITabsHeaderItem, triggerEvent?: boolean, triggeredByObserver?: boolean): void; + dispose(): void; + registerCallback(eventName: string, callback: GlobalCallbacks.OSGeneric): void; + toggleDragGestures(addDragGestures: boolean): void; + } +} +declare namespace OSFramework.OSUI.Patterns.Tabs { + class TabsConfig extends AbstractConfiguration { + ContentAutoHeight: boolean; + Height: string; + JustifyHeaders: boolean; + StartingTab: number; + TabsOrientation: GlobalEnum.Orientation; + TabsVerticalPosition: GlobalEnum.Direction; + validateCanChange(isBuilt: boolean, key: string): boolean; + validateDefault(key: string, value: unknown): unknown; + } +} +declare namespace OSFramework.OSUI.Patterns.TabsContentItem { + interface ITabsContentItem extends Interface.IChild { + IsActive: boolean; + getDataTab(): number; + getOffsetLeft(): number; + setAriaLabelledByAttribute(headerItemId: string): void; + setDataTab(dataTab: number): void; + setIsActive(): void; + setOnDragObserver(observer: IntersectionObserver): void; + unobserveDragObserver(observer: IntersectionObserver): void; + unsetIsActive(): void; + } +} +declare namespace OSFramework.OSUI.Patterns.TabsContentItem { + class TabsContentItem extends AbstractChild implements ITabsContentItem { + private _dataTab; + private _focusableElements; + private _isActive; + constructor(uniqueId: string, configs: JSON); + protected setA11YProperties(isUpdate?: boolean): void; + protected setCallbacks(): void; + protected setHtmlElements(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + build(): void; + dispose(): void; + getDataTab(): number; + getOffsetLeft(): number; + setAriaLabelledByAttribute(headerItemId: string): void; + setDataTab(dataTab: number): void; + setIsActive(): void; + setOnDragObserver(observer: IntersectionObserver): void; + unobserveDragObserver(observer: IntersectionObserver): void; + unsetIsActive(): void; + get IsActive(): boolean; + } +} +declare namespace OSFramework.OSUI.Patterns.TabsContentItem { + class TabsContentItemConfig extends AbstractConfiguration { + constructor(config: JSON); + } +} +declare namespace OSFramework.OSUI.Patterns.TabsHeaderItem { + interface ITabsHeaderItem extends Interface.IChild { + IsActive: boolean; + disable(): void; + enable(): void; + getDataTab(): number; + setAriaControlsAttribute(contentItemId: string): void; + setDataTab(dataTab: number): void; + setFocus(): void; + setIsActive(): void; + unsetIsActive(): void; + updateOnRender(): void; + } +} +declare namespace OSFramework.OSUI.Patterns.TabsHeaderItem { + class TabsHeaderItem extends AbstractChild implements ITabsHeaderItem { + private _dataTab; + private _eventOnTabsClick; + private _isActive; + constructor(uniqueId: string, configs: JSON); + private _handleClickEvent; + private _removeEvents; + private _setUpEvents; + protected setA11YProperties(isUpdate?: boolean): void; + protected setCallbacks(): void; + protected setHtmlElements(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + build(): void; + disable(): void; + dispose(): void; + enable(): void; + getDataTab(): number; + setAriaControlsAttribute(contentItemId: string): void; + setDataTab(dataTab: number): void; + setFocus(): void; + setIsActive(): void; + unsetIsActive(): void; + updateOnRender(): void; + get IsActive(): boolean; + } +} +declare namespace OSFramework.OSUI.Patterns.TabsHeaderItem { + class TabsHeaderItemConfig extends AbstractConfiguration { + constructor(config: JSON); + } +} +declare namespace OSFramework.OSUI.Patterns.TimePicker { + abstract class AbstractTimePicker extends AbstractProviderPattern implements ITimePicker { + constructor(uniqueId: string, configs: C); + abstract clear(): void; + abstract close(): void; + abstract open(): void; + abstract setLanguage(value: string): void; + abstract updateInitialTime(time: string): void; + abstract updatePrompt(promptMessage: string): void; + } +} +declare namespace OSFramework.OSUI.Patterns.TimePicker { + abstract class AbstractTimePickerConfig extends Patterns.AbstractProviderConfiguration { + FirstWeekDay: number; + InitialTime: string; + Is24Hours: boolean; + MaxTime: string; + MinTime: string; + TimeFormat: string; + constructor(config: JSON); + validateDefault(key: string, value: unknown): unknown; + } +} +declare namespace OSFramework.OSUI.Patterns.TimePicker.Callbacks { + type OSOnChangeEvent = { + (timepickerId: string, selectedTime: string): void; + }; +} +declare namespace OSFramework.OSUI.Patterns.TimePicker.Enum { + enum CssClass { + Dropdown = "osui-timepicker__dropdown", + Pattern = "osui-timepicker" + } + enum TimePickerEvents { + OnChange = "OnChange" + } + enum Properties { + InitialTime = "InitialTime", + Is24Hours = "Is24Hours", + MaxTime = "MaxTime", + MinTime = "MinTime", + TimeFormat = "TimeFormat" + } + enum Provider { + FlatPicker = "flatpickr" + } + enum TimeFormatMode { + Time12hFormat = "12", + Time24hFormat = "24" + } +} +declare namespace OSFramework.OSUI.Patterns.TimePicker { + interface ITimePicker extends Interface.IPattern, Interface.IOpenable { + clear(): void; + setLanguage(value: string): void; + setProviderConfigs(providerConfigs: ProviderConfigs): void; + setProviderEvent(eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.Generic, uniqueId: string): void; + unsetProviderEvent(eventId: string): void; + updateInitialTime(time: string): void; + } +} +declare namespace OSFramework.OSUI.Patterns.TimePicker.Factory { + function NewTimePicker(timePickerId: string, configs: string, provider: string): Patterns.TimePicker.ITimePicker; +} +declare namespace OSFramework.OSUI.Patterns.Tooltip.Enum { + enum AriaLabelText { + Content = "toggle tooltip" + } + enum CssClass { + BalloonContent = "osui-tooltip__balloon-wrapper__balloon", + BalloonIsOpened = "osui-tooltip__balloon-wrapper--is-open", + BalloonIsOpening = "osui-tooltip__balloon-wrapper--is-opening", + BalloonWrapper = "osui-tooltip__balloon-wrapper", + Content = "osui-tooltip__content", + IsHover = "osui-tooltip--is-hover", + IsOpened = "osui-tooltip--is-open", + Pattern = "osui-tooltip" + } + enum Events { + OnToggle = "OnToggle" + } + enum InlineCssVariables { + Height = "--osui-tooltip-height", + Left = "--osui-tooltip-left", + Top = "--osui-tooltip-top", + Width = "--osui-tooltip-width" + } + enum Properties { + IsHover = "IsHover", + Position = "Position", + StartVisible = "StartVisible" + } +} +declare namespace OSFramework.OSUI.Patterns.Tooltip { + interface ITooltip extends Interface.IPattern, Interface.IOpenable { + get IsOpen(): boolean; + } +} +declare namespace OSFramework.OSUI.Patterns.Tooltip { + class Tooltip extends AbstractPattern implements ITooltip { + private _activeScreenElement; + private _eventBalloonWrapperOnMouseEnter; + private _eventBalloonWrapperOnMouseLeave; + private _eventIconOnMouseEnter; + private _eventIconOnMouseLeave; + private _eventOnBalloonClick; + private _eventOnBlur; + private _eventOnClick; + private _eventOnFocus; + private _eventOnKeypress; + private _eventOnOpenedBalloon; + private _eventOnScreenScroll; + private _eventOnWindowResize; + private _focusManagerInstance; + private _intersectionObserver; + private _isBalloonWrapperMouseEnter; + private _isIconMouseEnter; + private _isOpen; + private _isOpenedByApi; + private _isSafari; + private _platformEventOnToggleCallback; + private _requestAnimationOnBodyScroll; + private _requestAnimationOnWindowResize; + private _selfElementBoundingClientRect; + private _tooltipBalloonContentActiveElem; + private _tooltipBalloonContentElem; + private _tooltipBalloonPositionClass; + private _tooltipBalloonWrapperElem; + private _tooltipIconElem; + constructor(uniqueId: string, configs: JSON); + private _moveBalloonElement; + private _onBalloonClick; + private _onBalloonWrapperMouseEnter; + private _onBalloonWrapperMouseLeave; + private _onBlur; + private _onClick; + private _onFocus; + private _onIconMouseEnter; + private _onIconMouseLeave; + private _onOpenedBalloon; + private _onScreenScroll; + private _onWindowResize; + private _onkeypressCallback; + private _setBalloonCoordinates; + private _setBalloonPosition; + private _setBalloonWrapperExtendedClass; + private _setCssClasses; + private _setObserver; + private _setUpEvents; + private _triggerClose; + private _triggerOpen; + private _unsetEvents; + private _unsetObserver; + private _updateIsHover; + private _updateIsVisible; + protected setA11YProperties(): void; + protected setCallbacks(): void; + protected setHtmlElements(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + build(): void; + changeProperty(propertyName: string, propertyValue: unknown): void; + close(): void; + dispose(): void; + open(): void; + registerCallback(eventName: string, callback: GlobalCallbacks.OSGeneric): void; + get IsOpen(): boolean; + } +} +declare namespace OSFramework.OSUI.Patterns.Tooltip { + class TooltipConfig extends AbstractConfiguration { + IsHover: boolean; + Position: GlobalEnum.Position; + StartVisible: boolean; + constructor(config: JSON); + validateCanChange(isBuilt: boolean, key: string): boolean; + validateDefault(key: string, value: unknown): unknown; + } +} +declare namespace OSFramework.OSUI.Patterns.TouchEvents.Enum { + enum Properties { + } + enum Events { + End = "End", + Move = "Move", + Start = "Start" + } +} +declare namespace OSFramework.OSUI.Patterns.TouchEvents { + interface ITouchEvents extends Interface.IPattern { + } +} +declare namespace OSFramework.OSUI.Patterns.TouchEvents { + class TouchEvents extends AbstractPattern implements ITouchEvents { + private _currentX; + private _currentY; + private _endEvent; + private _endEventCallback; + private _eventMoveCallback; + private _eventStartCallback; + private _moveEvent; + private _startEvent; + private _startTime; + private _startX; + private _startY; + private _timeTaken; + private _touchingElement; + private _trackableElement; + private _translateX; + private _translateY; + constructor(uniqueId: string, configs: JSON); + private _eventTouchEnd; + private _eventTouchMove; + private _eventTouchStart; + private _removeEventListeners; + private _setEventListeners; + private _triggerTouchEnd; + private _triggerTouchMove; + private _triggerTouchStart; + protected setA11YProperties(): void; + protected setCallbacks(): void; + protected setHtmlElements(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + build(): void; + dispose(): void; + registerCallback(eventName: string, callback: GlobalCallbacks.OSGeneric): void; + } +} +declare namespace OSFramework.OSUI.Patterns.TouchEvents { + class TouchEventsConfig extends AbstractConfiguration { + WidgetId: string; + constructor(config: JSON); + } +} +declare namespace OSFramework.OSUI.Patterns.Video.Callbacks { + type OSOnStateChangedEvent = { + (videoId: string, stateChanged: string): void; + }; +} +declare namespace OSFramework.OSUI.Patterns.Video.Enum { + enum CssClass { + VideoSource = "osui-video-source", + VideoTrack = "osui-video-track" + } + enum Events { + OnStateChanged = "StateChanged" + } + enum VideoStates { + OnEnded = "Ended", + OnPause = "Paused", + OnPlaying = "Playing", + Unstarted = "Unstarted" + } + enum Properties { + Autoplay = "Autoplay", + Controls = "Controls", + Height = "Height", + Loop = "Loop", + Muted = "Muted", + PosterURL = "PosterURL", + URL = "URL", + Width = "Width" + } + enum VideoTags { + Source = "source", + Track = "track" + } + enum VideoAttributes { + Captions = "captions", + Default = "default", + Height = "height", + TypePath = "video/", + Width = "width", + Muted = "muted" + } +} +declare namespace OSFramework.OSUI.Patterns.Video { + interface IVideo extends Interface.IPattern { + getVideoState: string; + setVideoJumpToTime(currentTime: number): void; + setVideoPause(): void; + setVideoPlay(): void; + } +} +declare namespace OSFramework.OSUI.Patterns.Video { + class Video extends AbstractPattern implements IVideo { + private _platformEventOnStateChanged; + private _videoElement; + private _videoJumpTime; + private _videoSourceElement; + private _videoState; + constructor(uniqueId: string, configs: JSON); + private _setAutoplay; + private _setControls; + private _setHeight; + private _setLoop; + private _setMuted; + private _setPosterUrl; + private _setVideoConfigs; + private _setVideoSource; + private _setVideoTrack; + private _setWidth; + private _triggerOnStateChangedEvent; + protected setA11YProperties(): void; + protected setCallbacks(): void; + protected setHtmlElements(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + build(): void; + changeProperty(propertyName: string, propertyValue: unknown): void; + dispose(): void; + get getVideoState(): string; + registerCallback(eventName: string, callback: GlobalCallbacks.OSGeneric): void; + setVideoJumpToTime(currentTime: number): void; + setVideoPause(): void; + setVideoPlay(): void; + } +} +declare namespace OSFramework.OSUI.Patterns.Video { + class VideoConfig extends AbstractConfiguration { + Autoplay: boolean; + Captions: string; + Controls: boolean; + Height: string; + Loop: boolean; + Muted: boolean; + PosterURL: string; + URL: string; + Width: string; + constructor(config: JSON); + } +} +declare namespace OSFramework.OSUI.Utils.FloatingPosition.Enum { + enum CssCustomProperties { + Offset = "--osui-floating-offset", + YPosition = "--osui-floating-position-y", + XPosition = "--osui-floating-position-x" + } + enum Provider { + FloatingUI = "FloatingUI" + } +} +declare namespace OSFramework.OSUI.Utils.FloatingPosition { + abstract class FloatingPosition implements IFloatingPosition { + protected eventOnUpdateCallback: OSFramework.OSUI.GlobalCallbacks.Generic; + protected floatingConfigs: FloatingPositionConfig; + protected isBuilt: boolean; + constructor(options: FloatingPositionConfig); + protected getOffsetValue(): number; + build(): void; + dispose(): void; + update(options: FloatingPositionConfig): void; + abstract setFloatingPosition(): void; + abstract unsetFloatingPosition(): void; + } +} +declare namespace OSFramework.OSUI.Utils.FloatingPosition { + class FloatingPositionConfig { + AnchorElem: HTMLElement; + AutoPlacement: boolean; + AutoPlacementOptions: AutoPlacementOptions; + FloatingElem: HTMLElement; + Position: string; + UpdatePosition: boolean; + } +} +declare namespace OSFramework.OSUI.Utils.FloatingPosition.Factory { + function NewFloatingPosition(configs: FloatingPositionConfig, provider: string): void; +} +declare namespace OSFramework.OSUI.Utils.FloatingPosition { + interface IFloatingPosition { + setFloatingPosition(): void; + unsetFloatingPosition(): void; + } +} +declare namespace OutSystems.OSUI.ErrorCodes { + const Success: { + code: string; + message: string; + }; + const Dropdown: { + FailChangeProperty: string; + FailClear: string; + FailClose: string; + FailDisable: string; + FailDispose: string; + FailEnable: string; + FailGetSelectedValues: string; + FailOpen: string; + FailRegisterCallback: string; + FailRegisterProviderConfig: string; + FailRegisterProviderEvent: string; + FailRemoveProviderEvent: string; + FailSetValidation: string; + FailSetValues: string; + FailTogglePopup: string; + }; + const Notification: { + FailChangeProperty: string; + FailDispose: string; + FailHide: string; + FailRegisterCallback: string; + FailShow: string; + }; + const SectionIndex: { + FailChangeProperty: string; + FailDisable: string; + FailDispose: string; + FailEnable: string; + FailRegisterCallback: string; + }; + const Accordion: { + FailChangeProperty: string; + FailCollapseAll: string; + FailDispose: string; + FailExpandAll: string; + FailRegisterCallback: string; + }; + const AccordionItem: { + FailAllowTitleEvents: string; + FailChangeProperty: string; + FailCollapseItem: string; + FailDispose: string; + FailExpandItem: string; + FailRegisterCallback: string; + }; + const Carousel: { + FailChangeProperty: string; + FailDispose: string; + FailDirection: string; + FailGoTo: string; + FailNext: string; + FailPrevious: string; + FailRegisterCallback: string; + FailToggleDrag: string; + FailUpdate: string; + FailRegisterProviderConfig: string; + FailRegisterProviderEvent: string; + FailRemoveProviderEvent: string; + FailEnableOnRender: string; + FailDisableOnRender: string; + }; + const DatePicker: { + FailChangeProperty: string; + FailClear: string; + FailClose: string; + FailDisableDays: string; + FailDisableWeekDays: string; + FailDispose: string; + FailOpen: string; + FailRedraw: string; + FailRegisterCallback: string; + FailRegisterProviderConfig: string; + FailRegisterProviderEvent: string; + FailRemoveProviderEvent: string; + FailSetEditableInput: string; + FailSetLanguage: string; + FailToggleNativeBehavior: string; + FailUpdateInitialDate: string; + FailUpdatePrompt: string; + }; + const FlipContent: { + FailChangeProperty: string; + FailDispose: string; + FailRegisterCallback: string; + FailShowBack: string; + FailShowFront: string; + FailToggle: string; + }; + const Progress: { + FailChangeProperty: string; + FailDispose: string; + FailProgressValue: string; + FailProgressReset: string; + FailtProgressGradient: string; + FailRegisterCallback: string; + }; + const RangeSlider: { + FailChangeProperty: string; + FailDispose: string; + FailOnDragEnd: string; + FailRegisterCallback: string; + FailSetValues: string; + FailResetValues: string; + FailRegisterProviderConfig: string; + FailRegisterProviderEvent: string; + FailRemoveProviderEvent: string; + FailEnable: string; + FailDisable: string; + }; + const Sidebar: { + FailChangeProperty: string; + FailClose: string; + FailDispose: string; + FailOpen: string; + FailRegisterCallback: string; + FailToggleSwipe: string; + FailClickOutsideToClose: string; + }; + const Submenu: { + FailChangeProperty: string; + FailClose: string; + FailDispose: string; + FailOpen: string; + FailOpenOnHover: string; + FailRegisterCallback: string; + FailUpdate: string; + FailClickOutsideToClose: string; + }; + const Tooltip: { + FailChangeProperty: string; + FailClose: string; + FailDispose: string; + FailOpen: string; + FailRegisterCallback: string; + }; + const AnimatedLabel: { + FailChangeProperty: string; + FailDispose: string; + FailRegisterCallback: string; + FailUpdate: string; + }; + const ButtonLoading: { + FailChangeProperty: string; + FailDispose: string; + FailRegisterCallback: string; + }; + const DropdownServerSideItem: { + FailChangeProperty: string; + FailDispose: string; + FailRegisterCallback: string; + }; + const FloatingActions: { + FailChangeProperty: string; + FailDispose: string; + FailRegisterCallback: string; + }; + const Gallery: { + FailChangeProperty: string; + FailDispose: string; + FailRegisterCallback: string; + }; + const Rating: { + FailChangeProperty: string; + FailDispose: string; + FailRegisterCallback: string; + }; + const Search: { + FailChangeProperty: string; + FailDispose: string; + FailRegisterCallback: string; + }; + const SectionIndexItem: { + FailChangeProperty: string; + FailDispose: string; + FailRegisterCallback: string; + }; + const Tabs: { + FailChangeProperty: string; + FailDispose: string; + FailRegisterCallback: string; + FailSetActive: string; + FailToggleSwipe: string; + }; + const TabsContentItem: { + FailChangeProperty: string; + FailDispose: string; + FailRegisterCallback: string; + }; + const TabsHeaderItem: { + FailChangeProperty: string; + FailDisableTabHeader: string; + FailDispose: string; + FailEnableTabHeader: string; + FailRegisterCallback: string; + FailUpdate: string; + }; + const BottomSheet: { + FailChangeProperty: string; + FailDispose: string; + FailRegisterCallback: string; + FailOpen: string; + FailClose: string; + }; + const TimePicker: { + FailChangeProperty: string; + FailClear: string; + FailClose: string; + FailDispose: string; + FailOpen: string; + FailRedraw: string; + FailRegisterCallback: string; + FailRegisterProviderConfig: string; + FailRegisterProviderEvent: string; + FailRemoveProviderEvent: string; + FailToggleNativeBehavior: string; + FailSetLanguage: string; + FailUpdateInitialTime: string; + FailSetEditableInput: string; + FailUpdatePrompt: string; + }; + const MonthPicker: { + FailChangeProperty: string; + FailClear: string; + FailClose: string; + FailDispose: string; + FailOpen: string; + FailRedraw: string; + FailRegisterCallback: string; + FailRegisterProviderConfig: string; + FailRegisterProviderEvent: string; + FailRemoveProviderEvent: string; + FailSetEditableInput: string; + FailSetLanguage: string; + FailUpdateInitialMonth: string; + FailUpdatePrompt: string; + }; + const Utilities: { + FailGetInvalidInput: string; + FailScrollToElement: string; + FailSetFocus: string; + FailAddFavicon: string; + FailMoveElement: string; + FailSetActiveElement: string; + FailSetSelectedRow: string; + FailShowPassword: string; + FailMasterDetailSetContentFocus: string; + FailSetAccessibilityRole: string; + FailSetAriaHidden: string; + FailSetLang: string; + FailSkipToContent: string; + FailToggleTextSpacing: string; + FailSetActiveMenuItems: string; + FailSetBottomBarActiveElement: string; + FailSetMenuAttributes: string; + FailSetMenuIcon: string; + FailSetMenuIconListeners: string; + FailSetMenuListeners: string; + FailToggleSideMenu: string; + FailListItemAnimate: string; + FailCheckIsMenuDraggable: string; + FailSetExtendedMenuHide: string; + FailSetExtendedMenuShow: string; + FailCheckIsRTL: string; + }; + const InlineSvg: { + FailChangeProperty: string; + FailDispose: string; + FailRegisterCallback: string; + }; + const OverflowMenu: { + FailChangeProperty: string; + FailDispose: string; + FailRegisterCallback: string; + FailOpen: string; + FailClose: string; + FailEnable: string; + FailDisable: string; + }; + const Video: { + FailChangeProperty: string; + FailDispose: string; + FailRegisterCallback: string; + FailGetState: string; + FailPause: string; + FailPlay: string; + FailSetTime: string; + }; + const Legacy: { + FailAddFavicon_Legacy: string; + MoveElement_Legacy: string; + MasterDetailSetContentFocus_Legacy: string; + SetAccessibilityRole_Legacy: string; + SetAriaHidden_Legacy: string; + SetFocus_Legacy: string; + SetLang_Legacy: string; + SkipToContent_Legacy: string; + ToggleTextSpacing_Legacy: string; + }; +} +declare namespace OutSystems.OSUI { + function GetVersion(): string; +} +declare namespace OutSystems.OSUI.Patterns.AccordionAPI { + function ChangeProperty(accordionId: string, propertyName: string, propertyValue: unknown): string; + function CollapseAllItems(accordionId: string): string; + function Create(accordionId: string, configs: string): OSFramework.OSUI.Patterns.Accordion.IAccordion; + function Dispose(accordionId: string): string; + function ExpandAllItems(accordionId: string): string; + function GetAllAccordions(): Array; + function GetAccordionById(AccordionId: string): OSFramework.OSUI.Patterns.Accordion.IAccordion; + function Initialize(accordionId: string): OSFramework.OSUI.Patterns.Accordion.IAccordion; + function RegisterCallback(accordionId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): string; +} +declare namespace OutSystems.OSUI.Patterns.AccordionItemAPI { + function AllowTitleEvents(accordionItemId: string): string; + function ChangeProperty(accordionItemId: string, propertyName: string, propertyValue: unknown): string; + function Collapse(accordionItemId: string): string; + function Create(accordionItemId: string, configs: string): OSFramework.OSUI.Patterns.AccordionItem.IAccordionItem; + function Dispose(accordionItemId: string): string; + function Expand(accordionItemId: string): string; + function GetAllAccordionItems(): Array; + function GetAccordionItemById(accordionItemId: string): OSFramework.OSUI.Patterns.AccordionItem.IAccordionItem; + function Initialize(accordionItemId: string): OSFramework.OSUI.Patterns.AccordionItem.IAccordionItem; + function RegisterCallback(accordionItemId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): string; +} +declare namespace OutSystems.OSUI.Patterns.AnimatedLabelAPI { + function ChangeProperty(animatedLabelId: string, propertyName: string, propertyValue: unknown): string; + function Create(animatedLabelId: string, configs: string): OSFramework.OSUI.Patterns.AnimatedLabel.IAnimatedLabel; + function Dispose(animatedLabelId: string): string; + function GetAllAnimatedLabels(): Array; + function GetAnimatedLabelById(animatedLabelId: string): OSFramework.OSUI.Patterns.AnimatedLabel.IAnimatedLabel; + function Initialize(animatedLabelId: string): OSFramework.OSUI.Patterns.AnimatedLabel.IAnimatedLabel; + function RegisterCallback(dropdownId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): string; + function UpdateOnRender(animatedLabelId: string): string; +} +declare namespace OutSystems.OSUI.Patterns.BottomSheetAPI { + function ChangeProperty(bottomSheetId: string, propertyName: string, propertyValue: any): string; + function Create(bottomSheetId: string, configs: string): OSFramework.OSUI.Patterns.BottomSheet.IBottomSheet; + function Dispose(bottomSheetId: string): string; + function GetAllBottomSheetItemsMap(): Array; + function GetBottomSheetItemById(bottomSheetId: string): OSFramework.OSUI.Patterns.BottomSheet.IBottomSheet; + function Initialize(bottomSheetId: string): OSFramework.OSUI.Patterns.BottomSheet.IBottomSheet; + function Open(bottomSheetId: string): string; + function Close(bottomSheetId: string): string; + function RegisterCallback(bottomSheetId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): string; +} +declare namespace OutSystems.OSUI.Patterns.ButtonLoadingAPI { + function ChangeProperty(buttonLoadingId: string, propertyName: string, propertyValue: unknown): string; + function Create(buttonLoadingId: string, configs: string): OSFramework.OSUI.Patterns.ButtonLoading.IButtonLoading; + function Dispose(buttonLoadingId: string): string; + function GetAllButtonsLoading(): Array; + function GetButtonLoadingById(buttonLoadingId: string): OSFramework.OSUI.Patterns.ButtonLoading.IButtonLoading; + function Initialize(buttonLoadingId: string): OSFramework.OSUI.Patterns.ButtonLoading.IButtonLoading; + function RegisterCallback(dropdownId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): string; +} +declare namespace OutSystems.OSUI.Patterns.CarouselAPI { + function CarouselEnableOnRender(carouselId: string): string; + function CarouselDisableOnRender(carouselId: string): string; + function ChangeProperty(carouselId: string, propertyName: string, propertyValue: any): string; + function Create(carouselId: string, configs: string, provider: string): OSFramework.OSUI.Patterns.Carousel.ICarousel; + function Dispose(carouselId: string): string; + function GetAllCarouselItemsMap(): Array; + function GetCarouselItemById(carouselId: string): OSFramework.OSUI.Patterns.Carousel.ICarousel; + function GoTo(carouselId: string, index: number): string; + function Initialize(carouselId: string): OSFramework.OSUI.Patterns.Carousel.ICarousel; + function Next(carouselId: string): string; + function Previous(carouselId: string): string; + function RegisterCallback(carouselId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): string; + function ToggleDrag(carouselId: string, hasDrag: boolean): string; + function UpdateOnRender(carouselId: string): string; + function SetCarouselDirection(carouselId: string, direction: string): string; + function SetProviderConfigs(carouselId: string, configs: CarouselProviderConfigs): string; + function SetProviderEvent(carouselId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.Generic): string; + function UnsetProviderEvent(carouselId: string, eventId: string): string; +} +declare namespace OutSystems.OSUI.Patterns.DatePickerAPI { + function ChangeProperty(datePickerId: string, propertyName: string, propertyValue: any): string; + function Clear(datePickerId: string): string; + function Close(datePickerId: string): string; + function Create(datePickerId: string, configs: string, mode: OSFramework.OSUI.Patterns.DatePicker.Enum.Mode, provider: string): OSFramework.OSUI.Patterns.DatePicker.IDatePicker; + function ToggleNativeBehavior(datePickerId: string, IsNative: boolean): string; + function Dispose(datePickerId: string): string; + function GetAllDatePickerItemsMap(): Array; + function GetDatePickerItemById(datePickerId: string): OSFramework.OSUI.Patterns.DatePicker.IDatePicker; + function Initialize(datePickerId: string): OSFramework.OSUI.Patterns.DatePicker.IDatePicker; + function Open(datePickerId: string): string; + function RegisterCallback(datePickerId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): string; + function Redraw(datePickerId: string): string; + function SetLanguage(datePickerId: string, isoCode: string): string; + function UpdateInitialDate(datePickerId: string, date1: string, date2?: string): string; + function UpdatePrompt(datePickerId: string, promptMessage: string): string; + function DisableDays(datePickerId: string, disableDays: string[]): string; + function DisableWeekDays(datePickerId: string, disableWeekDays: number[]): string; + function SetProviderConfigs(datePickerId: string, providerConfigs: DatePickerProviderConfigs): string; + function SetProviderEvent(datePickerId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.Generic): string; + function UnsetProviderEvent(datePickerId: string, eventId: string): string; + function SetEditableInput(datePickerId: string, IsEditable: boolean): string; +} +declare namespace OutSystems.OSUI.Patterns.DropdownAPI { + function ChangeProperty(dropdownId: string, propertyName: string, propertyValue: unknown): string; + function Clear(dropdownId: string): string; + function Close(dropdownId: string): string; + function Create(dropdownId: string, mode: string, provider: string, configs: string): OSFramework.OSUI.Patterns.Dropdown.IDropdown; + function Disable(dropdownId: string): string; + function TogglePopup(dropdownId: string, isEnabled: boolean): string; + function Dispose(dropdownId: string): string; + function Enable(dropdownId: string): string; + function GetAllDropdowns(): Array; + function GetDropdownById(dropdownId: string): OSFramework.OSUI.Patterns.Dropdown.IDropdown; + function GetSelectedValues(dropdownId: string): string; + function Open(dropdownId: string): string; + function Initialize(dropdownId: string): OSFramework.OSUI.Patterns.Dropdown.IDropdown; + function RegisterCallback(dropdownId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): string; + function SetProviderConfigs(dropdownId: string, providerConfigs: DatePickerProviderConfigs): string; + function SetProviderEvent(dropdownId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.Generic): string; + function UnsetProviderEvent(dropdownId: string, eventId: string): string; + function SetValidation(dropdownId: string, isValid: boolean, validationMessage: string): string; + function SetValues(dropdownId: string, selectedValues: string, silentOnChangedEvent?: boolean): string; +} +declare namespace OutSystems.OSUI.Patterns.DropdownServerSideItemAPI { + function ChangeProperty(dropdownServerSideItemId: string, propertyName: string, propertyValue: any): string; + function Create(dropdownServerSideItemId: string, configs: string): OSFramework.OSUI.Patterns.DropdownServerSideItem.IDropdownServerSideItem; + function Dispose(dropdownServerSideItemId: string): string; + function GetAllDropdownServerSideItemItemsMap(): Array; + function GetDropdownServerSideItemItemById(dropdownServerSideItemId: string): OSFramework.OSUI.Patterns.DropdownServerSideItem.IDropdownServerSideItem; + function Initialize(dropdownServerSideItemId: string): OSFramework.OSUI.Patterns.DropdownServerSideItem.IDropdownServerSideItem; + function RegisterCallback(dropdownServerSideItemId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): string; +} +declare namespace OutSystems.OSUI.Patterns.FlipContentAPI { + function ChangeProperty(flipId: string, propertyName: string, propertyValue: any): string; + function Create(flipId: string, configs: string): OSFramework.OSUI.Patterns.FlipContent.IFlipContent; + function Dispose(flipId: string): string; + function GetAllFlipContent(): Array; + function GetFlipContentById(flipId: string): OSFramework.OSUI.Patterns.FlipContent.IFlipContent; + function Initialize(flipId: string): OSFramework.OSUI.Patterns.FlipContent.IFlipContent; + function RegisterCallback(flipId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): string; + function ShowBackContent(flipId: string): string; + function ShowFrontContent(flipId: string): string; + function ToggleFlipContent(flipId: string): string; +} +declare namespace OutSystems.OSUI.Patterns.GalleryAPI { + function ChangeProperty(galleryId: string, propertyName: string, propertyValue: any): string; + function Create(galleryId: string, configs: string): OSFramework.OSUI.Patterns.Gallery.IGallery; + function Dispose(galleryId: string): string; + function GetAllGalleries(): Array; + function GetGalleryById(galleryId: string): OSFramework.OSUI.Patterns.Gallery.IGallery; + function Initialize(galleryId: string): OSFramework.OSUI.Patterns.Gallery.IGallery; + function RegisterCallback(dropdownId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): string; +} +declare namespace OutSystems.OSUI.Patterns.InlineSvgAPI { + function ChangeProperty(inlineSvgId: string, propertyName: string, propertyValue: any): string; + function Create(inlineSvgId: string, configs: string): OSFramework.OSUI.Patterns.InlineSvg.IInlineSvg; + function Dispose(inlineSvgId: string): string; + function GetAllInlineSvgs(): Array; + function GetInlineSvgById(inlineSvgId: string): OSFramework.OSUI.Patterns.InlineSvg.IInlineSvg; + function Initialize(inlineSvgId: string): OSFramework.OSUI.Patterns.InlineSvg.IInlineSvg; + function RegisterCallback(inlineSvgId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): string; +} +declare namespace OutSystems.OSUI.Patterns.MonthPickerAPI { + function ChangeProperty(monthPickerId: string, propertyName: string, propertyValue: any): string; + function Clear(monthPickerId: string): string; + function Close(monthPickerId: string): string; + function Create(monthPickerId: string, configs: string, provider: string): OSFramework.OSUI.Patterns.MonthPicker.IMonthPicker; + function Dispose(monthPickerId: string): string; + function GetAllMonthPickerItemsMap(): Array; + function GetMonthPickerItemById(monthPickerId: string): OSFramework.OSUI.Patterns.MonthPicker.IMonthPicker; + function Initialize(monthPickerId: string): OSFramework.OSUI.Patterns.MonthPicker.IMonthPicker; + function Open(monthPickerId: string): string; + function RegisterCallback(monthPickerId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): string; + function SetProviderConfigs(monthPickerId: string, providerConfigs: MonthPickerProviderConfigs): string; + function SetProviderEvent(monthPickerId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.Generic): string; + function SetLanguage(monthPickerId: string, isoCode: string): string; + function SetEditableInput(monthPickerId: string, IsEditable: boolean): string; + function UnsetProviderEvent(monthPickerId: string, eventId: string): string; + function UpdateInitialMonth(monthPickerId: string, monthYear: MonthYear): string; + function UpdatePrompt(monthPickerId: string, promptMessage: string): string; +} +declare namespace OutSystems.OSUI.Patterns.NotificationAPI { + function ChangeProperty(notificationId: string, propertyName: string, propertyValue: any): string; + function Create(notificationId: string, configs: string): OSFramework.OSUI.Patterns.Notification.INotification; + function Dispose(notificationId: string): string; + function GetAllNotifications(): Array; + function GetNotificationById(notificationId: string): OSFramework.OSUI.Patterns.Notification.INotification; + function Hide(notificationId: string): string; + function Initialize(notificationId: string): OSFramework.OSUI.Patterns.Notification.INotification; + function RegisterCallback(notificationId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): string; + function Show(notificationId: string): string; +} +declare namespace OutSystems.OSUI.Patterns.OverflowMenuAPI { + function ChangeProperty(overflowMenuId: string, propertyName: string, propertyValue: unknown): string; + function Create(overflowMenuId: string, configs: string): OSFramework.OSUI.Patterns.OverflowMenu.IOverflowMenu; + function Disable(overflowMenuId: string): string; + function Dispose(overflowMenuId: string): string; + function Enable(overflowMenuId: string): string; + function GetAllOverflowMenus(): Array; + function GetOverflowMenuById(overflowMenuId: string): OSFramework.OSUI.Patterns.OverflowMenu.IOverflowMenu; + function Initialize(overflowMenuId: string): OSFramework.OSUI.Patterns.OverflowMenu.IOverflowMenu; + function RegisterCallback(overflowMenuId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.Generic): string; + function Open(overflowMenuId: string): string; + function Close(overflowMenuId: string): string; +} +declare namespace OutSystems.OSUI.Patterns.ProgressAPI { + function ChangeProperty(progressId: string, propertyName: string, propertyValue: any): string; + function Create(progressId: string, type: string, configs: string): OSFramework.OSUI.Patterns.Progress.IProgress; + function Dispose(progressId: string): string; + function GetAllProgressItemsMap(): Array; + function GetProgressItemById(progressId: string): OSFramework.OSUI.Patterns.Progress.IProgress; + function Initialize(progressId: string): OSFramework.OSUI.Patterns.Progress.IProgress; + function RegisterCallback(dropdownId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): string; + function ResetProgressValue(progressId: string): string; + function SetProgressValue(progressId: string, progress: number): string; + function ProgressApplyGradient(progressId: string, gradientType: string, colors: string): string; +} +declare namespace OutSystems.OSUI.Patterns.RangeSliderAPI { + function ChangeProperty(rangeSliderId: string, propertyName: string, propertyValue: unknown): string; + function Create(rangeSliderId: string, configs: string, mode: OSFramework.OSUI.Patterns.RangeSlider.Enum.Mode, provider: string): OSFramework.OSUI.Patterns.RangeSlider.IRangeSlider; + function Disable(rangeSliderId: string): string; + function Dispose(rangeSliderId: string): string; + function Enable(rangeSliderId: string): string; + function GetAllRangeSliderItemsMap(): Array; + function GetRangeSliderItemById(rangeSliderId: string): OSFramework.OSUI.Patterns.RangeSlider.IRangeSlider; + function Initialize(rangeSliderId: string): OSFramework.OSUI.Patterns.RangeSlider.IRangeSlider; + function RegisterCallback(rangeSliderId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): string; + function SetRangeIntervalChangeOnDragEnd(rangeSliderId: string): string; + function SetRangeSliderValue(rangeSliderId: string, valueFrom: number, valueTo?: number): string; + function ResetRangeSliderValue(rangeSliderId: string): string; + function SetProviderConfigs(rangeSliderId: string, configs: RangeSliderProviderConfigs): string; + function SetProviderEvent(rangeSliderId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.Generic): string; + function UnsetProviderEvent(rangeSliderId: string, eventId: string): string; +} +declare namespace OutSystems.OSUI.Patterns.RatingAPI { + function ChangeProperty(ratingId: string, propertyName: string, propertyValue: any): string; + function Create(ratingId: string, configs: string): OSFramework.OSUI.Patterns.Rating.IRating; + function Dispose(ratingId: string): string; + function GetAllRatings(): Array; + function GetRatingById(ratingId: string): OSFramework.OSUI.Patterns.Rating.IRating; + function Initialize(ratingId: string): OSFramework.OSUI.Patterns.Rating.IRating; + function RegisterCallback(ratingId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): string; +} +declare namespace OutSystems.OSUI.Patterns.SearchAPI { + function ChangeProperty(searchId: string, propertyName: string, propertyValue: any): string; + function Create(searchId: string, configs: string): OSFramework.OSUI.Patterns.Search.ISearch; + function Dispose(searchId: string): string; + function GetAllSearches(): Array; + function GetSearchById(searchId: string): OSFramework.OSUI.Patterns.Search.ISearch; + function Initialize(searchId: string): OSFramework.OSUI.Patterns.Search.ISearch; + function RegisterCallback(searchId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): string; +} +declare namespace OutSystems.OSUI.Patterns.SectionIndexAPI { + function ChangeProperty(sectionIndexId: string, propertyName: string, propertyValue: any): string; + function Create(sectionIndexId: string, configs: string): OSFramework.OSUI.Patterns.SectionIndex.ISectionIndex; + function Dispose(sectionIndexId: string): string; + function GetAllSectionIndexItemsMap(): Array; + function GetSectionIndexById(sectionIndexId: string): OSFramework.OSUI.Patterns.SectionIndex.ISectionIndex; + function Initialize(sectionIndexId: string): OSFramework.OSUI.Patterns.SectionIndex.ISectionIndex; + function RegisterCallback(sectionIndexId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): string; +} +declare namespace OutSystems.OSUI.Patterns.SectionIndexItemAPI { + function ChangeProperty(sectionIndexItemId: string, propertyName: string, propertyValue: any): string; + function Create(sectionIndexItemId: string, configs: string): OSFramework.OSUI.Patterns.SectionIndexItem.ISectionIndexItem; + function Dispose(sectionIndexItemId: string): string; + function GetAllSectionIndexItemItemsMap(): Array; + function GetSectionIndexItemById(sectionIndexItemId: string): OSFramework.OSUI.Patterns.SectionIndexItem.ISectionIndexItem; + function Initialize(sectionIndexItemId: string): OSFramework.OSUI.Patterns.SectionIndexItem.ISectionIndexItem; + function RegisterCallback(sectionIndexItemId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): string; +} +declare namespace OutSystems.OSUI.Patterns.SidebarAPI { + function ChangeProperty(sidebarId: string, propertyName: string, propertyValue: unknown): string; + function ClickOutsideToClose(sidebarId: string, closeOnOutSIdeClick: boolean): string; + function Close(sidebarId: string): string; + function Create(sidebarId: string, configs: string): OSFramework.OSUI.Patterns.Sidebar.ISidebar; + function Dispose(sidebarId: string): string; + function GetAllSidebars(): Array; + function GetSidebarById(sidebarId: string): OSFramework.OSUI.Patterns.Sidebar.ISidebar; + function Initialize(sidebarId: string): OSFramework.OSUI.Patterns.Sidebar.ISidebar; + function Open(sidebarId: string): string; + function RegisterCallback(sidebarId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): string; + function ToggleGestures(sidebarId: string, enableSwipe: boolean): string; +} +declare namespace OutSystems.OSUI.Patterns.SubmenuAPI { + function ChangeProperty(submenuId: string, propertyName: string, propertyValue: any): string; + function ClickOutsideToClose(submenuId: string, clickOutsideToClose: boolean): string; + function Close(submenuId: string): string; + function Open(submenuId: string): string; + function Create(submenuId: string, configs: string): OSFramework.OSUI.Patterns.Submenu.ISubmenu; + function Dispose(submenuId: string): string; + function GetAllSubmenus(): Array; + function GetSubmenuById(submenuId: string): OSFramework.OSUI.Patterns.Submenu.ISubmenu; + function Initialize(submenuId: string): OSFramework.OSUI.Patterns.Submenu.ISubmenu; + function RegisterCallback(submenuId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): string; + function SubmenuOpenOnHover(submenuId: string): string; + function UpdateOnRender(submenuId: string): string; +} +declare namespace OutSystems.OSUI.Patterns.SwipeEventsAPI { + function Create(swipeEventsId: string, configs: string): OSFramework.OSUI.Patterns.SwipeEvents.ISwipeEvents; + function Dispose(swipeEventsId: string): void; + function GetAllSwipeEvents(): Array; + function GetSwipeEventsById(swipeEventsId: string): OSFramework.OSUI.Patterns.SwipeEvents.ISwipeEvents; + function Initialize(swipeEventsId: string): OSFramework.OSUI.Patterns.SwipeEvents.ISwipeEvents; + function RegisterCallback(swipeEventsID: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): void; + function GestureMove(swipeEventsId: string, event: TouchEvent): void; + function GestureEnd(swipeEventsId: string, offsetX: number, offsetY: number, timeTaken: number): void; +} +declare namespace OutSystems.OSUI.Patterns.TabsAPI { + function ChangeProperty(tabsId: string, propertyName: string, propertyValue: unknown): string; + function Create(tabsId: string, configs: string): OSFramework.OSUI.Patterns.Tabs.ITabs; + function Dispose(tabsId: string): string; + function GetAllTabs(): Array; + function GetTabsById(tabsId: string): OSFramework.OSUI.Patterns.Tabs.ITabs; + function Initialize(tabsId: string): OSFramework.OSUI.Patterns.Tabs.ITabs; + function RegisterCallback(tabsId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): string; + function TabsToggleSwipe(tabsId: string, enableSwipe: boolean): string; + function SetActiveTab(tabsId: string, tabsNumber: number): string; +} +declare namespace OutSystems.OSUI.Patterns.TabsContentItemAPI { + function ChangeProperty(tabsContentItemId: string, propertyName: string, propertyValue: any): string; + function Create(tabsContentItemId: string, configs: string): OSFramework.OSUI.Patterns.TabsContentItem.ITabsContentItem; + function Dispose(tabsContentItemId: string): string; + function GetAllTabsContentItems(): Array; + function GetTabsContentItemById(tabsContentItemId: string): OSFramework.OSUI.Patterns.TabsContentItem.ITabsContentItem; + function Initialize(tabsContentItemId: string): OSFramework.OSUI.Patterns.TabsContentItem.ITabsContentItem; + function RegisterCallback(tabsContentItemId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): string; +} +declare namespace OutSystems.OSUI.Patterns.TabsHeaderItemAPI { + function ChangeProperty(tabsHeaderItemId: string, propertyName: string, propertyValue: any): string; + function Create(tabsHeaderItemId: string, configs: string): OSFramework.OSUI.Patterns.TabsHeaderItem.ITabsHeaderItem; + function DisableTabItem(tabsHeaderItemId: string): string; + function Dispose(tabsHeaderItemId: string): string; + function EnableTabItem(tabsHeaderItemId: string): string; + function GetAllTabsHeaderItems(): Array; + function GetTabsHeaderItemById(tabsHeaderItemId: string): OSFramework.OSUI.Patterns.TabsHeaderItem.ITabsHeaderItem; + function UpdateOnRender(tabsHeaderItemId: string): string; + function Initialize(tabsHeaderItemId: string): OSFramework.OSUI.Patterns.TabsHeaderItem.ITabsHeaderItem; + function RegisterCallback(tabsHeaderItemId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): string; +} +declare namespace OutSystems.OSUI.Patterns.TimePickerAPI { + function ChangeProperty(timePickerId: string, propertyName: string, propertyValue: any): string; + function Clear(timePickerId: string): string; + function Close(timePickerId: string): string; + function Create(timePickerId: string, configs: string, provider: string): OSFramework.OSUI.Patterns.TimePicker.ITimePicker; + function ToggleNativeBehavior(timePickerId: string, IsNative: boolean): string; + function Dispose(timePickerId: string): string; + function GetAllTimePickerItemsMap(): Array; + function GetTimePickerItemById(timePickerId: string): OSFramework.OSUI.Patterns.TimePicker.ITimePicker; + function Initialize(timePickerId: string): OSFramework.OSUI.Patterns.TimePicker.ITimePicker; + function Open(timePickerId: string): string; + function RegisterCallback(timePickerId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): string; + function Redraw(timePickerId: string): string; + function SetLanguage(timePickerId: string, isoCode: string): string; + function UpdateInitialTime(timePickerId: string, time: string): string; + function UpdatePrompt(timePickerId: string, promptMessage: string): string; + function SetProviderConfigs(timePickerId: string, providerConfigs: TimePickerProviderConfigs): string; + function SetProviderEvent(timePickerId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.Generic): string; + function UnsetProviderEvent(timePickerId: string, eventId: string): string; + function SetEditableInput(timePickerId: string, IsEditable: boolean): string; +} +declare namespace OutSystems.OSUI.Patterns.TooltipAPI { + function ChangeProperty(tooltipId: string, propertyName: string, propertyValue: any): string; + function Close(tooltipId: string): string; + function Create(tooltipId: string, configs: string): OSFramework.OSUI.Patterns.Tooltip.ITooltip; + function Dispose(tooltipId: string): string; + function GetAllTooltips(): Array; + function GetTooltipById(tooltipId: string): OSFramework.OSUI.Patterns.Tooltip.ITooltip; + function Initialize(tooltipId: string): OSFramework.OSUI.Patterns.Tooltip.ITooltip; + function Open(tooltipId: string): string; + function RegisterCallback(tooltipId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): string; +} +declare namespace OutSystems.OSUI.Patterns.TouchEventsAPI { + function Create(touchEventsId: string, configs: string): OSFramework.OSUI.Patterns.TouchEvents.ITouchEvents; + function Dispose(touchEventsId: string): void; + function GetAllTouchEvents(): Array; + function GetTouchEventsById(touchEventsId: string): OSFramework.OSUI.Patterns.TouchEvents.ITouchEvents; + function Initialize(touchEventsId: string): OSFramework.OSUI.Patterns.TouchEvents.ITouchEvents; + function RegisterCallback(touchEventsID: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): void; +} +declare namespace OutSystems.OSUI.Patterns.VideoAPI { + function ChangeProperty(videoId: string, propertyName: string, propertyValue: unknown): string; + function Create(videoId: string, configs: string): OSFramework.OSUI.Patterns.Video.IVideo; + function Dispose(videoId: string): string; + function GetAllVideos(): Array; + function GetVideoById(videoId: string): OSFramework.OSUI.Patterns.Video.IVideo; + function Initialize(videoId: string): OSFramework.OSUI.Patterns.Video.IVideo; + function RegisterCallback(videoId: string, eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): string; + function GetState(videoId: string): string; + function Pause(videoId: string): string; + function Play(videoId: string): string; + function JumpToTime(videoId: string, currentTime: number): string; +} +declare namespace OutSystems.OSUI.Utils.Accessibility { + function SetAccessibilityRole(widgetId: string, role: string): string; + function SetAriaHidden(widgetId: string, isHidden: boolean): string; + function SetFocus(widgetId: string): string; + function SetLang(lang: string): string; + function SkipToContent(targetId: string): string; + function ToggleTextSpacing(): string; + function WCAGMetaTag(): void; +} +declare namespace OutSystems.OSUI.Utils.Application { + function SetExpandableExceptions(): void; +} +declare namespace OutSystems.OSUI.Utils { +} +declare namespace OutSystems.OSUI.Utils { + function ChildrenMatches(elem: HTMLElement, selector: string): Element[]; +} +declare namespace OutSystems.OSUI.Utils { + type APIHandler = { + callback: any; + errorCode: string; + hasValue?: boolean; + }; + export function CreateApiResponse({ callback, errorCode, hasValue }: APIHandler): string; + export {}; +} +declare namespace OutSystems.OSUI.Dates { + function GetServerDateFormat(): string; + function SetServerDateFormat(date: string): void; +} +declare namespace OutSystems.OSUI.Utils.DeviceDetection { + function GetDeviceOrientation(): string; + function GetDeviceType(): string; + function IsTouch(): boolean; + function GetOperatingSystem(UserAgent: string): string; + function IsDesktop(): boolean; + function CheckIsLayoutNative(): boolean; + function CheckIsLayoutSide(): boolean; + function IsRunningAsPWA(): boolean; + function IsPhone(): boolean; + function IsRunningAsNativeApp(): boolean; + function IsTablet(): boolean; + function IsWebApp(): boolean; + function SetDeviceBreakpoints(phoneWidth: number, tabletWidth: number): void; +} +declare namespace OutSystems.OSUI.Utils.InvalidInputs { + function FocusFirstInvalidInput(elementId: string, isSmooth: boolean, elementParentClass: string): string; +} +declare namespace OutSystems.OSUI.Utils { + function GenerateUniqueId(): string; +} +declare namespace OutSystems.OSUI.Utils { + function GetBrowser(useragent?: string): string; +} +declare namespace OutSystems.OSUI.Utils { + function GetClosest(elem: HTMLElement, selector: string): any; +} +declare namespace OutSystems.OSUI.Utils { + function GetHasListInside(targetElem: HTMLElement): boolean; +} +declare namespace OutSystems.OSUI.Utils { + enum APIMethod { + SetProviderConfigs = "SetProviderConfigs", + SetProviderEvent = "SetProviderEvent", + UnsetProviderEvent = "UnsetProviderEvent" + } + function GetPickerExtensibilityAPI(widgetId: string, method: APIMethod): OSFramework.OSUI.GlobalCallbacks.Generic; +} +declare namespace OutSystems.OSUI.Utils.HideOnScroll { + function Init(): void; +} +declare namespace OutSystems.OSUI.Language { + function Get(): string; + function GetShort(): string; + function Set(lang: string): void; +} +declare namespace OutSystems.OSUI.Utils.LayoutPrivate { + function Dispose(): void; + function FixInputs(): void; + function HideHeader(HideHeader: boolean): void; + function RTLObserver(callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): void; + function SetDeviceClass(IsWebApp: boolean): void; + function SetStickyObserver(): void; +} +declare namespace OutSystems.OSUI.Utils.LayoutPrivate { + abstract class CssBodyVariables { + private static _setCssVars; + static Set(): void; + } +} +declare namespace OutSystems.OSUI.Utils.LayoutPrivate { + abstract class CloseDeprecatedSubmenu { + private static _checkMenuLinks; + private static _closeMenuEvent; + private static _deprecatedSubmenuItems; + private static _checkDeprecatedSubmenu; + private static _closeDeprecatedSubmenu; + static Set(): void; + static Unset(): void; + } +} +declare namespace OutSystems.OSUI.Utils.LayoutPrivate { + abstract class OnOrientationChange { + private static _onOrientationChange; + static Set(): void; + static Unset(): void; + } +} +declare namespace OutSystems.OSUI.Utils.LayoutPrivate { + abstract class SkipContentLink { + private static _setLink; + static Set(): void; + } +} +declare namespace OutSystems.OSUI.Utils { + function LogMessage(message: string): void; +} +declare namespace OutSystems.OSUI.Utils { + function HasMasterDetail(): boolean; + function SetFocusBehaviour(contentId: string, triggerItem: string): string; +} +declare namespace OutSystems.OSUI.Utils.Menu { + function AddMenuOnOrientationChange(callback: OSFramework.OSUI.GlobalCallbacks.Generic): void; + function IsMenuDraggable(): string; + function MenuHide(): string; + function MenuShow(): string; + function RemoveMenuOnOrientationChange(): void; + function SetActiveMenuItems(WidgetId: string, ActiveItem: number, ActiveSubItem: number): string; + function SetBottomBarActiveElement(ActiveItem?: number): string; + function SetMenuAttributes(): string; + function SetMenuIcon(MenuAction: string): string; + function SetMenuIconListeners(): string; + function SetMenuListeners(WidgetId: string): string; + function ToggleSideMenu(): string; +} +declare namespace OutSystems.OSUI.Utils.Network { + function IsOnline(): boolean; + function Type(): string; +} +declare namespace OutSystems.OSUI.Utils { + function AbstractNormalizeProviderConfigs(providerConfigs: ProviderConfigs, htmlElementsProps?: Array): ProviderConfigs; +} +declare namespace OutSystems.OSUI.Utils { + function ScrollToElement(ElementId: string, IsSmooth?: boolean, OffSet?: number, ElementParentClass?: string, ScrollDelay?: number): string; +} +declare namespace OutSystems.OSUI.Utils { + function ToggleClass(element: HTMLElement, state: any, className: string): void; +} +declare namespace OutSystems.OSUI.Utils { + function AddFavicon(URL: string): string; + function GetIsRTL(): boolean; + function ListItemAnimate(ListId: string, HasLeftAction: boolean, HasRightAction: boolean, AnimationTime: number): string; + function MoveElement(ElementId: string, TargetSelector: string, TimeoutVal?: number): string; + function SetActiveElement(ElementId: string, IsActive: boolean): string; + function SetSelectedTableRow(TableId: string, RowNumber: number, IsSelected: boolean): string; + function GetPlatformType(): string; + function ShowPassword(WidgetId?: string): string; +} +declare namespace OutSystems.OSUI.Utils.PreviewInDevices { + interface IDataPreviewInDevice { + notchValue?: number; + pixelRatio?: string; + userAgent?: string; + } +} +declare namespace OutSystems.OSUI.Utils.PreviewInDevices { +} +declare namespace Providers.OSUI.ErrorCodes { + const FloatingUI: { + FailCallProvider: string; + FailSetPosition: string; + }; +} +declare namespace Providers { +} +declare namespace Providers.OSUI.Carousel.Splide.Enum { + enum CssClass { + SplideWrapper = "splide", + SplideTrack = "splide__track", + SplideList = "splide__list", + SplideSlide = "splide__slide" + } + enum Go { + Next = ">", + Previous = "<" + } + enum KeyboardOptions { + Focused = "focused" + } + enum SpliderEvents { + Mounted = "mounted", + Moved = "moved" + } + enum ProviderInfo { + Name = "Splide", + Version = "4.1.3" + } + enum TypeOptions { + Loop = "loop", + Slide = "slide" + } +} +declare namespace Providers.OSUI.Carousel.Splide { + class OSUISplide extends OSFramework.OSUI.Patterns.Carousel.AbstractCarousel implements OSFramework.OSUI.Patterns.Carousel.ICarousel { + private _blockOnRender; + private _carouselListWidgetElem; + private _carouselPlaceholderElem; + private _carouselProviderElem; + private _carouselTrackElem; + private _currentIndex; + private _eventOnResize; + private _hasList; + private _platformEventOnSlideMoved; + private _splideOptions; + constructor(uniqueId: string, configs: JSON); + private _checkListWidget; + private _initProvider; + private _prepareCarouselItems; + private _redefineCarouselWidth; + private _setCarouselWidth; + private _setOnInitializedEvent; + private _setOnSlideMovedEvent; + private _togglePaginationClass; + protected prepareConfigs(): void; + protected setA11YProperties(): void; + protected setCallbacks(): void; + protected setHtmlElements(): void; + protected setInitialCssClasses(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + build(): void; + changeProperty(propertyName: string, propertyValue: unknown): void; + dispose(): void; + goTo(index: number): void; + next(): void; + previous(): void; + registerCallback(eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): void; + setCarouselDirection(direction: string): void; + setProviderConfigs(newConfigs: SplideOpts): void; + toggleDrag(hasDrag: boolean): void; + toggleOnRender(blockOnRender: boolean): void; + updateOnRender(): void; + } +} +declare namespace Providers.OSUI.Carousel.Splide { + class SplideConfig extends OSFramework.OSUI.Patterns.Carousel.AbstractCarouselConfig { + private _providerExtendedOptions; + private _providerOptions; + private _getArrowConfig; + private _getDirectionConfig; + private _getPaginationConfig; + getProviderConfig(): SplideOpts; + setExtensibilityConfigs(newConfigs: SplideOpts): void; + } +} +declare namespace Providers.OSUI.Carousel.Splide.Utils { + function NormalizeSplideConfigs(splideConfigs: SplideOpts): SplideOpts; +} +declare namespace Providers.OSUI.Datepicker.Flatpickr { + abstract class AbstractFlatpickr extends OSFramework.OSUI.Patterns.DatePicker.AbstractDatePicker implements IFlatpickr { + private _a11yInfoContainerElem; + private _bodyScrollCommonBehaviour; + private _providerFocusSpanTarget; + private _todayButtonElem; + private _zindexCommonBehavior; + protected datePickerPlatformInputElem: HTMLInputElement; + protected flatpickrInputElem: HTMLInputElement; + protected flatpickrOpts: FlatpickrOptions; + protected onSelectedCallbackEvent: OSFramework.OSUI.Patterns.DatePicker.Callbacks.OSOnChangeEvent; + constructor(uniqueId: string, configs: C); + private _setAttributes; + private _setCalendarCssClasses; + private _setParentMinHeight; + private _todayButtonKeydown; + private _unsetParentMinHeight; + protected addTodayBtn(): void; + protected createProviderInstance(): void; + protected jumpIntoToday(): void; + protected prepareConfigs(): void; + protected prepareToAndRedraw(): void; + protected setA11YProperties(): void; + protected setCallbacks(): void; + protected setHtmlElements(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + build(): void; + changeProperty(propertyName: string, propertyValue: unknown): void; + clear(): void; + close(): void; + disableDays(disableDays: string[]): void; + disableWeekDays(disableWeekDays: number[]): void; + dispose(): void; + open(): void; + registerCallback(eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): void; + setEditableInput(isEditable: boolean): void; + setLanguage(value: string): void; + setProviderConfigs(newConfigs: FlatpickrOptions): void; + toggleNativeBehavior(isNative: boolean): void; + updatePrompt(promptMessage: string): void; + protected abstract onDateSelectedEvent(selectedDates: Array): void; + protected abstract todayBtnClick(event: MouseEvent): void; + protected abstract updatePlatformInputAttrs(): void; + abstract updateInitialDate(start: string, end?: string): void; + } +} +declare namespace Providers.OSUI.Datepicker.Flatpickr { + abstract class AbstractFlatpickrConfig extends OSFramework.OSUI.Patterns.DatePicker + .AbstractDatePickerConfig { + private _disabledDays; + private _disabledWeekDays; + private _isUsingDateTime; + private _lang; + private _providerOptions; + protected providerExtendedOptions: FlatpickrOptions; + AllowInput: boolean; + CalendarMode: OSFramework.OSUI.Patterns.DatePicker.Enum.Mode; + Disable: any[]; + DisableMobile: boolean; + OnChange: OSFramework.OSUI.GlobalCallbacks.Generic; + constructor(config: JSON); + private _checkAltFormat; + private _checkDisableWeeksDay; + private _checkLocale; + private _mapProviderDateFormat; + private _setDisable; + private _validateDate; + getProviderConfig(): FlatpickrOptions; + setExtensibilityConfigs(newConfigs: FlatpickrOptions): void; + get Lang(): string; + set Lang(value: string); + get ServerDateFormat(): string; + set DisabledDays(value: string[]); + set DisabledWeekDays(value: number[]); + } +} +declare namespace Providers.OSUI.Datepicker.Flatpickr { + const ErrorCodes: { + FailSetLocale: string; + }; +} +declare namespace Providers.OSUI.Datepicker.Flatpickr.Enum { + enum Attribute { + DefaultAriaLabel = "Select a date." + } + enum CssClasses { + AccessibilityContainerInfo = "osui-datepicker-a11y", + TodayBtn = "flatpickr-today-button" + } + enum CSSSelectors { + DatepickerNotValid = "osui-datepicker .not-valid + .input" + } + enum DisableDate { + Weekdays = "Weekdays" + } +} +declare namespace Providers.OSUI.Datepicker.Flatpickr.Factory { + function NewFlatpickr(datePickerId: string, mode: OSFramework.OSUI.Patterns.DatePicker.Enum.Mode, configs: string): OSFramework.OSUI.Patterns.DatePicker.IDatePicker; +} +declare namespace Providers.OSUI.Datepicker.Flatpickr { + interface IFlatpickr extends OSFramework.OSUI.Patterns.DatePicker.IDatePicker, OSFramework.OSUI.Interface.IProviderPattern { + } +} +declare namespace Providers.OSUI.Datepicker.Flatpickr.RangeDate.Enum { + enum Properties { + InitialEndDate = "InitialEndDate", + InitialStartDate = "InitialStartDate" + } +} +declare namespace Providers.OSUI.Datepicker.Flatpickr.RangeDate { + class OSUIFlatpickrRangeDate extends AbstractFlatpickr { + constructor(uniqueId: string, configs: JSON); + private _onUpdateDateFormat; + private _updateInitialStartAndEndDates; + protected onDateSelectedEvent(selectedDates: Array): void; + protected todayBtnClick(event: MouseEvent): void; + protected updatePlatformInputAttrs(): void; + build(): void; + changeProperty(propertyName: string, propertyValue: unknown): void; + updateInitialDate(startDate: string, endDate: string): void; + } +} +declare namespace Providers.OSUI.Datepicker.Flatpickr.RangeDate { + class FlatpickrRangeDateConfig extends AbstractFlatpickrConfig { + InitialEndDate: string; + InitialStartDate: string; + constructor(config: JSON); + private _setDefaultDate; + getProviderConfig(): FlatpickrOptions; + } +} +declare namespace Providers.OSUI.Datepicker.Flatpickr.SingleDate.Enum { + enum Properties { + InitialDate = "InitialDate" + } +} +declare namespace Providers.OSUI.Datepicker.Flatpickr.SingleDate { + class OSUIFlatpickrSingleDate extends AbstractFlatpickr { + private _isUpdatedInitialDateByClientAction; + constructor(uniqueId: string, configs: JSON); + private _checkInitialDate; + protected onDateSelectedEvent(selectedDates: Array): void; + protected prepareToAndRedraw(): void; + protected todayBtnClick(event: MouseEvent): void; + protected updatePlatformInputAttrs(): void; + build(): void; + changeProperty(propertyName: string, propertyValue: unknown): void; + updateInitialDate(value: string): void; + } +} +declare namespace Providers.OSUI.Datepicker.Flatpickr.SingleDate { + class FlatpickrSingleDateConfig extends AbstractFlatpickrConfig { + InitialDate: string | Date; + constructor(config: JSON); + getProviderConfig(): FlatpickrOptions; + } +} +declare namespace Providers.OSUI.Datepicker.Flatpickr.l10ns { + const A11yContainerInfo: { + ar: { + htmlTex: string; + }; + at: { + htmlTex: string; + }; + az: { + htmlTex: string; + }; + be: { + htmlTex: string; + }; + bg: { + htmlTex: string; + }; + bn: { + htmlTex: string; + }; + bs: { + htmlTex: string; + }; + ca: { + htmlTex: string; + }; + cat: { + htmlTex: string; + }; + ckb: { + htmlTex: string; + }; + cs: { + htmlTex: string; + }; + cy: { + htmlTex: string; + }; + da: { + htmlTex: string; + }; + de: { + htmlTex: string; + }; + en: { + htmlTex: string; + }; + eo: { + htmlTex: string; + }; + es: { + htmlTex: string; + }; + et: { + htmlTex: string; + }; + fa: { + htmlTex: string; + }; + fi: { + htmlTex: string; + }; + fo: { + htmlTex: string; + }; + fr: { + htmlTex: string; + }; + ga: { + htmlTex: string; + }; + gr: { + htmlTex: string; + }; + he: { + htmlTex: string; + }; + hi: { + htmlTex: string; + }; + hr: { + htmlTex: string; + }; + hu: { + htmlTex: string; + }; + hy: { + htmlTex: string; + }; + id: { + htmlTex: string; + }; + is: { + htmlTex: string; + }; + it: { + htmlTex: string; + }; + ja: { + htmlTex: string; + }; + ka: { + htmlTex: string; + }; + km: { + htmlTex: string; + }; + ko: { + htmlTex: string; + }; + kz: { + htmlTex: string; + }; + lt: { + htmlTex: string; + }; + lv: { + htmlTex: string; + }; + mk: { + htmlTex: string; + }; + mn: { + htmlTex: string; + }; + ms: { + htmlTex: string; + }; + my: { + htmlTex: string; + }; + nl: { + htmlTex: string; + }; + nb: { + htmlTex: string; + }; + nn: { + htmlTex: string; + }; + no: { + htmlTex: string; + }; + pa: { + htmlTex: string; + }; + pl: { + htmlTex: string; + }; + pt: { + htmlTex: string; + }; + ro: { + htmlTex: string; + }; + ru: { + htmlTex: string; + }; + si: { + htmlTex: string; + }; + sk: { + htmlTex: string; + }; + sl: { + htmlTex: string; + }; + sq: { + htmlTex: string; + }; + sr: { + htmlTex: string; + }; + sv: { + htmlTex: string; + }; + th: { + htmlTex: string; + }; + tr: { + htmlTex: string; + }; + uk: { + htmlTex: string; + }; + uz: { + htmlTex: string; + }; + vn: { + htmlTex: string; + }; + zh: { + htmlTex: string; + }; + zh_tw: { + htmlTex: string; + }; + }; +} +declare namespace Providers.OSUI.Datepicker.Flatpickr.l10ns { + const TodayBtn: { + ar: { + ariaLabel: string; + title: string; + }; + at: { + ariaLabel: string; + title: string; + }; + az: { + ariaLabel: string; + title: string; + }; + be: { + ariaLabel: string; + title: string; + }; + bg: { + ariaLabel: string; + title: string; + }; + bn: { + ariaLabel: string; + title: string; + }; + bs: { + ariaLabel: string; + title: string; + }; + ca: { + ariaLabel: string; + title: string; + }; + cat: { + ariaLabel: string; + title: string; + }; + ckb: { + ariaLabel: string; + title: string; + }; + cs: { + ariaLabel: string; + title: string; + }; + cy: { + ariaLabel: string; + title: string; + }; + da: { + ariaLabel: string; + title: string; + }; + de: { + ariaLabel: string; + title: string; + }; + eo: { + ariaLabel: string; + title: string; + }; + es: { + ariaLabel: string; + title: string; + }; + en: { + ariaLabel: string; + title: string; + }; + et: { + ariaLabel: string; + title: string; + }; + fa: { + ariaLabel: string; + title: string; + }; + fi: { + ariaLabel: string; + title: string; + }; + fo: { + ariaLabel: string; + title: string; + }; + fr: { + ariaLabel: string; + title: string; + }; + ga: { + ariaLabel: string; + title: string; + }; + gr: { + ariaLabel: string; + title: string; + }; + he: { + ariaLabel: string; + title: string; + }; + hi: { + ariaLabel: string; + title: string; + }; + hr: { + ariaLabel: string; + title: string; + }; + hu: { + ariaLabel: string; + title: string; + }; + hy: { + ariaLabel: string; + title: string; + }; + id: { + ariaLabel: string; + title: string; + }; + is: { + ariaLabel: string; + title: string; + }; + it: { + ariaLabel: string; + title: string; + }; + ja: { + ariaLabel: string; + title: string; + }; + ka: { + ariaLabel: string; + title: string; + }; + km: { + ariaLabel: string; + title: string; + }; + ko: { + ariaLabel: string; + title: string; + }; + kz: { + ariaLabel: string; + title: string; + }; + lt: { + ariaLabel: string; + title: string; + }; + lv: { + ariaLabel: string; + title: string; + }; + mk: { + ariaLabel: string; + title: string; + }; + mn: { + ariaLabel: string; + title: string; + }; + ms: { + ariaLabel: string; + title: string; + }; + my: { + ariaLabel: string; + title: string; + }; + nl: { + ariaLabel: string; + title: string; + }; + nb: { + ariaLabel: string; + title: string; + }; + nn: { + ariaLabel: string; + title: string; + }; + no: { + ariaLabel: string; + title: string; + }; + pa: { + ariaLabel: string; + title: string; + }; + pl: { + ariaLabel: string; + title: string; + }; + pt: { + ariaLabel: string; + title: string; + }; + ro: { + ariaLabel: string; + title: string; + }; + ru: { + ariaLabel: string; + title: string; + }; + si: { + ariaLabel: string; + title: string; + }; + sk: { + ariaLabel: string; + title: string; + }; + sl: { + ariaLabel: string; + title: string; + }; + sq: { + ariaLabel: string; + title: string; + }; + sr: { + ariaLabel: string; + title: string; + }; + sv: { + ariaLabel: string; + title: string; + }; + th: { + ariaLabel: string; + title: string; + }; + tr: { + ariaLabel: string; + title: string; + }; + uk: { + ariaLabel: string; + title: string; + }; + uz: { + ariaLabel: string; + title: string; + }; + vn: { + ariaLabel: string; + title: string; + }; + zh: { + ariaLabel: string; + title: string; + }; + zh_tw: { + ariaLabel: string; + title: string; + }; + }; +} +declare namespace Providers.OSUI.Dropdown.VirtualSelect { + abstract class AbstractVirtualSelect extends OSFramework.OSUI.Patterns.Dropdown.AbstractDropdown implements IVirtualSelect { + private _eventOnWindowResize; + private _onMouseUpEvent; + private _onSelectedOptionEvent; + private _platformEventSelectedOptCallback; + protected hiddenInputWrapperAriaLabelVal: string; + protected virtualselectConfigs: VirtualSelectMethods; + protected virtualselectOpts: VirtualSelectOpts; + constructor(uniqueId: string, configs: C); + private _addErrorMessage; + private _manageAttributes; + private _manageDisableStatus; + private _onMouseUp; + private _onSelectedOption; + private _onWindowResize; + private _setElementId; + private _setUpEvents; + private _unsetEvents; + protected createProviderInstance(): void; + protected setA11YProperties(): void; + protected setCallbacks(): void; + protected setHtmlElements(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + build(): void; + changeProperty(propertyName: string, propertyValue: unknown): void; + clear(): void; + close(): void; + disable(): void; + dispose(): void; + enable(): void; + getSelectedValues(): string; + open(): void; + registerCallback(eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): void; + setHiddenInputWrapperAriaLabelVal(value?: string): void; + setProviderConfigs(newConfigs: VirtualSelectOpts): void; + setValue(optionsToSelect: DropDownOption[], silentOnChangedEvent?: boolean): void; + togglePopup(isEnabled: boolean): void; + validation(isValid: boolean, validationMessage: string): void; + protected abstract getSelectedOptionsStructure(): DropDownOption[]; + protected abstract prepareConfigs(): void; + } +} +declare namespace Providers.OSUI.Dropdown.VirtualSelect { + abstract class AbstractVirtualSelectConfig extends OSFramework.OSUI.Patterns.Dropdown + .AbstractDropdownConfig { + private _groupedOptionsList; + private _providerOptions; + protected providerExtendedOptions: VirtualSelectOpts; + ElementId: string; + NoOptionsText: string; + NoResultsText: string; + OptionsList: DropDownOption[]; + Prompt: string; + SearchPrompt: string; + ShowDropboxAsPopup: boolean; + StartingSelection: DropDownOption[]; + private _checkForFigType; + private _getGroupedOptionsList; + private _getOptionIconPrefix; + private _getOptionImagePrefix; + private _getOptionInfo; + private _getOptionsList; + private _groupOptions; + getProviderConfig(): VirtualSelectOpts; + setExtensibilityConfigs(newConfigs: VirtualSelectOpts): void; + validateDefault(key: string, value: unknown): unknown; + protected abstract getSelectedValues(): string[]; + } +} +declare namespace Providers.OSUI.Dropdown.VirtualSelect.Enum { + enum ProviderInfo { + Name = "VirtualSelect", + Version = "1.0.40" + } + enum CssClass { + ErrorMessage = "osui-dropdown-error-message", + NotValid = "osui-dropdown--not-valid", + OptionItemIcon = "osui-dropdown-option-icon", + OptionItemImage = "osui-dropdown-option-image" + } + enum Events { + BeforeClose = "beforeClose", + BeforeOpen = "beforeOpen", + Change = "change", + OnSelected = "OnSelected" + } + enum Properties { + NoOptionsText = "NoOptionsText", + NoResultsText = "NoResultsText", + OptionsList = "OptionsList", + Prompt = "Prompt", + SearchPrompt = "SearchPrompt", + StartingSelection = "StartingSelection" + } + enum PropertiesValues { + AriaLabelMultipleValue = "Select one or more options", + AriaLabelSingleValue = "Select an option" + } + enum FigureType { + Icon = "Icon", + Image = "Image", + None = "None" + } + enum ExtendedConfigs { + hasOptionDescription = "hasOptionDescription" + } +} +declare namespace Providers.OSUI.Dropdown.VirtualSelect { + interface IVirtualSelect extends OSFramework.OSUI.Patterns.Dropdown.IDropdown { + setValue(selectedValues: DropDownOption[]): void; + togglePopup(isEnabled: boolean): void; + } +} +declare namespace Providers.OSUI.Dropdown.VirtualSelect.Utils { + function NormalizeVirtualSelectConfigs(virtualSelectConfigs: VirtualSelectOpts): VirtualSelectOpts; +} +declare namespace Providers.OSUI.Dropdown.VirtualSelect.Factory { + function NewVirtualSelect(dropdownId: string, mode: string, configs: JSON): OSFramework.OSUI.Patterns.Dropdown.IDropdown; +} +declare namespace Providers.OSUI.Dropdown.VirtualSelect.Search.Enum { + enum Properties { + AllowMultipleSelection = "AllowMultipleSelection" + } +} +declare namespace Providers.OSUI.Dropdown.VirtualSelect.Search { + class OSUIVirtualSelectSearch extends AbstractVirtualSelect { + constructor(uniqueId: string, configs: JSON); + protected getSelectedOptionsStructure(): DropDownOption[]; + protected prepareConfigs(): void; + changeProperty(propertyName: string, propertyValue: unknown): void; + } +} +declare namespace Providers.OSUI.Dropdown.VirtualSelect.Search { + class VirtualSelectSearchConfig extends AbstractVirtualSelectConfig { + AllowMultipleSelection: boolean; + protected getSelectedValues(): string[]; + getProviderConfig(): VirtualSelectOpts; + validateDefault(key: string, value: unknown): unknown; + } +} +declare namespace Providers.OSUI.Dropdown.VirtualSelect.Tags { + class OSUIVirtualSelectTags extends AbstractVirtualSelect { + constructor(uniqueId: string, configs: JSON); + protected getSelectedOptionsStructure(): DropDownOption[]; + protected prepareConfigs(): void; + } +} +declare namespace Providers.OSUI.Dropdown.VirtualSelect.Tags { + class VirtualSelectTagsConfig extends AbstractVirtualSelectConfig { + protected getSelectedValues(): string[]; + getProviderConfig(): VirtualSelectOpts; + } +} +declare namespace Providers.OSUI.MonthPicker.Flatpickr.Enum { + enum Attribute { + DefaultAriaLabel = "Select a month" + } + enum CssClasses { + AccessibilityContainerInfo = "osui-monthpicker-a11y" + } +} +declare namespace Providers.OSUI.MonthPicker.Flatpickr { + const ErrorCodes: { + FailSetLocale: string; + }; +} +declare namespace Providers.OSUI.MonthPicker.Flatpickr { + class OSUIFlatpickrMonth extends OSFramework.OSUI.Patterns.MonthPicker.AbstractMonthPicker implements IFlatpickrMonth { + private _a11yInfoContainerElem; + private _bodyOnClickGlobalEvent; + private _bodyScrollCommonBehaviour; + private _flatpickrOpts; + private _zindexCommonBehavior; + protected flatpickrInputElem: HTMLInputElement; + protected monthPickerPlatformInputElem: HTMLInputElement; + protected onSelectedCallbackEvent: OSFramework.OSUI.Patterns.MonthPicker.Callbacks.OSOnSelectedEvent; + constructor(uniqueId: string, configs: JSON); + private _getBodyOnClickGlobalEvent; + private _setAttributes; + private _setCalendarCssClasses; + protected createProviderInstance(): void; + protected onClose(): void; + protected onMonthSelectedEvent(selectedMonthYear: Array): void; + protected onOpen(): void; + protected prepareConfigs(): void; + protected setA11YProperties(): void; + protected setCallbacks(): void; + protected setHtmlElements(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + protected updatePlatformInputAttrs(): void; + build(): void; + changeProperty(propertyName: string, propertyValue: unknown): void; + clear(): void; + close(): void; + dispose(): void; + open(): void; + registerCallback(eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): void; + setEditableInput(isEditable: boolean): void; + setLanguage(value: string): void; + setProviderConfigs(newConfigs: FlatpickrOptions): void; + updateInitialMonth(monthYear: MonthYear): void; + updatePrompt(promptMessage: string): void; + } +} +declare namespace Providers.OSUI.MonthPicker.Flatpickr { + class FlatpickrMonthConfig extends OSFramework.OSUI.Patterns.MonthPicker.AbstractMonthPickerConfig { + private _lang; + private _providerOptions; + protected providerExtendedOptions: FlatpickrOptions; + AllowInput: boolean; + DisableMobile: boolean; + OnChangeEventCallback: OSFramework.OSUI.GlobalCallbacks.Generic; + OnCloseEventCallback: OSFramework.OSUI.GlobalCallbacks.Generic; + OnOpenEventCallback: OSFramework.OSUI.GlobalCallbacks.Generic; + ServerDateFormat: string; + constructor(config: JSON); + private _checkDateFormat; + private _checkLocale; + private _checkServerDateFormat; + private _getDateFromMonthYear; + private _mapProviderDateFormat; + getProviderConfig(): FlatpickrOptions; + setExtensibilityConfigs(newConfigs: FlatpickrOptions): void; + get Lang(): string; + set Lang(value: string); + } +} +declare namespace Providers.OSUI.MonthPicker.Flatpickr { + interface IFlatpickrMonth extends OSFramework.OSUI.Patterns.MonthPicker.IMonthPicker, OSFramework.OSUI.Interface.IProviderPattern { + } +} +declare namespace Providers.OSUI.MonthPicker.Flatpickr.l10ns { + const A11yContainerInfo: { + ar: { + htmlTex: string; + }; + at: { + htmlTex: string; + }; + az: { + htmlTex: string; + }; + be: { + htmlTex: string; + }; + bg: { + htmlTex: string; + }; + bn: { + htmlTex: string; + }; + bs: { + htmlTex: string; + }; + ca: { + htmlTex: string; + }; + cat: { + htmlTex: string; + }; + ckb: { + htmlTex: string; + }; + cs: { + htmlTex: string; + }; + cy: { + htmlTex: string; + }; + da: { + htmlTex: string; + }; + de: { + htmlTex: string; + }; + en: { + htmlTex: string; + }; + eo: { + htmlTex: string; + }; + es: { + htmlTex: string; + }; + et: { + htmlTex: string; + }; + fa: { + htmlTex: string; + }; + fi: { + htmlTex: string; + }; + fo: { + htmlTex: string; + }; + fr: { + htmlTex: string; + }; + ga: { + htmlTex: string; + }; + gr: { + htmlTex: string; + }; + he: { + htmlTex: string; + }; + hi: { + htmlTex: string; + }; + hr: { + htmlTex: string; + }; + hu: { + htmlTex: string; + }; + hy: { + htmlTex: string; + }; + id: { + htmlTex: string; + }; + is: { + htmlTex: string; + }; + it: { + htmlTex: string; + }; + ja: { + htmlTex: string; + }; + ka: { + htmlTex: string; + }; + km: { + htmlTex: string; + }; + ko: { + htmlTex: string; + }; + kz: { + htmlTex: string; + }; + lt: { + htmlTex: string; + }; + lv: { + htmlTex: string; + }; + mk: { + htmlTex: string; + }; + mn: { + htmlTex: string; + }; + ms: { + htmlTex: string; + }; + my: { + htmlTex: string; + }; + nl: { + htmlTex: string; + }; + nb: { + htmlTex: string; + }; + nn: { + htmlTex: string; + }; + no: { + htmlTex: string; + }; + pa: { + htmlTex: string; + }; + pl: { + htmlTex: string; + }; + pt: { + htmlTex: string; + }; + ro: { + htmlTex: string; + }; + ru: { + htmlTex: string; + }; + si: { + htmlTex: string; + }; + sk: { + htmlTex: string; + }; + sl: { + htmlTex: string; + }; + sq: { + htmlTex: string; + }; + sr: { + htmlTex: string; + }; + sv: { + htmlTex: string; + }; + th: { + htmlTex: string; + }; + tr: { + htmlTex: string; + }; + uk: { + htmlTex: string; + }; + uz: { + htmlTex: string; + }; + vn: { + htmlTex: string; + }; + zh: { + htmlTex: string; + }; + zh_tw: { + htmlTex: string; + }; + }; +} +declare namespace Providers.OSUI.RangeSlider.NoUISlider { + abstract class AbstractNoUiSlider extends OSFramework.OSUI.Patterns.RangeSlider.AbstractRangeSlider implements INoUiSlider { + private _isInterval; + private _rangeSliderProviderElem; + protected eventProviderValueChanged: OSFramework.OSUI.GlobalCallbacks.Generic; + protected noUiSliderOpts: NoUiSliderOptions; + protected platformEventValueChange: OSFramework.OSUI.Patterns.RangeSlider.Callbacks.OSOnValueChangeEvent; + protected throttleTimeValue: number; + protected throttleTimer: any; + constructor(uniqueId: string, configs: C); + private _setIsDisabled; + private _setOnValueChangeEvent; + private _setSize; + private _updateRangeValues; + protected createProviderInstance(): void; + protected setHtmlElements(): void; + protected setInitialCSSClasses(): void; + protected setInitialStates(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + build(): void; + changeProperty(propertyName: string, propertyValue: unknown): void; + disable(): void; + dispose(): void; + enable(): void; + getValue(): number | number[]; + registerCallback(eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): void; + setProviderConfigs(newConfigs: NoUiSliderOptions): void; + setRangeIntervalChangeOnDragEnd(): void; + protected abstract prepareConfigs(): void; + } +} +declare namespace Providers.OSUI.RangeSlider.NoUiSlider { + abstract class AbstractNoUiSliderConfig extends OSFramework.OSUI.Patterns.RangeSlider + .AbstractRangeSliderConfig { + private _providerOptions; + protected providerExtendedOptions: NoUiSliderOptions; + rangeSliderMode: OSFramework.OSUI.Patterns.RangeSlider.Enum.Mode; + getPipsConfig(): NoUiSliderPips; + getProviderConfig(): NoUiSliderOptions; + getRangeConfig(): NoUiSliderRange; + getTooltipFormat(): NoUISliderTooltip; + setExtensibilityConfigs(newConfigs: NoUiSliderOptions): void; + } +} +declare namespace Providers.OSUI.RangeSlider.NoUISlider { + interface INoUiSlider extends OSFramework.OSUI.Patterns.RangeSlider.IRangeSlider, OSFramework.OSUI.Interface.IProviderPattern { + } +} +declare namespace Providers.OSUI.RangeSlider.NoUiSlider.Enum { + enum ProviderInfo { + Name = "noUISlider", + Version = "15.7.0" + } + enum NoUISliderLabels { + Handle = "handler", + Lower = "lower-handle", + Single = "handle", + Upper = "upper-handle" + } + enum NoUISliderEvents { + Change = "change", + End = "end", + Start = "start", + Slide = "slide" + } + enum NoUiSliderConnectOptions { + Lower = "lower" + } + enum NoUiSliderModeOptions { + Values = "values" + } +} +declare namespace Providers.OSUI.RangeSlider.NoUiSlider.Factory { + function NewNoUiSlider(rangeSliderId: string, configs: string, mode: OSFramework.OSUI.Patterns.RangeSlider.Enum.Mode): OSFramework.OSUI.Patterns.RangeSlider.IRangeSlider; +} +declare namespace Providers.OSUI.RangeSlider.NoUISlider.Utils { + function NormalizeNoUISliderConfigs(noUiSliderConfigs: FlatpickrOptions): FlatpickrOptions; +} +declare namespace Providers.OSUI.RangeSlider.NoUISlider.IntervalSlider { + class OSUINoUiSliderInterval extends AbstractNoUiSlider { + constructor(uniqueId: string, configs: JSON); + private _valueChangeCallback; + protected prepareConfigs(): void; + protected redraw(): void; + protected setA11YProperties(): void; + protected setCallbacks(): void; + build(): void; + changeProperty(propertyName: string, propertyValue: unknown): void; + resetValue(): void; + setValue(intervalStart: number, intervalEnd: number): void; + } +} +declare namespace Providers.OSUI.RangeSlider.NoUISlider.SliderInterval { + class NoUiSliderIntervalConfig extends Providers.OSUI.RangeSlider.NoUiSlider.AbstractNoUiSliderConfig { + constructor(config: JSON); + getProviderConfig(): NoUiSliderOptions; + } +} +declare namespace Providers.OSUI.RangeSlider.NoUISlider.SingleSlider { + class OSUINoUiSliderSingle extends AbstractNoUiSlider { + constructor(uniqueId: string, configs: JSON); + private _valueChangeCallback; + protected prepareConfigs(): void; + protected redraw(): void; + protected setA11YProperties(): void; + protected setCallbacks(): void; + build(): void; + changeProperty(propertyName: string, propertyValue: unknown): void; + resetValue(): void; + setValue(value: number): void; + } +} +declare namespace Providers.OSUI.RangeSlider.NoUISlider.SliderSingle { + class NoUiSliderSingleConfig extends Providers.OSUI.RangeSlider.NoUiSlider.AbstractNoUiSliderConfig { + constructor(config: JSON); + getProviderConfig(): NoUiSliderOptions; + } +} +declare namespace Providers.OSUI.SharedProviderResources.Flatpickr.Enum { + enum ProviderInfo { + Name = "Flatpickr", + Version = "4.6.13" + } +} +declare namespace Providers.OSUI.SharedProviderResources.Flatpickr { + class UpdatePositionOnScroll { + private _onScreenScrollEvent; + private _picker; + private _requestAnimationOnBodyScroll; + constructor(picker: Datepicker.Flatpickr.IFlatpickr | TimePicker.Flatpickr.IFlatpickrTime | MonthPicker.Flatpickr.IFlatpickrMonth); + private _onScreenScroll; + private _setCallbacks; + private _setUpEvents; + private _unsetCallbacks; + private _unsetEvents; + dispose(): void; + } +} +declare namespace Providers.OSUI.SharedProviderResources.Flatpickr { + class UpdateZindex { + private _patternExceptions; + private _picker; + constructor(picker: Datepicker.Flatpickr.IFlatpickr | TimePicker.Flatpickr.IFlatpickrTime | MonthPicker.Flatpickr.IFlatpickrMonth); + private _updateZindex; + } +} +declare namespace Providers.OSUI.SharedProviderResources.Flatpickr { + function NormalizeFlatpickrConfigs(flatpickrConfigs: FlatpickrOptions): FlatpickrOptions; +} +declare namespace Providers.OSUI.TimePicker.Flatpickr.Enum { + enum Properties { + InitialTime = "InitialTime" + } + enum InputFormats { + Format12h = "h:i K", + Format24h = "H:i" + } +} +declare namespace Providers.OSUI.TimePicker.Flatpickr { + const ErrorCodes: { + FailSetLocale: string; + }; +} +declare namespace Providers.OSUI.TimePicker.Flatpickr { + class OSUIFlatpickrTime extends OSFramework.OSUI.Patterns.TimePicker.AbstractTimePicker implements IFlatpickrTime { + private _bodyOnClickGlobalEvent; + private _bodyScrollCommonBehaviour; + private _flatpickrOpts; + private _zindexCommonBehavior; + protected flatpickrInputElem: HTMLInputElement; + protected onChangeCallbackEvent: OSFramework.OSUI.Patterns.TimePicker.Callbacks.OSOnChangeEvent; + protected timePickerPlatformInputElem: HTMLInputElement; + constructor(uniqueId: string, configs: JSON); + private _getBodyOnClickGlobalEvent; + private _setAttributes; + private _setCalendarCssClasses; + protected createProviderInstance(): void; + protected onClose(): void; + protected onOpen(): void; + protected onTimeSelectedEvent(selectedTime: Array): void; + protected prepareConfigs(): void; + protected setA11YProperties(): void; + protected setCallbacks(): void; + protected setHtmlElements(): void; + protected unsetCallbacks(): void; + protected unsetHtmlElements(): void; + protected updatePlatformInputAttrs(): void; + build(): void; + changeProperty(propertyName: string, propertyValue: unknown): void; + clear(): void; + close(): void; + dispose(): void; + open(): void; + registerCallback(eventName: string, callback: OSFramework.OSUI.GlobalCallbacks.OSGeneric): void; + setEditableInput(isEditable: boolean): void; + setLanguage(value: string): void; + setProviderConfigs(newConfigs: FlatpickrOptions): void; + toggleNativeBehavior(isNative: boolean): void; + updateInitialTime(value: string): void; + updatePrompt(promptMessage: string): void; + } +} +declare namespace Providers.OSUI.TimePicker.Flatpickr { + class FlatpickrTimeConfig extends OSFramework.OSUI.Patterns.TimePicker.AbstractTimePickerConfig { + private _lang; + private _providerOptions; + protected providerExtendedOptions: FlatpickrOptions; + AllowInput: boolean; + DisableMobile: boolean; + OnChangeEventCallback: OSFramework.OSUI.GlobalCallbacks.Generic; + OnCloseEventCallback: OSFramework.OSUI.GlobalCallbacks.Generic; + OnOpenEventCallback: OSFramework.OSUI.GlobalCallbacks.Generic; + ServerDateFormat: string; + constructor(config: JSON); + private _checkAltFormat; + protected _checkLocale(): FlatpickrLocale; + getProviderConfig(): FlatpickrOptions; + setExtensibilityConfigs(newConfigs: FlatpickrOptions): void; + get Lang(): string; + set Lang(value: string); + } +} +declare namespace Providers.OSUI.TimePicker.Flatpickr { + interface IFlatpickrTime extends OSFramework.OSUI.Patterns.TimePicker.ITimePicker, OSFramework.OSUI.Interface.IProviderPattern { + } +} +declare namespace Providers.OSUI.Utils.Enum { + enum ProviderInfo { + Name = "FloatingUI", + Version = "1.2.8" + } +} +declare namespace Providers.OSUI.Utils { + class FloatingUI extends OSFramework.OSUI.Utils.FloatingPosition.FloatingPosition { + constructor(options: FloatingUIConfig); + dispose(): void; + setFloatingPosition(): void; + unsetFloatingPosition(): void; + } +} +declare namespace Providers.OSUI.Utils { + class FloatingUIConfig extends OSFramework.OSUI.Utils.FloatingPosition.FloatingPositionConfig { + } +} diff --git a/dist/ODC.OutSystemsUI.js b/dist/ODC.OutSystemsUI.js new file mode 100644 index 0000000000..0b665d3fe9 --- /dev/null +++ b/dist/ODC.OutSystemsUI.js @@ -0,0 +1,21552 @@ +/*! +OutSystems UI 2.18.2 • ODC Platform +Website: + • https://www.outsystems.com/outsystems-ui +GitHub: + • https://github.com/OutSystems/outsystems-ui +*/ +"use strict"; +var osui; +(function (osui) { + function GetVersion() { + console.warn('osui.GetVersion(), is deprecated. Please use the API `OutSystems.OSUI.GetVersion()`.'); + return OutSystems.OSUI.GetVersion(); + } + osui.GetVersion = GetVersion; + function ToggleClass(el, state, className) { + console.warn('osui.ToggleClass(...), is deprecated. Please use the API `OutSystems.OSUI.Utils.ToggleClass(...)`.'); + OutSystems.OSUI.Utils.ToggleClass(el, state, className); + } + osui.ToggleClass = ToggleClass; + function GetClosest(elem, selector) { + console.warn('osui.GetClosest(...), is deprecated. Please use the API `OutSystems.OSUI.Utils.GetClosest(...)`.'); + return OutSystems.OSUI.Utils.GetClosest(elem, selector); + } + osui.GetClosest = GetClosest; + function FixInputs() { + console.warn('osui.FixInputs(...), is deprecated. Please use the API `OutSystems.OSUI.Utils.FixInputs(...)`.'); + OutSystems.OSUI.Utils.LayoutPrivate.FixInputs(); + } + osui.FixInputs = FixInputs; + function HasMasterDetail() { + console.warn('osui.HasMasterDetail(), is deprecated. Please use the API `OutSystems.OSUI.Utils.HasMasterDetail()`.'); + return OutSystems.OSUI.Utils.HasMasterDetail(); + } + osui.HasMasterDetail = HasMasterDetail; + function HideOnScroll() { + console.warn('osui.HideOnScroll(), is deprecated. Please use the API `OutSystems.OSUI.Utils.HideOnScroll.Init()`.'); + return { + init: () => { + OutSystems.OSUI.Utils.HideOnScroll.Init(); + }, + }; + } + osui.HideOnScroll = HideOnScroll; +})(osui || (osui = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Constants; + (function (Constants) { + Constants.A11YAttributes = { + Aria: { + Atomic: 'aria-atomic', + Busy: 'aria-busy', + Controls: 'aria-controls', + Describedby: 'aria-describedby', + Disabled: 'aria-disabled', + Expanded: 'aria-expanded', + Haspopup: 'aria-haspopup', + Hidden: 'aria-hidden', + Label: 'aria-label', + Labelledby: 'aria-labelledby', + Multiselectable: 'aria-multiselectable', + Selected: 'aria-selected', + ValueMax: 'valuemax', + ValueMin: 'valuemin', + }, + AriaLive: { + AttrName: 'aria-live', + Assertive: 'assertive', + Polite: 'polite', + Off: 'off', + }, + Role: { + Alert: 'alert', + AlertDialog: 'alertdialog', + AttrName: 'role', + Button: 'button', + Complementary: 'complementary', + Listbox: 'listbox', + MenuItem: 'menuitem', + Option: 'option', + Presentation: 'presentation', + Progressbar: 'progressbar', + Region: 'region', + Search: 'search', + Tab: 'tab', + TabList: 'tablist', + TabPanel: 'tabpanel', + Tooltip: 'tooltip', + }, + TabIndex: 'tabindex', + States: { + Empty: '', + False: 'false', + TabIndexHidden: '-1', + TabIndexShow: '0', + True: 'true', + }, + }; + Constants.AccessibilityHideElementClass = 'wcag-hide-text'; + Constants.AllowPropagationAttr = '[data-allow-event-propagation]'; + Constants.Comma = ','; + Constants.Dot = '.'; + Constants.EmptyString = ''; + Constants.EnableLogMessages = false; + Constants.FocusableElems = 'a[href]:not([disabled]),[tabindex="0"], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled])'; + Constants.FocusTrapIgnoreAttr = 'ignore-focus-trap'; + Constants.HasAccessibilityClass = 'has-accessible-features'; + Constants.InvalidNumber = -1; + Constants.IsRTLClass = 'is-rtl'; + Constants.JavaScriptTypes = { + Undefined: 'undefined', + Boolean: 'boolean', + Number: 'number', + String: 'string', + Symbol: 'symbol', + Function: 'function', + Object: 'object', + }; + Constants.JustInputs = 'input:not([type=button]):not([type=checkbox]):not([type=color]):not([type=file]):not([type=hidden]):not([type=image]):not([type=image]):not([type=radio]):not([type=range]):not([type=reset]):not([type=submit]), textarea'; + Constants.Language = { + code: 'en-US', + short: 'en', + }; + Constants.Months = [ + 'January', + 'February', + 'March', + 'April', + 'May', + 'June', + 'July', + 'August', + 'September', + 'October', + 'November', + 'December', + ]; + Constants.NoTransition = 'no-transition'; + Constants.OSUIPlatform = 'ODC'; + Constants.OSUIVersion = '2.18.2'; + Constants.ZeroValue = 0; + })(Constants = OSUI.Constants || (OSUI.Constants = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var ErrorCodes; + (function (ErrorCodes) { + ErrorCodes.AbstractChild = { + FailParentNotFound: 'OSUI-GEN-01001', + }; + ErrorCodes.Accordion = { + FailChildItemClicked: 'OSUI-GEN-07001', + FailSetNewChildItem: 'OSUI-GEN-07002', + FailToSetChildItemAction: 'OSUI-GEN-07003', + FailUnsetNewChildItem: 'OSUI-GEN-07004', + }; + ErrorCodes.Dropdown = { + FailOptionItemClicked: 'OSUI-GEN-02001', + FailOptionItemKeyPressed: 'OSUI-GEN-02002', + FailSetNewOptionItem: 'OSUI-GEN-02003', + FailToSetOptionItemAction: 'OSUI-GEN-02004', + FailUnsetNewOptionItem: 'OSUI-GEN-02005', + HasNoImplementation: { + code: 'OSUI-GEN-02006', + message: 'This method has no implementation on this Dropdown Type.', + }, + }; + ErrorCodes.DropdownServerSide = { + FailOnSetIntersectionObserver: 'OSUI-GEN-0401', + }; + ErrorCodes.RangeSlider = { + FailSetValue: 'OSUI-GEN-04001', + }; + ErrorCodes.SectionIndex = { + FailChildItemClicked: 'OSUI-GEN-05001', + FailSetNewChildItem: 'OSUI-GEN-05002', + FailToSetChildItemAction: 'OSUI-GEN-05003', + FailUnsetNewChildItem: 'OSUI-GEN-05004', + }; + ErrorCodes.SectionIndexItem = { + FailToSetTargetElement: 'OSUI-GEN-06001', + }; + ErrorCodes.Tooltip = { + FailOnSetIntersectionObserver: 'OSUI-GEN-08001', + }; + ErrorCodes.Tabs = { + FailChildItemClicked: 'OSUI-GEN-09001', + FailSetNewChildContentItem: 'OSUI-GEN-09002', + FailSetNewChildHeaderItem: 'OSUI-GEN-09003', + FailToSetChildItemAction: 'OSUI-GEN-09004', + FailUnsetNewChildContentItem: 'OSUI-GEN-09005', + FailUnsetNewChildHeaderItem: 'OSUI-GEN-09006', + }; + ErrorCodes.AbstractParent = { + FailChildNotFound: 'OSUI-GEN-10001', + FailChildsNotFound: 'OSUI-GEN-10002', + FailTypeNotFound: 'OSUI-GEN-10003', + }; + ErrorCodes.AbstractProviderPattern = { + FailProviderEventHandler: 'OSUI-GEN-11001', + FailProviderEventRemoval: { + code: 'OSUI-GEN-11002', + message: 'The event with this eventId does not exist', + }, + FailProviderEventSet: { + code: 'OSUI-GEN-11003', + message: 'The provided eventName does not exist or is not supported by the provider', + }, + }; + ErrorCodes.ProviderEventsManager = { + FailPendingEventRemoval: 'OSUI-GEN-12001', + FailSavingPendingEvent: 'OSUI-GEN-12002', + FailSavedEventRemoval: 'OSUI-GEN-12003', + FailSavingEvent: 'OSUI-GEN-12004', + }; + })(ErrorCodes = OSUI.ErrorCodes || (OSUI.ErrorCodes = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var GlobalEnum; + (function (GlobalEnum) { + let CommonPatternsProperties; + (function (CommonPatternsProperties) { + CommonPatternsProperties["ExtendedClass"] = "ExtendedClass"; + })(CommonPatternsProperties = GlobalEnum.CommonPatternsProperties || (GlobalEnum.CommonPatternsProperties = {})); + let CssClassElements; + (function (CssClassElements) { + CssClassElements["AcessibilityStyleTag"] = "acessibility-style-tag"; + CssClassElements["ActiveScreen"] = "active-screen"; + CssClassElements["AsideExpandable"] = "aside-expandable"; + CssClassElements["Container"] = "screen-container"; + CssClassElements["Content"] = "content"; + CssClassElements["DeprecatedSubmenu"] = "submenu"; + CssClassElements["Footer"] = "footer"; + CssClassElements["Header"] = "header"; + CssClassElements["HeaderHideOnScroll"] = "hide-header-on-scroll"; + CssClassElements["HeaderIsFixed"] = "fixed-header"; + CssClassElements["HeaderIsVisible"] = "header-is--visible"; + CssClassElements["HeaderTopContent"] = "header-top-content"; + CssClassElements["InputNotValid"] = "not-valid"; + CssClassElements["IsTouch"] = "is--touch"; + CssClassElements["Layout"] = "layout"; + CssClassElements["LayoutNative"] = "layout-native"; + CssClassElements["LayoutSide"] = "layout-side"; + CssClassElements["LayoutTop"] = "layout-top"; + CssClassElements["List"] = "list"; + CssClassElements["LoginPassword"] = "login-password"; + CssClassElements["MainContent"] = "main-content"; + CssClassElements["MenuLinks"] = "app-menu-links"; + CssClassElements["Placeholder"] = "ph"; + CssClassElements["Popup"] = "popup-dialog"; + CssClassElements["SkipContent"] = "skip-nav"; + })(CssClassElements = GlobalEnum.CssClassElements || (GlobalEnum.CssClassElements = {})); + let CSSSelectors; + (function (CSSSelectors) { + CSSSelectors["InputFormControl"] = "input.form-control"; + CSSSelectors["IosBounceScroll"] = "ios .ios-bounce:not(.hide-header-on-scroll) .content"; + CSSSelectors["LayoutNativeHeader"] = "layout-native:not(.hide-header-on-scroll) .header"; + })(CSSSelectors = GlobalEnum.CSSSelectors || (GlobalEnum.CSSSelectors = {})); + let CSSVariables; + (function (CSSVariables) { + CSSVariables["FooterHeight"] = "--footer-height"; + CSSVariables["HeaderContentHeight"] = "--header-size-content"; + CSSVariables["OverlayOpacity"] = "--overlay-opacity"; + CSSVariables["ViewportHeight"] = "--viewport-height"; + })(CSSVariables = GlobalEnum.CSSVariables || (GlobalEnum.CSSVariables = {})); + let Position; + (function (Position) { + Position["Bottom"] = "bottom"; + Position["BottomLeft"] = "bottom-left"; + Position["BottomRight"] = "bottom-right"; + Position["Center"] = "center"; + Position["Left"] = "left"; + Position["Right"] = "right"; + Position["Top"] = "top"; + Position["TopLeft"] = "top-left"; + Position["TopRight"] = "top-right"; + })(Position = GlobalEnum.Position || (GlobalEnum.Position = {})); + let FloatingAlignment; + (function (FloatingAlignment) { + FloatingAlignment["Center"] = "center"; + FloatingAlignment["End"] = "end"; + FloatingAlignment["Start"] = "start"; + })(FloatingAlignment = GlobalEnum.FloatingAlignment || (GlobalEnum.FloatingAlignment = {})); + let FloatingPosition; + (function (FloatingPosition) { + FloatingPosition["Auto"] = "auto"; + FloatingPosition["Bottom"] = "bottom"; + FloatingPosition["BottomEnd"] = "bottom-end"; + FloatingPosition["BottomStart"] = "bottom-start"; + FloatingPosition["Center"] = "center"; + FloatingPosition["Left"] = "left"; + FloatingPosition["LeftEnd"] = "left-end"; + FloatingPosition["LeftStart"] = "left-start"; + FloatingPosition["Right"] = "right"; + FloatingPosition["RightEnd"] = "right-end"; + FloatingPosition["RightStart"] = "right-start"; + FloatingPosition["Top"] = "top"; + FloatingPosition["TopEnd"] = "top-end"; + FloatingPosition["TopStart"] = "top-start"; + })(FloatingPosition = GlobalEnum.FloatingPosition || (GlobalEnum.FloatingPosition = {})); + let CssProperties; + (function (CssProperties) { + CssProperties["Auto"] = "auto"; + CssProperties["Initial"] = "initial"; + CssProperties["None"] = "none"; + CssProperties["PaddingTop"] = "padding-top"; + })(CssProperties = GlobalEnum.CssProperties || (GlobalEnum.CssProperties = {})); + let DataBlocksTag; + (function (DataBlocksTag) { + DataBlocksTag["DataBlock"] = "[data-block]"; + DataBlocksTag["Input"] = "[data-input]"; + DataBlocksTag["Label"] = "[data-label]"; + DataBlocksTag["TextArea"] = "[data-textarea]"; + })(DataBlocksTag = GlobalEnum.DataBlocksTag || (GlobalEnum.DataBlocksTag = {})); + let DateFormat; + (function (DateFormat) { + DateFormat["D"] = "D"; + DateFormat["d"] = "d"; + DateFormat["DD"] = "DD"; + DateFormat["DDD"] = "DDD"; + DateFormat["M"] = "M"; + DateFormat["m"] = "m"; + DateFormat["MM"] = "MM"; + DateFormat["MMM"] = "MMM"; + DateFormat["Y"] = "Y"; + DateFormat["y"] = "y"; + DateFormat["YY"] = "YY"; + DateFormat["YYY"] = "YYY"; + DateFormat["YYYY"] = "YYYY"; + })(DateFormat = GlobalEnum.DateFormat || (GlobalEnum.DateFormat = {})); + let Direction; + (function (Direction) { + Direction["Bottom"] = "bottom"; + Direction["Down"] = "down"; + Direction["Left"] = "left"; + Direction["LTR"] = "ltr"; + Direction["None"] = ""; + Direction["Right"] = "right"; + Direction["RTL"] = "rtl"; + Direction["Top"] = "top"; + Direction["TTB"] = "ttb"; + Direction["Up"] = "up"; + })(Direction = GlobalEnum.Direction || (GlobalEnum.Direction = {})); + let ScrollBehavior; + (function (ScrollBehavior) { + ScrollBehavior["Auto"] = "auto"; + ScrollBehavior["Smooth"] = "smooth"; + })(ScrollBehavior = GlobalEnum.ScrollBehavior || (GlobalEnum.ScrollBehavior = {})); + let HTMLAttributes; + (function (HTMLAttributes) { + HTMLAttributes["AllowEventPropagation"] = "[data-allow-event-propagation=true], [data-allow-event-propagation=True]"; + HTMLAttributes["Class"] = "class"; + HTMLAttributes["DataInput"] = "data-input"; + HTMLAttributes["Disabled"] = "disabled"; + HTMLAttributes["Href"] = "href"; + HTMLAttributes["Id"] = "id"; + HTMLAttributes["Name"] = "name"; + HTMLAttributes["StatusBar"] = "data-status-bar-height"; + HTMLAttributes["Style"] = "style"; + HTMLAttributes["Type"] = "type"; + HTMLAttributes["Value"] = "value"; + })(HTMLAttributes = GlobalEnum.HTMLAttributes || (GlobalEnum.HTMLAttributes = {})); + let HTMLElement; + (function (HTMLElement) { + HTMLElement["Body"] = "body"; + HTMLElement["Button"] = "button"; + HTMLElement["Div"] = "div"; + HTMLElement["FieldSet"] = "fieldset"; + HTMLElement["Input"] = "input"; + HTMLElement["Link"] = "a"; + HTMLElement["Radio"] = "radio"; + HTMLElement["Span"] = "span"; + })(HTMLElement = GlobalEnum.HTMLElement || (GlobalEnum.HTMLElement = {})); + let HTMLEvent; + (function (HTMLEvent) { + HTMLEvent["AnimationEnd"] = "animationend"; + HTMLEvent["AnimationStart"] = "animationstart"; + HTMLEvent["Blur"] = "blur"; + HTMLEvent["Click"] = "click"; + HTMLEvent["Focus"] = "focus"; + HTMLEvent["keyDown"] = "keydown"; + HTMLEvent["MouseDown"] = "mousedown"; + HTMLEvent["MouseEnter"] = "mouseenter"; + HTMLEvent["MouseLeave"] = "mouseleave"; + HTMLEvent["MouseUp"] = "mouseup"; + HTMLEvent["OrientationChange"] = "orientationchange"; + HTMLEvent["Prefix"] = "on"; + HTMLEvent["Resize"] = "resize"; + HTMLEvent["Scroll"] = "scroll"; + HTMLEvent["ScrollEnd"] = "scrollend"; + HTMLEvent["TouchEnd"] = "touchend"; + HTMLEvent["TouchMove"] = "touchmove"; + HTMLEvent["TouchStart"] = "touchstart"; + HTMLEvent["TransitionEnd"] = "transitionend"; + HTMLEvent["Message"] = "message"; + })(HTMLEvent = GlobalEnum.HTMLEvent || (GlobalEnum.HTMLEvent = {})); + let CustomEvent; + (function (CustomEvent) { + CustomEvent["BalloonOnToggle"] = "balloon.onToggle"; + })(CustomEvent = GlobalEnum.CustomEvent || (GlobalEnum.CustomEvent = {})); + let InlineStyle; + (function (InlineStyle) { + InlineStyle["Display"] = "display"; + InlineStyle["Height"] = "height"; + InlineStyle["Left"] = "left"; + InlineStyle["Opacity"] = "opacity"; + InlineStyle["PointerEvents"] = "pointerEvents"; + InlineStyle["Top"] = "top"; + InlineStyle["Transform"] = "transform"; + InlineStyle["Width"] = "width"; + })(InlineStyle = GlobalEnum.InlineStyle || (GlobalEnum.InlineStyle = {})); + GlobalEnum.InlineStyleValue = { + Display: { + block: 'block', + inline: 'inline', + none: 'none', + unset: '', + }, + }; + let Keycodes; + (function (Keycodes) { + Keycodes["ArrowDown"] = "ArrowDown"; + Keycodes["ArrowLeft"] = "ArrowLeft"; + Keycodes["ArrowRight"] = "ArrowRight"; + Keycodes["ArrowUp"] = "ArrowUp"; + Keycodes["End"] = "End"; + Keycodes["Enter"] = "Enter"; + Keycodes["Escape"] = "Escape"; + Keycodes["Home"] = "Home"; + Keycodes["Shift"] = "Shift"; + Keycodes["ShiftTab"] = "ShiftTab"; + Keycodes["Space"] = " "; + Keycodes["Tab"] = "Tab"; + })(Keycodes = GlobalEnum.Keycodes || (GlobalEnum.Keycodes = {})); + let KeyframesEffectOptions; + (function (KeyframesEffectOptions) { + KeyframesEffectOptions["EasingLinear"] = "linear"; + KeyframesEffectOptions["FillBoth"] = "both"; + })(KeyframesEffectOptions = GlobalEnum.KeyframesEffectOptions || (GlobalEnum.KeyframesEffectOptions = {})); + let MobileOS; + (function (MobileOS) { + MobileOS["Android"] = "android"; + MobileOS["IOS"] = "ios"; + MobileOS["MacOS"] = "osx"; + MobileOS["Unknown"] = "unknown"; + MobileOS["Windows"] = "windows"; + })(MobileOS = GlobalEnum.MobileOS || (GlobalEnum.MobileOS = {})); + let Orientation; + (function (Orientation) { + Orientation["Horizontal"] = "horizontal"; + Orientation["None"] = ""; + Orientation["Vertical"] = "vertical"; + })(Orientation = GlobalEnum.Orientation || (GlobalEnum.Orientation = {})); + let PatternName; + (function (PatternName) { + PatternName["Accordion"] = "Accordion"; + PatternName["AccordionItem"] = "Accordion Item"; + PatternName["AnimatedLabel"] = "Animated Label"; + PatternName["Balloon"] = "Balloon"; + PatternName["BottomSheet"] = "Bottom Sheet"; + PatternName["ButtonLoading"] = "ButtonLoading"; + PatternName["Carousel"] = "Carousel"; + PatternName["Datepicker"] = "Datepicker"; + PatternName["Dropdown"] = "Dropdown"; + PatternName["DropdownServerSideItem"] = "DropdownServerSideItem"; + PatternName["FlipContent"] = "Flip Content"; + PatternName["FloatingActions"] = "Floating Actions"; + PatternName["FloatingActionsItem"] = "Floating Actions Item"; + PatternName["Gallery"] = "Gallery"; + PatternName["InlineSvg"] = "InlineSVG"; + PatternName["MonthPicker"] = "MonthPicker"; + PatternName["Notification"] = "Notification"; + PatternName["OverflowMenu"] = "OverflowMenu"; + PatternName["ProgressBar"] = "Progress Bar"; + PatternName["ProgressCircle"] = "Progress Circle"; + PatternName["RangeSlider"] = "Range Slider"; + PatternName["RangeSliderInterval"] = "Range Slider Interval"; + PatternName["Rating"] = "Rating"; + PatternName["Search"] = "Search"; + PatternName["SectionIndex"] = "Section Index"; + PatternName["SectionIndexItem"] = "Section Index Item"; + PatternName["Sidebar"] = "Sidebar"; + PatternName["Submenu"] = "Submenu"; + PatternName["SwipeEvents"] = "SwipeEvents"; + PatternName["Tabs"] = "Tabs"; + PatternName["TabsContentItem"] = "TabsContentItem"; + PatternName["TabsHeaderItem"] = "TabsHeaderItem"; + PatternName["Timepicker"] = "Timepicker"; + PatternName["Tooltip"] = "Tooltip"; + PatternName["TouchEvents"] = "TouchEvents"; + PatternName["Video"] = "Video"; + })(PatternName = GlobalEnum.PatternName || (GlobalEnum.PatternName = {})); + let ShapeTypes; + (function (ShapeTypes) { + ShapeTypes["Rounded"] = "rounded"; + ShapeTypes["Sharp"] = "none"; + ShapeTypes["SoftRounded"] = "soft"; + })(ShapeTypes = GlobalEnum.ShapeTypes || (GlobalEnum.ShapeTypes = {})); + let InputClassTypes; + (function (InputClassTypes) { + InputClassTypes["InputLarge"] = "input-large"; + InputClassTypes["InputSmall"] = "input-small"; + })(InputClassTypes = GlobalEnum.InputClassTypes || (GlobalEnum.InputClassTypes = {})); + let InputTypeAttr; + (function (InputTypeAttr) { + InputTypeAttr["Date"] = "date"; + InputTypeAttr["DateTime"] = "date-time-edit"; + InputTypeAttr["Password"] = "password"; + InputTypeAttr["Text"] = "text"; + InputTypeAttr["Time"] = "time"; + })(InputTypeAttr = GlobalEnum.InputTypeAttr || (GlobalEnum.InputTypeAttr = {})); + let Units; + (function (Units) { + Units["Percentage"] = "%"; + Units["Pixel"] = "px"; + Units["Em"] = "em"; + })(Units = GlobalEnum.Units || (GlobalEnum.Units = {})); + let Browser; + (function (Browser) { + Browser["chrome"] = "chrome"; + Browser["edge"] = "edge"; + Browser["firefox"] = "firefox"; + Browser["ie"] = "ie"; + Browser["kindle"] = "kindle"; + Browser["miui"] = "miui"; + Browser["opera"] = "opera"; + Browser["safari"] = "safari"; + Browser["samsung"] = "samsung"; + Browser["uc"] = "uc"; + Browser["unknown"] = "unknown"; + Browser["yandex"] = "yandex"; + })(Browser = GlobalEnum.Browser || (GlobalEnum.Browser = {})); + let DeviceOrientation; + (function (DeviceOrientation) { + DeviceOrientation["landscape"] = "landscape"; + DeviceOrientation["portrait"] = "portrait"; + DeviceOrientation["unknown"] = "unknown"; + })(DeviceOrientation = GlobalEnum.DeviceOrientation || (GlobalEnum.DeviceOrientation = {})); + let DeviceType; + (function (DeviceType) { + DeviceType["desktop"] = "desktop"; + DeviceType["phone"] = "phone"; + DeviceType["tablet"] = "tablet"; + })(DeviceType = GlobalEnum.DeviceType || (GlobalEnum.DeviceType = {})); + let NotchClasses; + (function (NotchClasses) { + NotchClasses["IPhoneX"] = "iphonex"; + })(NotchClasses = GlobalEnum.NotchClasses || (GlobalEnum.NotchClasses = {})); + let FocusTrapClasses; + (function (FocusTrapClasses) { + FocusTrapClasses["FocusTrapBottom"] = "focus-trap-bottom"; + FocusTrapClasses["FocusTrapTop"] = "focus-trap-top"; + })(FocusTrapClasses = GlobalEnum.FocusTrapClasses || (GlobalEnum.FocusTrapClasses = {})); + let WarningMessages; + (function (WarningMessages) { + WarningMessages["FeatureNotImplemented"] = "This feature is not yet implemented!"; + WarningMessages["MethodNotImplemented"] = "This Method has no implementation on the context of this pattern."; + })(WarningMessages = GlobalEnum.WarningMessages || (GlobalEnum.WarningMessages = {})); + let NullValues; + (function (NullValues) { + NullValues["Time"] = "00:00:00"; + })(NullValues = GlobalEnum.NullValues || (GlobalEnum.NullValues = {})); + let ProviderEvents; + (function (ProviderEvents) { + ProviderEvents["Initialized"] = "Initialized"; + ProviderEvents["OnProviderConfigsApplied"] = "OnProviderConfigsApplied"; + })(ProviderEvents = GlobalEnum.ProviderEvents || (GlobalEnum.ProviderEvents = {})); + let SVGHelperConstants; + (function (SVGHelperConstants) { + SVGHelperConstants["DOMType"] = "image/svg+xml"; + SVGHelperConstants["ParserError"] = "parsererror"; + SVGHelperConstants["SVG"] = "svg"; + })(SVGHelperConstants = GlobalEnum.SVGHelperConstants || (GlobalEnum.SVGHelperConstants = {})); + let Time; + (function (Time) { + Time[Time["HourInSeconds"] = 3600] = "HourInSeconds"; + Time[Time["MinuteInSeconds"] = 60] = "MinuteInSeconds"; + })(Time = GlobalEnum.Time || (GlobalEnum.Time = {})); + })(GlobalEnum = OSUI.GlobalEnum || (OSUI.GlobalEnum = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Behaviors; + (function (Behaviors) { + class DragParams { + constructor() { + this.DragOrientation = OSUI.GlobalEnum.Orientation.None; + this.ExpectedDirection = OSUI.GlobalEnum.Direction.Right; + this.InvalidDrag = false; + this.IsMoving = false; + this.IsOpen = false; + this.IsReadyToTriggerCallback = false; + this.LastX = 0; + this.LastY = 0; + this.MoveX = 0; + this.MoveY = 0; + this.Size = undefined; + this.VerticalDrag = false; + } + } + class AnimateOnDrag { + constructor(target) { + this._swipeTriggerSpeed = 0.3; + this._targetElement = target; + this._dragParams = new DragParams(); + } + _checkIsDraggingInsideBounds(currentDrag) { + const move = this._dragParams.VerticalDrag ? this._dragParams.MoveY : this._dragParams.MoveX; + const last = this._dragParams.VerticalDrag ? this._dragParams.LastY : this._dragParams.LastX; + const isLeftOrUp = this._dragParams.ExpectedDirection === OSUI.GlobalEnum.Direction.Left || + this._dragParams.ExpectedDirection === OSUI.GlobalEnum.Direction.Up; + const baseThreshold = move + (currentDrag - last); + return isLeftOrUp + ? baseThreshold > -parseInt(this._dragParams.Size) && move + (currentDrag - last) <= 0 + : baseThreshold < parseInt(this._dragParams.Size) && move + (currentDrag - last) >= 0; + } + _updateLastPositions(x, y) { + this._dragParams.LastX = x; + this._dragParams.LastY = y; + } + _updateUI() { + if (this._dragParams.IsMoving) { + if (this._dragParams.VerticalDrag) { + this._targetElement.style.transform = `translateY(${this._dragParams.MoveY}px)`; + } + else { + this._targetElement.style.transform = `translateX(${this._dragParams.MoveX}px)`; + } + requestAnimationFrame(this._updateUI.bind(this)); + } + } + get dragParams() { + return this._dragParams; + } + onDragEnd(offsetX, offsetY, timeTaken, callback, springProperties) { + this._dragParams.IsMoving = false; + OSUI.Helper.Dom.Styles.RemoveClass(this._targetElement, OSUI.Constants.NoTransition); + if ((offsetX === 0 && offsetY === 0) || this._dragParams.InvalidDrag) { + this._targetElement.style.transform = ''; + return; + } + const checkSwipeSpeed = (this._dragParams.VerticalDrag ? Math.abs(offsetY) : Math.abs(offsetX)) / timeTaken > + this._swipeTriggerSpeed; + const sizeThreshold = -parseInt(this._dragParams.Size) / 2; + const axisToValidate = this._dragParams.VerticalDrag ? this._dragParams.MoveY : this._dragParams.MoveX; + const swipedHalfWidth = axisToValidate < sizeThreshold; + this._dragParams.IsReadyToTriggerCallback = swipedHalfWidth || checkSwipeSpeed; + if (this._dragParams.IsReadyToTriggerCallback) { + callback(); + } + else if ((springProperties === null || springProperties === void 0 ? void 0 : springProperties.addSpringAnimation) && this._dragParams.IsOpen) { + this._dragParams.SpringAnimation = SpringAnimation.CreateSpringAnimation(this._targetElement, offsetX, offsetY, this._dragParams.VerticalDrag ? OSUI.GlobalEnum.Orientation.Vertical : OSUI.GlobalEnum.Orientation.Horizontal, springProperties.springAnimationProperties); + this._dragParams.SpringAnimation.play(); + } + this._targetElement.style.transform = ''; + } + onDragMove(offsetX, offsetY, currentX, currentY, event) { + let _dragDirection; + if (!this._dragParams.VerticalDrag) { + _dragDirection = offsetX > 0 ? OSUI.GlobalEnum.Direction.Right : OSUI.GlobalEnum.Direction.Left; + } + else { + _dragDirection = offsetY < 0 ? OSUI.GlobalEnum.Direction.Up : OSUI.GlobalEnum.Direction.Down; + } + this._dragParams.InvalidDrag = + this._dragParams.IsOpen && _dragDirection !== this._dragParams.ExpectedDirection; + if (this._dragParams.InvalidDrag) { + this._updateLastPositions(currentX, currentY); + return; + } + if (this._dragParams.DragOrientation === '') { + const isHorizontal = Math.abs(offsetX) >= Math.abs(offsetY); + this._dragParams.DragOrientation = isHorizontal + ? OSUI.GlobalEnum.Orientation.Horizontal + : OSUI.GlobalEnum.Orientation.Vertical; + requestAnimationFrame(this._updateUI.bind(this)); + } + if (this._dragParams.VerticalDrag === false && + this._dragParams.DragOrientation === OSUI.GlobalEnum.Orientation.Vertical) { + this._updateLastPositions(currentX, currentY); + return; + } + event.preventDefault(); + const IsDraggingInsideBounds = this._checkIsDraggingInsideBounds(this._dragParams.VerticalDrag ? currentY : currentX); + if (IsDraggingInsideBounds) { + if (this._dragParams.VerticalDrag) { + this._dragParams.MoveY = this._dragParams.MoveY + (currentY - this._dragParams.LastY); + } + else { + this._dragParams.MoveX = this._dragParams.MoveX + (currentX - this._dragParams.LastX); + } + } + this._updateLastPositions(currentX, currentY); + } + onDragStart(verticalDrag, expectedDirection, currentX, currentY, isOpen, size) { + this._dragParams.DragOrientation = OSUI.GlobalEnum.Orientation.None; + this._dragParams.ExpectedDirection = expectedDirection; + this._dragParams.IsMoving = true; + this._dragParams.IsOpen = isOpen; + this._dragParams.LastX = currentX; + this._dragParams.LastY = currentY; + this._dragParams.Size = size; + this._dragParams.VerticalDrag = verticalDrag; + if (this._dragParams.SpringAnimation) { + this._dragParams.SpringAnimation.cancel(); + } + if (this._dragParams.IsOpen) { + this._dragParams.MoveX = 0; + this._dragParams.MoveY = 0; + } + else if (this._dragParams.ExpectedDirection === OSUI.GlobalEnum.Direction.Left) { + this._dragParams.MoveX = -parseInt(this._dragParams.Size); + this._dragParams.MoveY = -parseInt(this._dragParams.Size); + } + else { + this._dragParams.MoveX = parseInt(this._dragParams.Size); + this._dragParams.MoveY = parseInt(this._dragParams.Size); + } + OSUI.Helper.Dom.Styles.AddClass(this._targetElement, OSUI.Constants.NoTransition); + } + } + Behaviors.AnimateOnDrag = AnimateOnDrag; + class OverlayTransitionOnDrag { + static Set(target, currentDragValue, direction, size) { + const isLeftOrUp = direction === OSUI.GlobalEnum.Direction.Left || direction === OSUI.GlobalEnum.Direction.Up; + const currentOpacity = parseInt(target.style.getPropertyValue(OSUI.GlobalEnum.CSSVariables.OverlayOpacity)); + const percentageBeforeDif = (Math.abs(currentDragValue) * 100) / parseInt(size); + const percentage = isLeftOrUp ? 0 + percentageBeforeDif : 100 - percentageBeforeDif; + const newOpacity = Math.floor(percentage) / 100; + if (currentOpacity !== newOpacity && newOpacity % 1 !== 0) { + OSUI.Helper.Dom.Styles.SetStyleAttribute(target, OSUI.GlobalEnum.CSSVariables.OverlayOpacity, newOpacity); + } + } + static UnSet(target) { + OSUI.Helper.Dom.Styles.SetStyleAttribute(target, OSUI.GlobalEnum.CSSVariables.OverlayOpacity, 0); + } + } + Behaviors.OverlayTransitionOnDrag = OverlayTransitionOnDrag; + class SpringAnimation { + static _createSpringEffect(dx, dy, orientation, springProperties) { + if (dx === 0 && dy === 0) + return { positions: [], frames: 0 }; + const tension = springProperties.tension; + const friction = springProperties.friction; + const mass = springProperties.mass; + const spring_length = 0; + const k = -tension; + const d = -friction; + const frame_rate = 1 / 60; + const displacement_threshold = 3; + const isVertical = orientation === OSUI.GlobalEnum.Orientation.Vertical; + let velocity = 0; + const positions = []; + let frames = 0; + let frames_below_threshold = 0; + let largest_displ; + let directionDisplacement = isVertical ? dy : dx; + for (let step = 0; step <= 1000; step += 1) { + const Fspring = k * (directionDisplacement - spring_length); + const Fdamping = d * velocity; + const accel = (Fspring + Fdamping) / mass; + velocity += accel * frame_rate; + directionDisplacement += velocity * frame_rate; + positions.push({ + transform: isVertical + ? `translateY(${directionDisplacement}px)` + : `translateX(${directionDisplacement}px)`, + }); + largest_displ = + largest_displ < 0 + ? Math.max(largest_displ || -Infinity, Math.sqrt(directionDisplacement ** 2)) + : Math.min(largest_displ || Infinity, Math.sqrt(directionDisplacement ** 2)); + if (Math.abs(largest_displ) < displacement_threshold) { + frames_below_threshold += 1; + } + else { + frames_below_threshold = 0; + } + if (frames_below_threshold >= 60) { + frames = step; + break; + } + } + if (frames === 0) { + frames = 1000; + } + return { positions, frames }; + } + static CreateSpringAnimation(target, offsetX, offsetY, orientation, springProperties) { + const { positions, frames } = this._createSpringEffect(offsetX, offsetY, orientation, springProperties); + const keyframes = new KeyframeEffect(target, positions, { + duration: (frames / 60) * 1000, + fill: OSUI.GlobalEnum.KeyframesEffectOptions.FillBoth, + easing: OSUI.GlobalEnum.KeyframesEffectOptions.EasingLinear, + iterations: 1, + }); + return new Animation(keyframes); + } + } + Behaviors.SpringAnimation = SpringAnimation; + })(Behaviors = OSUI.Behaviors || (OSUI.Behaviors = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Behaviors; + (function (Behaviors) { + class FocusManager { + constructor() { + } + setFocusToStoredElement() { + if (this._lastFocusedElem === undefined || + !document.body.contains(this._lastFocusedElem) || + this._lastFocusedElem.hasAttribute(OSUI.GlobalEnum.HTMLAttributes.Disabled) || + this._lastFocusedElem.tabIndex < 0) { + document.querySelector(OSFramework.OSUI.Constants.FocusableElems).focus(); + } + else { + this._lastFocusedElem.focus(); + } + } + storeLastFocusedElement() { + if (document.activeElement !== undefined && + document.activeElement !== null && + document.activeElement !== document.body) + this._lastFocusedElem = document.activeElement; + } + } + Behaviors.FocusManager = FocusManager; + })(Behaviors = OSUI.Behaviors || (OSUI.Behaviors = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Behaviors; + (function (Behaviors) { + class FocusTrap { + constructor(opts) { + this._hasBeenPassThoughFirstOne = false; + this._targetElement = opts.focusTargetElement; + this._focusBottomCallback = opts.focusBottomCallback; + this._focusTopCallback = opts.focusTopCallback; + this._buildPredictableElements(); + } + _buildPredictableElements() { + this._predictableTopElement = document.createElement(OSUI.GlobalEnum.HTMLElement.Span); + this._predictableBottomElement = document.createElement(OSUI.GlobalEnum.HTMLElement.Span); + this._targetElement.prepend(this._predictableTopElement); + this._targetElement.append(this._predictableBottomElement); + this._setFocusableProperties(); + this._setFocusableElements(); + } + _focusBottomHandler() { + this._focusHandler(this._predictableBottomElement, this._focusBottomCallback); + } + _focusHandler(focusableElement, callback) { + this._setFocusableElements(); + if (callback === undefined) { + if (focusableElement === this._predictableTopElement && this._hasBeenPassThoughFirstOne === false) { + this._firstFocusableElement.focus(); + this._hasBeenPassThoughFirstOne = true; + } + else { + this._lastFocusableElement.focus(); + } + if (focusableElement === this._predictableBottomElement) { + this._firstFocusableElement.focus(); + this._hasBeenPassThoughFirstOne = true; + } + } + else { + callback(); + } + } + _focusTopHandler() { + this._focusHandler(this._predictableTopElement, this._focusTopCallback); + } + _removeEventListeners() { + this._predictableBottomElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.Focus, this._focusBottomHandler.bind(this)); + this._predictableTopElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.Focus, this._focusTopHandler.bind(this)); + } + _setEventListeners() { + this._predictableBottomElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.Focus, this._focusBottomHandler.bind(this)); + this._predictableTopElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.Focus, this._focusTopHandler.bind(this)); + } + _setFocusableElements() { + this._focusableElements = OSUI.Helper.Dom.GetFocusableElements(this._targetElement); + for (const predictedElement of this._focusableElements.filter((item) => item === this._predictableTopElement || item === this._predictableBottomElement)) { + this._focusableElements.splice(this._focusableElements.indexOf(predictedElement), 1); + } + this._firstFocusableElement = this._focusableElements[0]; + this._lastFocusableElement = this._focusableElements[this._focusableElements.length - 1]; + } + _setFocusableProperties() { + OSUI.Helper.Dom.Styles.AddClass(this._predictableBottomElement, OSUI.GlobalEnum.FocusTrapClasses.FocusTrapBottom); + OSUI.Helper.Dom.Styles.AddClass(this._predictableBottomElement, OSUI.Constants.AccessibilityHideElementClass); + OSUI.Helper.Dom.Styles.AddClass(this._predictableTopElement, OSUI.GlobalEnum.FocusTrapClasses.FocusTrapTop); + OSUI.Helper.Dom.Styles.AddClass(this._predictableTopElement, OSUI.Constants.AccessibilityHideElementClass); + this.disableForA11y(); + this._setEventListeners(); + } + _unsetCallbacks() { + this._focusBottomCallback = undefined; + this._focusBottomHandler = undefined; + this._focusTopCallback = undefined; + this._focusTopHandler = undefined; + } + disableForA11y() { + this._hasBeenPassThoughFirstOne = false; + OSUI.Helper.A11Y.TabIndexFalse(this._predictableBottomElement); + OSUI.Helper.A11Y.TabIndexFalse(this._predictableTopElement); + OSUI.Helper.A11Y.AriaHiddenTrue(this._predictableBottomElement); + OSUI.Helper.A11Y.AriaHiddenTrue(this._predictableTopElement); + } + dispose() { + this._removeEventListeners(); + this._unsetCallbacks(); + this._predictableTopElement.remove(); + this._predictableBottomElement.remove(); + } + enableForA11y() { + OSUI.Helper.A11Y.TabIndexTrue(this._predictableBottomElement); + OSUI.Helper.A11Y.TabIndexTrue(this._predictableTopElement); + OSUI.Helper.A11Y.AriaHiddenFalse(this._predictableBottomElement); + OSUI.Helper.A11Y.AriaHiddenFalse(this._predictableTopElement); + this._setFocusableElements(); + } + get bottomElement() { + return this._predictableBottomElement; + } + get topElement() { + return this._predictableTopElement; + } + get focusableElements() { + return this._focusableElements; + } + } + Behaviors.FocusTrap = FocusTrap; + })(Behaviors = OSUI.Behaviors || (OSUI.Behaviors = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Behaviors; + (function (Behaviors) { + const _controllScroll = { + yValue: 0, + yDirection: '', + }; + function Scroll(element, offSet, isSmooth = true) { + if (element) { + const scrollOpts = Object.assign(Object.assign({}, offSet), { behavior: isSmooth ? OSUI.GlobalEnum.ScrollBehavior.Smooth : OSUI.GlobalEnum.ScrollBehavior.Auto }); + element.scroll(scrollOpts); + } + } + Behaviors.Scroll = Scroll; + function ScrollVerticalPosition(scrollableElement = OSUI.Helper.Dom.ClassSelector(document.body, OSUI.GlobalEnum.CssClassElements.ActiveScreen)) { + const winScroll = scrollableElement.scrollTop; + const height = scrollableElement.scrollHeight - scrollableElement.clientHeight; + const scrolled = Math.round((winScroll / height) * 100); + const scrolledPx = (scrollableElement.clientHeight * scrolled) / 100; + if (_controllScroll.yValue < winScroll) { + _controllScroll.yDirection = OSUI.GlobalEnum.Direction.Bottom; + } + else if (_controllScroll.yValue > winScroll) { + _controllScroll.yDirection = OSUI.GlobalEnum.Direction.Top; + } + _controllScroll.yValue = winScroll; + return { + direction: _controllScroll.yDirection, + percentageInView: scrolled, + pixelInView: scrolledPx, + scrollableHeight: scrollableElement.scrollHeight, + value: scrollableElement.scrollTop, + viewHeight: scrollableElement.clientHeight, + }; + } + Behaviors.ScrollVerticalPosition = ScrollVerticalPosition; + })(Behaviors = OSUI.Behaviors || (OSUI.Behaviors = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Event; + (function (Event) { + var DOMEvents; + (function (DOMEvents) { + class AbstractEvent { + constructor() { + this._handlers = []; + } + get handlers() { + return this._handlers; + } + addHandler(handler) { + this._handlers.push(handler); + } + hasHandlers() { + return this._handlers.length > 0; + } + removeHandler(handler) { + const index = this._handlers.findIndex((hd) => { + return hd === handler; + }); + if (index !== -1) { + this._handlers.splice(index, 1); + } + if (this.hasHandlers() === false) { + this.removeEvent(); + } + } + trigger(data, ...args) { + this._handlers.slice(0).forEach((h) => OSUI.Helper.AsyncInvocation(h, data, ...args)); + } + } + DOMEvents.AbstractEvent = AbstractEvent; + })(DOMEvents = Event.DOMEvents || (Event.DOMEvents = {})); + })(Event = OSUI.Event || (OSUI.Event = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Event; + (function (Event) { + var DOMEvents; + (function (DOMEvents) { + class AbstractEventsManager { + constructor() { + this._events = new Map(); + } + addHandler(eventType, handler) { + if (this._events && this._events.has(eventType)) { + this._events.get(eventType).addHandler(handler); + } + else { + const ev = this.getInstanceOfEventType(eventType); + if (ev !== undefined) { + ev.addHandler(handler); + this._events.set(eventType, ev); + } + } + } + hasHandlers(eventType) { + let returnValue = false; + if (this._events.has(eventType)) { + const event = this._events.get(eventType); + returnValue = event.hasHandlers(); + } + return returnValue; + } + removeHandler(eventType, handler) { + if (this._events.has(eventType)) { + const event = this._events.get(eventType); + event.removeHandler(handler); + if (event.handlers.length === 0) { + this._events.delete(eventType); + } + } + } + trigger(eventType, data, ...args) { + if (this._events.has(eventType)) { + this._events.get(eventType).trigger(data, args); + } + } + get events() { + return this._events; + } + } + DOMEvents.AbstractEventsManager = AbstractEventsManager; + })(DOMEvents = Event.DOMEvents || (Event.DOMEvents = {})); + })(Event = OSUI.Event || (OSUI.Event = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Event; + (function (Event) { + var DOMEvents; + (function (DOMEvents) { + var Listeners; + (function (Listeners) { + class AbstractListener extends DOMEvents.AbstractEvent { + constructor(eventTarget, eventType, isCustomEvent = false) { + super(); + this.useCapture = false; + this._eventTarget = eventTarget; + this._eventType = eventType; + this._eventName = isCustomEvent === false ? OSUI.GlobalEnum.HTMLEvent.Prefix + this._eventType : this._eventType; + if (isCustomEvent) { + window[this._eventName] = this._eventName; + } + OSUI.Helper.AsyncInvocation(this.addEvent.bind(this)); + } + addEvent() { + if (this._eventName in window || window[this._eventName] !== undefined) { + this._eventTarget.addEventListener(this._eventType, this.eventCallback); + } + } + removeEvent() { + if (this._eventName in window || window[this._eventName] !== undefined) { + this._eventTarget.removeEventListener(this._eventType, this.eventCallback); + } + } + } + Listeners.AbstractListener = AbstractListener; + })(Listeners = DOMEvents.Listeners || (DOMEvents.Listeners = {})); + })(DOMEvents = Event.DOMEvents || (Event.DOMEvents = {})); + })(Event = OSUI.Event || (OSUI.Event = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Event; + (function (Event) { + var DOMEvents; + (function (DOMEvents) { + var Listeners; + (function (Listeners) { + class BalloonOnToggle extends Listeners.AbstractListener { + constructor() { + super(document, OSUI.GlobalEnum.CustomEvent.BalloonOnToggle, true); + this.eventCallback = this._onToggleTrigger.bind(this); + } + _onToggleTrigger(evt) { + this.trigger(OSUI.GlobalEnum.CustomEvent.BalloonOnToggle, evt); + } + } + Listeners.BalloonOnToggle = BalloonOnToggle; + })(Listeners = DOMEvents.Listeners || (DOMEvents.Listeners = {})); + })(DOMEvents = Event.DOMEvents || (Event.DOMEvents = {})); + })(Event = OSUI.Event || (OSUI.Event = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Event; + (function (Event) { + var DOMEvents; + (function (DOMEvents) { + var Listeners; + (function (Listeners) { + class BodyOnClick extends Listeners.AbstractListener { + constructor() { + super(document.body, OSUI.GlobalEnum.HTMLEvent.Click); + this._enableBodyClick = true; + this.eventCallback = this._bodyTrigger.bind(this); + } + _bodyTrigger(evt) { + if (this.getBodyClickStatus) { + this.trigger(OSUI.GlobalEnum.HTMLEvent.Click, evt); + } + } + disableBodyClickEvent() { + this._enableBodyClick = false; + } + enableBodyClickEvent() { + this._enableBodyClick = true; + } + get getBodyClickStatus() { + return this._enableBodyClick; + } + } + Listeners.BodyOnClick = BodyOnClick; + })(Listeners = DOMEvents.Listeners || (DOMEvents.Listeners = {})); + })(DOMEvents = Event.DOMEvents || (Event.DOMEvents = {})); + })(Event = OSUI.Event || (OSUI.Event = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Event; + (function (Event) { + var DOMEvents; + (function (DOMEvents) { + var Listeners; + (function (Listeners) { + class BodyOnMouseDown extends Listeners.AbstractListener { + constructor() { + super(document.body, OSUI.GlobalEnum.HTMLEvent.MouseDown); + this.eventCallback = this._bodyTrigger.bind(this); + } + _bodyTrigger(evt) { + this.trigger(OSUI.GlobalEnum.HTMLEvent.MouseDown, evt); + } + } + Listeners.BodyOnMouseDown = BodyOnMouseDown; + })(Listeners = DOMEvents.Listeners || (DOMEvents.Listeners = {})); + })(DOMEvents = Event.DOMEvents || (Event.DOMEvents = {})); + })(Event = OSUI.Event || (OSUI.Event = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Event; + (function (Event) { + var DOMEvents; + (function (DOMEvents) { + var Listeners; + (function (Listeners) { + let Type; + (function (Type) { + Type["BalloonOnToggle"] = "balloon.onToggle"; + Type["BodyOnClick"] = "body.onclick"; + Type["BodyOnMouseDown"] = "body.mousedown"; + Type["OrientationChange"] = "window.onorientationchange"; + Type["ScreenOnScroll"] = "screen.onscroll"; + Type["WindowResize"] = "window.onresize"; + Type["WindowMessage"] = "window.message"; + })(Type = Listeners.Type || (Listeners.Type = {})); + })(Listeners = DOMEvents.Listeners || (DOMEvents.Listeners = {})); + })(DOMEvents = Event.DOMEvents || (Event.DOMEvents = {})); + })(Event = OSUI.Event || (OSUI.Event = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Event; + (function (Event) { + var DOMEvents; + (function (DOMEvents) { + var Listeners; + (function (Listeners) { + class ListenerManager extends DOMEvents.AbstractEventsManager { + getInstanceOfEventType(listenerType) { + switch (listenerType) { + case Listeners.Type.BalloonOnToggle: + return new Listeners.BalloonOnToggle(); + case Listeners.Type.BodyOnClick: + return new Listeners.BodyOnClick(); + case Listeners.Type.BodyOnMouseDown: + return new Listeners.BodyOnMouseDown(); + case Listeners.Type.WindowResize: + return new Listeners.WindowResize(); + case Listeners.Type.OrientationChange: + return new Listeners.OrientationChange(); + case Listeners.Type.ScreenOnScroll: + return new Listeners.ScreenOnScroll(); + case Listeners.Type.WindowMessage: + return new Listeners.WindowMessage(); + default: + throw new Error(`The listener ${listenerType} is not supported.`); + } + } + } + Listeners.ListenerManager = ListenerManager; + class GlobalListenerManager { + static get Instance() { + return GlobalListenerManager._listenerManager; + } + } + GlobalListenerManager._listenerManager = new ListenerManager(); + Listeners.GlobalListenerManager = GlobalListenerManager; + })(Listeners = DOMEvents.Listeners || (DOMEvents.Listeners = {})); + })(DOMEvents = Event.DOMEvents || (Event.DOMEvents = {})); + })(Event = OSUI.Event || (OSUI.Event = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Event; + (function (Event) { + var DOMEvents; + (function (DOMEvents) { + var Listeners; + (function (Listeners) { + class OrientationChange extends Listeners.AbstractListener { + constructor() { + super(window, OSUI.GlobalEnum.HTMLEvent.OrientationChange); + this.eventCallback = this._orientationTrigger.bind(this); + } + _orientationTrigger(evt) { + this.trigger(OSUI.GlobalEnum.HTMLEvent.OrientationChange, evt); + } + } + Listeners.OrientationChange = OrientationChange; + })(Listeners = DOMEvents.Listeners || (DOMEvents.Listeners = {})); + })(DOMEvents = Event.DOMEvents || (Event.DOMEvents = {})); + })(Event = OSUI.Event || (OSUI.Event = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Event; + (function (Event) { + var DOMEvents; + (function (DOMEvents) { + var Listeners; + (function (Listeners) { + class ScreenOnScroll extends Listeners.AbstractListener { + constructor() { + super(OSUI.Helper.Dom.ClassSelector(document, OSUI.GlobalEnum.CssClassElements.ActiveScreen), OSUI.GlobalEnum.HTMLEvent.Scroll); + this.eventCallback = this._screenTrigger.bind(this); + } + _screenTrigger(evt) { + this.trigger(OSUI.GlobalEnum.HTMLEvent.Scroll, evt); + } + } + Listeners.ScreenOnScroll = ScreenOnScroll; + })(Listeners = DOMEvents.Listeners || (DOMEvents.Listeners = {})); + })(DOMEvents = Event.DOMEvents || (Event.DOMEvents = {})); + })(Event = OSUI.Event || (OSUI.Event = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Event; + (function (Event) { + var DOMEvents; + (function (DOMEvents) { + var Listeners; + (function (Listeners) { + class WindowMessage extends Listeners.AbstractListener { + constructor() { + super(window, OSUI.GlobalEnum.HTMLEvent.Message); + this.eventCallback = this._windowTrigger.bind(this); + } + _windowTrigger(evt) { + this.trigger(OSUI.GlobalEnum.HTMLEvent.Message, evt); + } + } + Listeners.WindowMessage = WindowMessage; + })(Listeners = DOMEvents.Listeners || (DOMEvents.Listeners = {})); + })(DOMEvents = Event.DOMEvents || (Event.DOMEvents = {})); + })(Event = OSUI.Event || (OSUI.Event = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Event; + (function (Event) { + var DOMEvents; + (function (DOMEvents) { + var Listeners; + (function (Listeners) { + class WindowResize extends Listeners.AbstractListener { + constructor() { + super(window, OSUI.GlobalEnum.HTMLEvent.Resize); + this.eventCallback = this._windowTrigger.bind(this); + } + _windowTrigger(evt) { + window.clearTimeout(this._timeout); + this._timeout = window.setTimeout(() => { + this.trigger(OSUI.GlobalEnum.HTMLEvent.Resize, evt); + }, 100); + } + } + Listeners.WindowResize = WindowResize; + })(Listeners = DOMEvents.Listeners || (DOMEvents.Listeners = {})); + })(DOMEvents = Event.DOMEvents || (Event.DOMEvents = {})); + })(Event = OSUI.Event || (OSUI.Event = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Event; + (function (Event) { + var DOMEvents; + (function (DOMEvents) { + var Observers; + (function (Observers) { + class AbstractObserver extends DOMEvents.AbstractEvent { + constructor(observerOptions, observerTarget) { + super(); + this._observerOptions = observerOptions; + this._observerTarget = observerTarget; + } + startObserver() { + this.observer.observe(this.observerTarget, this.observerOptions); + } + removeEvent() { + this.observer.disconnect(); + } + get observerOptions() { + return this._observerOptions; + } + get observerTarget() { + return this._observerTarget; + } + } + Observers.AbstractObserver = AbstractObserver; + })(Observers = DOMEvents.Observers || (DOMEvents.Observers = {})); + })(DOMEvents = Event.DOMEvents || (Event.DOMEvents = {})); + })(Event = OSUI.Event || (OSUI.Event = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Event; + (function (Event) { + var DOMEvents; + (function (DOMEvents) { + var Observers; + (function (Observers) { + let ObserverEvent; + (function (ObserverEvent) { + ObserverEvent["RTL"] = "RTL"; + })(ObserverEvent = Observers.ObserverEvent || (Observers.ObserverEvent = {})); + })(Observers = DOMEvents.Observers || (DOMEvents.Observers = {})); + })(DOMEvents = Event.DOMEvents || (Event.DOMEvents = {})); + })(Event = OSUI.Event || (OSUI.Event = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Event; + (function (Event) { + var DOMEvents; + (function (DOMEvents) { + var Observers; + (function (Observers) { + class ObserverManager extends DOMEvents.AbstractEventsManager { + getInstanceOfEventType(observerType) { + switch (observerType) { + case Observers.ObserverEvent.RTL: + return new Observers.MutationObservers.RTL.RTLObserver(); + default: + throw new Error(`The observer ${observerType} is not supported.`); + } + } + } + Observers.ObserverManager = ObserverManager; + class GlobalObserverManager { + static get Instance() { + return GlobalObserverManager._observerManager; + } + } + GlobalObserverManager._observerManager = new ObserverManager(); + Observers.GlobalObserverManager = GlobalObserverManager; + })(Observers = DOMEvents.Observers || (DOMEvents.Observers = {})); + })(DOMEvents = Event.DOMEvents || (Event.DOMEvents = {})); + })(Event = OSUI.Event || (OSUI.Event = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Event; + (function (Event) { + var DOMEvents; + (function (DOMEvents) { + var Observers; + (function (Observers) { + var MutationObservers; + (function (MutationObservers) { + class AbstractMutationObserver extends Observers.AbstractObserver { + constructor(observerOptions, observerTarget) { + super(observerOptions, observerTarget); + this.addEvent(); + this.startObserver(); + } + addEvent() { + this.observer = new MutationObserver(this.observerHandler.bind(this)); + } + } + MutationObservers.AbstractMutationObserver = AbstractMutationObserver; + })(MutationObservers = Observers.MutationObservers || (Observers.MutationObservers = {})); + })(Observers = DOMEvents.Observers || (DOMEvents.Observers = {})); + })(DOMEvents = Event.DOMEvents || (Event.DOMEvents = {})); + })(Event = OSUI.Event || (OSUI.Event = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Event; + (function (Event) { + var DOMEvents; + (function (DOMEvents) { + var Observers; + (function (Observers) { + var MutationObservers; + (function (MutationObservers) { + var RTL; + (function (RTL) { + class RTLObserver extends MutationObservers.AbstractMutationObserver { + constructor() { + super(new RTL.RTLObserverConfigs(), document.body); + this._hasAlreadyRTL = document.body.classList.contains(OSFramework.OSUI.Constants.IsRTLClass); + } + observerHandler(mutationList) { + mutationList.forEach((mutation) => { + if (mutation.attributeName === OSUI.GlobalEnum.HTMLAttributes.Class) { + const mutationTarget = mutation.target; + const hasRTLNow = mutationTarget.classList.contains(OSFramework.OSUI.Constants.IsRTLClass); + if (this._hasAlreadyRTL !== hasRTLNow) { + this._hasAlreadyRTL = hasRTLNow; + this.trigger(Observers.ObserverEvent.RTL, mutation); + } + } + }); + } + } + RTL.RTLObserver = RTLObserver; + })(RTL = MutationObservers.RTL || (MutationObservers.RTL = {})); + })(MutationObservers = Observers.MutationObservers || (Observers.MutationObservers = {})); + })(Observers = DOMEvents.Observers || (DOMEvents.Observers = {})); + })(DOMEvents = Event.DOMEvents || (Event.DOMEvents = {})); + })(Event = OSUI.Event || (OSUI.Event = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Event; + (function (Event) { + var DOMEvents; + (function (DOMEvents) { + var Observers; + (function (Observers) { + var MutationObservers; + (function (MutationObservers) { + var RTL; + (function (RTL) { + class RTLObserverConfigs { + constructor() { + this.attributeFilter = [OSUI.GlobalEnum.HTMLAttributes.Class]; + this.attributeOldValue = true; + this.subtree = false; + } + } + RTL.RTLObserverConfigs = RTLObserverConfigs; + })(RTL = MutationObservers.RTL || (MutationObservers.RTL = {})); + })(MutationObservers = Observers.MutationObservers || (Observers.MutationObservers = {})); + })(Observers = DOMEvents.Observers || (DOMEvents.Observers = {})); + })(DOMEvents = Event.DOMEvents || (Event.DOMEvents = {})); + })(Event = OSUI.Event || (OSUI.Event = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Event; + (function (Event) { + class GestureParams { + } + class AbstractGestureEvent { + constructor(target) { + this._targetElement = target; + this._gestureParams = new GestureParams(); + } + _eventTouchEnd() { + if (this._gestureParams.touchingElement) { + this._gestureParams.touchingElement = false; + this._gestureParams.offsetX = this._gestureParams.currentX - this._gestureParams.startX; + this._gestureParams.offsetY = this._gestureParams.currentY - this._gestureParams.startY; + this._gestureParams.timeTaken = new Date().getTime() - this._gestureParams.startTime; + if (this._endTriggerCallback) { + this._endTriggerCallback(this._gestureParams.offsetX, this._gestureParams.offsetY, this._gestureParams.timeTaken); + } + } + } + _eventTouchMove(evt) { + if (this._gestureParams.touchingElement) { + this._gestureParams.currentX = evt.changedTouches[0].pageX; + this._gestureParams.currentY = evt.changedTouches[0].pageY; + this._gestureParams.offsetX = this._gestureParams.currentX - this._gestureParams.startX; + this._gestureParams.offsetY = this._gestureParams.currentY - this._gestureParams.startY; + if (this._moveTriggerCallback !== undefined) { + this._moveTriggerCallback(this._gestureParams.currentX, this._gestureParams.currentY, this._gestureParams.offsetX, this._gestureParams.offsetY, this._gestureParams.event); + } + } + } + _eventTouchStart(evt) { + this._gestureParams.startTime = new Date().getTime(); + this._gestureParams.startX = evt.changedTouches[0].pageX; + this._gestureParams.currentX = this._gestureParams.startX; + this._gestureParams.startY = evt.changedTouches[0].pageY; + this._gestureParams.currentY = this._gestureParams.startY; + this._gestureParams.touchingElement = true; + this._gestureParams.event = evt; + if (this._startTriggerCallback !== undefined) { + this._startTriggerCallback(this._gestureParams.startX, this._gestureParams.startY); + } + } + _removeEventListeners() { + if (this._targetElement) { + this._targetElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.TouchStart, this._startEvent); + this._targetElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.TouchMove, this._moveEvent); + this._targetElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.TouchEnd, this._endEvent); + } + } + _unsetCallbacks() { + this._endEvent = undefined; + this._moveEvent = undefined; + this._startEvent = undefined; + this._startTriggerCallback = undefined; + this._moveTriggerCallback = undefined; + this._endTriggerCallback = undefined; + } + setCallbacks(onStartCallback, onMoveCallback, onEndCallback) { + this._endEvent = this._eventTouchEnd.bind(this); + this._moveEvent = this._eventTouchMove.bind(this); + this._startEvent = this._eventTouchStart.bind(this); + this._startTriggerCallback = onStartCallback; + this._moveTriggerCallback = onMoveCallback; + this._endTriggerCallback = onEndCallback; + } + setEventListeners() { + if (this._targetElement) { + this._targetElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.TouchStart, this._startEvent); + this._targetElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.TouchMove, this._moveEvent); + this._targetElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.TouchEnd, this._endEvent); + } + } + get targetElement() { + return this._targetElement; + } + unsetTouchEvents() { + this._removeEventListeners(); + this._unsetCallbacks(); + } + } + Event.AbstractGestureEvent = AbstractGestureEvent; + })(Event = OSUI.Event || (OSUI.Event = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Event; + (function (Event) { + var GestureEvent; + (function (GestureEvent) { + class DragEvent extends Event.AbstractGestureEvent { + constructor(target) { + super(target); + } + setSwipeEvents(onStartCallback, onMoveCallback, onEndCallback) { + this.setCallbacks(onStartCallback, onMoveCallback, onEndCallback); + this.setEventListeners(); + } + } + GestureEvent.DragEvent = DragEvent; + })(GestureEvent = Event.GestureEvent || (Event.GestureEvent = {})); + })(Event = OSUI.Event || (OSUI.Event = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Event; + (function (Event) { + var GestureEvent; + (function (GestureEvent) { + class SwipeEvent extends Event.AbstractGestureEvent { + constructor(target) { + super(target); + this._threshold = 10; + this._velocity = 0.3; + } + _onGestureEnd(offsetX, offsetY, timeTaken) { + if ((Math.abs(offsetX) > this._threshold || Math.abs(offsetY) > this._threshold) && + (Math.abs(offsetX) / timeTaken > this._velocity || Math.abs(offsetY) / timeTaken > this._velocity)) { + if (Math.abs(offsetX) > Math.abs(offsetY)) { + if (offsetX > 0) { + this._swipeRightCallback(); + } + else { + this._swipeLeftCallback(); + } + } + else if (offsetY > 0) { + this._swipeDownCallback(); + } + else { + this._swipeUpCallback(); + } + } + } + setSwipeCallbacks(swipeDownCallback, swipeLeftCallback, swipeRightCallback, swipeUpCallback) { + this._swipeDownCallback = swipeDownCallback; + this._swipeLeftCallback = swipeLeftCallback; + this._swipeRightCallback = swipeRightCallback; + this._swipeUpCallback = swipeUpCallback; + this.setCallbacks(undefined, undefined, this._onGestureEnd); + } + setSwipeEvents(swipeDownCallback, swipeLeftCallback, swipeRightCallback, swipeUpCallback) { + this.setSwipeCallbacks(swipeDownCallback, swipeLeftCallback, swipeRightCallback, swipeUpCallback); + this.setEventListeners(); + } + } + GestureEvent.SwipeEvent = SwipeEvent; + })(GestureEvent = Event.GestureEvent || (Event.GestureEvent = {})); + })(Event = OSUI.Event || (OSUI.Event = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Event; + (function (Event) { + var ProviderEvents; + (function (ProviderEvents) { + class ProviderEvent { + constructor(callback, eventName, eventUniqueId) { + this.callback = callback; + this.eventName = eventName; + this.eventUniqueId = eventUniqueId; + } + } + ProviderEvents.ProviderEvent = ProviderEvent; + })(ProviderEvents = Event.ProviderEvents || (Event.ProviderEvents = {})); + })(Event = OSUI.Event || (OSUI.Event = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Event; + (function (Event) { + var ProviderEvents; + (function (ProviderEvents) { + class ProviderEventsManager { + constructor() { + this._eventsMap = new Map(); + this._pendingEventsMap = new Map(); + } + addPendingEvent(eventName, callback, eventUniqueId) { + if (eventName === '' || callback === undefined || eventUniqueId === '') { + throw new Error(`${OSUI.ErrorCodes.ProviderEventsManager.FailSavingPendingEvent}: The event can not be saved.`); + } + const newEvent = new ProviderEvents.ProviderEvent(callback, eventName, eventUniqueId); + this._pendingEventsMap.set(eventUniqueId, newEvent); + } + removePendingEvent(eventUniqueId) { + const event = this._pendingEventsMap.has(eventUniqueId); + if (event) { + this._pendingEventsMap.delete(eventUniqueId); + } + else { + throw new Error(`${OSUI.ErrorCodes.ProviderEventsManager.FailPendingEventRemoval}: The event with eventId:'${eventUniqueId}' does not exist`); + } + } + removeSavedEvent(eventUniqueId) { + const event = this._eventsMap.has(eventUniqueId); + if (event) { + this._eventsMap.delete(eventUniqueId); + } + else { + throw new Error(`${OSUI.ErrorCodes.ProviderEventsManager.FailSavedEventRemoval}: The event with eventId:'${eventUniqueId}' does not exist`); + } + } + saveEvent(eventName, callback, eventUniqueId) { + if (eventName === '' || callback === undefined || eventUniqueId === '') { + throw new Error(`${OSUI.ErrorCodes.ProviderEventsManager.FailSavingEvent}: The event can not be saved.`); + } + let _newEvent; + if (this._pendingEventsMap.has(eventUniqueId)) { + _newEvent = this._pendingEventsMap.get(eventUniqueId); + this._pendingEventsMap.delete(eventUniqueId); + } + else { + _newEvent = new ProviderEvents.ProviderEvent(callback, eventName, eventUniqueId); + } + this._eventsMap.set(eventUniqueId, _newEvent); + } + get events() { + return this._eventsMap; + } + get pendingEvents() { + return this._pendingEventsMap; + } + get hasEvents() { + return this._eventsMap.size > 0; + } + get hasPendingEvents() { + return this._pendingEventsMap.size > 0; + } + } + ProviderEvents.ProviderEventsManager = ProviderEventsManager; + })(ProviderEvents = Event.ProviderEvents || (Event.ProviderEvents = {})); + })(Event = OSUI.Event || (OSUI.Event = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Feature; + (function (Feature) { + class AbstractFeature { + constructor(featurePattern, featureElem, options) { + this._featureOptions = options; + this._featureElem = featureElem; + this._featurePattern = featurePattern; + } + dispose() { + this._featureOptions = undefined; + this._featureElem = undefined; + } + get featureElem() { + return this._featureElem; + } + get featureOptions() { + return this._featureOptions; + } + get featurePattern() { + return this._featurePattern; + } + } + Feature.AbstractFeature = AbstractFeature; + })(Feature = OSUI.Feature || (OSUI.Feature = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Feature; + (function (Feature) { + var Balloon; + (function (Balloon_1) { + class Balloon extends Feature.AbstractFeature { + constructor(featurePattern, featureElem, options) { + super(featurePattern, featureElem, options); + this._isOpenedByApi = false; + this.isOpen = false; + this.build(); + } + _bodyClickCallback(_args, e) { + var _a; + const _eventTarget = e.target; + if (_eventTarget === ((_a = this.featureOptions) === null || _a === void 0 ? void 0 : _a.anchorElem) || this._isOpenedByApi || this.featureElem.contains(_eventTarget)) { + return; + } + if (this.isOpen) { + this._toggleBalloon(false, true); + e.stopPropagation(); + } + } + _handleFocusBehavior() { + const opts = { + focusTargetElement: this._floatingOptions.AnchorElem.parentElement, + }; + this._focusTrapInstance = new OSUI.Behaviors.FocusTrap(opts); + this._focusManagerInstance = new OSUI.Behaviors.FocusManager(); + } + _manageFocusInsideBalloon(arrowKeyPressed) { + if (this._focusableBalloonElements.length === 0 || arrowKeyPressed === undefined) { + this._currentFocusedElementIndex = undefined; + } + else if (arrowKeyPressed === OSUI.GlobalEnum.Keycodes.ArrowDown) { + if (this._currentFocusedElementIndex === undefined || + this._currentFocusedElementIndex >= this._focusableBalloonElements.length - 1) + this._currentFocusedElementIndex = 0; + else + this._currentFocusedElementIndex = this._currentFocusedElementIndex + 1; + } + else if (arrowKeyPressed === OSUI.GlobalEnum.Keycodes.ArrowUp) { + if (this._currentFocusedElementIndex === undefined || this._currentFocusedElementIndex === 0) + this._currentFocusedElementIndex = this._focusableBalloonElements.length - 1; + else + this._currentFocusedElementIndex = this._currentFocusedElementIndex - 1; + } + if (this._currentFocusedElementIndex === undefined) { + OSUI.Helper.AsyncInvocation(() => { + this.featureElem.focus(); + }); + } + else { + OSUI.Helper.AsyncInvocation(() => { + this._focusableBalloonElements[this._currentFocusedElementIndex].focus(); + }); + } + } + _onkeypressCallback(e) { + const isEscapedPressed = e.key === OSUI.GlobalEnum.Keycodes.Escape; + const isArrowDownPressed = e.key === OSUI.GlobalEnum.Keycodes.ArrowDown; + const isArrowUpPressed = e.key === OSUI.GlobalEnum.Keycodes.ArrowUp; + if (this.isOpen) { + if (isEscapedPressed) { + this.close(); + } + else if (isArrowDownPressed || isArrowUpPressed) { + this._manageFocusInsideBalloon(e.key); + e.preventDefault(); + } + } + e.stopPropagation(); + } + _removeEventListeners() { + this.featureElem.removeEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventOnKeypress); + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.removeHandler(OSUI.Event.DOMEvents.Listeners.Type.BodyOnClick, this._eventBodyClick); + } + _setA11YProperties() { + OSUI.Helper.Dom.Attribute.Set(this.featureElem, OSUI.Constants.A11YAttributes.Aria.Hidden, (!this.isOpen).toString()); + OSUI.Helper.A11Y.SetElementsTabIndex(this.isOpen, this._focusTrapInstance.focusableElements); + OSUI.Helper.Dom.Attribute.Set(this.featureElem, OSUI.Constants.A11YAttributes.TabIndex, this.isOpen + ? OSUI.Constants.A11YAttributes.States.TabIndexShow + : OSUI.Constants.A11YAttributes.States.TabIndexHidden); + OSUI.Helper.Dom.Attribute.Set(this._floatingOptions.AnchorElem, OSUI.Constants.A11YAttributes.TabIndex, this.isOpen + ? OSUI.Constants.A11YAttributes.States.TabIndexHidden + : OSUI.Constants.A11YAttributes.States.TabIndexShow); + } + _setCallbacks() { + this._eventBodyClick = this._bodyClickCallback.bind(this); + this._eventOnKeypress = this._onkeypressCallback.bind(this); + this._onToggleEvent = function dispatchCustomEvent(isOpen, balloonElem) { + const _customEvent = new CustomEvent(OSUI.GlobalEnum.CustomEvent.BalloonOnToggle, { + detail: { isOpen: isOpen, balloonElem: balloonElem }, + }); + document.dispatchEvent(_customEvent); + }; + } + _setEventListeners() { + this.featureElem.addEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventOnKeypress); + if (this.isOpen) { + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.addHandler(OSUI.Event.DOMEvents.Listeners.Type.BodyOnClick, this._eventBodyClick); + } + } + _toggleBalloon(isOpen, isBodyClick = false, arrowKeyPressed) { + this.isOpen = isOpen; + if (isOpen) { + OSUI.Helper.Dom.Styles.AddClass(this.featureElem, Balloon_1.Enum.CssClasses.IsOpen); + OSUI.Helper.AsyncInvocation(this._setEventListeners.bind(this)); + } + else { + OSUI.Helper.Dom.Styles.RemoveClass(this.featureElem, Balloon_1.Enum.CssClasses.IsOpen); + this._removeEventListeners(); + } + this._setA11YProperties(); + if (this.isOpen) { + this._focusManagerInstance.storeLastFocusedElement(); + this._focusTrapInstance.enableForA11y(); + this.setFloatingBehaviour(); + this._focusableBalloonElements = this.featureElem.querySelectorAll(OSUI.Constants.FocusableElems); + this._manageFocusInsideBalloon(arrowKeyPressed); + } + else { + this._focusTrapInstance.disableForA11y(); + this._floatingInstance.unsetFloatingPosition(); + OSUI.Helper.AsyncInvocation(() => { + this.featureElem.blur(); + if (isBodyClick === false) { + this._focusManagerInstance.setFocusToStoredElement(); + } + }); + this._focusableBalloonElements = undefined; + this._currentFocusedElementIndex = undefined; + } + this._onToggleEvent(this.isOpen, this.featureElem); + OSUI.Helper.AsyncInvocation(() => { + this._isOpenedByApi = false; + }); + } + _unsetCallbacks() { + this._eventBodyClick = undefined; + this._eventOnKeypress = undefined; + this._onToggleEvent = undefined; + window[OSFramework.OSUI.GlobalEnum.CustomEvent.BalloonOnToggle] = undefined; + } + build() { + this._setCallbacks(); + this._setEventListeners(); + this.setFloatingConfigs(); + this._handleFocusBehavior(); + this._setA11YProperties(); + this.setBalloonShape(); + } + close() { + if (this.isOpen) { + this._toggleBalloon(false); + } + } + dispose() { + var _a; + (_a = this._floatingInstance) === null || _a === void 0 ? void 0 : _a.dispose(); + this._unsetCallbacks(); + super.dispose(); + } + open(isOpenedByApi, arrowKeyPressed) { + if (this.isOpen === false) { + this._isOpenedByApi = isOpenedByApi; + this._toggleBalloon(true, false, arrowKeyPressed); + } + } + setBalloonShape(shape) { + if (shape !== undefined) { + this.featureOptions.shape = shape; + } + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.featureElem, Balloon_1.Enum.CssCustomProperties.Shape, 'var(--border-radius-' + this.featureOptions.shape + ')'); + } + setFloatingBehaviour(isUpdate) { + if (isUpdate || this._floatingInstance === undefined) { + this.setFloatingConfigs(); + if (isUpdate && this._floatingInstance !== undefined) { + this._floatingInstance.update(this._floatingOptions); + } + else { + this._floatingInstance = new OSUI.Utils.FloatingPosition.Factory.NewFloatingPosition(this._floatingOptions, OSUI.Utils.FloatingPosition.Enum.Provider.FloatingUI); + } + } + else { + this._floatingInstance.build(); + } + } + setFloatingConfigs() { + this._floatingOptions = { + AutoPlacement: this.featureOptions.position === OSUI.GlobalEnum.FloatingPosition.Auto, + AnchorElem: this.featureOptions.anchorElem, + AutoPlacementOptions: { + alignment: this.featureOptions.alignment, + allowedPlacements: this.featureOptions.allowedPlacements, + }, + FloatingElem: this.featureElem, + Position: this.featureOptions.position, + UpdatePosition: true, + }; + } + updateFloatingConfigs(floatingConfigs) { + if (floatingConfigs !== undefined) { + this._floatingOptions = floatingConfigs; + } + this.setFloatingBehaviour(true); + } + updatePositionOption(position) { + this.featureOptions.position = position; + this.setFloatingBehaviour(true); + } + } + Balloon_1.Balloon = Balloon; + })(Balloon = Feature.Balloon || (Feature.Balloon = {})); + })(Feature = OSUI.Feature || (OSUI.Feature = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Feature; + (function (Feature) { + var Balloon; + (function (Balloon) { + var Enum; + (function (Enum) { + let CssClasses; + (function (CssClasses) { + CssClasses["IsOpen"] = "osui-balloon--is-open"; + CssClasses["Pattern"] = "osui-balloon"; + })(CssClasses = Enum.CssClasses || (Enum.CssClasses = {})); + let CssCustomProperties; + (function (CssCustomProperties) { + CssCustomProperties["Shape"] = "--osui-balloon-shape"; + })(CssCustomProperties = Enum.CssCustomProperties || (Enum.CssCustomProperties = {})); + let Properties; + (function (Properties) { + Properties["AnchorId"] = "AnchorId"; + Properties["BalloonPosition"] = "BalloonPosition"; + Properties["BalloonShape"] = "BalloonShape"; + })(Properties = Enum.Properties || (Enum.Properties = {})); + })(Enum = Balloon.Enum || (Balloon.Enum = {})); + })(Balloon = Feature.Balloon || (Feature.Balloon = {})); + })(Feature = OSUI.Feature || (OSUI.Feature = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Helper; + (function (Helper) { + function AsyncInvocation(callback, ...args) { + if (callback) + setTimeout(() => callback(...args), 0); + } + Helper.AsyncInvocation = AsyncInvocation; + function ApplySetTimeOut(callback, time, ...args) { + if (callback) + setTimeout(() => callback(...args), time); + } + Helper.ApplySetTimeOut = ApplySetTimeOut; + })(Helper = OSUI.Helper || (OSUI.Helper = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Helper; + (function (Helper) { + class BoundPosition { + static _checkIsOutBounds(elementBounds, testAgainstElementBounds) { + return { + top: elementBounds.top < testAgainstElementBounds.top, + right: elementBounds.right > testAgainstElementBounds.right, + bottom: elementBounds.bottom > testAgainstElementBounds.bottom, + left: elementBounds.left < testAgainstElementBounds.left, + }; + } + static GetBodyBounds() { + let bodyOffSetValues; + const layoutElement = Helper.Dom.ClassSelector(document.body, OSUI.GlobalEnum.CssClassElements.Layout); + const isLayoutTop = layoutElement.classList.contains(OSUI.GlobalEnum.CssClassElements.LayoutTop); + const isFixedHeader = layoutElement.classList.contains(OSUI.GlobalEnum.CssClassElements.HeaderIsFixed); + if (isLayoutTop && isFixedHeader) { + const headerElement = Helper.Dom.ClassSelector(document.body, OSUI.GlobalEnum.CssClassElements.Header); + const headerHeight = headerElement.getBoundingClientRect().height; + const bodyRect = document.body.getBoundingClientRect(); + bodyOffSetValues = { + bottom: bodyRect.bottom, + height: bodyRect.height - headerHeight, + left: bodyRect.left, + right: bodyRect.right, + top: headerHeight, + width: bodyRect.width, + x: bodyRect.x, + y: headerHeight, + }; + } + else { + bodyOffSetValues = document.body.getBoundingClientRect(); + } + return bodyOffSetValues; + } + static GetRecommendedPosition(element, testAgainstElement = document.body, elementOffset = { top: 0, right: 0, bottom: 0, left: 0 }) { + const checkOutOfBounds = this.IsOutBounds(element, testAgainstElement, elementOffset); + if (Object.values(checkOutOfBounds).filter((val) => val).length === 0) { + return undefined; + } + return this.GetRecommendedPositionByBounds(element.getBoundingClientRect(), testAgainstElement.getBoundingClientRect()); + } + static GetRecommendedPositionByBounds(elementBounds, testAgainstElementBounds) { + let recommendedPosition = undefined; + if (elementBounds.height > testAgainstElementBounds.height || + elementBounds.width > testAgainstElementBounds.width) { + return recommendedPosition; + } + const isOut = this._checkIsOutBounds(elementBounds, testAgainstElementBounds); + if (isOut.left) { + recommendedPosition = OSUI.GlobalEnum.Position.Right; + } + if (isOut.right) { + recommendedPosition = OSUI.GlobalEnum.Position.Left; + } + if (isOut.top) { + recommendedPosition = OSUI.GlobalEnum.Position.Bottom; + if (isOut.left) { + recommendedPosition = OSUI.GlobalEnum.Position.BottomRight; + } + else if (isOut.right) { + recommendedPosition = OSUI.GlobalEnum.Position.BottomLeft; + } + } + if (isOut.bottom) { + recommendedPosition = OSUI.GlobalEnum.Position.Top; + if (isOut.left) { + recommendedPosition = OSUI.GlobalEnum.Position.TopRight; + } + else if (isOut.right) { + recommendedPosition = OSUI.GlobalEnum.Position.TopLeft; + } + } + return recommendedPosition; + } + static IsOutBounds(element, testAgainstElement = document.body, elementOffset = { top: 0, right: 0, bottom: 0, left: 0 }) { + const elementBounds = element.getBoundingClientRect(); + const offSetValues = { + top: typeof elementOffset === 'number' ? elementOffset : elementOffset.top, + right: typeof elementOffset === 'number' ? elementOffset : elementOffset.right, + bottom: typeof elementOffset === 'number' ? elementOffset : elementOffset.bottom, + left: typeof elementOffset === 'number' ? elementOffset : elementOffset.left, + }; + const offSetValuesUpdated = { + bottom: elementBounds.bottom - offSetValues.bottom, + height: elementBounds.height, + left: elementBounds.left + offSetValues.left, + right: elementBounds.right - offSetValues.right, + top: elementBounds.top + offSetValues.top, + width: elementBounds.width, + x: elementBounds.x, + y: elementBounds.y, + }; + let testAgainstElementOffSetValues; + if (testAgainstElement === document.body) { + testAgainstElementOffSetValues = this.GetBodyBounds(); + } + else { + testAgainstElementOffSetValues = testAgainstElement.getBoundingClientRect(); + } + return this._checkIsOutBounds(offSetValuesUpdated, testAgainstElementOffSetValues); + } + } + Helper.BoundPosition = BoundPosition; + })(Helper = OSUI.Helper || (OSUI.Helper = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Helper; + (function (Helper) { + class Dates { + static GetTimeFromDate(_date) { + const _selectedHour = _date.getHours() < 10 ? '0' + _date.getHours() : _date.getHours(); + const _selectedMin = _date.getMinutes() < 10 ? '0' + _date.getMinutes() : _date.getMinutes(); + const _selectedSec = _date.getSeconds() < 10 ? '0' + _date.getSeconds() : _date.getSeconds(); + return _selectedHour + ':' + _selectedMin + ':' + _selectedSec; + } + static IsBeforeThan(date1, date2) { + return Date.parse(date1) <= Date.parse(date2); + } + static IsNull(date) { + let _date; + if (typeof date === 'string') { + if (isNaN(Date.parse(date))) { + throw new Error(`The given date '${date}' it's not a valid date.`); + } + _date = new Date(Date.parse(date)); + } + else if (date instanceof Date) { + _date = date; + } + else { + return true; + } + if (_date.getFullYear() === 1900 && _date.getMonth() === 0 && _date.getDate() === 1) { + return true; + } + return false; + } + static IsValid(date) { + return !isNaN(Number(new Date(date))); + } + static NormalizeDateTime(date, normalizeToMax = true) { + let _newDate = date; + if (typeof _newDate === 'string') { + _newDate = new Date(date); + } + if (normalizeToMax) { + _newDate.setHours(23, 59, 59, 59); + } + else { + _newDate.setHours(0, 0, 0, 0); + } + return _newDate; + } + static SetServerDateFormat(date) { + Dates._serverFormat = date.replace('13', 'DD').replace('10', 'MM').replace('1900', 'YYYY'); + } + static get ServerFormat() { + return Dates._serverFormat; + } + } + Dates._serverFormat = ''; + Helper.Dates = Dates; + })(Helper = OSUI.Helper || (OSUI.Helper = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Helper; + (function (Helper) { + let UAKeyword; + (function (UAKeyword) { + UAKeyword["chrome"] = "chrome"; + UAKeyword["crios"] = "crios"; + UAKeyword["edge"] = "edge"; + UAKeyword["edgios"] = "edgios"; + UAKeyword["edga"] = "edga"; + UAKeyword["edg"] = "edg/"; + UAKeyword["firefox"] = "firefox"; + UAKeyword["fxios"] = "fxios"; + UAKeyword["kindle"] = "kindle"; + UAKeyword["silk"] = "silk"; + UAKeyword["kfapwa"] = "kfapwa"; + UAKeyword["kfapwi"] = "kfapwi"; + UAKeyword["kfjwa"] = "kfjwa"; + UAKeyword["kfjwi"] = "kfjwi"; + UAKeyword["kfsowi"] = "kfsowi"; + UAKeyword["kftt"] = "kftt"; + UAKeyword["kfot"] = "kfot"; + UAKeyword["kfthwa"] = "kfthwa"; + UAKeyword["kfthwi"] = "kfthwi"; + UAKeyword["miuibrowser"] = "miuibrowser"; + UAKeyword["msie"] = "msie"; + UAKeyword["opera"] = "opera"; + UAKeyword["opr"] = "opr"; + UAKeyword["opios"] = "opios"; + UAKeyword["safari"] = "safari"; + UAKeyword["samsungbrowser"] = "samsungbrowser"; + UAKeyword["trident"] = "trident"; + UAKeyword["ucbrowser"] = "ucbrowser"; + UAKeyword["yabrowser"] = "yabrowser"; + })(UAKeyword || (UAKeyword = {})); + let OperatingSystemKeyword; + (function (OperatingSystemKeyword) { + OperatingSystemKeyword["Android"] = "android"; + OperatingSystemKeyword["Ipad"] = "ipad"; + OperatingSystemKeyword["Iphone"] = "iphone"; + OperatingSystemKeyword["MacOS"] = "mac"; + OperatingSystemKeyword["Windows"] = "windows"; + })(OperatingSystemKeyword || (OperatingSystemKeyword = {})); + const iphoneDevices = [ + { width: 1125, height: 2436, description: 'iphone x/xs' }, + { width: 828, height: 1792, description: 'iphone xr' }, + { width: 750, height: 1624, description: 'iphone xr scaled' }, + { width: 1242, height: 2688, description: 'iphone xs max' }, + { width: 828, height: 1792, description: 'iphone 11' }, + { width: 1125, height: 2436, description: 'iphone 11 pro' }, + { width: 1242, height: 2688, description: 'iphone 11 pro max' }, + { width: 1125, height: 2436, description: 'iphone 12 mini' }, + { width: 1170, height: 2532, description: 'iphone 12' }, + { width: 1170, height: 2532, description: 'iphone 12 pro' }, + { width: 1284, height: 2778, description: 'iphone 12 pro max' }, + { width: 1125, height: 2436, description: 'iphone 13 mini' }, + { width: 1170, height: 2532, description: 'iphone 13' }, + { width: 1170, height: 2532, description: 'iphone 13 pro' }, + { width: 1284, height: 2778, description: 'iphone 13 pro max' }, + { width: 1170, height: 2532, description: 'iphone 14' }, + { width: 1284, height: 2778, description: 'iphone 14 plus' }, + { width: 1179, height: 2556, description: 'iphone 14 pro' }, + { width: 1290, height: 2796, description: 'iphone 14 pro max' }, + ]; + class DeviceInfo { + static _getOperatingSystem(userAgent = '') { + const userAgentLocal = DeviceInfo._getUserAgent(userAgent); + let localOs = OSUI.GlobalEnum.MobileOS.Unknown; + if (userAgentLocal.includes(OperatingSystemKeyword.Android)) { + localOs = OSUI.GlobalEnum.MobileOS.Android; + } + else if (userAgentLocal.includes(OperatingSystemKeyword.Windows)) { + localOs = OSUI.GlobalEnum.MobileOS.Windows; + } + else if (userAgentLocal.includes(OperatingSystemKeyword.Ipad) || + userAgentLocal.includes(OperatingSystemKeyword.Iphone)) { + localOs = OSUI.GlobalEnum.MobileOS.IOS; + } + else if (userAgentLocal.includes(OperatingSystemKeyword.MacOS)) { + localOs = OSUI.GlobalEnum.MobileOS.MacOS; + } + return localOs; + } + static _getUserAgent(userAgent = '') { + let localUserAgent = userAgent; + if (userAgent.replace(' ', '') === '') { + if (sessionStorage.previewDevicesUserAgent) { + localUserAgent = sessionStorage.previewDevicesUserAgent; + } + else { + localUserAgent = window.navigator.userAgent; + } + } + return localUserAgent.toLowerCase(); + } + static _isChrome(ua) { + return ua.includes(UAKeyword.chrome) || ua.includes(UAKeyword.crios); + } + static _isEdge(ua) { + return (ua.includes(UAKeyword.edge) || + ua.includes(UAKeyword.edgios) || + ua.includes(UAKeyword.edga) || + ua.includes(UAKeyword.edg)); + } + static _isFirefox(ua) { + return ua.includes(UAKeyword.firefox) || ua.includes(UAKeyword.fxios); + } + static _isIE(ua) { + return ua.includes(UAKeyword.trident) || ua.includes(UAKeyword.msie); + } + static _isKindle(ua) { + return (ua.includes(UAKeyword.kindle) || + ua.includes(UAKeyword.silk) || + ua.includes(UAKeyword.kftt) || + ua.includes(UAKeyword.kfot) || + ua.includes(UAKeyword.kfjwa) || + ua.includes(UAKeyword.kfjwi) || + ua.includes(UAKeyword.kfsowi) || + ua.includes(UAKeyword.kfthwa) || + ua.includes(UAKeyword.kfthwi) || + ua.includes(UAKeyword.kfapwa) || + ua.includes(UAKeyword.kfapwi)); + } + static _isMiui(ua) { + return ua.includes(UAKeyword.miuibrowser); + } + static _isOpera(ua) { + return ua.includes(UAKeyword.opr) || ua.includes(UAKeyword.opera) || ua.includes(UAKeyword.opios); + } + static _isSafari(ua) { + return ua.includes(UAKeyword.safari); + } + static _isSamsung(ua) { + return ua.includes(UAKeyword.samsungbrowser); + } + static _isUC(ua) { + return ua.includes(UAKeyword.ucbrowser); + } + static _isYandex(ua) { + return ua.includes(UAKeyword.yabrowser); + } + static get HasAccessibilityEnabled() { + return Helper.Dom.ClassSelector(document.body, OSUI.Constants.HasAccessibilityClass) !== undefined; + } + static get IsDesktop() { + return DeviceInfo.GetDeviceType() === OSUI.GlobalEnum.DeviceType.desktop; + } + static get IsPhone() { + return DeviceInfo.GetDeviceType() === OSUI.GlobalEnum.DeviceType.phone; + } + static get IsIphoneWithNotch() { + if (DeviceInfo._isIphoneWithNotch === undefined) { + const ratio = (sessionStorage.previewDevicesPixelRatio + ? sessionStorage.previewDevicesPixelRatio + : window.devicePixelRatio) || 1; + const currScreen = { + width: (window.visualViewport ? window.visualViewport.width : window.innerWidth) * ratio, + height: (window.visualViewport ? window.visualViewport.height : window.innerHeight) * ratio, + description: '', + }; + DeviceInfo._iphoneDetails = iphoneDevices.find((device) => { + return device.height === currScreen.height && device.width === currScreen.width; + }); + DeviceInfo._isIphoneWithNotch = DeviceInfo._iphoneDetails !== undefined; + } + return DeviceInfo._isIphoneWithNotch; + } + static get IsTablet() { + return DeviceInfo.GetDeviceType() === OSUI.GlobalEnum.DeviceType.tablet; + } + static get IsPwa() { + if (DeviceInfo._isPwa === undefined) { + DeviceInfo._isPwa = + (window.matchMedia && window.matchMedia('(display-mode: standalone)').matches) || + window.navigator.standalone === true; + } + return DeviceInfo._isPwa; + } + static get IsNative() { + if (DeviceInfo._isNativeApp === undefined) { + DeviceInfo._isNativeApp = window.cordova !== undefined && !DeviceInfo.IsPwa; + } + return DeviceInfo._isNativeApp; + } + static get IsAndroid() { + if (DeviceInfo._isAndroid === undefined) { + DeviceInfo._isAndroid = Helper.Dom.Styles.ContainsClass(document.body, OSUI.GlobalEnum.MobileOS.Android); + } + return DeviceInfo._isAndroid; + } + static get IsIos() { + if (DeviceInfo._isIos === undefined) { + DeviceInfo._isIos = Helper.Dom.Styles.ContainsClass(document.body, OSUI.GlobalEnum.MobileOS.IOS); + } + return DeviceInfo._isIos; + } + static get IsTouch() { + if (DeviceInfo._isTouch === undefined) { + if (window.PointerEvent && 'maxTouchPoints' in navigator) { + DeviceInfo._isTouch = navigator.maxTouchPoints > 0; + } + else { + DeviceInfo._isTouch = window.matchMedia && window.matchMedia('(any-pointer:coarse)').matches; + if (!DeviceInfo._isTouch) { + DeviceInfo._isTouch = !!(window.TouchEvent || 'ontouchstart' in window); + } + } + } + return DeviceInfo._isTouch; + } + static get NotchPosition() { + let notchPosition = undefined; + let windowOrientation = undefined; + if (window !== null && 'orientation' in window) { + windowOrientation = window.orientation; + } + else if ('orientation' in window.screen) { + windowOrientation = window.screen.orientation.angle; + } + if (windowOrientation === undefined) { + return notchPosition; + } + switch (windowOrientation) { + case 90: + notchPosition = OSUI.GlobalEnum.Position.Left; + break; + case -90: + notchPosition = OSUI.GlobalEnum.Position.Right; + break; + default: + notchPosition = OSUI.GlobalEnum.Position.Top; + } + return notchPosition; + } + static GetBrowser(userAgent = '') { + let browser = OSUI.GlobalEnum.Browser.unknown; + if (userAgent.trim() !== '') { + const userAgentLocal = DeviceInfo._getUserAgent(userAgent); + if (DeviceInfo._isKindle(userAgentLocal)) + browser = OSUI.GlobalEnum.Browser.kindle; + else if (DeviceInfo._isOpera(userAgentLocal)) + browser = OSUI.GlobalEnum.Browser.opera; + else if (DeviceInfo._isEdge(userAgentLocal)) + browser = OSUI.GlobalEnum.Browser.edge; + else if (DeviceInfo._isSamsung(userAgentLocal)) + browser = OSUI.GlobalEnum.Browser.samsung; + else if (DeviceInfo._isYandex(userAgentLocal)) + browser = OSUI.GlobalEnum.Browser.yandex; + else if (DeviceInfo._isMiui(userAgentLocal)) + browser = OSUI.GlobalEnum.Browser.miui; + else if (DeviceInfo._isChrome(userAgentLocal)) + browser = OSUI.GlobalEnum.Browser.chrome; + else if (DeviceInfo._isFirefox(userAgentLocal)) + browser = OSUI.GlobalEnum.Browser.firefox; + else if (DeviceInfo._isSafari(userAgentLocal)) + browser = OSUI.GlobalEnum.Browser.safari; + else if (DeviceInfo._isIE(userAgentLocal)) + browser = OSUI.GlobalEnum.Browser.ie; + else if (DeviceInfo._isUC(userAgentLocal)) + browser = OSUI.GlobalEnum.Browser.uc; + } + else { + if (DeviceInfo._browser === OSUI.GlobalEnum.Browser.unknown) { + DeviceInfo._browser = DeviceInfo.GetBrowser(DeviceInfo._getUserAgent()); + } + browser = DeviceInfo._browser; + } + return browser; + } + static GetDeviceOrientation() { + let orientation = OSUI.GlobalEnum.DeviceOrientation.unknown; + if (Helper.Dom.Styles.ContainsClass(document.body, OSUI.GlobalEnum.DeviceOrientation.landscape)) + orientation = OSUI.GlobalEnum.DeviceOrientation.landscape; + else if (Helper.Dom.Styles.ContainsClass(document.body, OSUI.GlobalEnum.DeviceOrientation.portrait)) + orientation = OSUI.GlobalEnum.DeviceOrientation.portrait; + return orientation; + } + static GetDeviceType() { + let device = OSUI.GlobalEnum.DeviceType.desktop; + if (Helper.Dom.Styles.ContainsClass(document.body, OSUI.GlobalEnum.DeviceType.phone)) + device = OSUI.GlobalEnum.DeviceType.phone; + else if (Helper.Dom.Styles.ContainsClass(document.body, OSUI.GlobalEnum.DeviceType.tablet)) + device = OSUI.GlobalEnum.DeviceType.tablet; + return device; + } + static GetOperatingSystem(userAgent = '') { + let localOs; + if (userAgent.trim() !== '') { + localOs = DeviceInfo._getOperatingSystem(); + } + else { + if (DeviceInfo._operatingSystem === OSUI.GlobalEnum.MobileOS.Unknown) { + DeviceInfo._operatingSystem = DeviceInfo.GetOperatingSystem(DeviceInfo._getUserAgent()); + } + localOs = DeviceInfo._operatingSystem; + } + return localOs; + } + static RefreshOperatingSystem() { + DeviceInfo._operatingSystem = DeviceInfo.GetOperatingSystem(DeviceInfo._getUserAgent()); + } + } + DeviceInfo._browser = OSUI.GlobalEnum.Browser.unknown; + DeviceInfo._iphoneDetails = undefined; + DeviceInfo._isAndroid = undefined; + DeviceInfo._isIos = undefined; + DeviceInfo._isIphoneWithNotch = undefined; + DeviceInfo._isNativeApp = undefined; + DeviceInfo._isPwa = undefined; + DeviceInfo._isTouch = undefined; + DeviceInfo._operatingSystem = OSUI.GlobalEnum.MobileOS.Unknown; + Helper.DeviceInfo = DeviceInfo; + })(Helper = OSUI.Helper || (OSUI.Helper = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Helper; + (function (Helper) { + class AttributeManipulation { + static Get(element, attrName) { + if (element) { + const value = element.getAttribute(attrName); + return value ? value : undefined; + } + else { + throw Error(`The element does not exist, when trying to get the attribute '${attrName}'.`); + } + } + static Has(element, attrName) { + if (element) { + return element.hasAttribute(attrName); + } + else { + throw Error(`The element does not exist, when trying to check the attribute '${attrName}'.`); + } + } + static Id(element) { + return AttributeManipulation.Get(element, 'Id'); + } + static Remove(element, attrName) { + if (element) { + element.removeAttribute(attrName); + } + else { + throw Error(`The element does not exist, when trying to remove the attribute '${attrName}'.`); + } + } + static Set(element, attrName, attrValue) { + if (element) { + element.setAttribute(attrName, attrValue.toString()); + } + else { + throw Error(`The element does not exist, when trying to set the attribute '${attrName}'.`); + } + } + } + class StyleManipulation { + static AddClass(element, cssClass) { + if (element) { + if (cssClass !== '') { + element.classList.add(cssClass); + } + } + else { + throw Error(`The element does not exist, when trying to add the class '${cssClass}'.`); + } + } + static ContainsClass(element, cssClass) { + if (element) { + if (cssClass !== '') { + return element.classList.contains(cssClass); + } + } + else { + throw Error(`The element does not exist, when trying to check if it has the class '${cssClass}'.`); + } + } + static ExtendedClass(element, currentCssClasses, newCssClass) { + if (element) { + const currentClassesList = currentCssClasses.split(' '); + const newClassesList = newCssClass.split(' '); + let classesToRemove = []; + let classesToAdd = []; + if (currentCssClasses !== '') { + classesToRemove = currentClassesList.filter((currClass) => newClassesList.indexOf(currClass) === -1); + } + if (newCssClass !== '') { + classesToAdd = newClassesList.filter((newClass) => currentClassesList.indexOf(newClass) === -1); + } + if (classesToRemove.length > 0) { + classesToRemove.forEach((classToRemove) => { + Helper.Dom.Styles.RemoveClass(element, classToRemove); + }); + } + if (classesToAdd.length > 0) { + classesToAdd.forEach((classToAdd) => { + Helper.Dom.Styles.AddClass(element, classToAdd); + }); + } + } + else { + throw Error(`The element does not exist, when trying to update EntendedClass '${newCssClass}'.`); + } + } + static GetBorderRadiusValueFromShapeType(shapeName) { + return getComputedStyle(document.documentElement).getPropertyValue('--border-radius-' + shapeName); + } + static GetColorValueFromColorType(colorName) { + const colorValue = getComputedStyle(document.documentElement).getPropertyValue('--color-' + colorName); + if (colorValue !== '') { + return colorValue; + } + return colorName; + } + static GetCssClasses(element) { + if (element) { + return new Set([...element.classList]); + } + else { + throw Error('The element does not exist, when trying to get the classes.'); + } + } + static RemoveClass(element, cssClass) { + if (element) { + if (cssClass !== '') { + element.classList.remove(cssClass); + } + } + else { + throw Error(`The element does not exist, when trying to remove the class '${cssClass}'.`); + } + } + static RemoveStyleAttribute(element, cssProperty) { + if (element) { + if (cssProperty !== '') { + element.style.removeProperty(cssProperty); + } + } + else { + throw Error(`The element does not exist, when trying to remove the rule '${cssProperty}'.`); + } + } + static SetStyleAttribute(element, cssProperty, ruleValue) { + if (element) { + if (cssProperty !== '' && ruleValue !== undefined) { + element.style.setProperty(cssProperty, ruleValue.toString()); + } + } + else { + throw Error(`The element does not exist, when trying to apply the rule '${cssProperty}'.`); + } + } + static ToggleClass(element, cssClass) { + if (element) { + if (cssClass !== '') { + element.classList.toggle(cssClass); + } + } + else { + throw Error(`The element does not exist, when trying to toggle the class '${cssClass}'.`); + } + } + } + class Dom { + static get Attribute() { + return AttributeManipulation; + } + static get Styles() { + return StyleManipulation; + } + static ClassSelector(element, cssClass) { + let elementFound = undefined; + if (element) { + if (cssClass !== '') { + elementFound = element.querySelector(OSUI.Constants.Dot + cssClass); + } + elementFound = elementFound ? elementFound : undefined; + } + else { + console.error(`The element does not exist.`); + } + return elementFound; + } + static Disable(element) { + if (element) { + if (Dom.Attribute.Has(element, 'disabled') === false) { + Dom.Attribute.Set(element, 'disabled', true); + } + } + } + static Enable(element) { + if (element) { + if (Dom.Attribute.Has(element, 'disabled')) { + Dom.Attribute.Remove(element, 'disabled'); + } + } + } + static GenerateUniqueId() { + return Math.random().toString(36); + } + static GetElementById(id) { + const obj = document.getElementById(id); + if (obj) { + return obj; + } + else { + throw new Error(`Object with Id '${id}' not found.`); + } + } + static GetElementByUniqueId(uniqueId) { + const obj = document.getElementsByName(uniqueId); + if (obj.length && uniqueId !== '') { + return obj[0]; + } + else { + throw new Error(`Object with name '${uniqueId}' not found.`); + } + } + static GetFocusableElements(element) { + const _focusableElems = element.querySelectorAll(OSUI.Constants.FocusableElems); + const _filteredElements = Array.from(_focusableElems).filter((element) => element.getAttribute(OSUI.Constants.FocusTrapIgnoreAttr) !== 'true'); + return [..._filteredElements]; + } + static IsInsidePopupWidget(element) { + const _popup = document.querySelectorAll(OSUI.Constants.Dot + OSUI.GlobalEnum.CssClassElements.Popup); + let _isInsidePopup = false; + if (_popup.length > 0 && element) { + _popup.forEach((popup) => { + if (popup.contains(element)) { + _isInsidePopup = true; + } + }); + } + return _isInsidePopup; + } + static Move(element, target) { + if (element && target) { + target.appendChild(element); + } + } + static SetInputValue(inputElem, value) { + const inputElemProtoObj = Object.getPrototypeOf(inputElem); + const setValue = Object.getOwnPropertyDescriptor(inputElemProtoObj, 'value').set; + setValue.call(inputElem, value); + inputElem.dispatchEvent(new CustomEvent('input', { bubbles: true })); + } + static TagSelector(element, htmlTag) { + let elementFound = undefined; + if (element) { + if (htmlTag !== '') { + elementFound = element.querySelector(htmlTag); + } + elementFound = elementFound ? elementFound : undefined; + } + else { + console.error(`The element does not exist.`); + } + return elementFound; + } + static TagSelectorAll(element, htmlTag) { + let elementFound; + if (element) { + if (htmlTag !== '') { + elementFound = Array.from(element.querySelectorAll(htmlTag)); + } + elementFound = elementFound ? elementFound : undefined; + } + else { + console.error(`The element does not exist.`); + } + return elementFound; + } + } + Helper.Dom = Dom; + })(Helper = OSUI.Helper || (OSUI.Helper = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Helper; + (function (Helper) { + class InvalidInputs { + static _checkInvalidInputs(element, isSmooth, elementParentClass) { + const notValidClassess = [ + OSUI.Constants.Dot + OSUI.GlobalEnum.CssClassElements.InputNotValid, + OSUI.Constants.Dot + Providers.OSUI.Datepicker.Flatpickr.Enum.CSSSelectors.DatepickerNotValid, + OSUI.Constants.Dot + OSUI.Patterns.Dropdown.ServerSide.Enum.CssClass.NotValid, + OSUI.Constants.Dot + Providers.OSUI.Dropdown.VirtualSelect.Enum.CssClass.NotValid, + ]; + const joinClassNames = [notValidClassess].join(OSUI.Constants.Comma); + const invalidInput = element.querySelectorAll(joinClassNames)[0]; + if (invalidInput) { + const inputVisible = window.getComputedStyle(invalidInput).display !== OSUI.GlobalEnum.CssProperties.None; + if (inputVisible) { + this._scrollToInvalidInput(invalidInput, isSmooth, elementParentClass); + } + else { + Helper.AsyncInvocation(() => { + this._searchElementId(invalidInput, isSmooth, elementParentClass); + }); + } + } + } + static _scrollToInvalidInput(element, isSmooth, elementParentClass) { + const browser = OSFramework.OSUI.Helper.DeviceInfo.GetBrowser(); + OutSystems.OSUI.Utils.ScrollToElement(element.id, isSmooth, 0, elementParentClass); + if (browser === OSUI.GlobalEnum.Browser.safari || OSFramework.OSUI.Helper.DeviceInfo.IsIos) { + if (isSmooth) { + console.warn('Due to the unsupported scrollend event on Safari/iOS, the smooth transition is disabled and the invalid input will be focused directly.'); + } + element.focus(); + } + else { + const activeScreenElement = Helper.Dom.ClassSelector(document.body, OSUI.GlobalEnum.CssClassElements.ActiveScreen); + const focusOnScrollEnd = () => { + element.focus(); + activeScreenElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.ScrollEnd, focusOnScrollEnd); + }; + activeScreenElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.ScrollEnd, focusOnScrollEnd); + } + } + static _searchElementId(element, isSmooth, elementParentClass) { + const elementToSearch = element.parentElement; + if (elementToSearch.id !== OSUI.Constants.EmptyString) { + this._scrollToInvalidInput(elementToSearch, isSmooth, elementParentClass); + } + else { + this._searchElementId(elementToSearch, isSmooth, elementParentClass); + } + } + static FocusFirstInvalidInput(elementId, isSmooth, elementParentClass) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OutSystems.OSUI.ErrorCodes.Utilities.FailGetInvalidInput, + callback: () => { + let element = document.body; + if (elementId !== OSUI.Constants.EmptyString) { + element = Helper.Dom.GetElementById(elementId); + } + Helper.AsyncInvocation(() => { + this._checkInvalidInputs(element, isSmooth, elementParentClass); + }); + }, + }); + return result; + } + } + Helper.InvalidInputs = InvalidInputs; + })(Helper = OSUI.Helper || (OSUI.Helper = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Helper; + (function (Helper) { + class Language { + static get Lang() { + return Language._lang; + } + static get ShortLang() { + return Language._lang.substring(0, 2); + } + static Set(language) { + if (language !== '' && language !== Language._lang) { + Language._lang = language; + document.documentElement.lang = language; + } + } + } + Language._lang = OSUI.Constants.Language.code; + Helper.Language = Language; + })(Helper = OSUI.Helper || (OSUI.Helper = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Helper; + (function (Helper) { + function LogMessage(message) { + if (OSUI.Constants.EnableLogMessages) { + return message; + } + } + Helper.LogMessage = LogMessage; + })(Helper = OSUI.Helper || (OSUI.Helper = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Helper; + (function (Helper) { + class A11Y { + static AriaAtomicFalse(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Aria.Atomic, OSUI.Constants.A11YAttributes.States.False); + } + static AriaAtomicTrue(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Aria.Atomic, OSUI.Constants.A11YAttributes.States.True); + } + static AriaBusyFalse(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Aria.Busy, OSUI.Constants.A11YAttributes.States.False); + } + static AriaBusyTrue(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Aria.Busy, OSUI.Constants.A11YAttributes.States.True); + } + static AriaControls(element, targetId) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Aria.Controls, targetId); + } + static AriaDescribedBy(element, targetId) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Aria.Describedby, targetId); + } + static AriaDisabled(element, isDisabled) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Aria.Disabled, isDisabled); + } + static AriaDisabledFalse(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Aria.Disabled, false); + } + static AriaDisabledTrue(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Aria.Disabled, true); + } + static AriaExpanded(element, value) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Aria.Expanded, value); + } + static AriaExpandedFalse(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Aria.Expanded, OSUI.Constants.A11YAttributes.States.False); + } + static AriaExpandedTrue(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Aria.Expanded, OSUI.Constants.A11YAttributes.States.True); + } + static AriaHasPopup(element, value) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Aria.Haspopup, value); + } + static AriaHasPopupFalse(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Aria.Haspopup, OSUI.Constants.A11YAttributes.States.False); + } + static AriaHasPopupTrue(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Aria.Haspopup, OSUI.Constants.A11YAttributes.States.True); + } + static AriaHidden(element, value) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Aria.Hidden, value); + } + static AriaHiddenFalse(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Aria.Hidden, OSUI.Constants.A11YAttributes.States.False); + } + static AriaHiddenTrue(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Aria.Hidden, OSUI.Constants.A11YAttributes.States.True); + } + static AriaLabel(element, value) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Aria.Label, value); + } + static AriaLabelledBy(element, targetId) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Aria.Labelledby, targetId); + } + static AriaLiveAssertive(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.AriaLive.AttrName, OSUI.Constants.A11YAttributes.AriaLive.Assertive); + } + static AriaLiveOff(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.AriaLive.AttrName, OSUI.Constants.A11YAttributes.AriaLive.Off); + } + static AriaLivePolite(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.AriaLive.AttrName, OSUI.Constants.A11YAttributes.AriaLive.Polite); + } + static AriaSelectedFalse(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Aria.Selected, false); + } + static AriaSelectedTrue(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Aria.Selected, true); + } + static AriaValueMax(element, value) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Aria.ValueMax, value); + } + static AriaValueMin(element, value) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Aria.ValueMin, value); + } + static MultiselectableFalse(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Aria.Multiselectable, OSUI.Constants.A11YAttributes.States.False); + } + static MultiselectableTrue(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Aria.Multiselectable, OSUI.Constants.A11YAttributes.States.True); + } + static RoleAlert(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Role.AttrName, OSUI.Constants.A11YAttributes.Role.Alert); + } + static RoleButton(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Role.AttrName, OSUI.Constants.A11YAttributes.Role.Button); + } + static RoleComplementary(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Role.AttrName, OSUI.Constants.A11YAttributes.Role.Complementary); + } + static RoleListbox(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Role.AttrName, OSUI.Constants.A11YAttributes.Role.Listbox); + } + static RoleMenuItem(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Role.AttrName, OSUI.Constants.A11YAttributes.Role.MenuItem); + } + static RoleOption(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Role.AttrName, OSUI.Constants.A11YAttributes.Role.Option); + } + static RolePresentation(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Role.AttrName, OSUI.Constants.A11YAttributes.Role.Presentation); + } + static RoleProgressBar(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Role.AttrName, OSUI.Constants.A11YAttributes.Role.Progressbar); + } + static RoleRegion(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Role.AttrName, OSUI.Constants.A11YAttributes.Role.Region); + } + static RoleSearch(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Role.AttrName, OSUI.Constants.A11YAttributes.Role.Search); + } + static RoleTab(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Role.AttrName, OSUI.Constants.A11YAttributes.Role.Tab); + } + static RoleTabList(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Role.AttrName, OSUI.Constants.A11YAttributes.Role.TabList); + } + static RoleTabPanel(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Role.AttrName, OSUI.Constants.A11YAttributes.Role.TabPanel); + } + static RoleTooltip(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.Role.AttrName, OSUI.Constants.A11YAttributes.Role.Tooltip); + } + static SetElementsTabIndex(state, elements) { + const tabIndexValue = state + ? OSUI.Constants.A11YAttributes.States.TabIndexShow + : OSUI.Constants.A11YAttributes.States.TabIndexHidden; + for (const item of elements) { + Helper.A11Y.TabIndex(item, tabIndexValue); + } + } + static TabIndex(element, value) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.TabIndex, value); + } + static TabIndexFalse(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.TabIndex, OSUI.Constants.A11YAttributes.States.TabIndexHidden); + } + static TabIndexTrue(element) { + Helper.Dom.Attribute.Set(element, OSUI.Constants.A11YAttributes.TabIndex, OSUI.Constants.A11YAttributes.States.TabIndexShow); + } + } + Helper.A11Y = A11Y; + })(Helper = OSUI.Helper || (OSUI.Helper = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Helper; + (function (Helper) { + var MapOperation; + (function (MapOperation) { + function FindInMap(patternName, patternId, map) { + let pattern; + if (map.has(patternId)) { + pattern = map.get(patternId); + } + else { + for (const p of map.values()) { + if (p.equalsToID(patternId)) { + pattern = p; + } + } + } + if (pattern === undefined) { + throw new Error(`The ${patternName} with id:'${patternId}' was not found`); + } + return pattern; + } + MapOperation.FindInMap = FindInMap; + function ExportKeys(map) { + return [...map.keys()]; + } + MapOperation.ExportKeys = ExportKeys; + })(MapOperation = Helper.MapOperation || (Helper.MapOperation = {})); + })(Helper = OSUI.Helper || (OSUI.Helper = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Helper; + (function (Helper) { + class SVG { + static IsValid(svgString) { + const parser = new DOMParser(); + try { + const doc = parser.parseFromString(svgString, OSUI.GlobalEnum.SVGHelperConstants.DOMType); + const parserError = doc.getElementsByTagName(OSUI.GlobalEnum.SVGHelperConstants.ParserError); + if (parserError.length > 0 || doc.documentElement.tagName !== OSUI.GlobalEnum.SVGHelperConstants.SVG) { + return false; + } + } + catch (error) { + return false; + } + return true; + } + } + Helper.SVG = SVG; + })(Helper = OSUI.Helper || (OSUI.Helper = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Helper; + (function (Helper) { + function Sanitize(value) { + if (typeof value === 'string') { + if (value !== undefined && value !== null && value !== '') { + return value.replace(//g, '›'); + } + } + return value; + } + Helper.Sanitize = Sanitize; + })(Helper = OSUI.Helper || (OSUI.Helper = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Helper; + (function (Helper) { + class Times { + static ConvertInSeconds(time) { + return (time.getHours() * OSUI.GlobalEnum.Time.HourInSeconds + + time.getMinutes() * OSUI.GlobalEnum.Time.MinuteInSeconds + + time.getSeconds()); + } + static IsNull(time) { + if (isNaN(Date.parse(time))) { + if (typeof time === OSUI.Constants.JavaScriptTypes.String) { + const isValid = /^([0-1]?[0-9]|2[0-4]):([0-5][0-9])(:[0-5][0-9])?$/.test(time); + if (isValid === false) { + throw new Error(`The given time '${time}' it's not a valid time.`); + } + } + else { + return true; + } + } + else { + const auxDate = new Date(Date.parse(time)); + time = auxDate.getHours() + ':' + auxDate.getMinutes() + ':' + auxDate.getSeconds(); + } + if (time === OSUI.GlobalEnum.NullValues.Time) { + return true; + } + return false; + } + } + Helper.Times = Times; + })(Helper = OSUI.Helper || (OSUI.Helper = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Helper; + (function (Helper) { + class URL { + static IsImage(url) { + return (url.match(/(^data:image\/*(jpeg|jpg|gif|png|svg);base64)|\/?(\.\w\.)*\.(jpeg|jpg|gif|png|svg)($|(\?))/i) !== null); + } + static IsValid(url) { + const pattern = new RegExp('^(https?:\\/\\/)?' + + '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|' + + '((\\d{1,3}\\.){3}\\d{1,3}))' + + '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*' + + '(\\?[;&a-z\\d%_.~+=-]*)?' + + '(\\#[-a-z\\d_]*)?$', 'i'); + return pattern.test(url) || pattern.test(window.location.host + url); + } + } + Helper.URL = URL; + })(Helper = OSUI.Helper || (OSUI.Helper = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + class AbstractPattern { + constructor(uniqueId, configs) { + this._isBuilt = false; + this.isProviderBased = false; + this._uniqueId = uniqueId; + this._configs = configs; + } + _setCommonHtmlElements() { + this._selfElem = OSUI.Helper.Dom.GetElementByUniqueId(this._uniqueId); + this._widgetId = this._selfElem.closest(OSUI.GlobalEnum.DataBlocksTag.DataBlock).id; + if (this._configs.ExtendedClass !== '') { + OSUI.Helper.Dom.Styles.ExtendedClass(this._selfElem, '', this._configs.ExtendedClass); + } + } + _unsetCommonHtmlElements() { + this._selfElem = undefined; + } + finishBuild() { + if (this.isProviderBased === false) { + this.triggerPlatformInitializedEventCallback(); + } + this._isBuilt = true; + } + triggerPlatformEventCallback(platFormCallback, ...args) { + if (platFormCallback !== undefined) { + OSUI.Helper.AsyncInvocation(platFormCallback, this.widgetId, ...args); + } + } + triggerPlatformInitializedEventCallback() { + if (this._platformEventInitialized !== undefined && this._isBuilt === false) { + this.triggerPlatformEventCallback(this._platformEventInitialized); + } + } + unsetGlobalCallbacks() { + this._platformEventInitialized = undefined; + } + build() { + this._setCommonHtmlElements(); + } + changeProperty(propertyName, propertyValue) { + if (this._configs.hasOwnProperty(propertyName)) { + if (this._isBuilt) { + switch (propertyName) { + case OSUI.GlobalEnum.CommonPatternsProperties.ExtendedClass: + OSUI.Helper.Dom.Styles.ExtendedClass(this._selfElem, this._configs.ExtendedClass, propertyValue); + break; + } + } + if (this._configs.validateCanChange(this._isBuilt, propertyName)) { + this._configs[propertyName] = this._configs.validateDefault(propertyName, propertyValue); + } + } + else { + throw new Error(`changeProperty - Property '${propertyName}' can't be changed.`); + } + } + dispose() { + this._isBuilt = false; + this._unsetCommonHtmlElements(); + this.unsetGlobalCallbacks(); + this._configs = undefined; + } + equalsToID(patternId) { + return patternId === this._uniqueId || patternId === this._widgetId; + } + registerCallback(eventName, callback) { + switch (eventName) { + case OSUI.GlobalEnum.ProviderEvents.Initialized: + if (this._platformEventInitialized === undefined) { + this._platformEventInitialized = callback; + } + break; + default: + console.warn(`The pattern with id '${this.widgetId}' does not have the event '${eventName}' defined.`); + } + } + get _enableAccessibility() { + return OSUI.Helper.DeviceInfo.HasAccessibilityEnabled; + } + get selfElement() { + return this._selfElem; + } + get isBuilt() { + return this._isBuilt; + } + get configs() { + return this._configs; + } + get uniqueId() { + return this._uniqueId; + } + get widgetId() { + return this._widgetId; + } + } + Patterns.AbstractPattern = AbstractPattern; + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + class AbstractChild extends Patterns.AbstractPattern { + constructor() { + super(...arguments); + this._isFirstChild = false; + this._isLastChild = false; + } + notifyParent(actionType) { + this._parentObject.beNotifiedByChild(this, actionType); + } + setParentInfo(parentSelector, getPatternByIdAPI, canBeOrphan) { + try { + const findedElement = this.selfElement.closest(parentSelector); + this._parentId = OSUI.Helper.Dom.Attribute.Get(findedElement, 'name') || findedElement.dataset.uniqueid; + this._parentObject = getPatternByIdAPI(this._parentId); + } + catch (e) { + if (canBeOrphan) { + this._parentObject = undefined; + } + else { + throw new Error(`${OSUI.ErrorCodes.AbstractChild.FailParentNotFound}: Parent of Child with Id: '${this.widgetId}' was not found!`); + } + } + } + get isFirstChild() { + return this._isFirstChild; + } + set isFirstChild(value) { + this._isFirstChild = value; + } + get isLastChild() { + return this._isLastChild; + } + set isLastChild(value) { + this._isLastChild = value; + } + get parentId() { + return this._parentId; + } + get parentObject() { + return this._parentObject; + } + } + Patterns.AbstractChild = AbstractChild; + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + class AbstractConfiguration { + constructor(config) { + for (const key in config) { + if (config[key] !== undefined) { + this[key] = this.validateDefault(key, config[key]); + } + } + } + validateBoolean(value, defaultValue) { + return value !== undefined ? value : defaultValue; + } + validateDate(value, defaultValue) { + return OSUI.Helper.Dates.IsNull(value) === false ? value : defaultValue; + } + validateInRange(value, defaultValue, ...args) { + if (value) { + if (args.length > 0) { + const allowedValues = args.length > 1 ? args : args[0]; + if (allowedValues.includes(value)) { + return value; + } + } + } + return defaultValue; + } + validateNumber(value, defaultValue) { + return typeof value === 'number' ? value : defaultValue; + } + validateString(value, defaultValue) { + return value && value.trim() ? value : defaultValue; + } + validateTime(value, defaultValue) { + return OSUI.Helper.Times.IsNull(value) === false ? value : defaultValue; + } + validateCanChange(_isBuilt, _key) { + return true; + } + validateDefault(_key, value) { + return value; + } + } + Patterns.AbstractConfiguration = AbstractConfiguration; + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + class AbstractParent extends Patterns.AbstractPattern { + constructor() { + super(...arguments); + this._childIdsByType = new Map(); + this._childItemsByType = {}; + } + getChild(childId) { + const childType = this._childIdsByType.get(childId); + if (this._childItemsByType[childType]) { + return this._childItemsByType[childType].get(childId); + } + else { + return undefined; + } + } + getChildByIndex(index, childType) { + if (childType === undefined) { + childType = Object.keys(this._childItemsByType)[0]; + } + const childsMap = this._childItemsByType[childType]; + return childsMap ? this.getChild(OSUI.Helper.MapOperation.ExportKeys(childsMap)[index]) : undefined; + } + getChildIndex(childId) { + const childType = this._childIdsByType.get(childId); + const childsMap = this._childItemsByType[childType]; + return OSUI.Helper.MapOperation.ExportKeys(childsMap).indexOf(childId); + } + setChild(childItem) { + const childType = childItem.constructor.name; + if (this._childItemsByType[childType] === undefined) { + this._childItemsByType[childType] = new Map(); + } + if (this._childItemsByType[childType].size === 0) { + childItem.isFirstChild = true; + childItem.isLastChild = true; + } + else { + this.getChildByIndex(this._childItemsByType[childType].size - 1, childType).isLastChild = false; + childItem.isLastChild = true; + } + this._childIdsByType.set(childItem.uniqueId, childType); + this._childItemsByType[childType].set(childItem.uniqueId, childItem); + } + unsetChild(childId) { + const childType = this._childIdsByType.get(childId); + if (childType === undefined) { + throw new Error(`${OSUI.ErrorCodes.AbstractParent.FailTypeNotFound}:Child Type of Child ('${childId}') was not found!`); + } + const childsMap = this._childItemsByType[childType]; + if (childsMap === undefined) { + throw new Error(`${OSUI.ErrorCodes.AbstractParent.FailChildsNotFound}:Childs of Type ('${childType}') were not found!`); + } + const childItem = this.getChild(childId); + if (childItem === undefined) { + throw new Error(`${OSUI.ErrorCodes.AbstractParent.FailChildNotFound}:Child of Id ('${childId}') was not found!`); + } + if (childItem.isFirstChild) { + childItem.isFirstChild = false; + const nextSibling = this.getChildByIndex(1, childType); + if (nextSibling) { + nextSibling.isFirstChild = true; + } + } + if (childItem.isLastChild) { + childItem.isLastChild = false; + const prevSibling = this.getChildByIndex(childsMap.size - 2, childType); + if (prevSibling) { + prevSibling.isLastChild = true; + } + } + this._childIdsByType.delete(childId); + childsMap.delete(childId); + } + getChildItems(type) { + if (type === undefined) { + type = Object.keys(this._childItemsByType)[0]; + } + const childsMap = this._childItemsByType[type]; + return childsMap === undefined ? [] : [...childsMap.values()]; + } + } + Patterns.AbstractParent = AbstractParent; + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + class AbstractProviderConfiguration extends Patterns.AbstractConfiguration { + mergeConfigs(commonConfigs, specificConfigs, extendedConfigs) { + let _finalConfigs = commonConfigs; + if (specificConfigs !== undefined) { + _finalConfigs = Object.assign(Object.assign({}, _finalConfigs), specificConfigs); + } + if (extendedConfigs !== undefined) { + _finalConfigs = Object.assign(Object.assign({}, _finalConfigs), extendedConfigs); + } + Object.keys(_finalConfigs).forEach((key) => (_finalConfigs[key] === undefined || + _finalConfigs[key] === null || + (Array.isArray(_finalConfigs[key]) && _finalConfigs[key].length === 0)) && + delete _finalConfigs[key]); + return _finalConfigs; + } + } + Patterns.AbstractProviderConfiguration = AbstractProviderConfiguration; + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + class AbstractProviderPattern extends Patterns.AbstractPattern { + constructor(uniqueId, configs) { + super(uniqueId, configs); + this.isProviderBased = true; + } + _getEventIndexFromArray(event) { + const _providerCallback = this.providerInfo.events[event.eventName].find((item) => { + return item === event.callback; + }); + if (_providerCallback === undefined) { + throw Error(OSUI.ErrorCodes.AbstractProviderPattern.FailProviderEventRemoval.code + + ': ' + + OSUI.ErrorCodes.AbstractProviderPattern.FailProviderEventRemoval.message); + } + return this.providerInfo.events[event.eventName].findIndex((item) => { + return item === _providerCallback; + }); + } + _handleProviderEventsAPI(eventName, callback, addEvent, event) { + const events = this.providerInfo.events; + if (Array.isArray(events[eventName])) { + if (addEvent) { + events[eventName].push(callback); + } + else { + events[eventName].splice(this._getEventIndexFromArray(event), 1); + } + } + else if (typeof events.addEventListener === OSUI.Constants.JavaScriptTypes.Function) { + if (addEvent) { + events.addEventListener(eventName, callback); + } + else { + events.removeEventListener(eventName, callback); + } + } + else if (typeof events.on === OSUI.Constants.JavaScriptTypes.Function) { + if (addEvent) { + events.on(eventName, callback); + } + else { + events.off(eventName, callback); + } + } + else { + const errorMessage = addEvent + ? OSUI.ErrorCodes.AbstractProviderPattern.FailProviderEventSet.message + : OSUI.ErrorCodes.AbstractProviderPattern.FailProviderEventRemoval.message; + throw new Error(`${eventName}: ${errorMessage}`); + } + } + redraw() { + if (this._provider !== undefined) { + this._provider.destroy(); + this.prepareConfigs(); + } + } + unsetCallbacks() { + this._platformEventProviderConfigsAppliedCallback = undefined; + } + build() { + this.providerInfo = { + name: undefined, + version: undefined, + events: undefined, + }; + OSFramework.OSUI.Event.DOMEvents.Observers.GlobalObserverManager.Instance.addHandler(OSUI.Event.DOMEvents.Observers.ObserverEvent.RTL, this.redraw.bind(this)); + super.build(); + } + checkAddedProviderEvents() { + var _a; + if ((_a = this.providerEventsManagerInstance) === null || _a === void 0 ? void 0 : _a.hasEvents) { + this.providerEventsManagerInstance.events.forEach((value) => { + this.setProviderEvent(value.eventName, value.callback, value.eventUniqueId, false); + }); + } + } + checkPendingProviderEvents() { + var _a; + if ((_a = this.providerEventsManagerInstance) === null || _a === void 0 ? void 0 : _a.hasPendingEvents) { + this.providerEventsManagerInstance.pendingEvents.forEach((value, key) => { + this.setProviderEvent(value.eventName, value.callback, value.eventUniqueId); + this.providerEventsManagerInstance.removePendingEvent(key); + }); + } + } + dispose() { + OSFramework.OSUI.Event.DOMEvents.Observers.GlobalObserverManager.Instance.removeHandler(OSUI.Event.DOMEvents.Observers.ObserverEvent.RTL, this.redraw.bind(this)); + super.dispose(); + } + registerCallback(eventName, callback) { + switch (eventName) { + case OSUI.GlobalEnum.ProviderEvents.OnProviderConfigsApplied: + if (this._platformEventProviderConfigsAppliedCallback === undefined) { + this._platformEventProviderConfigsAppliedCallback = callback; + } + break; + default: + super.registerCallback(eventName, callback); + } + } + setProviderConfigs(providerConfigs) { + this.triggerPlatformEventCallback(this._platformEventProviderConfigsAppliedCallback); + } + setProviderEvent(eventName, callback, uniqueId, saveEvent = true) { + if (this.providerEventsManagerInstance === undefined) { + this.providerEventsManagerInstance = new OSUI.Event.ProviderEvents.ProviderEventsManager(); + } + if (this.providerInfo.events === undefined) { + this.providerEventsManagerInstance.addPendingEvent(eventName, callback, uniqueId); + return; + } + this._handleProviderEventsAPI(eventName, callback, true); + if (saveEvent) { + this.providerEventsManagerInstance.saveEvent(eventName, callback, uniqueId); + } + } + unsetProviderEvent(eventId) { + var _a; + const _event = (_a = this.providerEventsManagerInstance) === null || _a === void 0 ? void 0 : _a.events.get(eventId); + if (_event === undefined) { + throw Error(OSUI.ErrorCodes.AbstractProviderPattern.FailProviderEventRemoval.code + + ': ' + + OSUI.ErrorCodes.AbstractProviderPattern.FailProviderEventRemoval.message); + } + this._handleProviderEventsAPI(_event.eventName, _event.callback, false, _event); + if (this.providerEventsManagerInstance) { + this.providerEventsManagerInstance.removeSavedEvent(eventId); + } + } + updateProviderEvents(providerInfo) { + this.providerInfo.events = providerInfo.events; + if (this.isBuilt) { + OSUI.Helper.AsyncInvocation(this.checkPendingProviderEvents.bind(this)); + OSUI.Helper.AsyncInvocation(this.checkAddedProviderEvents.bind(this)); + } + else { + this.providerInfo.name = providerInfo.name; + this.providerInfo.version = providerInfo.version; + } + } + get providerInfo() { + return this._providerInfo; + } + set providerInfo(providerInfo) { + this._providerInfo = providerInfo; + } + set provider(p) { + this._provider = p; + } + get provider() { + return this._provider; + } + } + Patterns.AbstractProviderPattern = AbstractProviderPattern; + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Accordion; + (function (Accordion_1) { + class Accordion extends Patterns.AbstractParent { + constructor(uniqueId, configs) { + super(uniqueId, new Accordion_1.AccordionConfig(configs)); + } + setA11YProperties() { + console.log(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + setCallbacks() { + console.log(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + setHtmlElements() { + console.log(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + unsetCallbacks() { + console.log(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + unsetHtmlElements() { + console.log(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + addAccordionItem(childItem) { + if (this.getChild(childItem.uniqueId)) { + throw new Error(`${OSUI.ErrorCodes.Accordion.FailSetNewChildItem}: There is already a ${OSUI.GlobalEnum.PatternName.AccordionItem} under Id: '${childItem.widgetId}' added to ${OSUI.GlobalEnum.PatternName.Accordion} with uniqueId: ${this.uniqueId}.`); + } + else { + this.setChild(childItem); + } + if (childItem.isOpen) { + this.triggerAccordionItemClose(childItem.uniqueId); + } + } + beNotifiedByChild(childItem, notifiedTo) { + switch (notifiedTo) { + case Accordion_1.Enum.ChildNotifyActionType.Add: + this.addAccordionItem(childItem); + break; + case Accordion_1.Enum.ChildNotifyActionType.Click: + this.triggerAccordionItemClose(childItem.uniqueId); + break; + case Accordion_1.Enum.ChildNotifyActionType.Removed: + this.removeAccordionItem(childItem.uniqueId); + break; + default: + throw new Error(`${OSUI.ErrorCodes.Accordion.FailToSetChildItemAction}: There no exist a '${notifiedTo}' notification type.`); + } + } + build() { + super.build(); + this.finishBuild(); + } + changeProperty(propertyName, propertyValue) { + super.changeProperty(propertyName, propertyValue); + if (this.isBuilt) { + switch (propertyName) { + case Accordion_1.Enum.Properties.MultipleItems: + if (!this.configs.MultipleItems) + this.collapseAllItems(); + break; + } + } + } + collapseAllItems() { + const itemsToClose = this.getChildItems().filter((item) => item.isOpen && !item.isDisabled); + itemsToClose.forEach((item) => { + item.close(); + }); + } + dispose() { + super.dispose(); + } + expandAllItems() { + if (this.configs.MultipleItems) { + const itemsToOpen = this.getChildItems().filter((item) => !item.isOpen && !item.isDisabled); + itemsToOpen.forEach((item) => { + item.open(); + }); + } + else { + console.warn(`${OSUI.GlobalEnum.PatternName.Accordion} (${this.widgetId}): if ${Accordion_1.Enum.Properties.MultipleItems} parameter is set to false, this action doesn't work. Set the ${Accordion_1.Enum.Properties.MultipleItems} parameter to true.`); + } + } + removeAccordionItem(childId) { + if (this.getChild(childId)) { + this.unsetChild(childId); + } + else { + throw new Error(`${OSUI.ErrorCodes.Accordion.FailUnsetNewChildItem}: The ${OSUI.GlobalEnum.PatternName.AccordionItem} under uniqueId: '${childId}' does not exist as an ${OSUI.GlobalEnum.PatternName.AccordionItem} from ${OSUI.GlobalEnum.PatternName.Accordion} with Id: ${this.widgetId}.`); + } + } + triggerAccordionItemClose(childId) { + if (this.configs.MultipleItems) { + return; + } + const childReference = this.getChild(childId); + if (childReference) { + this.getChildItems().forEach((item) => { + if (item.uniqueId !== childId) { + if (item.isOpen) { + item.close(); + } + } + }); + } + else { + throw new Error(`${OSUI.ErrorCodes.Accordion.FailChildItemClicked}: The ${OSUI.GlobalEnum.PatternName.AccordionItem} under uniqueId: '${childId}' does not exist as an ${OSUI.GlobalEnum.PatternName.AccordionItem} from ${OSUI.GlobalEnum.PatternName.Accordion} with Id: ${this.widgetId}.`); + } + } + } + Accordion_1.Accordion = Accordion; + })(Accordion = Patterns.Accordion || (Patterns.Accordion = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Accordion; + (function (Accordion) { + class AccordionConfig extends Patterns.AbstractConfiguration { + constructor(config) { + super(config); + } + validateDefault(key, value) { + let validatedValue = undefined; + switch (key) { + case Accordion.Enum.Properties.MultipleItems: + validatedValue = this.validateBoolean(value, false); + break; + default: + validatedValue = super.validateDefault(key, value); + break; + } + return validatedValue; + } + } + Accordion.AccordionConfig = AccordionConfig; + })(Accordion = Patterns.Accordion || (Patterns.Accordion = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Accordion; + (function (Accordion) { + var Enum; + (function (Enum) { + let ChildNotifyActionType; + (function (ChildNotifyActionType) { + ChildNotifyActionType["Add"] = "add"; + ChildNotifyActionType["Click"] = "click"; + ChildNotifyActionType["Removed"] = "removed"; + })(ChildNotifyActionType = Enum.ChildNotifyActionType || (Enum.ChildNotifyActionType = {})); + let CssClass; + (function (CssClass) { + CssClass["Pattern"] = "osui-accordion"; + })(CssClass = Enum.CssClass || (Enum.CssClass = {})); + let Properties; + (function (Properties) { + Properties["MultipleItems"] = "MultipleItems"; + })(Properties = Enum.Properties || (Enum.Properties = {})); + })(Enum = Accordion.Enum || (Accordion.Enum = {})); + })(Accordion = Patterns.Accordion || (Patterns.Accordion = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var AccordionItem; + (function (AccordionItem_1) { + class AccordionItem extends Patterns.AbstractChild { + constructor(uniqueId, configs) { + super(uniqueId, new AccordionItem_1.AccordionItemConfig(configs)); + this._collapsedHeight = 0; + this._isOpen = this.configs.StartsExpanded; + } + _accordionOnClickHandler(event) { + if (this._allowTitleEvents) { + if ((event === null || event === void 0 ? void 0 : event.target) !== this._accordionItemTitleElem && + (event === null || event === void 0 ? void 0 : event.target) !== this._accordionItemIconElem && + (event === null || event === void 0 ? void 0 : event.target) !== this._accordionItemTitleElem.firstChild) { + return; + } + } + if (this._isOpen) { + this.close(); + } + else { + this.open(); + } + } + _addEvents() { + this._accordionItemTitleElem.addEventListener(OSUI.GlobalEnum.HTMLEvent.Click, this._eventOnClick); + this._accordionItemTitleElem.addEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventOnkeyPress); + } + _animationAsync(isExpand) { + const finalHeight = isExpand ? this._expandedHeight : this._collapsedHeight; + OSUI.Helper.Dom.Styles.AddClass(this._accordionItemContentElem, AccordionItem_1.Enum.CssClass.PatternAnimating); + if (!isExpand) { + OSUI.Helper.Dom.Styles.RemoveClass(this._accordionItemContentElem, AccordionItem_1.Enum.CssClass.PatternExpanded); + } + OSUI.Helper.Dom.Styles.SetStyleAttribute(this._accordionItemContentElem, OSUI.GlobalEnum.InlineStyle.Height, finalHeight + OSUI.GlobalEnum.Units.Pixel); + this._accordionItemContentElem.addEventListener(OSUI.GlobalEnum.HTMLEvent.TransitionEnd, this._eventOnTransitionEnd); + if (isExpand) { + OSUI.Helper.Dom.Styles.AddClass(this._accordionItemContentElem, AccordionItem_1.Enum.CssClass.PatternExpanded); + this._isOpen = true; + } + else { + OSUI.Helper.Dom.Styles.AddClass(this._accordionItemContentElem, AccordionItem_1.Enum.CssClass.PatternCollapsed); + this._isOpen = false; + } + this.setA11YProperties(); + this._onToggleCallback(); + } + _handleTabIndex() { + const titleTabindexValue = this.configs.IsDisabled + ? OSUI.Constants.A11YAttributes.States.TabIndexHidden + : OSUI.Constants.A11YAttributes.States.TabIndexShow; + const titleFocusableElementsTabindexValue = !this.configs.IsDisabled && this._isOpen + ? OSUI.Constants.A11YAttributes.States.TabIndexShow + : OSUI.Constants.A11YAttributes.States.TabIndexHidden; + OSUI.Helper.A11Y.TabIndex(this._accordionItemTitleElem, titleTabindexValue); + for (const child of this._accordionTitleFocusableChildren) { + OSUI.Helper.A11Y.TabIndex(child, titleFocusableElementsTabindexValue); + } + } + _onKeyboardPress(event) { + const isEscapedKey = event.key === OSUI.GlobalEnum.Keycodes.Escape; + const isEnterOrSpaceKey = event.key === OSUI.GlobalEnum.Keycodes.Enter || event.key === OSUI.GlobalEnum.Keycodes.Space; + if (isEscapedKey || isEnterOrSpaceKey) { + event.preventDefault(); + event.stopPropagation(); + } + else { + return; + } + if (this._isOpen) { + this.close(); + } + else if (isEnterOrSpaceKey && !this._isOpen) { + this.open(); + } + } + _onToggleCallback() { + this.triggerPlatformEventCallback(this._platformEventOnToggle, this._isOpen); + } + _removeEvents() { + this._accordionItemTitleElem.removeEventListener(OSUI.GlobalEnum.HTMLEvent.Click, this._eventOnClick); + this._accordionItemTitleElem.removeEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventOnkeyPress); + } + _setAccordionParent() { + this.setParentInfo(OSUI.Constants.Dot + Patterns.Accordion.Enum.CssClass.Pattern, OutSystems.OSUI.Patterns.AccordionAPI.GetAccordionById, true); + if (this.parentObject) { + this.notifyParent(Patterns.Accordion.Enum.ChildNotifyActionType.Add); + } + } + _setIconPosition() { + if (this.configs.IconPosition === OSUI.GlobalEnum.Direction.Right) { + OSUI.Helper.Dom.Styles.RemoveClass(this._accordionItemTitleElem, AccordionItem_1.Enum.CssClass.PatternIconPositionIsLeft); + OSUI.Helper.Dom.Styles.AddClass(this._accordionItemTitleElem, AccordionItem_1.Enum.CssClass.PatternIconPositionIsRight); + } + else { + OSUI.Helper.Dom.Styles.RemoveClass(this._accordionItemTitleElem, AccordionItem_1.Enum.CssClass.PatternIconPositionIsRight); + OSUI.Helper.Dom.Styles.AddClass(this._accordionItemTitleElem, AccordionItem_1.Enum.CssClass.PatternIconPositionIsLeft); + } + } + _setIconType() { + switch (this.configs.Icon) { + case AccordionItem_1.Enum.IconType.PlusMinus: + OSUI.Helper.Dom.Styles.RemoveClass(this._accordionItemIconElem, AccordionItem_1.Enum.CssClass.PatternIconCaret); + OSUI.Helper.Dom.Styles.RemoveClass(this._accordionItemIconCustomElem, AccordionItem_1.Enum.CssClass.PatternIconCustom); + OSUI.Helper.Dom.Styles.RemoveClass(this._accordionItemIconElem, AccordionItem_1.Enum.CssClass.PatternIconHidden); + OSUI.Helper.Dom.Styles.AddClass(this._accordionItemIconCustomElem, AccordionItem_1.Enum.CssClass.PatternIconHidden); + OSUI.Helper.Dom.Styles.AddClass(this._accordionItemIconElem, AccordionItem_1.Enum.CssClass.PatternIconPlusMinus); + break; + case AccordionItem_1.Enum.IconType.Custom: + OSUI.Helper.Dom.Styles.RemoveClass(this._accordionItemIconElem, AccordionItem_1.Enum.CssClass.PatternIconPlusMinus); + OSUI.Helper.Dom.Styles.RemoveClass(this._accordionItemIconElem, AccordionItem_1.Enum.CssClass.PatternIconCaret); + OSUI.Helper.Dom.Styles.RemoveClass(this._accordionItemIconCustomElem, AccordionItem_1.Enum.CssClass.PatternIconHidden); + OSUI.Helper.Dom.Styles.AddClass(this._accordionItemIconElem, AccordionItem_1.Enum.CssClass.PatternIconHidden); + OSUI.Helper.Dom.Styles.AddClass(this._accordionItemIconCustomElem, AccordionItem_1.Enum.CssClass.PatternIconCustom); + break; + default: + OSUI.Helper.Dom.Styles.RemoveClass(this._accordionItemIconElem, AccordionItem_1.Enum.CssClass.PatternIconPlusMinus); + OSUI.Helper.Dom.Styles.RemoveClass(this._accordionItemIconCustomElem, AccordionItem_1.Enum.CssClass.PatternIconCustom); + OSUI.Helper.Dom.Styles.RemoveClass(this._accordionItemIconElem, AccordionItem_1.Enum.CssClass.PatternIconHidden); + OSUI.Helper.Dom.Styles.AddClass(this._accordionItemIconCustomElem, AccordionItem_1.Enum.CssClass.PatternIconHidden); + OSUI.Helper.Dom.Styles.AddClass(this._accordionItemIconElem, AccordionItem_1.Enum.CssClass.PatternIconCaret); + break; + } + } + _setIsDisabledState() { + if (this.configs.IsDisabled) { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, AccordionItem_1.Enum.CssClass.PatternDisabled); + OSUI.Helper.A11Y.AriaDisabledTrue(this.selfElement); + this._removeEvents(); + this.unsetCallbacks(); + } + else { + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, AccordionItem_1.Enum.CssClass.PatternDisabled); + OSUI.Helper.A11Y.AriaDisabledFalse(this.selfElement); + this.setCallbacks(); + this._addEvents(); + } + this._handleTabIndex(); + } + _transitionEndHandler() { + if (this._accordionItemContentElem) { + OSUI.Helper.Dom.Styles.RemoveClass(this._accordionItemContentElem, AccordionItem_1.Enum.CssClass.PatternAnimating); + OSUI.Helper.Dom.Styles.SetStyleAttribute(this._accordionItemContentElem, OSUI.GlobalEnum.InlineStyle.Height, ''); + OSUI.Helper.Dom.Styles.SetStyleAttribute(this._accordionItemTitleElem, OSUI.GlobalEnum.InlineStyle.PointerEvents, ''); + if (this._accordionItemContentElem.style.cssText.length === 0) { + OSUI.Helper.Dom.Attribute.Remove(this._accordionItemContentElem, OSUI.GlobalEnum.HTMLAttributes.Style); + } + this._accordionItemContentElem.removeEventListener(OSUI.GlobalEnum.HTMLEvent.TransitionEnd, this._transitionEndHandler, false); + } + } + setA11YProperties() { + if (this.isBuilt === false) { + OSUI.Helper.A11Y.AriaControls(this._accordionItemTitleElem, this._accordionItemPlaceholder.id); + OSUI.Helper.A11Y.AriaLabelledBy(this._accordionItemContentElem, this._accordionItemTitleElem.id); + OSUI.Helper.A11Y.AriaHiddenTrue(this._accordionItemIconElem); + OSUI.Helper.A11Y.AriaDisabled(this._accordionItemTitleElem, this.configs.IsDisabled); + OSUI.Helper.A11Y.RoleButton(this._accordionItemTitleElem); + OSUI.Helper.A11Y.RoleRegion(this._accordionItemContentElem); + } + this._handleTabIndex(); + OSUI.Helper.A11Y.AriaExpanded(this._accordionItemTitleElem, this._isOpen.toString()); + OSUI.Helper.A11Y.AriaHidden(this._accordionItemContentElem, (!this._isOpen).toString()); + for (const child of this._accordionTitleFocusableChildren) { + OSUI.Helper.A11Y.AriaHidden(child, (!this._isOpen).toString()); + } + } + setCallbacks() { + this._eventOnClick = this._accordionOnClickHandler.bind(this); + this._eventOnTransitionEnd = this._transitionEndHandler.bind(this); + this._eventOnkeyPress = this._onKeyboardPress.bind(this); + } + setHtmlElements() { + this._accordionItemTitleElem = OSUI.Helper.Dom.ClassSelector(this.selfElement, AccordionItem_1.Enum.CssClass.PatternTitle); + this._accordionItemContentElem = OSUI.Helper.Dom.ClassSelector(this.selfElement, AccordionItem_1.Enum.CssClass.PatternContent); + this._accordionItemIconElem = OSUI.Helper.Dom.ClassSelector(this.selfElement, AccordionItem_1.Enum.CssClass.PatternIcon); + this._accordionItemIconCustomElem = OSUI.Helper.Dom.ClassSelector(this.selfElement, AccordionItem_1.Enum.CssClass.PatternIcon + '.' + OSUI.GlobalEnum.CssClassElements.Placeholder); + this._accordionItemPlaceholder = this._accordionItemContentElem.firstChild; + this._accordionTitleFocusableChildren = OSUI.Helper.Dom.TagSelectorAll(this._accordionItemTitleElem, OSUI.Constants.FocusableElems); + } + setInitialCssClasses() { + if (this._isOpen) { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, AccordionItem_1.Enum.CssClass.PatternOpen); + OSUI.Helper.Dom.Styles.AddClass(this._accordionItemContentElem, AccordionItem_1.Enum.CssClass.PatternExpanded); + } + else { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, AccordionItem_1.Enum.CssClass.PatternClosed); + OSUI.Helper.Dom.Styles.AddClass(this._accordionItemContentElem, AccordionItem_1.Enum.CssClass.PatternCollapsed); + } + this._setIconType(); + this._setIconPosition(); + } + unsetCallbacks() { + this._eventOnClick = undefined; + this._eventOnTransitionEnd = undefined; + this._eventOnkeyPress = undefined; + } + unsetHtmlElements() { + this._accordionItemTitleElem = undefined; + this._accordionItemContentElem = undefined; + this._accordionItemIconElem = undefined; + this._accordionItemPlaceholder = undefined; + this._accordionTitleFocusableChildren = []; + } + get isDisabled() { + return this.configs.IsDisabled; + } + get isOpen() { + return this._isOpen; + } + allowTitleEvents() { + this._allowTitleEvents = true; + } + build() { + super.build(); + this.setHtmlElements(); + this.setInitialCssClasses(); + this._setAccordionParent(); + this._setIsDisabledState(); + this.setA11YProperties(); + this.finishBuild(); + } + changeProperty(propertyName, propertyValue) { + super.changeProperty(propertyName, propertyValue); + if (this.isBuilt) { + switch (propertyName) { + case AccordionItem_1.Enum.Properties.IsDisabled: + this._setIsDisabledState(); + break; + case AccordionItem_1.Enum.Properties.StartsExpanded: + console.warn(`${OSUI.GlobalEnum.PatternName.AccordionItem} (${this.widgetId}): changes to ${AccordionItem_1.Enum.Properties.StartsExpanded} parameter do not affect the ${OSUI.GlobalEnum.PatternName.AccordionItem}. Use the client actions 'AccordionItemExpand' and 'AccordionItemCollapse' to affect the ${OSUI.GlobalEnum.PatternName.AccordionItem}.`); + break; + case AccordionItem_1.Enum.Properties.IconPosition: + this._setIconPosition(); + break; + case AccordionItem_1.Enum.Properties.Icon: + this._setIconType(); + } + } + } + close() { + if (!this._isOpen) { + return; + } + OSUI.Helper.Dom.Attribute.Remove(this._accordionItemContentElem, OSUI.GlobalEnum.HTMLAttributes.Style); + this._expandedHeight = this._accordionItemContentElem.getBoundingClientRect().height; + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, AccordionItem_1.Enum.CssClass.PatternClosed); + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, AccordionItem_1.Enum.CssClass.PatternOpen); + OSUI.Helper.Dom.Styles.RemoveClass(this._accordionItemContentElem, AccordionItem_1.Enum.CssClass.PatternExpanded); + OSUI.Helper.Dom.Styles.SetStyleAttribute(this._accordionItemContentElem, OSUI.GlobalEnum.InlineStyle.Height, this._expandedHeight + OSUI.GlobalEnum.Units.Pixel); + OSUI.Helper.AsyncInvocation(() => { + this._animationAsync(false); + }); + } + dispose() { + this.unsetCallbacks(); + this._removeEvents(); + if (this.parentObject) { + this.notifyParent(Patterns.Accordion.Enum.ChildNotifyActionType.Removed); + } + this.unsetHtmlElements(); + super.dispose(); + } + open() { + if (this._isOpen) { + return; + } + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, AccordionItem_1.Enum.CssClass.PatternClosed); + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, AccordionItem_1.Enum.CssClass.PatternOpen); + OSUI.Helper.Dom.Styles.SetStyleAttribute(this._accordionItemTitleElem, OSUI.GlobalEnum.InlineStyle.PointerEvents, OSUI.GlobalEnum.CssProperties.None); + OSUI.Helper.Dom.Styles.RemoveClass(this._accordionItemContentElem, AccordionItem_1.Enum.CssClass.PatternCollapsed); + OSUI.Helper.Dom.Styles.AddClass(this._accordionItemContentElem, AccordionItem_1.Enum.CssClass.PatternExpanded); + OSUI.Helper.Dom.Attribute.Remove(this._accordionItemTitleElem, OSUI.GlobalEnum.HTMLAttributes.Style); + this._expandedHeight = this._accordionItemContentElem.getBoundingClientRect().height; + OSUI.Helper.Dom.Styles.RemoveClass(this._accordionItemContentElem, AccordionItem_1.Enum.CssClass.PatternExpanded); + OSUI.Helper.Dom.Styles.SetStyleAttribute(this._accordionItemContentElem, OSUI.GlobalEnum.InlineStyle.Height, this._collapsedHeight); + OSUI.Helper.AsyncInvocation(() => { + this._animationAsync(true); + }); + if (this.parentObject) { + this.notifyParent(Patterns.Accordion.Enum.ChildNotifyActionType.Click); + } + } + registerCallback(eventName, callback) { + switch (eventName) { + case AccordionItem_1.Enum.Events.OnToggle: + if (this._platformEventOnToggle === undefined) { + this._platformEventOnToggle = callback; + } + break; + default: + super.registerCallback(eventName, callback); + } + } + } + AccordionItem_1.AccordionItem = AccordionItem; + })(AccordionItem = Patterns.AccordionItem || (Patterns.AccordionItem = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var AccordionItem; + (function (AccordionItem) { + class AccordionItemConfig extends Patterns.AbstractConfiguration { + constructor(config) { + super(config); + } + validateCanChange(isBuilt, key) { + if (isBuilt) { + return key !== AccordionItem.Enum.Properties.StartsExpanded; + } + return true; + } + validateDefault(key, value) { + let validatedValue = undefined; + switch (key) { + case AccordionItem.Enum.Properties.IsDisabled: + validatedValue = this.validateBoolean(value, false); + break; + case AccordionItem.Enum.Properties.Icon: + validatedValue = this.validateString(value, AccordionItem.Enum.IconType.Caret); + break; + case AccordionItem.Enum.Properties.IconPosition: + validatedValue = this.validateString(value, OSUI.GlobalEnum.Direction.Right); + break; + default: + validatedValue = super.validateDefault(key, value); + break; + } + return validatedValue; + } + } + AccordionItem.AccordionItemConfig = AccordionItemConfig; + })(AccordionItem = Patterns.AccordionItem || (Patterns.AccordionItem = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var AccordionItem; + (function (AccordionItem) { + var Enum; + (function (Enum) { + let Properties; + (function (Properties) { + Properties["IconPosition"] = "IconPosition"; + Properties["IsDisabled"] = "IsDisabled"; + Properties["Icon"] = "Icon"; + Properties["StartsExpanded"] = "StartsExpanded"; + })(Properties = Enum.Properties || (Enum.Properties = {})); + let CssClass; + (function (CssClass) { + CssClass["PatternAnimating"] = "osui-accordion-item__content--is-animating"; + CssClass["PatternClosed"] = "osui-accordion-item--is-closed"; + CssClass["PatternCollapsed"] = "osui-accordion-item__content--is-collapsed"; + CssClass["PatternDisabled"] = "osui-accordion-item--is-disabled"; + CssClass["PatternExpanded"] = "osui-accordion-item__content--is-expanded"; + CssClass["PatternContent"] = "osui-accordion-item__content"; + CssClass["PatternIcon"] = "osui-accordion-item__icon"; + CssClass["PatternIconCaret"] = "osui-accordion-item__icon--caret"; + CssClass["PatternIconCustom"] = "osui-accordion-item__icon--custom"; + CssClass["PatternIconHidden"] = "osui-accordion-item__icon--hidden"; + CssClass["PatternIconPlusMinus"] = "osui-accordion-item__icon--plus-minus"; + CssClass["PatternIconPositionIsLeft"] = "osui-accordion-item__title--is-left"; + CssClass["PatternIconPositionIsRight"] = "osui-accordion-item__title--is-right"; + CssClass["PatternOpen"] = "osui-accordion-item--is-open"; + CssClass["PatternTitle"] = "osui-accordion-item__title"; + })(CssClass = Enum.CssClass || (Enum.CssClass = {})); + let Events; + (function (Events) { + Events["OnToggle"] = "OnToggle"; + })(Events = Enum.Events || (Enum.Events = {})); + let IconType; + (function (IconType) { + IconType["Caret"] = "Caret"; + IconType["Custom"] = "Custom"; + IconType["PlusMinus"] = "PlusMinus"; + })(IconType = Enum.IconType || (Enum.IconType = {})); + })(Enum = AccordionItem.Enum || (AccordionItem.Enum = {})); + })(AccordionItem = Patterns.AccordionItem || (Patterns.AccordionItem = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var AnimatedLabel; + (function (AnimatedLabel_1) { + class AnimatedLabel extends Patterns.AbstractPattern { + constructor(uniqueId, configs) { + super(uniqueId, new AnimatedLabel_1.AnimatedLabelConfig(configs)); + this._isLabelFocus = false; + } + _addEvents() { + this._inputElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.Blur, this._eventBlur); + this._inputElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.Focus, this._eventFocus); + this._inputElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.AnimationStart, this._eventAnimationStart); + } + _inputAnimationStartCallback(e) { + if (e.animationName === AnimatedLabel_1.Enum.AnimationEvent.OnAutoFillStart) { + this._inputStateToggle(true); + } + } + _inputBlurCallback(evt) { + if (evt.type === OSUI.GlobalEnum.HTMLEvent.Blur) { + this._inputStateToggle(false); + } + } + _inputFocusCallback(evt) { + if (evt.type === OSUI.GlobalEnum.HTMLEvent.Focus) { + this._inputStateToggle(true); + } + } + _inputStateToggle(isFocus = false) { + const inputHasText = this._inputElement && this._inputElement.value !== ''; + if (this.isBuilt || inputHasText) { + if ((inputHasText || isFocus) && this._isLabelFocus === false) { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, AnimatedLabel_1.Enum.CssClasses.IsActive); + this._isLabelFocus = true; + } + else if (inputHasText === false && this._isLabelFocus && isFocus === false) { + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, AnimatedLabel_1.Enum.CssClasses.IsActive); + this._isLabelFocus = false; + } + } + } + _removeEvents() { + this._inputElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.Blur, this._eventBlur); + this._inputElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.Focus, this._eventFocus); + this._inputElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.AnimationStart, this._eventAnimationStart); + } + setA11YProperties() { + console.warn(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + setCallbacks() { + this._eventBlur = this._inputBlurCallback.bind(this); + this._eventFocus = this._inputFocusCallback.bind(this); + this._eventAnimationStart = this._inputAnimationStartCallback.bind(this); + this._addEvents(); + } + setHtmlElements() { + this._labelPhElement = OSUI.Helper.Dom.ClassSelector(this.selfElement, AnimatedLabel_1.Enum.CssClasses.LabelPlaceholder); + this._inputPhElement = OSUI.Helper.Dom.ClassSelector(this.selfElement, AnimatedLabel_1.Enum.CssClasses.InputPlaceholder); + this._inputElement = + OSUI.Helper.Dom.TagSelector(this._inputPhElement, OSUI.GlobalEnum.DataBlocksTag.Input) || + OSUI.Helper.Dom.TagSelector(this._inputPhElement, OSUI.GlobalEnum.DataBlocksTag.TextArea); + if (this._inputElement) { + this._inputElement.placeholder = ''; + this._inputStateToggle(); + } + else { + throw new Error(AnimatedLabel_1.Enum.Messages.InputNotFound); + } + if (OSUI.Helper.Dom.TagSelector(this._labelPhElement, OSUI.GlobalEnum.DataBlocksTag.Label) === undefined) { + console.warn(AnimatedLabel_1.Enum.Messages.LabelNotFound); + } + } + unsetCallbacks() { + this._removeEvents(); + this._eventBlur = undefined; + this._eventFocus = undefined; + this._eventAnimationStart = undefined; + } + unsetHtmlElements() { + this._labelPhElement = undefined; + this._inputPhElement = undefined; + this._inputElement = undefined; + } + build() { + OSUI.Helper.AsyncInvocation(() => { + super.build(); + this.setHtmlElements(); + this.setCallbacks(); + this.finishBuild(); + }); + } + dispose() { + this.unsetCallbacks(); + this.unsetHtmlElements(); + super.dispose(); + } + updateOnRender() { + if (this.isBuilt) { + this._inputStateToggle(); + } + } + } + AnimatedLabel_1.AnimatedLabel = AnimatedLabel; + })(AnimatedLabel = Patterns.AnimatedLabel || (Patterns.AnimatedLabel = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var AnimatedLabel; + (function (AnimatedLabel) { + class AnimatedLabelConfig extends Patterns.AbstractConfiguration { + constructor(config) { + super(config); + } + } + AnimatedLabel.AnimatedLabelConfig = AnimatedLabelConfig; + })(AnimatedLabel = Patterns.AnimatedLabel || (Patterns.AnimatedLabel = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var AnimatedLabel; + (function (AnimatedLabel) { + var Enum; + (function (Enum) { + let AnimationEvent; + (function (AnimationEvent) { + AnimationEvent["OnAutoFillStart"] = "onAutoFillStart"; + })(AnimationEvent = Enum.AnimationEvent || (Enum.AnimationEvent = {})); + let CssClasses; + (function (CssClasses) { + CssClasses["InputPlaceholder"] = "animated-label-input"; + CssClasses["IsActive"] = "active"; + CssClasses["LabelPlaceholder"] = "animated-label-text"; + CssClasses["Pattern"] = "animated-label"; + })(CssClasses = Enum.CssClasses || (Enum.CssClasses = {})); + let Messages; + (function (Messages) { + Messages["InputNotFound"] = "Missing input or textarea."; + Messages["LabelNotFound"] = "We notice that a label is missing inside the Label Placeholder. In order to grant accessibility add it and assign the Input Widget accordingly."; + })(Messages = Enum.Messages || (Enum.Messages = {})); + })(Enum = AnimatedLabel.Enum || (AnimatedLabel.Enum = {})); + })(AnimatedLabel = Patterns.AnimatedLabel || (Patterns.AnimatedLabel = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var BottomSheet; + (function (BottomSheet_1) { + class BottomSheet extends Patterns.AbstractPattern { + get gestureEventInstance() { + return this._gestureEventInstance; + } + get hasGestureEvents() { + return this._hasGestureEvents; + } + constructor(uniqueId, configs) { + super(uniqueId, new BottomSheet_1.BottomSheetConfig(configs)); + this._isOpen = false; + this.springAnimationConfigs = { + addSpringAnimation: true, + springAnimationProperties: { + tension: 300, + friction: 15, + mass: 1, + }, + }; + } + _handleFocusBehavior() { + const opts = { + focusTargetElement: this._parentSelf, + }; + this._focusTrapInstance = new OSUI.Behaviors.FocusTrap(opts); + this._focusManagerInstance = new OSUI.Behaviors.FocusManager(); + } + _handleGestureEvents() { + if (!OSUI.Helper.DeviceInfo.IsDesktop) { + this._gestureEventInstance = new OSUI.Event.GestureEvent.DragEvent(this._bottomSheetHeaderElem); + this._animateOnDragInstance = new OSUI.Behaviors.AnimateOnDrag(this.selfElement); + } + } + _handleShape(shape) { + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, BottomSheet_1.Enum.CssCustomProperties.Shape, 'var(--border-radius-' + shape + ')'); + } + _onContentScrollCallback() { + if (this._bottomSheetContentElem.scrollTop === 0) { + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, BottomSheet_1.Enum.CssClass.HasSCroll); + } + else { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, BottomSheet_1.Enum.CssClass.HasSCroll); + } + } + _onGestureEnd(offsetX, offsetY, timeTaken) { + this._animateOnDragInstance.onDragEnd(offsetX, offsetY, timeTaken, this.close.bind(this), this.springAnimationConfigs); + } + _onGestureMove(x, y, offsetX, offsetY, evt) { + this._animateOnDragInstance.onDragMove(offsetX, offsetY, x, y, evt); + } + _onGestureStart(x, y) { + this._animateOnDragInstance.onDragStart(true, OSUI.GlobalEnum.Direction.Down, x, y, true, this.selfElement.clientHeight.toString()); + } + _onkeypressCallback(e) { + var _a, _b; + switch (e.key) { + case OSUI.GlobalEnum.Keycodes.Escape: + this.close(); + break; + case OSUI.GlobalEnum.Keycodes.End: + (_a = this._focusTrapInstance.focusableElements[this._focusTrapInstance.focusableElements.length - 1]) === null || _a === void 0 ? void 0 : _a.focus(); + break; + case OSUI.GlobalEnum.Keycodes.Home: + (_b = this._focusTrapInstance.focusableElements[0]) === null || _b === void 0 ? void 0 : _b.focus(); + break; + } + } + _toggleBottomSheet(isOpen) { + var _a; + if ((_a = this._animateOnDragInstance) === null || _a === void 0 ? void 0 : _a.dragParams.SpringAnimation) { + this._animateOnDragInstance.dragParams.SpringAnimation.cancel(); + } + if (isOpen) { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, BottomSheet_1.Enum.CssClass.IsOpen); + OSUI.Helper.Dom.Styles.AddClass(document.body, BottomSheet_1.Enum.CssClass.IsActive); + } + else { + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, BottomSheet_1.Enum.CssClass.IsOpen); + OSUI.Helper.Dom.Styles.RemoveClass(document.body, BottomSheet_1.Enum.CssClass.IsActive); + } + this._isOpen = isOpen; + this.setEventListeners(); + this.setA11YProperties(); + if (isOpen) { + this._focusManagerInstance.storeLastFocusedElement(); + this._focusTrapInstance.enableForA11y(); + this.selfElement.focus(); + } + else { + this._focusTrapInstance.disableForA11y(); + OSUI.Helper.AsyncInvocation(() => { + this.selfElement.blur(); + this._focusManagerInstance.setFocusToStoredElement(); + }); + } + this._triggerOnToggleEvent(); + } + _toggleHandler(ShowHandler) { + if (ShowHandler) { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, BottomSheet_1.Enum.CssClass.HasHandler); + } + else { + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, BottomSheet_1.Enum.CssClass.HasHandler); + } + } + _triggerOnToggleEvent() { + this.triggerPlatformEventCallback(this._platformEventOnToggle, this._isOpen); + } + removeEventListeners() { + this._bottomSheetContentElem.removeEventListener(OSUI.GlobalEnum.HTMLEvent.Scroll, this._eventOnContentScroll); + this.selfElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventOnKeypress); + this.removeGestureEvents(); + } + setA11YProperties() { + if (!this.isBuilt) { + OSUI.Helper.A11Y.RoleComplementary(this.selfElement); + } + OSUI.Helper.Dom.Attribute.Set(this.selfElement, OSUI.Constants.A11YAttributes.Aria.Hidden, (!this._isOpen).toString()); + OSUI.Helper.Dom.Attribute.Set(this.selfElement, OSUI.Constants.A11YAttributes.TabIndex, this._isOpen + ? OSUI.Constants.A11YAttributes.States.TabIndexShow + : OSUI.Constants.A11YAttributes.States.TabIndexHidden); + OSUI.Helper.A11Y.SetElementsTabIndex(this._isOpen, this._focusTrapInstance.focusableElements); + } + setCallbacks() { + this._eventOnContentScroll = this._onContentScrollCallback.bind(this); + this._eventOnKeypress = this._onkeypressCallback.bind(this); + } + setEventListeners() { + this._bottomSheetContentElem.addEventListener(OSUI.GlobalEnum.HTMLEvent.Scroll, this._eventOnContentScroll); + this.selfElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventOnKeypress); + if (!OSUI.Helper.DeviceInfo.IsDesktop && this.gestureEventInstance !== undefined) { + this.setGestureEvents(this._onGestureStart.bind(this), this._onGestureMove.bind(this), this._onGestureEnd.bind(this)); + } + } + setHtmlElements() { + this._parentSelf = OSUI.Helper.Dom.GetElementById(this.widgetId); + this._bottomSheetContentElem = OSUI.Helper.Dom.ClassSelector(this.selfElement, BottomSheet_1.Enum.CssClass.PatternContent); + this._bottomSheetHeaderElem = OSUI.Helper.Dom.ClassSelector(this.selfElement, BottomSheet_1.Enum.CssClass.PatternHeader); + } + setInitialOptions() { + this._toggleHandler(this.configs.ShowHandler); + this._handleShape(this.configs.Shape); + } + unsetCallbacks() { + this._eventOnContentScroll = undefined; + this._eventOnKeypress = undefined; + this._platformEventOnToggle = undefined; + } + unsetHtmlElements() { + this._parentSelf = undefined; + this._bottomSheetContentElem = undefined; + this._bottomSheetHeaderElem = undefined; + } + build() { + super.build(); + this.setHtmlElements(); + this._handleFocusBehavior(); + this.setInitialOptions(); + this.setCallbacks(); + this.setA11YProperties(); + this._handleGestureEvents(); + this.finishBuild(); + } + changeProperty(propertyName, propertyValue) { + super.changeProperty(propertyName, propertyValue); + if (this.isBuilt) { + switch (propertyName) { + case BottomSheet_1.Enum.Properties.ShowHandler: + this._toggleHandler(this.configs.ShowHandler); + break; + case BottomSheet_1.Enum.Properties.Shape: + this._handleShape(this.configs.Shape); + break; + } + } + } + close() { + if (this._isOpen) { + this._toggleBottomSheet(false); + } + } + dispose() { + if (this._isOpen) { + this.removeEventListeners(); + } + this.unsetHtmlElements(); + this.unsetCallbacks(); + this._focusTrapInstance.dispose(); + super.dispose(); + } + open() { + if (this._isOpen === false) { + this._toggleBottomSheet(true); + } + } + registerCallback(eventName, callback) { + switch (eventName) { + case BottomSheet_1.Enum.Events.OnToggle: + if (this._platformEventOnToggle === undefined) { + this._platformEventOnToggle = callback; + } + break; + default: + super.registerCallback(eventName, callback); + } + } + removeGestureEvents() { + if (this._gestureEventInstance !== undefined) { + this._gestureEventInstance.unsetTouchEvents(); + this._hasGestureEvents = false; + this._gestureEventInstance = undefined; + } + } + setGestureEvents(onGestureStart, onGestureMove, onGestureEnd) { + this._gestureEventInstance.setSwipeEvents(onGestureStart, onGestureMove, onGestureEnd); + this._hasGestureEvents = true; + } + } + BottomSheet_1.BottomSheet = BottomSheet; + })(BottomSheet = Patterns.BottomSheet || (Patterns.BottomSheet = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var BottomSheet; + (function (BottomSheet) { + class BottomSheetConfig extends Patterns.AbstractConfiguration { + constructor(config) { + super(config); + } + validateDefault(key, value) { + let validatedValue = undefined; + switch (key) { + case BottomSheet.Enum.Properties.Shape: + validatedValue = this.validateInRange(value, OSUI.GlobalEnum.ShapeTypes.SoftRounded, OSUI.GlobalEnum.ShapeTypes.Sharp, OSUI.GlobalEnum.ShapeTypes.Rounded); + break; + case BottomSheet.Enum.Properties.ShowHandler: + validatedValue = this.validateBoolean(value, false); + break; + default: + validatedValue = super.validateDefault(key, value); + break; + } + return validatedValue; + } + } + BottomSheet.BottomSheetConfig = BottomSheetConfig; + })(BottomSheet = Patterns.BottomSheet || (Patterns.BottomSheet = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var BottomSheet; + (function (BottomSheet) { + var Enum; + (function (Enum) { + let CssClass; + (function (CssClass) { + CssClass["HasHandler"] = "osui-bottom-sheet--has-handler"; + CssClass["HasSCroll"] = "osui-bottom-sheet--has-scroll"; + CssClass["IsOpen"] = "osui-bottom-sheet--is-open"; + CssClass["IsActive"] = "osui-bottom-sheet--is-active"; + CssClass["PatternContent"] = "osui-bottom-sheet__content"; + CssClass["PatternHeader"] = "osui-bottom-sheet__header"; + CssClass["PatternOverlay"] = "osui-bottom-sheet-overlay"; + CssClass["PatternTopBar"] = "osui-bottom-sheet__header__top-bar"; + })(CssClass = Enum.CssClass || (Enum.CssClass = {})); + let CssCustomProperties; + (function (CssCustomProperties) { + CssCustomProperties["Shape"] = "--bottom-sheet-shape"; + })(CssCustomProperties = Enum.CssCustomProperties || (Enum.CssCustomProperties = {})); + let Events; + (function (Events) { + Events["OnToggle"] = "OnToggle"; + })(Events = Enum.Events || (Enum.Events = {})); + let Properties; + (function (Properties) { + Properties["Shape"] = "Shape"; + Properties["ShowHandler"] = "ShowHandler"; + })(Properties = Enum.Properties || (Enum.Properties = {})); + })(Enum = BottomSheet.Enum || (BottomSheet.Enum = {})); + })(BottomSheet = Patterns.BottomSheet || (Patterns.BottomSheet = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var ButtonLoading; + (function (ButtonLoading_1) { + class ButtonLoading extends Patterns.AbstractPattern { + constructor(uniqueId, configs) { + super(uniqueId, new ButtonLoading_1.ButtonLoadingConfig(configs)); + } + _setInitialButtonState() { + this._setIsLoading(this.configs.IsLoading); + this._setLoadingLabel(this.configs.ShowLoadingAndLabel); + } + _setIsLoading(isLoading) { + if (isLoading) { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, ButtonLoading_1.Enum.CssClass.IsLoading); + OSUI.Helper.A11Y.AriaBusyTrue(this.selfElement); + this.isBuilt && + OSUI.Helper.Dom.Attribute.Set(this._buttonElement, OSUI.GlobalEnum.HTMLAttributes.Disabled, 'true'); + this._buttonElement.blur(); + } + else { + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, ButtonLoading_1.Enum.CssClass.IsLoading); + OSUI.Helper.A11Y.AriaBusyFalse(this.selfElement); + this.isBuilt && OSUI.Helper.Dom.Attribute.Remove(this._buttonElement, OSUI.GlobalEnum.HTMLAttributes.Disabled); + } + } + _setLoadingLabel(showSpinnerOnly) { + if (showSpinnerOnly && this.isBuilt) { + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, ButtonLoading_1.Enum.CssClass.ShowSpinnerOnly); + } + else if (showSpinnerOnly === false) { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, ButtonLoading_1.Enum.CssClass.ShowSpinnerOnly); + } + } + setA11YProperties() { + OSUI.Helper.A11Y.AriaLivePolite(this.selfElement); + OSUI.Helper.A11Y.AriaAtomicTrue(this.selfElement); + OSUI.Helper.A11Y.AriaHiddenTrue(this._spinnerElement); + } + setCallbacks() { + console.log(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + setHtmlElements() { + this._buttonElement = OSUI.Helper.Dom.ClassSelector(this.selfElement, ButtonLoading_1.Enum.CssClass.Button); + if (this._buttonElement === undefined) { + throw new Error(`There are no '${OSUI.Constants.Dot + ButtonLoading_1.Enum.CssClass.Button}' element as a ${OSUI.GlobalEnum.PatternName.ButtonLoading} placeholder child.`); + } + this._spinnerElement = OSUI.Helper.Dom.ClassSelector(this._buttonElement, ButtonLoading_1.Enum.CssClass.Spinner); + if (this._spinnerElement === undefined) { + throw new Error(`There are no '${OSUI.Constants.Dot + ButtonLoading_1.Enum.CssClass.Spinner}' element as a '${OSUI.Constants.Dot + ButtonLoading_1.Enum.CssClass.Button}' element child.`); + } + } + unsetCallbacks() { + console.log(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + unsetHtmlElements() { + this._buttonElement = undefined; + this._spinnerElement = undefined; + } + build() { + super.build(); + this.setHtmlElements(); + this._setInitialButtonState(); + this.setA11YProperties(); + this.finishBuild(); + } + changeProperty(propertyName, propertyValue) { + super.changeProperty(propertyName, propertyValue); + if (this.isBuilt) { + switch (propertyName) { + case ButtonLoading_1.Enum.Properties.IsLoading: + this._setIsLoading(propertyValue); + break; + case ButtonLoading_1.Enum.Properties.ShowLoadingAndLabel: + this._setLoadingLabel(propertyValue); + break; + } + } + } + dispose() { + this.unsetHtmlElements(); + super.dispose(); + } + } + ButtonLoading_1.ButtonLoading = ButtonLoading; + })(ButtonLoading = Patterns.ButtonLoading || (Patterns.ButtonLoading = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var ButtonLoading; + (function (ButtonLoading) { + class ButtonLoadingConfig extends Patterns.AbstractConfiguration { + constructor(config) { + super(config); + } + } + ButtonLoading.ButtonLoadingConfig = ButtonLoadingConfig; + })(ButtonLoading = Patterns.ButtonLoading || (Patterns.ButtonLoading = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var ButtonLoading; + (function (ButtonLoading) { + var Enum; + (function (Enum) { + let Properties; + (function (Properties) { + Properties["IsLoading"] = "IsLoading"; + Properties["ShowLoadingAndLabel"] = "ShowLoadingAndLabel"; + })(Properties = Enum.Properties || (Enum.Properties = {})); + let CssClass; + (function (CssClass) { + CssClass["Button"] = "btn"; + CssClass["IsLoading"] = "osui-btn-loading--is-loading"; + CssClass["ShowSpinnerOnly"] = "osui-btn-loading-show-spinner"; + CssClass["Spinner"] = "osui-btn-loading__spinner-animation"; + })(CssClass = Enum.CssClass || (Enum.CssClass = {})); + })(Enum = ButtonLoading.Enum || (ButtonLoading.Enum = {})); + })(ButtonLoading = Patterns.ButtonLoading || (Patterns.ButtonLoading = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Carousel; + (function (Carousel) { + class AbstractCarousel extends Patterns.AbstractProviderPattern { + constructor(uniqueId, configs) { + super(uniqueId, configs); + } + build() { + super.build(); + } + } + Carousel.AbstractCarousel = AbstractCarousel; + })(Carousel = Patterns.Carousel || (Patterns.Carousel = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Carousel; + (function (Carousel) { + class AbstractCarouselConfig extends Patterns.AbstractProviderConfiguration { + constructor(config) { + super(config); + } + validateCanChange(isBuilt, key) { + if (isBuilt) { + return key !== Carousel.Enum.Properties.StartingPosition; + } + return true; + } + validateDefault(key, value) { + let validatedValue = undefined; + switch (key) { + case Carousel.Enum.Properties.Navigation: + validatedValue = this.validateInRange(value, Carousel.Enum.Navigation.Both, Carousel.Enum.Navigation.Arrows, Carousel.Enum.Navigation.Dots, Carousel.Enum.Navigation.None); + break; + case Carousel.Enum.Properties.ItemsDesktop: + case Carousel.Enum.Properties.ItemsTablet: + case Carousel.Enum.Properties.ItemsPhone: + validatedValue = this.validateNumber(value, 1); + break; + case Carousel.Enum.Properties.Height: + validatedValue = this.validateString(value, Carousel.Enum.Defaults.Height); + break; + case Carousel.Enum.Properties.AutoPlay: + validatedValue = this.validateBoolean(value, false); + break; + case Carousel.Enum.Properties.ItemsGap: + validatedValue = this.validateString(value, Carousel.Enum.Defaults.SpaceNone); + break; + case Carousel.Enum.Properties.Loop: + validatedValue = this.validateBoolean(value, true); + break; + case Carousel.Enum.Properties.Padding: + validatedValue = this.validateString(value, Carousel.Enum.Defaults.SpaceNone); + break; + default: + validatedValue = super.validateDefault(key, value); + break; + } + return validatedValue; + } + } + Carousel.AbstractCarouselConfig = AbstractCarouselConfig; + })(Carousel = Patterns.Carousel || (Patterns.Carousel = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Carousel; + (function (Carousel) { + var Factory; + (function (Factory) { + function NewCarousel(carouselId, configs, provider) { + let _carouselItem = null; + if (provider === Carousel.Enum.Provider.Splide) { + _carouselItem = new Providers.OSUI.Carousel.Splide.OSUISplide(carouselId, JSON.parse(configs)); + } + else { + throw new Error(`There is no ${OSUI.GlobalEnum.PatternName.Carousel} of the ${provider} provider`); + } + return _carouselItem; + } + Factory.NewCarousel = NewCarousel; + })(Factory = Carousel.Factory || (Carousel.Factory = {})); + })(Carousel = Patterns.Carousel || (Patterns.Carousel = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Carousel; + (function (Carousel) { + var Enum; + (function (Enum) { + let CarouselEvents; + (function (CarouselEvents) { + CarouselEvents["OnSlideMoved"] = "OnSlideMoved"; + })(CarouselEvents = Enum.CarouselEvents || (Enum.CarouselEvents = {})); + let CssVariables; + (function (CssVariables) { + CssVariables["CarouselWidth"] = "--osui-carousel-track-width"; + })(CssVariables = Enum.CssVariables || (Enum.CssVariables = {})); + let CssClass; + (function (CssClass) { + CssClass["CarouselWrapper"] = "osui-carousel"; + CssClass["Content"] = "osui-carousel__content"; + CssClass["HasPagination"] = "osui-carousel--has-pagination"; + CssClass["Track"] = "osui-carousel__track"; + })(CssClass = Enum.CssClass || (Enum.CssClass = {})); + let Direction; + (function (Direction) { + Direction["None"] = ""; + Direction["LeftToRight"] = "LeftToRight"; + Direction["RightToLeft"] = "RightToLeft"; + })(Direction = Enum.Direction || (Enum.Direction = {})); + let Properties; + (function (Properties) { + Properties["AutoPlay"] = "AutoPlay"; + Properties["Height"] = "Height"; + Properties["ItemsDesktop"] = "ItemsDesktop"; + Properties["ItemsGap"] = "ItemsGap"; + Properties["ItemsPhone"] = "ItemsPhone"; + Properties["ItemsTablet"] = "ItemsTablet"; + Properties["Loop"] = "Loop"; + Properties["Navigation"] = "Navigation"; + Properties["Padding"] = "Padding"; + Properties["StartingPosition"] = "StartingPosition"; + })(Properties = Enum.Properties || (Enum.Properties = {})); + let Provider; + (function (Provider) { + Provider["Splide"] = "Splide"; + })(Provider = Enum.Provider || (Enum.Provider = {})); + let Navigation; + (function (Navigation) { + Navigation["Arrows"] = "arrows"; + Navigation["Both"] = "both"; + Navigation["Dots"] = "dots"; + Navigation["None"] = "none"; + })(Navigation = Enum.Navigation || (Enum.Navigation = {})); + let Defaults; + (function (Defaults) { + Defaults["Height"] = "auto"; + Defaults["SpaceNone"] = "0px"; + })(Defaults = Enum.Defaults || (Enum.Defaults = {})); + })(Enum = Carousel.Enum || (Carousel.Enum = {})); + })(Carousel = Patterns.Carousel || (Patterns.Carousel = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var DatePicker; + (function (DatePicker) { + class AbstractDatePicker extends Patterns.AbstractProviderPattern { + constructor(uniqueId, configs) { + super(uniqueId, configs); + } + } + DatePicker.AbstractDatePicker = AbstractDatePicker; + })(DatePicker = Patterns.DatePicker || (Patterns.DatePicker = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var DatePicker; + (function (DatePicker) { + class AbstractDatePickerConfig extends Patterns.AbstractProviderConfiguration { + constructor(config) { + super(config); + } + validateDefault(key, value) { + let validatedValue = undefined; + switch (key) { + case DatePicker.Enum.Properties.DateFormat: + validatedValue = this.validateString(value, OSUI.Helper.Dates.ServerFormat); + break; + case DatePicker.Enum.Properties.FirstWeekDay: + validatedValue = this.validateNumber(value, 0); + break; + case DatePicker.Enum.Properties.MaxDate: + validatedValue = this.validateDate(value, undefined); + break; + case DatePicker.Enum.Properties.MinDate: + validatedValue = this.validateDate(value, undefined); + break; + case DatePicker.Enum.Properties.ShowTodayButton: + validatedValue = this.validateBoolean(value, false); + break; + case DatePicker.Enum.Properties.TimeFormat: + validatedValue = this.validateString(value, DatePicker.Enum.TimeFormatMode.Disable); + break; + default: + validatedValue = super.validateDefault(key, value); + break; + } + return validatedValue; + } + } + DatePicker.AbstractDatePickerConfig = AbstractDatePickerConfig; + })(DatePicker = Patterns.DatePicker || (Patterns.DatePicker = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var DatePicker; + (function (DatePicker) { + var Factory; + (function (Factory) { + function NewDatePicker(datePickerId, configs, mode, provider) { + let _datePickerItem = null; + switch (provider) { + case DatePicker.Enum.Provider.FlatPicker: + _datePickerItem = Providers.OSUI.Datepicker.Flatpickr.Factory.NewFlatpickr(datePickerId, mode, configs); + break; + default: + throw new Error(`There is no ${OSUI.GlobalEnum.PatternName.Datepicker} of the ${provider} provider`); + } + return _datePickerItem; + } + Factory.NewDatePicker = NewDatePicker; + })(Factory = DatePicker.Factory || (DatePicker.Factory = {})); + })(DatePicker = Patterns.DatePicker || (Patterns.DatePicker = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var DatePicker; + (function (DatePicker) { + var Enum; + (function (Enum) { + let CssClass; + (function (CssClass) { + CssClass["Calendar"] = "osui-datepicker-calendar"; + CssClass["Pattern"] = "osui-datepicker"; + })(CssClass = Enum.CssClass || (Enum.CssClass = {})); + let DatePickerEvents; + (function (DatePickerEvents) { + DatePickerEvents["OnChange"] = "OnChange"; + DatePickerEvents["OnInitialize"] = "OnInitialize"; + })(DatePickerEvents = Enum.DatePickerEvents || (Enum.DatePickerEvents = {})); + let Mode; + (function (Mode) { + Mode["Range"] = "range"; + Mode["Single"] = "single"; + })(Mode = Enum.Mode || (Enum.Mode = {})); + let Properties; + (function (Properties) { + Properties["DateFormat"] = "DateFormat"; + Properties["FirstWeekDay"] = "FirstWeekDay"; + Properties["MaxDate"] = "MaxDate"; + Properties["MinDate"] = "MinDate"; + Properties["ShowTodayButton"] = "ShowTodayButton"; + Properties["ShowWeekNumbers"] = "ShowWeekNumbers"; + Properties["TimeFormat"] = "TimeFormat"; + })(Properties = Enum.Properties || (Enum.Properties = {})); + let Provider; + (function (Provider) { + Provider["FlatPicker"] = "flatpickr"; + })(Provider = Enum.Provider || (Enum.Provider = {})); + let TimeFormatMode; + (function (TimeFormatMode) { + TimeFormatMode["Disable"] = "disabled"; + TimeFormatMode["Time12hFormat"] = "12"; + TimeFormatMode["Time24hFormat"] = "24"; + })(TimeFormatMode = Enum.TimeFormatMode || (Enum.TimeFormatMode = {})); + })(Enum = DatePicker.Enum || (DatePicker.Enum = {})); + })(DatePicker = Patterns.DatePicker || (Patterns.DatePicker = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Dropdown; + (function (Dropdown) { + class AbstractDropdown extends Patterns.AbstractProviderPattern { + constructor(uniqueId, configs) { + super(uniqueId, configs); + } + } + Dropdown.AbstractDropdown = AbstractDropdown; + })(Dropdown = Patterns.Dropdown || (Patterns.Dropdown = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Dropdown; + (function (Dropdown) { + class AbstractDropdownConfig extends Patterns.AbstractProviderConfiguration { + constructor(config) { + super(config); + } + validateDefault(key, value) { + let validatedValue = undefined; + switch (key) { + case Dropdown.Enum.Properties.IsDisabled: + validatedValue = this.validateBoolean(value, false); + break; + default: + validatedValue = super.validateDefault(key, value); + break; + } + return validatedValue; + } + } + Dropdown.AbstractDropdownConfig = AbstractDropdownConfig; + })(Dropdown = Patterns.Dropdown || (Patterns.Dropdown = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Dropdown; + (function (Dropdown) { + var Factory; + (function (Factory) { + function NewDropdown(dropdownId, mode, provider, configs) { + let _dropdownItem = null; + switch (provider) { + case Dropdown.Enum.Provider.VirtualSelect: + _dropdownItem = Providers.OSUI.Dropdown.VirtualSelect.Factory.NewVirtualSelect(dropdownId, mode, JSON.parse(configs)); + break; + case Dropdown.Enum.Provider.OSUIComponents: + if (mode === Dropdown.Enum.Mode.ServerSide) { + _dropdownItem = new Dropdown.ServerSide.OSUIDropdownServerSide(dropdownId, JSON.parse(configs)); + } + else { + throw new Error(`There is no Dropdown of the ${provider} provider with ${mode} type`); + } + break; + default: + throw new Error(`There is no Dropdown of the ${provider} provider`); + } + return _dropdownItem; + } + Factory.NewDropdown = NewDropdown; + })(Factory = Dropdown.Factory || (Dropdown.Factory = {})); + })(Dropdown = Patterns.Dropdown || (Patterns.Dropdown = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Dropdown; + (function (Dropdown) { + var Enum; + (function (Enum) { + let CssClass; + (function (CssClass) { + CssClass["DropdownLarge"] = "dropdown--is-large"; + CssClass["DropdownSmall"] = "dropdown--is-small"; + })(CssClass = Enum.CssClass || (Enum.CssClass = {})); + let Mode; + (function (Mode) { + Mode["Search"] = "search"; + Mode["ServerSide"] = "server-side"; + Mode["Tags"] = "tags"; + })(Mode = Enum.Mode || (Enum.Mode = {})); + let Properties; + (function (Properties) { + Properties["IsDisabled"] = "IsDisabled"; + })(Properties = Enum.Properties || (Enum.Properties = {})); + let Provider; + (function (Provider) { + Provider["OSUIComponents"] = "osui-components"; + Provider["VirtualSelect"] = "virtual-select"; + })(Provider = Enum.Provider || (Enum.Provider = {})); + })(Enum = Dropdown.Enum || (Dropdown.Enum = {})); + })(Dropdown = Patterns.Dropdown || (Patterns.Dropdown = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Dropdown; + (function (Dropdown) { + var ServerSide; + (function (ServerSide) { + class OSUIDropdownServerSide extends Patterns.AbstractParent { + constructor(uniqueId, configs) { + super(uniqueId, new ServerSide.OSUIDropdownServerSideConfig(configs)); + this._balloonPositionClass = ''; + this._closeDynamically = false; + this._hasA11yEnabled = false; + this._isBlocked = false; + this._isOpen = false; + this._selfElementBoundingClientRect = new DOMRect(0, 0); + } + _addErrorMessage(text) { + const errorMessageElement = OSUI.Helper.Dom.ClassSelector(this.selfElement.parentElement, ServerSide.Enum.CssClass.ErrorMessage); + if (errorMessageElement === undefined) { + const textContainer = document.createElement(OSUI.GlobalEnum.HTMLElement.Div); + textContainer.classList.add(ServerSide.Enum.CssClass.ErrorMessage); + textContainer.innerHTML = text; + this.selfElement.parentElement.appendChild(textContainer); + } + } + _close() { + if (this._isOpen === false) { + return; + } + if (this._closeDynamically === false) { + this._selectValuesWrapper.focus(); + } + OSUI.Helper.Dom.Styles.RemoveClass(document.body, ServerSide.Enum.CssClass.IsVisible); + this._touchMove(); + this._isOpen = false; + this._updatePatternState(); + this._unsetObserver(); + this._unsetEvents(true); + } + _endOfCloseAnimation() { + this._balloonWrapperElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.TransitionEnd, this._eventOnCloseTransitionEnd); + this._isBlocked = false; + if (this._balloonPositionClass !== '') { + OSUI.Helper.Dom.Styles.RemoveClass(this._balloonWrapperElement, this._balloonPositionClass); + this._balloonPositionClass = ServerSide.Enum.CssClass.BalloonPositionBottom; + OSUI.Helper.Dom.Styles.AddClass(this._balloonWrapperElement, this._balloonPositionClass); + } + this._triggerToogleCalbackEvent(); + } + _getRecommendedPosition(isIntersecting, boundingClientRect) { + if (isIntersecting || this._isOpen === false) { + return; + } + const recommendedPosition = OSUI.Helper.BoundPosition.GetRecommendedPositionByBounds(boundingClientRect, OSUI.Helper.BoundPosition.GetBodyBounds()); + let newClassPosition = ''; + switch (recommendedPosition) { + case OSUI.GlobalEnum.Position.Top: + newClassPosition = ServerSide.Enum.CssClass.BalloonPositionTop; + break; + case OSUI.GlobalEnum.Position.Bottom: + newClassPosition = ServerSide.Enum.CssClass.BalloonPositionBottom; + break; + } + if (recommendedPosition !== undefined && newClassPosition !== this._balloonPositionClass) { + OSUI.Helper.Dom.Styles.RemoveClass(this._balloonWrapperElement, this._balloonPositionClass); + this._balloonPositionClass = newClassPosition; + OSUI.Helper.Dom.Styles.AddClass(this._balloonWrapperElement, this._balloonPositionClass); + } + } + _handleFocusTrap() { + const opts = { + focusBottomCallback: this._eventOnSpanFocus.bind(this), + focusTargetElement: this._balloonWrapperElement, + focusTopCallback: this._eventOnSpanFocus.bind(this), + }; + this._focusTrapInstance = new OSUI.Behaviors.FocusTrap(opts); + } + _hasNoImplementation() { + throw new Error(`${OSUI.ErrorCodes.Dropdown.HasNoImplementation.code}: ${OSUI.ErrorCodes.Dropdown.HasNoImplementation.message}`); + } + _moveBallonElement() { + OSUI.Helper.Dom.Move(this._balloonWrapperElement, this._activeScreenElement); + } + _onBodyClick(_eventType, event) { + if (this._isOpen === false) { + return; + } + const targetElement = event.target; + const getBaseElement = targetElement.closest(OSUI.Constants.Dot + ServerSide.Enum.CssClass.Pattern) || + targetElement.closest(OSUI.Constants.Dot + ServerSide.Enum.CssClass.BalloonWrapper); + if (OSUI.Helper.DeviceInfo.IsPhone || + (OSUI.Helper.DeviceInfo.IsPhone === false && + getBaseElement !== this.selfElement && + getBaseElement !== this._balloonWrapperElement)) { + this._closeDynamically = true; + this._close(); + } + } + _onKeyboardPressed(event) { + event.stopPropagation(); + switch (event.target) { + case this._selectValuesWrapper: + if (event.key === OSUI.GlobalEnum.Keycodes.Escape) { + this._close(); + } + if (event.key === OSUI.GlobalEnum.Keycodes.Enter || + event.key === OSUI.GlobalEnum.Keycodes.Space || + event.key === OSUI.GlobalEnum.Keycodes.ArrowUp || + event.key === OSUI.GlobalEnum.Keycodes.ArrowDown || + event.key === OSUI.GlobalEnum.Keycodes.Home) { + this._selectValuesWrapper.click(); + } + break; + case this._balloonOptionsWrapperElement: + if (event.key === OSUI.GlobalEnum.Keycodes.Escape) { + this._close(); + } + if (event.key === OSUI.GlobalEnum.Keycodes.ArrowUp) { + if (this._balloonSearchInputElement) { + this._balloonSearchInputElement.focus(); + } + else { + this._focusTrapInstance.topElement.focus(); + } + } + else if (event.key === OSUI.GlobalEnum.Keycodes.ArrowDown) { + this.getChildByIndex(0).setFocus(); + if (this.configs.AllowMultipleSelection === false) { + this.getChildByIndex(0).toggleSelected(); + } + } + break; + case this._balloonSearchInputElement: + if (event.key === OSUI.GlobalEnum.Keycodes.Escape) { + this._close(); + } + break; + } + } + _onOrientationChange() { + if (this._isOpen) { + this._close(); + } + } + _onScreenScroll() { + if (this.isBuilt && this._isOpen) { + if (OSUI.Helper.DeviceInfo.IsTablet) { + this._close(); + return; + } + requestAnimationFrame(this._setBalloonCoordinates.bind(this)); + } + } + _onSearchInputBlur() { + OSUI.Helper.Dom.Styles.RemoveClass(this._balloonWrapperElement, ServerSide.Enum.CssClass.SearchInputIsFocused); + } + _onSearchInputClicked(event) { + event.stopPropagation(); + } + _onSearchInputFocus() { + OSUI.Helper.Dom.Styles.AddClass(this._balloonWrapperElement, ServerSide.Enum.CssClass.SearchInputIsFocused); + } + _onSelectValuesWrapperClicked() { + if (this._isBlocked === false) { + this._isOpen ? this._close() : this._open(); + } + } + _onSpanElementFocus() { + this._close(); + } + _onTouchMove(event) { + if (event.target === this._balloonWrapperElement) { + event.preventDefault(); + } + } + _onWindowResize() { + if (this._isOpen && this._windowWidth !== window.innerWidth) { + this._close(); + } + this._windowWidth = window.innerWidth; + this._setBalloonCoordinates(); + } + _open() { + if (this._isOpen) { + return; + } + this._closeDynamically = false; + this._isOpen = true; + this._windowWidth = window.innerWidth; + this._setBalloonCoordinates(); + this._touchMove(); + OSUI.Helper.Dom.Styles.AddClass(document.body, ServerSide.Enum.CssClass.IsVisible); + this._updatePatternState(); + this._setObserver(); + OSUI.Helper.AsyncInvocation(this._setUpEvents.bind(this)); + } + _optionItemHasBeenClicked(optionItemId) { + const clickedItem = this.getChild(optionItemId); + if (clickedItem) { + if (this.configs.AllowMultipleSelection) { + clickedItem.toggleSelected(); + } + if (this.configs.AllowMultipleSelection === false) { + this._close(); + if (clickedItem.IsSelected === false) { + clickedItem.toggleSelected(); + } + } + } + else { + throw new Error(`${OSUI.ErrorCodes.Dropdown.FailOptionItemClicked}: The ${OSUI.GlobalEnum.PatternName.DropdownServerSideItem} under uniqueId: '${optionItemId}' does not exist as an OptionItem from ${OSUI.GlobalEnum.PatternName.Dropdown} with Id: ${this.widgetId}.`); + } + } + _optionItemKeyPressed(optionItemId) { + const optionItem = this.getChild(optionItemId); + if (optionItem !== undefined) { + const getOptionItemIndex = this.getChildIndex(optionItemId); + if (optionItem.keyboardTriggeredKey === undefined) { + return; + } + switch (optionItem.keyboardTriggeredKey) { + case OSUI.GlobalEnum.Keycodes.Enter: + case OSUI.GlobalEnum.Keycodes.Space: + this._optionItemHasBeenClicked(optionItemId); + break; + case OSUI.GlobalEnum.Keycodes.ArrowUp: + if (getOptionItemIndex > 0) { + this._updateOptionItemFocuStateOnKeyPress(optionItem, getOptionItemIndex - 1); + } + break; + case OSUI.GlobalEnum.Keycodes.ArrowDown: + if (getOptionItemIndex < this.getChildItems().length - 1) { + this._updateOptionItemFocuStateOnKeyPress(optionItem, getOptionItemIndex + 1); + } + break; + case OSUI.GlobalEnum.Keycodes.ShiftTab: + if (this._balloonSearchInputElement) { + this._balloonSearchInputElement.focus(); + } + else { + this._focusTrapInstance.topElement.focus(); + } + break; + case OSUI.GlobalEnum.Keycodes.Tab: + if (this._balloonFocusableElemsInFooter.length > 0) { + this._balloonFocusableElemsInFooter[0].focus(); + } + else { + this._focusTrapInstance.bottomElement.focus(); + } + break; + case OSUI.GlobalEnum.Keycodes.Escape: + this._close(); + break; + } + } + else { + throw new Error(`${OSUI.ErrorCodes.Dropdown.FailOptionItemKeyPressed}: The ${OSUI.GlobalEnum.PatternName.DropdownServerSideItem} under uniqueId: '${optionItemId}' does not exist as an OptionItem from ${OSUI.GlobalEnum.PatternName.Dropdown} with Id: ${this.widgetId}.`); + } + } + _setBalloonCoordinates(lookAtXPosition = true) { + const selfElement = this.selfElement.getBoundingClientRect(); + if ((lookAtXPosition === false && selfElement.y === this._selfElementBoundingClientRect.y) || + (lookAtXPosition && + selfElement.x === this._selfElementBoundingClientRect.x && + selfElement.right === + this._selfElementBoundingClientRect.x + this._selfElementBoundingClientRect.width && + selfElement.y === this._selfElementBoundingClientRect.y)) + this._selfElementBoundingClientRect.x = selfElement.x; + this._selfElementBoundingClientRect.y = selfElement.y; + OSUI.Helper.Dom.Styles.SetStyleAttribute(this._balloonWrapperElement, ServerSide.Enum.InlineCssVariables.Top, selfElement.top + OSUI.GlobalEnum.Units.Pixel); + OSUI.Helper.Dom.Styles.SetStyleAttribute(this._balloonWrapperElement, ServerSide.Enum.InlineCssVariables.Left, selfElement.left + OSUI.GlobalEnum.Units.Pixel); + OSUI.Helper.Dom.Styles.SetStyleAttribute(this._balloonWrapperElement, ServerSide.Enum.InlineCssVariables.Width, selfElement.width + OSUI.GlobalEnum.Units.Pixel); + OSUI.Helper.Dom.Styles.SetStyleAttribute(this._balloonWrapperElement, ServerSide.Enum.InlineCssVariables.InputHeight, selfElement.height + OSUI.GlobalEnum.Units.Pixel); + OSUI.Helper.Dom.Styles.SetStyleAttribute(this._balloonWrapperElement, ServerSide.Enum.InlineCssVariables.BalloonMaxHeight, this.configs.balloonMaxHeight + OSUI.GlobalEnum.Units.Pixel); + OSUI.Helper.Dom.Styles.SetStyleAttribute(this._balloonWrapperElement, ServerSide.Enum.InlineCssVariables.ThresholVerticalAnimate, ServerSide.Enum.PropertiesValues.ThresholVerticalAnimateValue + OSUI.GlobalEnum.Units.Pixel); + } + _setBalloonWrapperExtendedClass(newExtendedClass, preExtendedClass = '') { + OSUI.Helper.Dom.Styles.ExtendedClass(this._balloonContainerElement, preExtendedClass, newExtendedClass); + } + _setCssClasses() { + if (this._balloonSearchInputElement === undefined) { + OSUI.Helper.Dom.Styles.AddClass(this._balloonWrapperElement, ServerSide.Enum.CssClass.BalloonHasNotSearchInput); + } + if (this.configs.ExtendedClass !== '') { + this._setBalloonWrapperExtendedClass(this.configs.ExtendedClass); + } + } + _setInitialOptions() { + if (this.configs.IsDisabled) { + this.disable(); + } + } + _setNewOptionItem(optionItem) { + if (this.getChild(optionItem.uniqueId)) { + throw new Error(`${OSUI.ErrorCodes.Dropdown.FailSetNewOptionItem}: There is already a ${OSUI.GlobalEnum.PatternName.DropdownServerSideItem} under Id: '${optionItem.widgetId}' added to ${OSUI.GlobalEnum.PatternName.Dropdown} with uniqueId: ${this.uniqueId}.`); + } + else { + this.setChild(optionItem); + } + } + _setObserver() { + if (window.IntersectionObserver) { + this._intersectionObserver = new IntersectionObserver((entries) => { + entries.forEach((entry) => { + this._getRecommendedPosition(entry.isIntersecting, entry.boundingClientRect); + }); + }, { threshold: 1 }); + this._intersectionObserver.observe(this._balloonWrapperElement); + } + else { + console.warn(`${OSUI.ErrorCodes.DropdownServerSide.FailOnSetIntersectionObserver}: The browser in use does not support IntersectionObserver. Dropdown balloon position won't be properly updated.`); + } + } + _setUpEvents() { + this._selectValuesWrapper.addEventListener(OSUI.GlobalEnum.HTMLEvent.Click, this._eventOnClick); + this._selectValuesWrapper.addEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventOnkeyboardPress); + if (this.isBuilt) { + this._balloonOptionsWrapperElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventOnkeyboardPress); + if (this._balloonSearchInputElement) { + this._balloonSearchInputElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.Click, this._eventOnClickInputSearch); + this._balloonSearchInputElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventOnkeyboardPress); + this._balloonSearchInputElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.Blur, this._eventOnSearchInputBlur); + this._balloonSearchInputElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.Focus, this._eventOnSearchInputFocus); + } + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.addHandler(OSUI.Event.DOMEvents.Listeners.Type.BodyOnClick, this._eventOnBodyClick); + if (OSUI.Helper.DeviceInfo.IsPhone === false) { + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.addHandler(OSUI.Event.DOMEvents.Listeners.Type.ScreenOnScroll, this._eventOnScreenScroll); + } + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.addHandler(OSUI.Event.DOMEvents.Listeners.Type.WindowResize, this._eventOnWindowResize); + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.addHandler(OSUI.Event.DOMEvents.Listeners.Type.OrientationChange, this._eventOnOrientationChange); + } + } + _touchMove() { + if (OSUI.Helper.DeviceInfo.IsIos && 'ontouchmove' in window) { + if (this._isOpen) { + this._balloonWrapperElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.TouchMove, this._eventOnTouchMove); + } + else { + this._balloonWrapperElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.TouchMove, this._eventOnTouchMove); + } + } + } + _triggerToogleCalbackEvent() { + this.triggerPlatformEventCallback(this._platformEventOnToggleCallback, this._isOpen); + } + _unsetEvents(isUpdate = false) { + if (isUpdate === false) { + this._selectValuesWrapper.removeEventListener(OSUI.GlobalEnum.HTMLEvent.Click, this._eventOnClick); + this._selectValuesWrapper.removeEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventOnkeyboardPress); + } + this._balloonOptionsWrapperElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventOnkeyboardPress); + if (this._balloonSearchInputElement) { + this._balloonSearchInputElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.Click, this._eventOnClickInputSearch); + this._balloonSearchInputElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventOnkeyboardPress); + this._balloonSearchInputElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.Blur, this._eventOnSearchInputBlur); + this._balloonSearchInputElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.Focus, this._eventOnSearchInputFocus); + } + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.removeHandler(OSUI.Event.DOMEvents.Listeners.Type.BodyOnClick, this._eventOnBodyClick); + if (OSUI.Helper.DeviceInfo.IsPhone === false) { + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.removeHandler(OSUI.Event.DOMEvents.Listeners.Type.ScreenOnScroll, this._eventOnScreenScroll); + } + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.removeHandler(OSUI.Event.DOMEvents.Listeners.Type.WindowResize, this._eventOnWindowResize); + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.removeHandler(OSUI.Event.DOMEvents.Listeners.Type.OrientationChange, this._eventOnOrientationChange); + } + _unsetNewOptionItem(optionItemId) { + if (this.getChild(optionItemId)) { + this.unsetChild(optionItemId); + } + else { + throw new Error(`${OSUI.ErrorCodes.Dropdown.FailUnsetNewOptionItem}: The ${OSUI.GlobalEnum.PatternName.DropdownServerSideItem} under uniqueId: '${optionItemId}' does not exist as an OptionItem from ${OSUI.GlobalEnum.PatternName.Dropdown} with Id: ${this.widgetId}.`); + } + } + _unsetObserver() { + if (this._intersectionObserver !== undefined) { + this._intersectionObserver.disconnect(); + this._intersectionObserver = undefined; + } + } + _updateBalloonAccessibilityElements() { + const tabIndexValue = this._isOpen + ? OSUI.Constants.A11YAttributes.States.TabIndexShow + : OSUI.Constants.A11YAttributes.States.TabIndexHidden; + const layoutElemContainer = OSFramework.OSUI.Helper.Dom.ClassSelector(document, OSFramework.OSUI.GlobalEnum.CssClassElements.Layout); + this._hasA11yEnabled = + layoutElemContainer !== undefined && + OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(layoutElemContainer, OSFramework.OSUI.Constants.HasAccessibilityClass); + if (this._balloonSearchInputElement !== undefined) { + OSUI.Helper.A11Y.TabIndex(this._balloonSearchInputElement, tabIndexValue); + OSUI.Helper.A11Y.AriaHidden(this._balloonSearchInputElement, (tabIndexValue === OSUI.Constants.A11YAttributes.States.TabIndexHidden).toString()); + } + OSUI.Helper.A11Y.TabIndex(this._balloonOptionsWrapperElement, tabIndexValue); + if (this._balloonFocusableElemsInFooter.length > 0) { + OSUI.Helper.A11Y.SetElementsTabIndex(this._isOpen, this._balloonFocusableElemsInFooter); + } + if (this._isOpen) { + this._focusTrapInstance.enableForA11y(); + if (this._hasA11yEnabled) { + OSUI.Helper.Dom.Styles.AddClass(this._balloonWrapperElement, OSUI.Constants.HasAccessibilityClass); + } + OSUI.Helper.A11Y.AriaHiddenFalse(this._balloonOptionsWrapperElement); + } + else { + this._focusTrapInstance.disableForA11y(); + OSUI.Helper.Dom.Styles.RemoveClass(this._balloonWrapperElement, OSUI.Constants.HasAccessibilityClass); + OSUI.Helper.A11Y.AriaHiddenTrue(this._balloonOptionsWrapperElement); + } + } + _updateOptionItemFocuStateOnKeyPress(optionItem, itemIndex) { + if (this.configs.AllowMultipleSelection === false) { + optionItem.toggleSelected(); + this.getChildByIndex(itemIndex).toggleSelected(); + } + optionItem.setBlur(); + this.getChildByIndex(itemIndex).setFocus(); + } + _updatePatternState() { + this._updateBalloonAccessibilityElements(); + if (this._isOpen) { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, ServerSide.Enum.CssClass.IsOpened); + OSUI.Helper.Dom.Styles.AddClass(this._balloonWrapperElement, ServerSide.Enum.CssClass.IsOpened); + if (this._balloonSearchInputElement) { + this._balloonSearchInputElement.focus(); + } + else { + this._balloonOptionsWrapperElement.focus(); + } + this._triggerToogleCalbackEvent(); + } + else { + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, ServerSide.Enum.CssClass.IsOpened); + OSUI.Helper.Dom.Styles.RemoveClass(this._balloonWrapperElement, ServerSide.Enum.CssClass.IsOpened); + this._isBlocked = true; + this._balloonWrapperElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.TransitionEnd, this._eventOnCloseTransitionEnd); + } + } + setA11YProperties() { + this._updateBalloonAccessibilityElements(); + OSUI.Helper.A11Y.TabIndexTrue(this._selectValuesWrapper); + OSUI.Helper.A11Y.RoleButton(this._selectValuesWrapper); + OSUI.Helper.A11Y.AriaHasPopup(this._selectValuesWrapper, OSUI.Constants.A11YAttributes.Role.Listbox); + OSUI.Helper.A11Y.RoleListbox(this._balloonOptionsWrapperElement); + OSUI.Helper.A11Y.TabIndexFalse(this._balloonOptionsWrapperElement); + OSUI.Helper.A11Y.AriaHiddenTrue(this._balloonOptionsWrapperElement); + if (this.configs.AllowMultipleSelection) { + OSUI.Helper.A11Y.MultiselectableTrue(this._balloonOptionsWrapperElement); + } + this.setSelectAriaLabel(); + this.setBalloonOptionsAriaLabel(); + } + setCallbacks() { + this._eventOnBodyClick = this._onBodyClick.bind(this); + this._eventOnScreenScroll = this._onScreenScroll.bind(this); + this._eventOnClick = this._onSelectValuesWrapperClicked.bind(this); + this._eventOnClickInputSearch = this._onSearchInputClicked.bind(this); + this._eventOnCloseTransitionEnd = this._endOfCloseAnimation.bind(this); + this._eventOnkeyboardPress = this._onKeyboardPressed.bind(this); + this._eventOnOrientationChange = this._onOrientationChange.bind(this); + this._eventOnSearchInputBlur = this._onSearchInputBlur.bind(this); + this._eventOnSearchInputFocus = this._onSearchInputFocus.bind(this); + this._eventOnSpanFocus = this._onSpanElementFocus.bind(this); + this._eventOnTouchMove = this._onTouchMove.bind(this); + this._eventOnWindowResize = this._onWindowResize.bind(this); + } + setHtmlElements() { + this._activeScreenElement = OSUI.Helper.Dom.ClassSelector(document.body, OSUI.GlobalEnum.CssClassElements.ActiveScreen); + this._balloonFooterElement = OSUI.Helper.Dom.ClassSelector(this.selfElement, ServerSide.Enum.CssClass.BalloonFooter); + this._balloonFocusableElemsInFooter = OSUI.Helper.Dom.TagSelectorAll(this._balloonFooterElement, OSUI.Constants.FocusableElems); + this._balloonSearchInputWrapperElement = OSUI.Helper.Dom.ClassSelector(this.selfElement, ServerSide.Enum.CssClass.BalloonSearch); + this._balloonSearchInputElement = OSUI.Helper.Dom.TagSelector(this._balloonSearchInputWrapperElement, OSUI.GlobalEnum.HTMLElement.Input); + this._balloonContainerElement = OSUI.Helper.Dom.ClassSelector(this.selfElement, ServerSide.Enum.CssClass.BalloonContainer); + this._balloonContentElement = OSUI.Helper.Dom.ClassSelector(this.selfElement, ServerSide.Enum.CssClass.BalloonContent); + this._balloonWrapperElement = OSUI.Helper.Dom.ClassSelector(this.selfElement, ServerSide.Enum.CssClass.BalloonWrapper); + this._balloonOptionsWrapperElement = OSUI.Helper.Dom.ClassSelector(this._balloonWrapperElement, ServerSide.Enum.CssClass.BalloonContent); + this._selectValuesWrapper = OSUI.Helper.Dom.ClassSelector(this.selfElement, ServerSide.Enum.CssClass.SelectValuesWrapper); + this._handleFocusTrap(); + this.setA11YProperties(); + this._setUpEvents(); + this._setCssClasses(); + this._isInsidePopup = OSUI.Helper.Dom.IsInsidePopupWidget(this.selfElement); + if (this._isInsidePopup) { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, ServerSide.Enum.CssClass.IsInsidePopup); + } + else { + this._moveBallonElement(); + } + this._setBalloonCoordinates(); + } + unsetCallbacks() { + this._eventOnBodyClick = undefined; + this._eventOnScreenScroll = undefined; + this._eventOnClick = undefined; + this._eventOnClickInputSearch = undefined; + this._eventOnCloseTransitionEnd = undefined; + this._eventOnkeyboardPress = undefined; + this._eventOnOrientationChange = undefined; + this._eventOnSearchInputBlur = undefined; + this._eventOnSearchInputFocus = undefined; + this._eventOnSpanFocus = undefined; + this._eventOnTouchMove = undefined; + this._eventOnWindowResize = undefined; + this._platformEventOnToggleCallback = undefined; + } + unsetHtmlElements() { + this._balloonWrapperElement.remove(); + this._activeScreenElement = undefined; + this._balloonContainerElement = undefined; + this._balloonFocusableElemsInFooter = []; + this._balloonFooterElement = undefined; + this._balloonOptionsWrapperElement = undefined; + this._balloonSearchInputElement = undefined; + this._balloonSearchInputWrapperElement = undefined; + this._balloonWrapperElement = undefined; + this._selectValuesWrapper = undefined; + } + beNotifiedByChild(childItem, notifiedTo) { + switch (notifiedTo) { + case ServerSide.Enum.ChildNotifyActionType.Add: + this._setNewOptionItem(childItem); + break; + case ServerSide.Enum.ChildNotifyActionType.Click: + this._optionItemHasBeenClicked(childItem.uniqueId); + break; + case ServerSide.Enum.ChildNotifyActionType.KeyPressed: + this._optionItemKeyPressed(childItem.uniqueId); + break; + case ServerSide.Enum.ChildNotifyActionType.Removed: + this._unsetNewOptionItem(childItem.uniqueId); + break; + default: + throw new Error(`${OSUI.ErrorCodes.Dropdown.FailToSetOptionItemAction}: There no exist a '${notifiedTo}' notification type.`); + } + } + build() { + super.build(); + this.setCallbacks(); + this.setHtmlElements(); + this._setInitialOptions(); + this.finishBuild(); + } + changeProperty(propertyName, propertyValue) { + const prevBalloonExtendedClass = this.configs.ExtendedClass; + super.changeProperty(propertyName, propertyValue); + if (this.isBuilt) { + switch (propertyName) { + case ServerSide.Enum.Properties.IsDisabled: + propertyValue ? this.disable() : this.enable(); + break; + case OSUI.GlobalEnum.CommonPatternsProperties.ExtendedClass: + this._setBalloonWrapperExtendedClass(propertyValue, prevBalloonExtendedClass); + break; + } + } + } + clear() { + const selectedOptions = this.getChildItems().filter((item) => item.IsSelected); + for (const optionItem of selectedOptions) { + optionItem.toggleSelected(false); + } + } + close() { + OSFramework.OSUI.Helper.AsyncInvocation(this._close.bind(this)); + } + disable() { + OSUI.Helper.Dom.Attribute.Set(this.selfElement, OSUI.GlobalEnum.HTMLAttributes.Disabled, ''); + OSUI.Helper.Dom.Attribute.Set(this._balloonWrapperElement, OSUI.GlobalEnum.HTMLAttributes.Disabled, ''); + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, ServerSide.Enum.CssClass.IsDisabled); + OSUI.Helper.A11Y.TabIndexFalse(this._selectValuesWrapper); + } + dispose() { + this._unsetObserver(); + this._focusTrapInstance.dispose(); + this._unsetEvents(); + this.unsetCallbacks(); + this.unsetHtmlElements(); + super.dispose(); + } + enable() { + OSUI.Helper.Dom.Attribute.Remove(this.selfElement, OSUI.GlobalEnum.HTMLAttributes.Disabled); + OSUI.Helper.Dom.Attribute.Remove(this._balloonWrapperElement, OSUI.GlobalEnum.HTMLAttributes.Disabled); + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, ServerSide.Enum.CssClass.IsDisabled); + OSUI.Helper.A11Y.TabIndexTrue(this._selectValuesWrapper); + } + getSelectedValues() { + return this._hasNoImplementation(); + } + open() { + OSFramework.OSUI.Helper.AsyncInvocation(this._open.bind(this)); + } + registerCallback(eventName, callback) { + switch (eventName) { + case ServerSide.Enum.Events.OnToggle: + if (this._platformEventOnToggleCallback === undefined) { + this._platformEventOnToggleCallback = callback; + } + break; + default: + super.registerCallback(eventName, callback); + } + } + setBalloonOptionsAriaLabel(value) { + this._balloonOptionsAriaLabel = value === undefined ? this.configs.balloonOptionsArialabel : value; + OSUI.Helper.A11Y.AriaLabel(this._balloonOptionsWrapperElement, this._balloonOptionsAriaLabel); + } + setProviderConfigs() { + return this._hasNoImplementation(); + } + setProviderEvent() { + return this._hasNoImplementation(); + } + setSelectAriaLabel(value) { + this._selectValuesWrapperAriaLabel = + value === undefined ? this.configs.selectValuesWrapperAriaLabel : value; + OSUI.Helper.A11Y.AriaLabel(this._selectValuesWrapper, this._selectValuesWrapperAriaLabel); + } + unsetProviderEvent() { + return this._hasNoImplementation(); + } + validation(isValid, validationMessage) { + if (isValid === false) { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, ServerSide.Enum.CssClass.NotValid); + this._addErrorMessage(validationMessage); + this._setBalloonCoordinates(); + } + else { + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, ServerSide.Enum.CssClass.NotValid); + const errorMessageElement = OSUI.Helper.Dom.ClassSelector(this.selfElement.parentElement, ServerSide.Enum.CssClass.ErrorMessage); + if (errorMessageElement) { + errorMessageElement.remove(); + } + } + } + } + ServerSide.OSUIDropdownServerSide = OSUIDropdownServerSide; + })(ServerSide = Dropdown.ServerSide || (Dropdown.ServerSide = {})); + })(Dropdown = Patterns.Dropdown || (Patterns.Dropdown = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Dropdown; + (function (Dropdown) { + var ServerSide; + (function (ServerSide) { + class OSUIDropdownServerSideConfig extends Patterns.AbstractConfiguration { + constructor(config) { + super(config); + this._balloonMaxHeight = ServerSide.Enum.PropertiesValues.MaxHeight; + this._balloonOptionsArialabel = ''; + this._selectValuesWrapperAriaLabel = ServerSide.Enum.PropertiesValues.SelectValuesWrapperAriaLabelValue; + this._balloonOptionsArialabel = this.AllowMultipleSelection + ? ServerSide.Enum.PropertiesValues.BalloonOptionsWrapperAriaLabelMultipleValue + : ServerSide.Enum.PropertiesValues.BalloonOptionsWrapperAriaLabelSingleValue; + } + validateDefault(key, value) { + let validatedValue = undefined; + switch (key) { + case ServerSide.Enum.Properties.AllowMultipleSelection: + case ServerSide.Enum.Properties.IsDisabled: + validatedValue = this.validateBoolean(value, false); + break; + default: + validatedValue = super.validateDefault(key, value); + break; + } + return validatedValue; + } + get balloonMaxHeight() { + return this._balloonMaxHeight; + } + get balloonOptionsArialabel() { + return this._balloonOptionsArialabel; + } + get selectValuesWrapperAriaLabel() { + return this._selectValuesWrapperAriaLabel; + } + } + ServerSide.OSUIDropdownServerSideConfig = OSUIDropdownServerSideConfig; + })(ServerSide = Dropdown.ServerSide || (Dropdown.ServerSide = {})); + })(Dropdown = Patterns.Dropdown || (Patterns.Dropdown = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Dropdown; + (function (Dropdown) { + var ServerSide; + (function (ServerSide) { + var Enum; + (function (Enum) { + let ChildNotifyActionType; + (function (ChildNotifyActionType) { + ChildNotifyActionType["Add"] = "add"; + ChildNotifyActionType["Click"] = "click"; + ChildNotifyActionType["KeyPressed"] = "keyPressed"; + ChildNotifyActionType["Removed"] = "removed"; + })(ChildNotifyActionType = Enum.ChildNotifyActionType || (Enum.ChildNotifyActionType = {})); + let CssClass; + (function (CssClass) { + CssClass["BalloonContainer"] = "osui-dropdown-serverside__balloon-container"; + CssClass["BalloonContent"] = "osui-dropdown-serverside__balloon-content"; + CssClass["BalloonFooter"] = "osui-dropdown-serverside__balloon-footer"; + CssClass["BalloonHasNotSearchInput"] = "osui-dropdown-serverside__balloon--has-not-search"; + CssClass["BalloonPositionBottom"] = "osui-dropdown-serverside__balloon--is-bottom"; + CssClass["BalloonPositionTop"] = "osui-dropdown-serverside__balloon--is-top"; + CssClass["BalloonSearch"] = "osui-dropdown-serverside__balloon-search"; + CssClass["BalloonWrapper"] = "osui-dropdown-serverside__balloon-wrapper"; + CssClass["ErrorMessage"] = "osui-dropdown-serverside-error-message"; + CssClass["IsDisabled"] = "osui-dropdown-serverside--is-disabled"; + CssClass["IsInsidePopup"] = "osui-dropdown-serverside--is-inside-popup"; + CssClass["IsOpened"] = "osui-dropdown-serverside--is-opened"; + CssClass["IsVisible"] = "osui-dropdown-serverside-visible"; + CssClass["NotValid"] = "osui-dropdown-serverside--not-valid"; + CssClass["Pattern"] = "osui-dropdown-serverside"; + CssClass["SearchInputIsFocused"] = "osui-dropdown-serverside__search-input--is-focused"; + CssClass["SelectText"] = "osui-dropdown-serverside__text"; + CssClass["SelectValuesWrapper"] = "osui-dropdown-serverside__selected-values-wrapper"; + })(CssClass = Enum.CssClass || (Enum.CssClass = {})); + let Events; + (function (Events) { + Events["OnToggle"] = "OnToggle"; + })(Events = Enum.Events || (Enum.Events = {})); + let InlineCssVariables; + (function (InlineCssVariables) { + InlineCssVariables["BalloonMaxHeight"] = "--osui-dropdown-ss-balloon-max-height"; + InlineCssVariables["InputHeight"] = "--osui-dropdown-ss-input-height"; + InlineCssVariables["Left"] = "--osui-dropdown-ss-left"; + InlineCssVariables["ThresholVerticalAnimate"] = "--osui-dropdown-ss-thresholdanimateval"; + InlineCssVariables["Top"] = "--osui-dropdown-ss-top"; + InlineCssVariables["Width"] = "--osui-dropdown-ss-width"; + })(InlineCssVariables = Enum.InlineCssVariables || (Enum.InlineCssVariables = {})); + let Properties; + (function (Properties) { + Properties["AllowMultipleSelection"] = "AllowMultipleSelection"; + Properties["IsDisabled"] = "IsDisabled"; + })(Properties = Enum.Properties || (Enum.Properties = {})); + let PropertiesValues; + (function (PropertiesValues) { + PropertiesValues["BalloonOptionsWrapperAriaLabelMultipleValue"] = "Select one or more options"; + PropertiesValues["BalloonOptionsWrapperAriaLabelSingleValue"] = "Select an option"; + PropertiesValues[PropertiesValues["MaxHeight"] = 320] = "MaxHeight"; + PropertiesValues["SelectValuesWrapperAriaLabelValue"] = "Select an option"; + PropertiesValues[PropertiesValues["ThresholVerticalAnimateValue"] = 20] = "ThresholVerticalAnimateValue"; + })(PropertiesValues = Enum.PropertiesValues || (Enum.PropertiesValues = {})); + })(Enum = ServerSide.Enum || (ServerSide.Enum = {})); + })(ServerSide = Dropdown.ServerSide || (Dropdown.ServerSide = {})); + })(Dropdown = Patterns.Dropdown || (Patterns.Dropdown = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var DropdownServerSideItem; + (function (DropdownServerSideItem_1) { + class DropdownServerSideItem extends Patterns.AbstractChild { + constructor(uniqueId, configs) { + super(uniqueId, new DropdownServerSideItem_1.DropdownServerSideItemConfig(configs)); + } + _onKeyboardPressed(event) { + event.preventDefault(); + event.stopPropagation(); + this.keyboardTriggeredKey = event.key; + switch (event.key) { + case OSUI.GlobalEnum.Keycodes.Enter: + case OSUI.GlobalEnum.Keycodes.Space: + this._onSelected(event); + break; + case OSUI.GlobalEnum.Keycodes.ArrowUp: + case OSUI.GlobalEnum.Keycodes.ArrowDown: + case OSUI.GlobalEnum.Keycodes.Escape: + this.notifyParent(Patterns.Dropdown.ServerSide.Enum.ChildNotifyActionType.KeyPressed); + break; + case OSUI.GlobalEnum.Keycodes.Tab: + if (event.shiftKey) { + this.keyboardTriggeredKey = OSUI.GlobalEnum.Keycodes.ShiftTab; + } + else { + this.keyboardTriggeredKey = OSUI.GlobalEnum.Keycodes.Tab; + } + this.notifyParent(Patterns.Dropdown.ServerSide.Enum.ChildNotifyActionType.KeyPressed); + break; + } + } + _onSelected(event) { + event.stopPropagation(); + this.notifyParent(event.type === OSUI.GlobalEnum.HTMLEvent.Click + ? Patterns.Dropdown.ServerSide.Enum.ChildNotifyActionType.Click + : Patterns.Dropdown.ServerSide.Enum.ChildNotifyActionType.KeyPressed); + } + _removeEvents() { + this.selfElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.Click, this._eventOnClick); + this.selfElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventOnkeyboardPress); + } + _setUpEvents() { + this.selfElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.Click, this._eventOnClick); + this.selfElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventOnkeyboardPress); + } + _updateSelectedStatus(status) { + this.configs.IsSelected = status; + if (this.configs.IsSelected) { + OSUI.Helper.A11Y.AriaSelectedTrue(this.selfElement); + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, DropdownServerSideItem_1.Enum.CssClass.IsSelected); + } + else { + OSUI.Helper.A11Y.AriaSelectedFalse(this.selfElement); + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, DropdownServerSideItem_1.Enum.CssClass.IsSelected); + } + } + setA11YProperties() { + OSUI.Helper.A11Y.TabIndexFalse(this.selfElement); + OSUI.Helper.A11Y.RoleOption(this.selfElement); + OSUI.Helper.A11Y.AriaSelectedFalse(this.selfElement); + } + setCallbacks() { + this._eventOnClick = this._onSelected.bind(this); + this._eventOnkeyboardPress = this._onKeyboardPressed.bind(this); + } + setHtmlElements() { + console.log(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + unsetCallbacks() { + this._eventOnClick = null; + this._eventOnkeyboardPress = null; + this._platformEventOnClickCallback = null; + } + unsetHtmlElements() { + console.log(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + build() { + super.build(); + this.setParentInfo(OSUI.Constants.Dot + DropdownServerSideItem_1.Enum.CssClass.DropdownParentBalloon, OutSystems.OSUI.Patterns.DropdownAPI.GetDropdownById); + this.notifyParent(Patterns.Dropdown.ServerSide.Enum.ChildNotifyActionType.Add); + this.setCallbacks(); + this._setUpEvents(); + this.setA11YProperties(); + this._updateSelectedStatus(this.configs.IsSelected); + this.finishBuild(); + } + changeProperty(propertyName, propertyValue) { + super.changeProperty(propertyName, propertyValue); + if (this.isBuilt) { + switch (propertyName) { + case DropdownServerSideItem_1.Enum.Properties.IsSelected: + this._updateSelectedStatus(propertyValue); + break; + } + } + } + dispose() { + if (this.isBuilt) { + this.unsetCallbacks(); + this._removeEvents(); + this.notifyParent(Patterns.Dropdown.ServerSide.Enum.ChildNotifyActionType.Removed); + } + super.dispose(); + } + registerCallback(eventName, callback) { + switch (eventName) { + case DropdownServerSideItem_1.Enum.Events.OnSelected: + if (this._platformEventOnClickCallback === undefined) { + this._platformEventOnClickCallback = callback; + } + break; + default: + super.registerCallback(eventName, callback); + } + } + setBlur() { + this.selfElement.blur(); + } + setFocus() { + this.selfElement.focus(); + } + setTabindex() { + OSUI.Helper.A11Y.TabIndexTrue(this.selfElement); + } + toggleSelected(triggerCallback = true) { + this._updateSelectedStatus(!this.configs.IsSelected); + if (triggerCallback) { + this.triggerPlatformEventCallback(this._platformEventOnClickCallback, this.configs.ItemId); + } + } + unsetTabindex() { + OSUI.Helper.A11Y.TabIndexFalse(this.selfElement); + } + get IsSelected() { + return this.configs.IsSelected; + } + get ItemId() { + return this.configs.ItemId; + } + } + DropdownServerSideItem_1.DropdownServerSideItem = DropdownServerSideItem; + })(DropdownServerSideItem = Patterns.DropdownServerSideItem || (Patterns.DropdownServerSideItem = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var DropdownServerSideItem; + (function (DropdownServerSideItem) { + class DropdownServerSideItemConfig extends Patterns.AbstractConfiguration { + constructor(config) { + super(config); + } + validateDefault(key, value) { + let validatedValue = undefined; + switch (key) { + case DropdownServerSideItem.Enum.Properties.IsSelected: + validatedValue = this.validateBoolean(value, false); + break; + case DropdownServerSideItem.Enum.Properties.ItemId: + validatedValue = this.validateString(value, undefined); + break; + default: + validatedValue = super.validateDefault(key, value); + break; + } + return validatedValue; + } + } + DropdownServerSideItem.DropdownServerSideItemConfig = DropdownServerSideItemConfig; + })(DropdownServerSideItem = Patterns.DropdownServerSideItem || (Patterns.DropdownServerSideItem = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var DropdownServerSideItem; + (function (DropdownServerSideItem) { + var Enum; + (function (Enum) { + let CssClass; + (function (CssClass) { + CssClass["DropdownParentBalloon"] = "osui-dropdown-serverside__balloon-wrapper"; + CssClass["IsSelected"] = "osui-dropdown-serverside-item--is-selected"; + })(CssClass = Enum.CssClass || (Enum.CssClass = {})); + let Events; + (function (Events) { + Events["OnSelected"] = "OnSelected"; + })(Events = Enum.Events || (Enum.Events = {})); + let Properties; + (function (Properties) { + Properties["IsSelected"] = "IsSelected"; + Properties["ItemId"] = "ItemId"; + })(Properties = Enum.Properties || (Enum.Properties = {})); + })(Enum = DropdownServerSideItem.Enum || (DropdownServerSideItem.Enum = {})); + })(DropdownServerSideItem = Patterns.DropdownServerSideItem || (Patterns.DropdownServerSideItem = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var FlipContent; + (function (FlipContent) { + var Enum; + (function (Enum) { + let Properties; + (function (Properties) { + Properties["FlipSelf"] = "FlipSelf"; + Properties["IsFlipped"] = "IsFlipped"; + })(Properties = Enum.Properties || (Enum.Properties = {})); + let CssClass; + (function (CssClass) { + CssClass["PatternBack"] = "osui-flip-content__container__back"; + CssClass["PatternContainer"] = "osui-flip-content__container"; + CssClass["PatternDataFlipped"] = "data-flipped"; + CssClass["PatternFlipSelf"] = "osui-flip-content--flip-self"; + CssClass["PatternFront"] = "osui-flip-content__container__front"; + CssClass["PatternIsFlipped"] = "osui-flip-content--flipped"; + })(CssClass = Enum.CssClass || (Enum.CssClass = {})); + let Events; + (function (Events) { + Events["OnToggle"] = "OnToggle"; + })(Events = Enum.Events || (Enum.Events = {})); + })(Enum = FlipContent.Enum || (FlipContent.Enum = {})); + })(FlipContent = Patterns.FlipContent || (Patterns.FlipContent = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var FlipContent; + (function (FlipContent_1) { + class FlipContent extends Patterns.AbstractPattern { + constructor(uniqueId, configs) { + super(uniqueId, new FlipContent_1.FlipContentConfig(configs)); + } + _keydownCallback(e) { + if (e.key === OSUI.GlobalEnum.Keycodes.Enter || + e.key === OSUI.GlobalEnum.Keycodes.Space || + (e.key === OSUI.GlobalEnum.Keycodes.Escape && this.configs.IsFlipped)) { + this.toggleFlipContent(); + e.preventDefault(); + e.stopPropagation(); + } + } + _removeEvents() { + this.selfElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventKeydown); + this._flipWrapperElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.Click, this._eventClick); + } + _setEventHandlers() { + if (this.configs.FlipSelf) { + this.selfElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventKeydown); + this._flipWrapperElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.Click, this._eventClick); + OSUI.Helper.Dom.Styles.AddClass(this._flipWrapperElement, FlipContent_1.Enum.CssClass.PatternFlipSelf); + } + else { + this.selfElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventKeydown); + this._flipWrapperElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.Click, this._eventClick); + OSUI.Helper.Dom.Styles.RemoveClass(this._flipWrapperElement, FlipContent_1.Enum.CssClass.PatternFlipSelf); + } + } + _setStartsFlipped() { + if (this.isBuilt === false) { + this._toggleClasses(); + } + } + _toggleClasses() { + if (this.configs.IsFlipped) { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, FlipContent_1.Enum.CssClass.PatternIsFlipped); + } + else { + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, FlipContent_1.Enum.CssClass.PatternIsFlipped); + } + } + _triggerPlatformEvent() { + this.triggerPlatformEventCallback(this._platformEventOnToggle, this.configs.IsFlipped); + } + _updateA11yProperties() { + if (this.configs.FlipSelf) { + OSUI.Helper.A11Y.AriaAtomicTrue(this.selfElement); + OSUI.Helper.A11Y.TabIndexTrue(this.selfElement); + } + else { + OSUI.Helper.A11Y.AriaAtomicFalse(this.selfElement); + OSUI.Helper.A11Y.TabIndexFalse(this.selfElement); + } + } + setA11YProperties() { + if (this.configs.FlipSelf) { + OSUI.Helper.A11Y.AriaAtomicTrue(this.selfElement); + OSUI.Helper.A11Y.TabIndexTrue(this.selfElement); + OSUI.Helper.A11Y.RoleButton(this.selfElement); + OSUI.Helper.A11Y.AriaLivePolite(this.selfElement); + } + } + setCallbacks() { + this._eventKeydown = this._keydownCallback.bind(this); + this._eventClick = this.toggleFlipContent.bind(this); + this._setEventHandlers(); + } + setHtmlElements() { + this._flipWrapperElement = OSUI.Helper.Dom.ClassSelector(this.selfElement, FlipContent_1.Enum.CssClass.PatternContainer); + } + unsetCallbacks() { + this._removeEvents(); + this._eventKeydown = undefined; + this._eventClick = undefined; + } + unsetHtmlElements() { + this._flipWrapperElement = undefined; + } + build() { + super.build(); + this.setHtmlElements(); + this.setCallbacks(); + this._toggleClasses(); + this.setA11YProperties(); + this.finishBuild(); + } + changeProperty(propertyName, propertyValue) { + super.changeProperty(propertyName, propertyValue); + if (this.isBuilt) { + switch (propertyName) { + case FlipContent_1.Enum.Properties.IsFlipped: + this._setStartsFlipped(); + break; + case FlipContent_1.Enum.Properties.FlipSelf: + this._updateA11yProperties(); + this._setEventHandlers(); + break; + } + } + } + dispose() { + this.unsetCallbacks(); + this.unsetHtmlElements(); + super.dispose(); + } + registerCallback(eventName, callback) { + switch (eventName) { + case FlipContent_1.Enum.Events.OnToggle: + if (this._platformEventOnToggle === undefined) { + this._platformEventOnToggle = callback; + } + break; + default: + super.registerCallback(eventName, callback); + } + } + showBackContent() { + if (this.configs.IsFlipped === false) { + this.toggleFlipContent(); + } + } + showFrontContent() { + if (this.configs.IsFlipped) { + this.toggleFlipContent(); + } + } + toggleFlipContent() { + this.configs.IsFlipped = !this.configs.IsFlipped; + OSUI.Helper.AsyncInvocation(this._toggleClasses.bind(this)); + this._triggerPlatformEvent(); + } + } + FlipContent_1.FlipContent = FlipContent; + })(FlipContent = Patterns.FlipContent || (Patterns.FlipContent = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var FlipContent; + (function (FlipContent) { + class FlipContentConfig extends Patterns.AbstractConfiguration { + constructor(config) { + super(config); + } + validateCanChange(isBuilt, key) { + if (isBuilt) { + return key !== FlipContent.Enum.Properties.IsFlipped; + } + return true; + } + } + FlipContent.FlipContentConfig = FlipContentConfig; + })(FlipContent = Patterns.FlipContent || (Patterns.FlipContent = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Gallery; + (function (Gallery) { + var Enum; + (function (Enum) { + let CssVariables; + (function (CssVariables) { + CssVariables["PatternItemsDesktop"] = "--gallery-desktop-items"; + CssVariables["PatternItemsTablet"] = "--gallery-tablet-items"; + CssVariables["PatternItemsPhone"] = "--gallery-phone-items"; + CssVariables["PatternItemsGap"] = "--gallery-gap"; + CssVariables["PatternListItemsDesktop"] = "--gallery-list-desktop-items"; + CssVariables["PatternListItemsTablet"] = "--gallery-list-tablet-items"; + CssVariables["PatternListItemsPhone"] = "--gallery-list-phone-items"; + })(CssVariables = Enum.CssVariables || (Enum.CssVariables = {})); + let Properties; + (function (Properties) { + Properties["ItemsGap"] = "ItemsGap"; + Properties["RowItemsDesktop"] = "RowItemsDesktop"; + Properties["RowItemsPhone"] = "RowItemsPhone"; + Properties["RowItemsTablet"] = "RowItemsTablet"; + Properties[Properties["MinRowItemsAllowed"] = 1] = "MinRowItemsAllowed"; + })(Properties = Enum.Properties || (Enum.Properties = {})); + })(Enum = Gallery.Enum || (Gallery.Enum = {})); + })(Gallery = Patterns.Gallery || (Patterns.Gallery = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Gallery; + (function (Gallery_1) { + class Gallery extends Patterns.AbstractPattern { + constructor(uniqueId, configs) { + super(uniqueId, new Gallery_1.GalleryConfig(configs)); + } + _setItemsGap() { + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Gallery_1.Enum.CssVariables.PatternItemsGap, `var(--space-${this.configs.ItemsGap})`); + } + _setRowItemsDesktop() { + if (this.configs.RowItemsDesktop < Gallery_1.Enum.Properties.MinRowItemsAllowed) { + this.configs.RowItemsDesktop = Gallery_1.Enum.Properties.MinRowItemsAllowed; + console.warn(`${OSUI.GlobalEnum.PatternName.Gallery} (${this.widgetId}): The value of the ${Gallery_1.Enum.Properties.RowItemsDesktop} property is less than supported (${Gallery_1.Enum.Properties.MinRowItemsAllowed}). To ensure the correct behaviour, set a value greater than ${OSUI.Constants.ZeroValue}.`); + } + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Gallery_1.Enum.CssVariables.PatternItemsDesktop, this.configs.RowItemsDesktop); + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Gallery_1.Enum.CssVariables.PatternListItemsDesktop, this.configs.RowItemsDesktop); + } + _setRowItemsPhone() { + if (this.configs.RowItemsPhone < Gallery_1.Enum.Properties.MinRowItemsAllowed) { + this.configs.RowItemsPhone = Gallery_1.Enum.Properties.MinRowItemsAllowed; + console.warn(`${OSUI.GlobalEnum.PatternName.Gallery} (${this.widgetId}): The value of the ${Gallery_1.Enum.Properties.RowItemsPhone} property is less than supported (${Gallery_1.Enum.Properties.MinRowItemsAllowed}). To ensure the correct behaviour, set a value greater than ${OSUI.Constants.ZeroValue}.`); + } + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Gallery_1.Enum.CssVariables.PatternItemsPhone, this.configs.RowItemsPhone); + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Gallery_1.Enum.CssVariables.PatternListItemsPhone, this.configs.RowItemsPhone); + } + _setRowItemsTablet() { + if (this.configs.RowItemsTablet < Gallery_1.Enum.Properties.MinRowItemsAllowed) { + this.configs.RowItemsTablet = Gallery_1.Enum.Properties.MinRowItemsAllowed; + console.warn(`${OSUI.GlobalEnum.PatternName.Gallery} (${this.widgetId}): The value of the ${Gallery_1.Enum.Properties.RowItemsTablet} property is less than supported (${Gallery_1.Enum.Properties.MinRowItemsAllowed}). To ensure the correct behaviour, set a value greater than ${OSUI.Constants.ZeroValue}.`); + } + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Gallery_1.Enum.CssVariables.PatternItemsTablet, this.configs.RowItemsTablet); + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Gallery_1.Enum.CssVariables.PatternListItemsTablet, this.configs.RowItemsTablet); + } + setA11YProperties() { + console.warn(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + setCallbacks() { + console.log(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + setHtmlElements() { + console.log(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + unsetCallbacks() { + console.log(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + unsetHtmlElements() { + console.log(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + build() { + super.build(); + this._setRowItemsDesktop(); + this._setRowItemsTablet(); + this._setRowItemsPhone(); + this._setItemsGap(); + this.finishBuild(); + } + changeProperty(propertyName, propertyValue) { + super.changeProperty(propertyName, propertyValue); + if (this.isBuilt) { + switch (propertyName) { + case Gallery_1.Enum.Properties.RowItemsDesktop: + this._setRowItemsDesktop(); + break; + case Gallery_1.Enum.Properties.RowItemsTablet: + this._setRowItemsTablet(); + break; + case Gallery_1.Enum.Properties.RowItemsPhone: + this._setRowItemsPhone(); + break; + case Gallery_1.Enum.Properties.ItemsGap: + this._setItemsGap(); + break; + } + } + } + } + Gallery_1.Gallery = Gallery; + })(Gallery = Patterns.Gallery || (Patterns.Gallery = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Gallery; + (function (Gallery) { + class GalleryConfig extends Patterns.AbstractConfiguration { + constructor(config) { + super(config); + } + } + Gallery.GalleryConfig = GalleryConfig; + })(Gallery = Patterns.Gallery || (Patterns.Gallery = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var InlineSvg; + (function (InlineSvg) { + var Enum; + (function (Enum) { + let CssClass; + (function (CssClass) { + CssClass["Pattern"] = "osui-inline-svg"; + })(CssClass = Enum.CssClass || (Enum.CssClass = {})); + let Properties; + (function (Properties) { + Properties["SVGCode"] = "SVGCode"; + })(Properties = Enum.Properties || (Enum.Properties = {})); + })(Enum = InlineSvg.Enum || (InlineSvg.Enum = {})); + })(InlineSvg = Patterns.InlineSvg || (Patterns.InlineSvg = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var InlineSvg; + (function (InlineSvg_1) { + class InlineSvg extends Patterns.AbstractPattern { + constructor(uniqueId, configs) { + super(uniqueId, new InlineSvg_1.InlineSvgConfig(configs)); + } + _setSvgCode() { + if (this.configs.SVGCode !== '' && !OSUI.Helper.SVG.IsValid(this.configs.SVGCode)) { + this.selfElement.innerHTML = ''; + console.error('Please provide a valid SVGCode.'); + } + else { + this.selfElement.innerHTML = this.configs.SVGCode; + } + } + setA11YProperties() { + console.log(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + setCallbacks() { + console.log(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + setHtmlElements() { + console.log(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + unsetCallbacks() { + console.log(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + unsetHtmlElements() { + console.log(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + build() { + super.build(); + this._setSvgCode(); + this.finishBuild(); + } + changeProperty(propertyName, propertyValue) { + super.changeProperty(propertyName, propertyValue); + if (this.isBuilt) { + if (propertyName === InlineSvg_1.Enum.Properties.SVGCode) { + this._setSvgCode(); + } + } + } + dispose() { + if (this.isBuilt) { + super.dispose(); + } + } + } + InlineSvg_1.InlineSvg = InlineSvg; + })(InlineSvg = Patterns.InlineSvg || (Patterns.InlineSvg = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var InlineSvg; + (function (InlineSvg) { + class InlineSvgConfig extends Patterns.AbstractConfiguration { + constructor(config) { + super(config); + } + validateDefault(key, value) { + let validatedValue = undefined; + switch (key) { + case InlineSvg.Enum.Properties.SVGCode: + validatedValue = super.validateString(value, OSFramework.OSUI.Constants.EmptyString); + break; + default: + validatedValue = super.validateDefault(key, value); + break; + } + return validatedValue; + } + } + InlineSvg.InlineSvgConfig = InlineSvgConfig; + })(InlineSvg = Patterns.InlineSvg || (Patterns.InlineSvg = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var MonthPicker; + (function (MonthPicker) { + class AbstractMonthPicker extends Patterns.AbstractProviderPattern { + constructor(uniqueId, configs) { + super(uniqueId, configs); + } + } + MonthPicker.AbstractMonthPicker = AbstractMonthPicker; + })(MonthPicker = Patterns.MonthPicker || (Patterns.MonthPicker = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var MonthPicker; + (function (MonthPicker) { + class AbstractMonthPickerConfig extends Patterns.AbstractProviderConfiguration { + constructor(config) { + super(config); + } + validateDefault(key, value) { + let validatedValue = undefined; + switch (key) { + case MonthPicker.Enum.Properties.DateFormat: + validatedValue = this.validateString(value, 'MM/YYYY'); + break; + case MonthPicker.Enum.Properties.InitialMonth: + case MonthPicker.Enum.Properties.MinMonth: + case MonthPicker.Enum.Properties.MaxMonth: + validatedValue = value; + break; + default: + validatedValue = super.validateDefault(key, value); + break; + } + return validatedValue; + } + } + MonthPicker.AbstractMonthPickerConfig = AbstractMonthPickerConfig; + })(MonthPicker = Patterns.MonthPicker || (Patterns.MonthPicker = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var MonthPicker; + (function (MonthPicker) { + var Enum; + (function (Enum) { + let CssClass; + (function (CssClass) { + CssClass["Dropdown"] = "osui-monthpicker__dropdown"; + CssClass["Pattern"] = "osui-monthpicker"; + })(CssClass = Enum.CssClass || (Enum.CssClass = {})); + let Events; + (function (Events) { + Events["OnSelected"] = "OnSelected"; + })(Events = Enum.Events || (Enum.Events = {})); + let Properties; + (function (Properties) { + Properties["DateFormat"] = "DateFormat"; + Properties["InitialMonth"] = "InitialMonth"; + Properties["MinMonth"] = "MinMonth"; + Properties["MaxMonth"] = "MaxMonth"; + })(Properties = Enum.Properties || (Enum.Properties = {})); + let Provider; + (function (Provider) { + Provider["Flatpickr"] = "flatpickr"; + })(Provider = Enum.Provider || (Enum.Provider = {})); + })(Enum = MonthPicker.Enum || (MonthPicker.Enum = {})); + })(MonthPicker = Patterns.MonthPicker || (Patterns.MonthPicker = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var MonthPicker; + (function (MonthPicker) { + var Factory; + (function (Factory) { + function NewMonthPicker(monthPickerId, provider, configs) { + let _monthPickerItem = null; + if (provider === MonthPicker.Enum.Provider.Flatpickr) { + _monthPickerItem = new Providers.OSUI.MonthPicker.Flatpickr.OSUIFlatpickrMonth(monthPickerId, JSON.parse(configs)); + } + else { + throw new Error(`There is no ${OSUI.GlobalEnum.PatternName.MonthPicker} of the ${provider} provider`); + } + return _monthPickerItem; + } + Factory.NewMonthPicker = NewMonthPicker; + })(Factory = MonthPicker.Factory || (MonthPicker.Factory = {})); + })(MonthPicker = Patterns.MonthPicker || (Patterns.MonthPicker = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Notification; + (function (Notification) { + var Enum; + (function (Enum) { + let CssClass; + (function (CssClass) { + CssClass["Pattern"] = "osui-notification"; + CssClass["PatternIsOpen"] = "osui-notification--is-open"; + CssClass["PatternPosition"] = "osui-notification--is-"; + })(CssClass = Enum.CssClass || (Enum.CssClass = {})); + let CssProperty; + (function (CssProperty) { + CssProperty["Width"] = "--notification-width"; + })(CssProperty = Enum.CssProperty || (Enum.CssProperty = {})); + let Defaults; + (function (Defaults) { + Defaults["DefaultPosition"] = "top"; + Defaults["DefaultWidth"] = "370px"; + })(Defaults = Enum.Defaults || (Enum.Defaults = {})); + let Events; + (function (Events) { + Events["OnToggle"] = "OnToggle"; + })(Events = Enum.Events || (Enum.Events = {})); + let Properties; + (function (Properties) { + Properties["CloseAfterTime"] = "CloseAfterTime"; + Properties["InteractToClose"] = "InteractToClose"; + Properties["NeedsSwipes"] = "NeedsSwipes"; + Properties["Position"] = "Position"; + Properties["StartsOpen"] = "StartsOpen"; + Properties["Width"] = "Width"; + })(Properties = Enum.Properties || (Enum.Properties = {})); + })(Enum = Notification.Enum || (Notification.Enum = {})); + })(Notification = Patterns.Notification || (Patterns.Notification = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Notification; + (function (Notification_1) { + class Notification extends Patterns.AbstractPattern { + constructor(uniqueId, configs) { + super(uniqueId, new Notification_1.NotificationConfig(configs)); + this.configs.Width = this.configs.Width !== '' ? this.configs.Width : Notification_1.Enum.Defaults.DefaultWidth; + this.configs.Position = + this.configs.Position !== '' ? this.configs.Position : Notification_1.Enum.Defaults.DefaultPosition; + this._isOpen = this.configs.StartsOpen; + } + _autoCloseNotification() { + OSUI.Helper.ApplySetTimeOut(() => { + if (this._isOpen) { + this.hide(); + } + }, this.configs.CloseAfterTime); + } + _clickCallback(e) { + e.preventDefault(); + this.hide(); + } + _handleFocusBehavior() { + const opts = { + focusTargetElement: this._parentSelf, + }; + this._focusTrapInstance = new OSUI.Behaviors.FocusTrap(opts); + this._focusManagerInstance = new OSUI.Behaviors.FocusManager(); + } + _handleGestureEvents() { + if (OSUI.Helper.DeviceInfo.IsNative) { + this._gestureEventInstance = new OSUI.Event.GestureEvent.SwipeEvent(this.selfElement); + this.setGestureEvents(this.onSwipeBottom.bind(this), this.onSwipeLeft.bind(this), this.onSwipeRight.bind(this), this.onSwipeUp.bind(this)); + } + } + _hideNotification() { + this._isOpen = false; + this._focusTrapInstance.disableForA11y(); + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, Notification_1.Enum.CssClass.PatternIsOpen); + this._triggerOnToggleEvent(this._isOpen); + this._updateA11yProperties(); + this.selfElement.blur(); + this._focusManagerInstance.setFocusToStoredElement(); + if (OSUI.Helper.DeviceInfo.IsNative === false && this.configs.InteractToClose) { + this.selfElement.removeEventListener(this._eventType, this._eventOnClick); + this.selfElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventOnKeypress); + } + } + _keypressCallback(e) { + const isEscapedPressed = e.key === OSUI.GlobalEnum.Keycodes.Escape; + if (isEscapedPressed && this._isOpen) { + this.hide(); + } + } + _removeEvents() { + this.selfElement.removeEventListener(this._eventType, this._eventOnClick); + this.selfElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventOnKeypress); + } + _showNotification() { + this._focusManagerInstance.storeLastFocusedElement(); + this._isOpen = true; + this._focusTrapInstance.enableForA11y(); + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, Notification_1.Enum.CssClass.PatternIsOpen); + this._triggerOnToggleEvent(this._isOpen); + this._updateA11yProperties(); + if (OSUI.Helper.DeviceInfo.IsNative === false && this.configs.InteractToClose) { + this.selfElement.addEventListener(this._eventType, this._eventOnClick); + } + this.selfElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventOnKeypress); + this.selfElement.focus(); + if (this.configs.CloseAfterTime > 0) { + this._autoCloseNotification(); + } + } + _triggerOnToggleEvent(isOpen) { + this.triggerPlatformEventCallback(this._platformEventOnToggle, isOpen); + } + _updateA11yProperties() { + OSUI.Helper.Dom.Attribute.Set(this.selfElement, OSUI.Constants.A11YAttributes.Aria.Hidden, (!this._isOpen).toString()); + OSUI.Helper.Dom.Attribute.Set(this.selfElement, OSUI.Constants.A11YAttributes.TabIndex, this._isOpen + ? OSUI.Constants.A11YAttributes.States.TabIndexShow + : OSUI.Constants.A11YAttributes.States.TabIndexHidden); + OSUI.Helper.A11Y.SetElementsTabIndex(this._isOpen, this._focusTrapInstance.focusableElements); + } + _updateCloseAfterTime(value) { + this.configs.CloseAfterTime = value; + if (this._isOpen) { + this._autoCloseNotification(); + } + } + _updateInteractToClose(value) { + if (this.configs.InteractToClose !== value) { + this.configs.InteractToClose = value; + if (OSUI.Helper.DeviceInfo.IsNative === false) { + if (this.configs.InteractToClose) { + this.selfElement.addEventListener(this._eventType, this._eventOnClick); + } + else { + this.selfElement.removeEventListener(this._eventType, this._eventOnClick); + } + } + } + } + _updatePosition(position) { + if (this.configs.Position !== position) { + if (this.configs.Position !== '') { + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, Notification_1.Enum.CssClass.PatternPosition + position); + } + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, Notification_1.Enum.CssClass.PatternPosition + this.configs.Position); + } + } + _updateWidth(width) { + this.configs.Width = width; + if (width !== '') { + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Notification_1.Enum.CssProperty.Width, width); + this.configs.Width = width; + } + } + setA11YProperties() { + OSUI.Helper.Dom.Attribute.Set(this.selfElement, OSUI.Constants.A11YAttributes.Role.AttrName, OSUI.Constants.A11YAttributes.Role.AlertDialog); + this._updateA11yProperties(); + } + setCallbacks() { + this._eventOnClick = this._clickCallback.bind(this); + this._eventOnKeypress = this._keypressCallback.bind(this); + } + setHtmlElements() { + this._parentSelf = OSUI.Helper.Dom.GetElementById(this.widgetId); + } + setInitialStates() { + if (OSUI.Helper.DeviceInfo.IsTouch) { + this._eventType = OSUI.GlobalEnum.HTMLEvent.TouchStart; + } + else { + this._eventType = OSUI.GlobalEnum.HTMLEvent.Click; + } + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Notification_1.Enum.CssProperty.Width, this.configs.Width); + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, Notification_1.Enum.CssClass.PatternPosition + this.configs.Position); + if (this._isOpen) { + this._showNotification(); + } + if (this.configs.CloseAfterTime > 0 && this._isOpen) { + this._autoCloseNotification(); + } + } + unsetCallbacks() { + if (OSUI.Helper.DeviceInfo.IsNative === false && this.configs.InteractToClose) { + this._removeEvents(); + this._eventOnClick = undefined; + this._eventOnKeypress = undefined; + } + } + unsetHtmlElements() { + this._parentSelf = undefined; + this._platformEventOnToggle = undefined; + } + build() { + super.build(); + OSUI.Helper.AsyncInvocation(this.setInitialStates.bind(this)); + this.setCallbacks(); + this.setHtmlElements(); + this._handleFocusBehavior(); + this.setA11YProperties(); + this._handleGestureEvents(); + this.finishBuild(); + } + changeProperty(propertyName, propertyValue) { + const _oldNotificationPosition = this.configs.Position; + super.changeProperty(propertyName, propertyValue); + if (this.isBuilt) { + switch (propertyName) { + case Notification_1.Enum.Properties.InteractToClose: + this._updateInteractToClose(propertyValue); + break; + case Notification_1.Enum.Properties.CloseAfterTime: + this._updateCloseAfterTime(propertyValue); + break; + case Notification_1.Enum.Properties.StartsOpen: + console.warn(`${OSUI.GlobalEnum.PatternName.Notification} (${this.widgetId}): changes to ${Notification_1.Enum.Properties.StartsOpen} parameter do not affect the ${OSUI.GlobalEnum.PatternName.Notification}. Use the client actions 'NotificationShow' and 'NotificationHide' to affect the ${OSUI.GlobalEnum.PatternName.Notification}.`); + break; + case Notification_1.Enum.Properties.Position: + this._updatePosition(_oldNotificationPosition); + break; + case Notification_1.Enum.Properties.Width: + this._updateWidth(propertyValue); + break; + case OSUI.GlobalEnum.CommonPatternsProperties.ExtendedClass: + OSUI.Helper.Dom.Styles.ExtendedClass(this.selfElement, this.configs.ExtendedClass, propertyValue); + break; + } + } + } + dispose() { + if (this.isBuilt) { + this.unsetCallbacks(); + this.unsetHtmlElements(); + this._focusTrapInstance.dispose(); + if (this._hasGestureEvents) { + this.removeGestureEvents(); + } + super.dispose(); + } + } + hide() { + if (this._isOpen) { + this._hideNotification(); + } + } + onSwipeBottom() { + if (this.configs.Position === OSUI.GlobalEnum.Position.Bottom || + this.configs.Position === OSUI.GlobalEnum.Position.BottomLeft || + this.configs.Position === OSUI.GlobalEnum.Position.BottomRight || + this.configs.Position === OSUI.GlobalEnum.Position.Center) { + this.hide(); + } + } + onSwipeLeft() { + if (this.configs.Position === OSUI.GlobalEnum.Position.Left || + this.configs.Position === OSUI.GlobalEnum.Position.BottomLeft || + this.configs.Position === OSUI.GlobalEnum.Position.TopLeft) { + this.hide(); + } + } + onSwipeRight() { + if (this.configs.Position === OSUI.GlobalEnum.Position.Right || + this.configs.Position === OSUI.GlobalEnum.Position.BottomRight || + this.configs.Position === OSUI.GlobalEnum.Position.TopRight) { + this.hide(); + } + } + onSwipeUp() { + this.hide(); + } + registerCallback(eventName, callback) { + switch (eventName) { + case Patterns.Notification.Enum.Events.OnToggle: + if (this._platformEventOnToggle === undefined) { + this._platformEventOnToggle = callback; + } + break; + default: + super.registerCallback(eventName, callback); + } + } + removeGestureEvents() { + if (this._gestureEventInstance !== undefined) { + this._gestureEventInstance.unsetTouchEvents(); + this._hasGestureEvents = false; + this._gestureEventInstance = undefined; + } + } + setGestureEvents(onSwipeDownCallback, onSwipeLeftCallback, onSwipeRightCallback, onSwipeUpCallback) { + this._gestureEventInstance.setSwipeEvents(onSwipeDownCallback, onSwipeLeftCallback, onSwipeRightCallback, onSwipeUpCallback); + this._hasGestureEvents = true; + } + show() { + if (this._isOpen === false) { + this._showNotification(); + } + } + get gestureEventInstance() { + return this._gestureEventInstance; + } + get hasGestureEvents() { + return this._hasGestureEvents; + } + } + Notification_1.Notification = Notification; + })(Notification = Patterns.Notification || (Patterns.Notification = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Notification; + (function (Notification) { + class NotificationConfig extends Patterns.AbstractConfiguration { + validateCanChange(isBuilt, key) { + if (isBuilt) { + return key !== Notification.Enum.Properties.StartsOpen; + } + return true; + } + validateDefault(key, value) { + let validatedValue = undefined; + switch (key) { + case Notification.Enum.Properties.InteractToClose: + validatedValue = this.validateBoolean(value, true); + break; + case Notification.Enum.Properties.NeedsSwipes: + case Notification.Enum.Properties.StartsOpen: + validatedValue = this.validateBoolean(value, false); + break; + case Notification.Enum.Properties.Position: + validatedValue = this.validateString(value, Notification.Enum.Defaults.DefaultPosition); + break; + case Notification.Enum.Properties.Width: + validatedValue = this.validateString(value, Notification.Enum.Defaults.DefaultWidth); + break; + case Notification.Enum.Properties.CloseAfterTime: + validatedValue = this.validateNumber(value, undefined); + break; + default: + validatedValue = super.validateDefault(key, value); + break; + } + return validatedValue; + } + } + Notification.NotificationConfig = NotificationConfig; + })(Notification = Patterns.Notification || (Patterns.Notification = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var OverflowMenu; + (function (OverflowMenu) { + var Enum; + (function (Enum) { + let AriaLabel; + (function (AriaLabel) { + AriaLabel["Trigger"] = "Trigger the balloon"; + })(AriaLabel = Enum.AriaLabel || (Enum.AriaLabel = {})); + let CssClass; + (function (CssClass) { + CssClass["Open"] = "osui-overflow-menu--is-open"; + CssClass["Trigger"] = "osui-overflow-menu__trigger"; + CssClass["Balloon"] = "osui-overflow-menu__balloon"; + })(CssClass = Enum.CssClass || (Enum.CssClass = {})); + let CssCustomProperties; + (function (CssCustomProperties) { + CssCustomProperties["Shape"] = "--osui-overflow-menu-shape"; + })(CssCustomProperties = Enum.CssCustomProperties || (Enum.CssCustomProperties = {})); + let Events; + (function (Events) { + Events["OnMenuToggle"] = "OnToggle"; + })(Events = Enum.Events || (Enum.Events = {})); + let Properties; + (function (Properties) { + Properties["Position"] = "Position"; + Properties["Shape"] = "Shape"; + })(Properties = Enum.Properties || (Enum.Properties = {})); + })(Enum = OverflowMenu.Enum || (OverflowMenu.Enum = {})); + })(OverflowMenu = Patterns.OverflowMenu || (Patterns.OverflowMenu = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var OverflowMenu; + (function (OverflowMenu_1) { + class OverflowMenu extends Patterns.AbstractPattern { + constructor(uniqueId, configs) { + super(uniqueId, new OverflowMenu_1.OverflowMenuConfig(configs)); + this._isDisabled = false; + this._isOpenedByApi = false; + this.isOpen = false; + } + _balloonOnToggleCallback(_args, e) { + if (e.detail.balloonElem === this._balloonElem) { + this._togglePattern(e.detail.isOpen); + } + } + _onClickCallback() { + if (this._balloonFeature.isOpen) { + this.close(); + } + else { + this._isOpenedByApi = false; + this.open(this._isOpenedByApi); + } + } + _onKeydownCallback(event) { + if (!this._balloonFeature.isOpen && + (event.key === OSUI.GlobalEnum.Keycodes.ArrowDown || event.key === OSUI.GlobalEnum.Keycodes.ArrowUp)) { + this._isOpenedByApi = false; + this.open(this._isOpenedByApi, event.key); + event.preventDefault(); + } + } + _setBalloonFeature() { + this.setBalloonOptions(); + this._balloonFeature = new OSFramework.OSUI.Feature.Balloon.Balloon(this, this._balloonElem, this.balloonOptions); + } + _setOverflowMenuShape(shape) { + if (shape !== undefined) { + this.configs.Shape = shape; + } + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, OverflowMenu_1.Enum.CssCustomProperties.Shape, `var(--border-radius-${this.configs.Shape})`); + } + _togglePattern(isOpen) { + if (isOpen) { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, OverflowMenu_1.Enum.CssClass.Open); + } + else { + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, OverflowMenu_1.Enum.CssClass.Open); + } + this.isOpen = isOpen; + this.setA11YProperties(); + this._triggerOnToggleEvent(); + } + _triggerOnToggleEvent() { + this.triggerPlatformEventCallback(this._platformEventOnToggle, this.isOpen); + } + removeEventListeners() { + this._triggerElem.removeEventListener(OSUI.GlobalEnum.HTMLEvent.Click, this._eventOnClick); + this._triggerElem.removeEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventOnKeydown); + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.removeHandler(OSUI.Event.DOMEvents.Listeners.Type.BalloonOnToggle, this._eventBalloonOnToggle); + } + setA11YProperties() { + if (this.isBuilt === false) { + OSUI.Helper.A11Y.AriaHasPopupTrue(this.selfElement); + OSUI.Helper.A11Y.AriaControls(this._triggerElem, this._balloonElem.id); + this.setTriggerAriaLabel(OverflowMenu_1.Enum.AriaLabel.Trigger); + OSUI.Helper.Dom.Attribute.Set(this._triggerElem, OSUI.Constants.FocusTrapIgnoreAttr, true); + } + OSUI.Helper.A11Y.AriaExpanded(this.selfElement, this.isOpen.toString()); + } + setCallbacks() { + this._eventBalloonOnToggle = this._balloonOnToggleCallback.bind(this); + this._eventOnClick = this._onClickCallback.bind(this); + this._eventOnKeydown = this._onKeydownCallback.bind(this); + } + setEventListeners() { + this._triggerElem.addEventListener(OSUI.GlobalEnum.HTMLEvent.Click, this._eventOnClick); + this._triggerElem.addEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventOnKeydown); + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.addHandler(OSUI.Event.DOMEvents.Listeners.Type.BalloonOnToggle, this._eventBalloonOnToggle); + } + setHtmlElements() { + this._triggerElem = OSUI.Helper.Dom.ClassSelector(this.selfElement, OverflowMenu_1.Enum.CssClass.Trigger); + this._balloonElem = OSUI.Helper.Dom.ClassSelector(this.selfElement, OverflowMenu_1.Enum.CssClass.Balloon); + } + unsetCallbacks() { + this._eventBalloonOnToggle = undefined; + this._eventOnClick = undefined; + } + unsetHtmlElements() { + this._balloonElem = undefined; + this._triggerElem = undefined; + this._balloonFeature = undefined; + } + build() { + super.build(); + this.setHtmlElements(); + this.setA11YProperties(); + this._setBalloonFeature(); + this._setOverflowMenuShape(); + this.setCallbacks(); + this.setEventListeners(); + this.finishBuild(); + } + changeProperty(propertyName, propertyValue) { + super.changeProperty(propertyName, propertyValue); + if (this.isBuilt) { + switch (propertyName) { + case OverflowMenu_1.Enum.Properties.Position: + this._balloonFeature.updatePositionOption(propertyValue); + break; + case OverflowMenu_1.Enum.Properties.Shape: + this._setOverflowMenuShape(propertyValue); + this._balloonFeature.setBalloonShape(propertyValue); + break; + } + } + } + close() { + if (this._balloonFeature.isOpen) { + this._balloonFeature.close(); + } + } + disable() { + this._isDisabled = true; + this.close(); + OSUI.Helper.Dom.Attribute.Set(this._triggerElem, OSUI.GlobalEnum.HTMLAttributes.Disabled, OSFramework.OSUI.Constants.EmptyString); + } + dispose() { + var _a; + (_a = this._balloonFeature) === null || _a === void 0 ? void 0 : _a.dispose(); + this.removeEventListeners(); + this.unsetCallbacks(); + this.unsetHtmlElements(); + super.dispose(); + } + enable() { + this._isDisabled = false; + OSUI.Helper.Dom.Attribute.Remove(this._triggerElem, OSUI.GlobalEnum.HTMLAttributes.Disabled); + } + open(isOpenedByApi, keyPressed) { + if (this._balloonFeature.isOpen === false && this._isDisabled === false) { + this._isOpenedByApi = isOpenedByApi; + this._balloonFeature.open(this._isOpenedByApi, keyPressed); + } + } + registerCallback(eventName, callback) { + switch (eventName) { + case Patterns.OverflowMenu.Enum.Events.OnMenuToggle: + if (this._platformEventOnToggle === undefined) { + this._platformEventOnToggle = callback; + } + else { + console.warn(`The ${OSUI.GlobalEnum.PatternName.OverflowMenu} already has the toggle callback set.`); + } + break; + default: + super.registerCallback(eventName, callback); + } + } + setBalloonOptions(balloonOptions) { + if (balloonOptions !== undefined) { + this.balloonOptions = balloonOptions; + } + else { + this.balloonOptions = { + alignment: OSUI.GlobalEnum.FloatingAlignment.Start, + allowedPlacements: [ + OSUI.GlobalEnum.FloatingPosition.BottomStart, + OSUI.GlobalEnum.FloatingPosition.BottomEnd, + OSUI.GlobalEnum.FloatingPosition.TopStart, + OSUI.GlobalEnum.FloatingPosition.TopEnd, + ], + anchorElem: this._triggerElem, + position: this.configs.Position, + shape: this.configs.Shape, + }; + } + } + setTriggerAriaLabel(ariaLabelText) { + if (ariaLabelText !== OSUI.Constants.EmptyString) { + this._ariaLabelTrigger = ariaLabelText; + OSUI.Helper.A11Y.AriaLabel(this._triggerElem, this._ariaLabelTrigger); + } + } + } + OverflowMenu_1.OverflowMenu = OverflowMenu; + })(OverflowMenu = Patterns.OverflowMenu || (Patterns.OverflowMenu = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var OverflowMenu; + (function (OverflowMenu) { + class OverflowMenuConfig extends Patterns.AbstractConfiguration { + constructor(config) { + super(config); + } + validateDefault(key, value) { + let validatedValue = undefined; + switch (key) { + case OverflowMenu.Enum.Properties.Shape: + validatedValue = this.validateInRange(value, OSUI.GlobalEnum.ShapeTypes.SoftRounded, OSUI.GlobalEnum.ShapeTypes.Sharp, OSUI.GlobalEnum.ShapeTypes.Rounded); + break; + case OverflowMenu.Enum.Properties.Position: + validatedValue = this.validateInRange(value, OSUI.GlobalEnum.FloatingPosition.Auto, OSUI.GlobalEnum.FloatingPosition.Bottom, OSUI.GlobalEnum.FloatingPosition.BottomEnd, OSUI.GlobalEnum.FloatingPosition.BottomStart, OSUI.GlobalEnum.FloatingPosition.Center, OSUI.GlobalEnum.FloatingPosition.Left, OSUI.GlobalEnum.FloatingPosition.LeftEnd, OSUI.GlobalEnum.FloatingPosition.LeftStart, OSUI.GlobalEnum.FloatingPosition.Right, OSUI.GlobalEnum.FloatingPosition.RightEnd, OSUI.GlobalEnum.FloatingPosition.RightStart, OSUI.GlobalEnum.FloatingPosition.Top, OSUI.GlobalEnum.FloatingPosition.TopEnd, OSUI.GlobalEnum.FloatingPosition.TopStart); + break; + default: + validatedValue = super.validateDefault(key, value); + break; + } + return validatedValue; + } + } + OverflowMenu.OverflowMenuConfig = OverflowMenuConfig; + })(OverflowMenu = Patterns.OverflowMenu || (Patterns.OverflowMenu = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Progress; + (function (Progress) { + class AbstractProgress extends Patterns.AbstractPattern { + constructor(uniqueId, configs) { + super(uniqueId, configs); + } + _animateEntranceEnd() { + this.progressElem.removeEventListener(OSUI.GlobalEnum.HTMLEvent.TransitionEnd, this._eventAnimateEntranceEnd); + OSUI.Helper.Dom.Styles.RemoveClass(this.progressElem, Progress.ProgressEnum.CssClass.AddInitialAnimation); + OSUI.Helper.Dom.Styles.RemoveClass(this.progressElem, Progress.ProgressEnum.CssClass.AnimateProgressChange); + } + _setAccessibilityProps() { + OSUI.Helper.Dom.Attribute.Set(this.selfElement, OSUI.Constants.A11YAttributes.TabIndex, '0'); + OSUI.Helper.Dom.Attribute.Set(this.selfElement, OSUI.Constants.A11YAttributes.Role.AttrName, OSUI.Constants.A11YAttributes.Role.Progressbar); + OSUI.Helper.Dom.Attribute.Set(this.selfElement, OSUI.Constants.A11YAttributes.Aria.ValueMin, Progress.ProgressEnum.Properties.MinProgressValue); + OSUI.Helper.Dom.Attribute.Set(this.selfElement, OSUI.Constants.A11YAttributes.Aria.ValueMax, Progress.ProgressEnum.Properties.MaxProgressValue); + } + animateInitial() { + OSUI.Helper.Dom.Styles.AddClass(this.progressElem, Progress.ProgressEnum.CssClass.AddInitialAnimation); + this.progressElem.addEventListener(OSUI.GlobalEnum.HTMLEvent.TransitionEnd, this._eventAnimateEntranceEnd); + } + animateOnValueChange() { + OSUI.Helper.Dom.Styles.AddClass(this.progressElem, Progress.ProgressEnum.CssClass.AnimateProgressChange); + this.progressElem.addEventListener(OSUI.GlobalEnum.HTMLEvent.TransitionEnd, this._eventAnimateEntranceEnd); + } + setCallbacks() { + this._eventAnimateEntranceEnd = this._animateEntranceEnd.bind(this); + } + unsetCallbacks() { + this._eventAnimateEntranceEnd = undefined; + } + unsetHtmlElements() { + this.progressElem = undefined; + this.contentElem = undefined; + } + updatedProgressValue() { + if (this.configs.Progress < Progress.ProgressEnum.Properties.MinProgressValue) { + this.configs.Progress = Progress.ProgressEnum.Properties.MinProgressValue; + console.warn(`The value of the Progress property on the '${this.widgetId}' ${this.progressType === Progress.ProgressEnum.ProgressTypes.Bar + ? OSUI.GlobalEnum.PatternName.ProgressBar + : OSUI.GlobalEnum.PatternName.ProgressCircle} can't be smaller than '${Progress.ProgressEnum.Properties.MinProgressValue}'.`); + } + if (this.configs.Progress > Progress.ProgressEnum.Properties.MaxProgressValue) { + this.configs.Progress = Progress.ProgressEnum.Properties.MaxProgressValue; + console.warn(`The value of the Progress property on the '${this.widgetId}' ${this.progressType === Progress.ProgressEnum.ProgressTypes.Bar + ? OSUI.GlobalEnum.PatternName.ProgressBar + : OSUI.GlobalEnum.PatternName.ProgressCircle} is higher than supported (${Progress.ProgressEnum.Properties.MaxProgressValue}).`); + } + OSUI.Helper.Dom.Attribute.Set(this.selfElement, 'aria-valuenow', this.configs.Progress.toString()); + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Progress.ProgressEnum.InlineStyleProp.ProgressValue, this.configs.Progress.toString() + OSUI.GlobalEnum.Units.Percentage); + } + build() { + super.build(); + this._setAccessibilityProps(); + } + progressApplyGradient(gradientType, colors) { + this.gradientLength = Object.keys(colors).length; + if (this.gradientLength < 2) { + throw Error(`Progress${this.progressType}(${this.uniqueId}): CSS ${gradientType} gradient needs at least two colors to work`); + } + } + resetProgressValue() { + this.setElementProgressValue(this.configs.InitialProgress); + } + setProgressValue(value) { + this.setElementProgressValue(value); + } + } + Progress.AbstractProgress = AbstractProgress; + })(Progress = Patterns.Progress || (Patterns.Progress = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Progress; + (function (Progress) { + class ProgressConfiguration extends Patterns.AbstractConfiguration { + constructor(config) { + super(config); + } + } + Progress.ProgressConfiguration = ProgressConfiguration; + })(Progress = Patterns.Progress || (Patterns.Progress = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Progress; + (function (Progress) { + var ProgressEnum; + (function (ProgressEnum) { + let AriaLabel; + (function (AriaLabel) { + AriaLabel["Progress"] = "progress"; + })(AriaLabel = ProgressEnum.AriaLabel || (ProgressEnum.AriaLabel = {})); + let CssClass; + (function (CssClass) { + CssClass["AddInitialAnimation"] = "animate-entrance"; + CssClass["AnimateProgressChange"] = "animate-progress-change"; + CssClass["Container"] = "osui-progress-bar__container"; + CssClass["ProgressBarContent"] = "osui-progress-bar__content"; + CssClass["ProgressCircleContent"] = "osui-progress-circle__content"; + })(CssClass = ProgressEnum.CssClass || (ProgressEnum.CssClass = {})); + let InlineStyleProp; + (function (InlineStyleProp) { + InlineStyleProp["ProgressColor"] = "--progress-color"; + InlineStyleProp["ProgressValue"] = "--progress-value"; + InlineStyleProp["ProgressGradient"] = "--progress-gradient"; + InlineStyleProp["Shape"] = "--shape"; + InlineStyleProp["Thickness"] = "--thickness"; + InlineStyleProp["TrailColor"] = "--trail-color"; + })(InlineStyleProp = ProgressEnum.InlineStyleProp || (ProgressEnum.InlineStyleProp = {})); + let Gradient; + (function (Gradient) { + Gradient["LinearHorizontal"] = "LinearHorizontal"; + Gradient["LinearVertical"] = "LinearVertical"; + Gradient["LinearDiagonally"] = "LinearDiagonally"; + Gradient["Radial"] = "Radial"; + })(Gradient = ProgressEnum.Gradient || (ProgressEnum.Gradient = {})); + let Properties; + (function (Properties) { + Properties["ExtendedClass"] = "ExtendedClass"; + Properties[Properties["MaxProgressValue"] = 100] = "MaxProgressValue"; + Properties[Properties["MinProgressValue"] = 0] = "MinProgressValue"; + Properties["Progress"] = "Progress"; + Properties["ProgressColor"] = "ProgressColor"; + Properties["ProgressCircleSize"] = "ProgressCircleSize"; + Properties["Shape"] = "Shape"; + Properties["Thickness"] = "Thickness"; + Properties["TrailColor"] = "TrailColor"; + })(Properties = ProgressEnum.Properties || (ProgressEnum.Properties = {})); + let ProgressTypes; + (function (ProgressTypes) { + ProgressTypes["Bar"] = "Bar"; + ProgressTypes["Circle"] = "Circle"; + })(ProgressTypes = ProgressEnum.ProgressTypes || (ProgressEnum.ProgressTypes = {})); + let ShapeTypes; + (function (ShapeTypes) { + ShapeTypes["Round"] = "round"; + ShapeTypes["Rounded"] = "rounded"; + ShapeTypes["Soft"] = "soft"; + ShapeTypes["Sharp"] = "sharp"; + })(ShapeTypes = ProgressEnum.ShapeTypes || (ProgressEnum.ShapeTypes = {})); + })(ProgressEnum = Progress.ProgressEnum || (Progress.ProgressEnum = {})); + })(Progress = Patterns.Progress || (Patterns.Progress = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Progress; + (function (Progress) { + var Factory; + (function (Factory) { + function NewProgress(progressId, type, configs) { + let _progressItem = null; + switch (type) { + case Progress.ProgressEnum.ProgressTypes.Circle: + _progressItem = new Patterns.Progress.Circle.Circle(progressId, JSON.parse(configs)); + break; + case Progress.ProgressEnum.ProgressTypes.Bar: + _progressItem = new Patterns.Progress.Bar.Bar(progressId, JSON.parse(configs)); + break; + default: + throw new Error(`There is any Progress of ${type} type`); + } + return _progressItem; + } + Factory.NewProgress = NewProgress; + })(Factory = Progress.Factory || (Progress.Factory = {})); + })(Progress = Patterns.Progress || (Patterns.Progress = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Progress; + (function (Progress) { + var Bar; + (function (Bar_1) { + class Bar extends Progress.AbstractProgress { + constructor(uniqueId, configs) { + super(uniqueId, new Bar_1.ProgressBarConfig(configs)); + this.progressType = Progress.ProgressEnum.ProgressTypes.Bar; + } + _setCssVariables() { + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Progress.ProgressEnum.InlineStyleProp.Thickness, this.configs.Thickness + OSUI.GlobalEnum.Units.Pixel); + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Progress.ProgressEnum.InlineStyleProp.ProgressColor, OSUI.Helper.Dom.Styles.GetColorValueFromColorType(this.configs.ProgressColor)); + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Progress.ProgressEnum.InlineStyleProp.Shape, OSUI.Helper.Dom.Styles.GetBorderRadiusValueFromShapeType(this.configs.Shape)); + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Progress.ProgressEnum.InlineStyleProp.TrailColor, OSUI.Helper.Dom.Styles.GetColorValueFromColorType(this.configs.TrailColor)); + } + _updateProgressColor() { + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Progress.ProgressEnum.InlineStyleProp.ProgressColor, OSUI.Helper.Dom.Styles.GetColorValueFromColorType(this.configs.ProgressColor)); + } + _updateShape() { + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Progress.ProgressEnum.InlineStyleProp.Shape, OSUI.Helper.Dom.Styles.GetBorderRadiusValueFromShapeType(this.configs.Shape)); + } + _updateThickness() { + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Progress.ProgressEnum.InlineStyleProp.Thickness, this.configs.Thickness + OSUI.GlobalEnum.Units.Pixel); + } + _updateTrailColor() { + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Progress.ProgressEnum.InlineStyleProp.TrailColor, OSUI.Helper.Dom.Styles.GetColorValueFromColorType(this.configs.TrailColor)); + } + addInitialAnimation() { + if (this.configs.AnimateInitialProgress) { + this.animateInitial(); + } + this.updatedProgressValue(); + } + setA11YProperties() { + if (this.contentElem.innerHTML) + OSUI.Helper.A11Y.AriaLabelledBy(this.selfElement, this.contentElem.id); + else + OSUI.Helper.A11Y.AriaLabel(this.selfElement, Progress.ProgressEnum.AriaLabel.Progress); + } + setCallbacks() { + super.setCallbacks(); + } + setElementProgressValue(value) { + this.configs.Progress = value; + this.animateOnValueChange(); + this.updatedProgressValue(); + } + setHtmlElements() { + this.progressElem = this.selfElement.querySelector(OSUI.Constants.Dot + Progress.ProgressEnum.CssClass.Container); + this.contentElem = this.selfElement.querySelector(OSUI.Constants.Dot + Progress.ProgressEnum.CssClass.ProgressBarContent); + } + unsetCallbacks() { + super.unsetCallbacks(); + } + unsetHtmlElements() { + super.unsetHtmlElements(); + } + build() { + super.build(); + this.setHtmlElements(); + this.setA11YProperties(); + this._setCssVariables(); + this.setCallbacks(); + if (!this.isBuilt) { + OSUI.Helper.AsyncInvocation(this.addInitialAnimation.bind(this)); + } + this.finishBuild(); + } + changeProperty(propertyName, propertyValue) { + super.changeProperty(propertyName, propertyValue); + switch (propertyName) { + case Progress.ProgressEnum.Properties.Thickness: + this._updateThickness(); + break; + case Progress.ProgressEnum.Properties.Progress: + this.setElementProgressValue(propertyValue); + break; + case Progress.ProgressEnum.Properties.ProgressColor: + this._updateProgressColor(); + break; + case Progress.ProgressEnum.Properties.Shape: + this._updateShape(); + break; + case Progress.ProgressEnum.Properties.TrailColor: + this._updateTrailColor(); + break; + } + } + dispose() { + this.unsetHtmlElements(); + this.unsetCallbacks(); + super.dispose(); + } + progressApplyGradient(gradientType, colors) { + super.progressApplyGradient(gradientType, colors); + let _gradient; + const _colorsString = []; + for (let i = 0; i < this.gradientLength; i++) { + _colorsString.push(`${colors[i].Color} ${colors[i].Percentage !== -1 + ? colors[i].Percentage + OSUI.GlobalEnum.Units.Percentage + : OSUI.Constants.EmptyString}`); + } + switch (gradientType) { + case Progress.ProgressEnum.Gradient.LinearDiagonally: + _gradient = `linear-gradient(135deg, ${_colorsString})`; + break; + case Progress.ProgressEnum.Gradient.LinearHorizontal: + _gradient = `linear-gradient(90deg, ${_colorsString})`; + break; + case Progress.ProgressEnum.Gradient.LinearVertical: + _gradient = `linear-gradient(180deg, ${_colorsString})`; + break; + case Progress.ProgressEnum.Gradient.Radial: + _gradient = `radial-gradient(${_colorsString})`; + break; + } + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Progress.ProgressEnum.InlineStyleProp.ProgressGradient, _gradient); + } + } + Bar_1.Bar = Bar; + })(Bar = Progress.Bar || (Progress.Bar = {})); + })(Progress = Patterns.Progress || (Patterns.Progress = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Progress; + (function (Progress) { + var Bar; + (function (Bar) { + class ProgressBarConfig extends Progress.ProgressConfiguration { + constructor(config) { + super(config); + } + } + Bar.ProgressBarConfig = ProgressBarConfig; + })(Bar = Progress.Bar || (Progress.Bar = {})); + })(Progress = Patterns.Progress || (Patterns.Progress = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Progress; + (function (Progress) { + var Circle; + (function (Circle) { + var Enum; + (function (Enum) { + let CssClass; + (function (CssClass) { + CssClass["Progress"] = "osui-progress-circle__container__progress-path"; + CssClass["SVG"] = "svg-wrapper"; + CssClass["Trail"] = "osui-progress-circle__container__trail-path"; + })(CssClass = Enum.CssClass || (Enum.CssClass = {})); + let InlineStyleProp; + (function (InlineStyleProp) { + InlineStyleProp["CircleRadius"] = "--radius"; + InlineStyleProp["CircleSize"] = "--circle-size"; + InlineStyleProp["GradientURL"] = "--progress-circle-gradient-url"; + InlineStyleProp["ProgressCircleSize"] = "--progress-circle-size"; + InlineStyleProp["StrokeDasharray"] = "--stroke-dasharray"; + InlineStyleProp["StrokeDashoffset"] = "--stroke-dashoffset"; + })(InlineStyleProp = Enum.InlineStyleProp || (Enum.InlineStyleProp = {})); + let DefaultValues; + (function (DefaultValues) { + DefaultValues["GradientId"] = "progressGradient-"; + DefaultValues["RadialFr"] = "15%"; + DefaultValues["RadialRadius"] = "95%"; + DefaultValues["Size"] = "auto"; + })(DefaultValues = Enum.DefaultValues || (Enum.DefaultValues = {})); + let GradientName; + (function (GradientName) { + GradientName["Linear"] = "linearGradient"; + GradientName["Radial"] = "radialGradient"; + })(GradientName = Enum.GradientName || (Enum.GradientName = {})); + })(Enum = Circle.Enum || (Circle.Enum = {})); + })(Circle = Progress.Circle || (Progress.Circle = {})); + })(Progress = Patterns.Progress || (Patterns.Progress = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Progress; + (function (Progress) { + var Circle; + (function (Circle_1) { + class Circle extends Progress.AbstractProgress { + constructor(uniqueId, configs) { + super(uniqueId, new Circle_1.ProgressCircleConfig(configs)); + this._circleSize = 0; + this._needsResizeObserver = true; + this.linearGradientCoords = { + x1: 1, + x2: 1, + y1: 0, + y2: 1, + }; + this.radialGradientCoords = { + fr: Circle_1.Enum.DefaultValues.RadialFr, + r: Circle_1.Enum.DefaultValues.RadialRadius, + }; + } + _addResizeOberser() { + this._resizeObserver = new ResizeObserver((entries) => { + requestAnimationFrame(() => { + if (!Array.isArray(entries) || !entries.length) { + return; + } + if (this.progressElem) { + if (OSUI.Helper.Dom.Styles.ContainsClass(this.progressElem, Progress.ProgressEnum.CssClass.AddInitialAnimation)) { + this.progressElem.addEventListener(OSUI.GlobalEnum.HTMLEvent.TransitionEnd, this._updateCircleProps.bind(this)); + } + else { + this._updateCircleProps(); + } + } + }); + }); + this._resizeObserver.observe(this._blockParent); + } + _checkResizeObserver() { + if (!this._resizeObserver && this._needsResizeObserver) { + this._addResizeOberser(); + } + else if (this._resizeObserver && this._needsResizeObserver === false) { + this._removeResizeOberver(); + } + } + _progressToOffset() { + if (this.configs.ProgressCircleSize !== OSFramework.OSUI.Constants.EmptyString && + this.configs.ProgressCircleSize !== Circle_1.Enum.DefaultValues.Size && + parseInt(this.configs.ProgressCircleSize) !== 0) { + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Circle_1.Enum.InlineStyleProp.ProgressCircleSize, this.configs.ProgressCircleSize); + this._circleSize = this.selfElement.clientWidth; + this._needsResizeObserver = false; + } + else { + if (this._blockParent.clientWidth > this._blockParent.clientHeight) { + this._circleSize = this._blockParent.clientHeight; + } + else { + this._circleSize = this._blockParent.clientWidth; + } + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Circle_1.Enum.InlineStyleProp.ProgressCircleSize, this._circleSize + OSUI.GlobalEnum.Units.Pixel); + this._needsResizeObserver = true; + } + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Circle_1.Enum.InlineStyleProp.CircleSize, this._circleSize + OSUI.GlobalEnum.Units.Pixel); + const _radius = Math.floor(this._circleSize / 2 - this.configs.Thickness / 2); + this._circleCircumference = _radius * 2 * Math.PI; + this._strokeDashoffset = this._strokeDasharray = this._circleCircumference; + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Circle_1.Enum.InlineStyleProp.CircleRadius, _radius + OSUI.GlobalEnum.Units.Pixel); + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Circle_1.Enum.InlineStyleProp.StrokeDasharray, this._strokeDasharray); + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Circle_1.Enum.InlineStyleProp.StrokeDashoffset, this._strokeDashoffset); + if (!this.isBuilt) { + OSUI.Helper.AsyncInvocation(this.addInitialAnimation.bind(this)); + } + else { + this._checkResizeObserver(); + } + } + _removeResizeOberver() { + this._resizeObserver.disconnect(); + this._resizeObserver = undefined; + } + _setCssVariables() { + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Progress.ProgressEnum.InlineStyleProp.Thickness, this.configs.Thickness + OSUI.GlobalEnum.Units.Pixel); + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Progress.ProgressEnum.InlineStyleProp.ProgressColor, OSUI.Helper.Dom.Styles.GetColorValueFromColorType(this.configs.ProgressColor)); + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Progress.ProgressEnum.InlineStyleProp.Shape, this.configs.Shape === OSUI.GlobalEnum.ShapeTypes.Sharp + ? Progress.ProgressEnum.ShapeTypes.Sharp + : Progress.ProgressEnum.ShapeTypes.Round); + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Progress.ProgressEnum.InlineStyleProp.TrailColor, OSUI.Helper.Dom.Styles.GetColorValueFromColorType(this.configs.TrailColor)); + } + _setGradientCoords(gradientType) { + if (gradientType === Circle_1.Enum.GradientName.Radial) { + return `fr="${this.radialGradientCoords.fr}" r="${this.radialGradientCoords.r}"`; + } + else { + return `x1="${this.linearGradientCoords.x1}" y1="${this.linearGradientCoords.y1}" x2="${this.linearGradientCoords.x2}" y2="${this.linearGradientCoords.y2}"`; + } + } + _updateCircleProps() { + this._progressToOffset(); + this._updateProgressValue(); + } + _updateProgressValue() { + this.updatedProgressValue(); + this._strokeDashoffset = + this._circleCircumference - (this.configs.Progress / 100) * this._circleCircumference; + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Circle_1.Enum.InlineStyleProp.StrokeDashoffset, this._strokeDashoffset); + } + addInitialAnimation() { + if (this.configs.AnimateInitialProgress) { + this.animateInitial(); + this._checkResizeObserver(); + this._updateProgressValue(); + } + else { + this._addResizeOberser(); + } + } + setA11YProperties() { + if (this.contentElem.innerHTML) + OSUI.Helper.A11Y.AriaLabelledBy(this.selfElement, this.contentElem.id); + else + OSUI.Helper.A11Y.AriaLabel(this.selfElement, Progress.ProgressEnum.AriaLabel.Progress); + } + setCallbacks() { + super.setCallbacks(); + } + setElementProgressValue(value) { + this.configs.Progress = value; + this.animateOnValueChange(); + this._checkResizeObserver(); + this._updateProgressValue(); + } + setHtmlElements() { + this._blockParent = document.getElementById(this.widgetId).parentElement; + this.progressElem = this.selfElement.querySelector(OSUI.Constants.Dot + Circle_1.Enum.CssClass.Progress); + this.contentElem = this.selfElement.querySelector(OSUI.Constants.Dot + Progress.ProgressEnum.CssClass.ProgressCircleContent); + if (this.isBuilt) { + this._gradientElem = this.progressElem.parentElement.querySelector('defs'); + } + } + unsetCallbacks() { + super.unsetCallbacks(); + } + unsetHtmlElements() { + this._blockParent = undefined; + this._gradientElem = undefined; + super.unsetHtmlElements(); + } + updateProgressColor() { + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Progress.ProgressEnum.InlineStyleProp.ProgressColor, OSUI.Helper.Dom.Styles.GetColorValueFromColorType(this.configs.ProgressColor)); + } + updateShape() { + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Progress.ProgressEnum.InlineStyleProp.Shape, this.configs.Shape === OSUI.GlobalEnum.ShapeTypes.Sharp + ? Progress.ProgressEnum.ShapeTypes.Sharp + : Progress.ProgressEnum.ShapeTypes.Round); + } + updateThickness() { + this._updateCircleProps(); + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Progress.ProgressEnum.InlineStyleProp.Thickness, this.configs.Thickness + OSUI.GlobalEnum.Units.Pixel); + } + updateTrailColor() { + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Progress.ProgressEnum.InlineStyleProp.TrailColor, OSUI.Helper.Dom.Styles.GetColorValueFromColorType(this.configs.TrailColor)); + } + build() { + super.build(); + this.setHtmlElements(); + this.setA11YProperties(); + this._setCssVariables(); + this._progressToOffset(); + this.setCallbacks(); + this.finishBuild(); + } + changeProperty(propertyName, propertyValue) { + var _a, _b; + super.changeProperty(propertyName, propertyValue); + switch (propertyName) { + case Progress.ProgressEnum.Properties.Thickness: + this.updateThickness(); + break; + case Progress.ProgressEnum.Properties.Progress: + this.setProgressValue(propertyValue); + break; + case Progress.ProgressEnum.Properties.ProgressColor: + this.updateProgressColor(); + break; + case Progress.ProgressEnum.Properties.ProgressCircleSize: + (_a = this._resizeObserver) === null || _a === void 0 ? void 0 : _a.unobserve(this._blockParent); + this._updateCircleProps(); + (_b = this._resizeObserver) === null || _b === void 0 ? void 0 : _b.observe(this._blockParent); + break; + case Progress.ProgressEnum.Properties.Shape: + this.updateShape(); + break; + case Progress.ProgressEnum.Properties.TrailColor: + this.updateTrailColor(); + break; + } + } + createSVGGradient(gradientId, gradientName, gradientCoords, gradientLenght, colors) { + var _a; + (_a = this._gradientElem) === null || _a === void 0 ? void 0 : _a.remove(); + let _gradient = OSUI.Constants.EmptyString; + for (let i = 0; i < gradientLenght; i++) { + _gradient += ``; + } + const gradientSVG = ` + + <${gradientName} id="${gradientId}" ${gradientCoords}"> + ${_gradient} + + `; + this.progressElem.parentElement.innerHTML += gradientSVG; + this.setHtmlElements(); + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Circle_1.Enum.InlineStyleProp.GradientURL, 'url(#' + gradientId + ')'); + } + dispose() { + super.dispose(); + this.unsetHtmlElements(); + this.unsetCallbacks(); + if (this._resizeObserver) { + this._removeResizeOberver(); + } + } + progressApplyGradient(gradientType, colors) { + super.progressApplyGradient(gradientType, colors); + let _gradientName = Circle_1.Enum.GradientName.Linear; + const _gradientId = Circle_1.Enum.DefaultValues.GradientId + this.uniqueId; + switch (gradientType) { + case Progress.ProgressEnum.Gradient.LinearHorizontal: + this.linearGradientCoords.x1 = 1; + this.linearGradientCoords.x2 = 1; + this.linearGradientCoords.y1 = 0; + this.linearGradientCoords.y2 = 1; + break; + case Progress.ProgressEnum.Gradient.LinearDiagonally: + this.linearGradientCoords.x1 = 1; + this.linearGradientCoords.x2 = 0; + this.linearGradientCoords.y1 = 0; + this.linearGradientCoords.y2 = 1; + break; + case Progress.ProgressEnum.Gradient.LinearVertical: + this.linearGradientCoords.x1 = 1; + this.linearGradientCoords.x2 = 0; + this.linearGradientCoords.y1 = 1; + this.linearGradientCoords.y2 = 1; + break; + case Progress.ProgressEnum.Gradient.Radial: + _gradientName = Circle_1.Enum.GradientName.Radial; + break; + } + const _gradientCoords = this._setGradientCoords(_gradientName); + this.createSVGGradient(_gradientId, _gradientName, _gradientCoords, this.gradientLength, colors); + } + } + Circle_1.Circle = Circle; + })(Circle = Progress.Circle || (Progress.Circle = {})); + })(Progress = Patterns.Progress || (Patterns.Progress = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Progress; + (function (Progress) { + var Circle; + (function (Circle) { + class ProgressCircleConfig extends Progress.ProgressConfiguration { + constructor(config) { + super(config); + } + } + Circle.ProgressCircleConfig = ProgressCircleConfig; + })(Circle = Progress.Circle || (Progress.Circle = {})); + })(Progress = Patterns.Progress || (Patterns.Progress = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var RangeSlider; + (function (RangeSlider) { + class AbstractRangeSlider extends Patterns.AbstractProviderPattern { + constructor(uniqueId, configs) { + super(uniqueId, configs); + } + } + RangeSlider.AbstractRangeSlider = AbstractRangeSlider; + })(RangeSlider = Patterns.RangeSlider || (Patterns.RangeSlider = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var RangeSlider; + (function (RangeSlider) { + class AbstractRangeSliderConfig extends Patterns.AbstractProviderConfiguration { + constructor(config) { + super(config); + } + validateDefault(key, value) { + let validatedValue = undefined; + switch (key) { + case RangeSlider.Enum.Properties.InitialValueFrom: + case RangeSlider.Enum.Properties.InitialValueTo: + validatedValue = this.validateNumber(value, 0); + break; + case RangeSlider.Enum.Properties.Orientation: + validatedValue = this.validateInRange(value, OSUI.GlobalEnum.Orientation.Horizontal, OSUI.GlobalEnum.Orientation.Vertical); + break; + case RangeSlider.Enum.Properties.IsDisabled: + case RangeSlider.Enum.Properties.ShowFloatingLabel: + case RangeSlider.Enum.Properties.ShowTickMarks: + validatedValue = this.validateBoolean(value, false); + break; + case RangeSlider.Enum.Properties.Size: + validatedValue = this.validateString(value, this.Orientation === OSUI.GlobalEnum.Orientation.Horizontal + ? RangeSlider.Enum.DefaultValues.PercentualSize + : RangeSlider.Enum.DefaultValues.PixelSize); + break; + case RangeSlider.Enum.Properties.Step: + validatedValue = this.validateNumber(value, 1); + break; + case RangeSlider.Enum.Properties.TickMarksInterval: + validatedValue = this.validateNumber(value, 0); + break; + default: + validatedValue = super.validateDefault(key, value); + break; + } + return validatedValue; + } + } + RangeSlider.AbstractRangeSliderConfig = AbstractRangeSliderConfig; + })(RangeSlider = Patterns.RangeSlider || (Patterns.RangeSlider = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var RangeSlider; + (function (RangeSlider) { + var Enum; + (function (Enum) { + let CssClass; + (function (CssClass) { + CssClass["ClassModifier"] = "osui-range-slider--is-"; + CssClass["IsInterval"] = "osui-range-slider--is-interval"; + CssClass["HasTicks"] = "osui-range-slider--has-ticks"; + CssClass["RangeSlider"] = "osui-range-slider"; + CssClass["RangeSliderProviderElem"] = "osui-range-slider__provider"; + })(CssClass = Enum.CssClass || (Enum.CssClass = {})); + let CssProperties; + (function (CssProperties) { + CssProperties["Size"] = "--range-slider-size"; + })(CssProperties = Enum.CssProperties || (Enum.CssProperties = {})); + let DefaultValues; + (function (DefaultValues) { + DefaultValues["PercentualSize"] = "100%"; + DefaultValues["PixelSize"] = "100px"; + })(DefaultValues = Enum.DefaultValues || (Enum.DefaultValues = {})); + let Mode; + (function (Mode) { + Mode["Single"] = "single"; + Mode["Interval"] = "interval"; + })(Mode = Enum.Mode || (Enum.Mode = {})); + let Properties; + (function (Properties) { + Properties["InitialValueTo"] = "InitialValueTo"; + Properties["InitialValueFrom"] = "InitialValueFrom"; + Properties["IsDisabled"] = "IsDisabled"; + Properties["MaxValue"] = "MaxValue"; + Properties["MinValue"] = "MinValue"; + Properties["Orientation"] = "Orientation"; + Properties["ShowTickMarks"] = "ShowTickMarks"; + Properties["ShowFloatingLabel"] = "ShowFloatingLabel"; + Properties["Size"] = "Size"; + Properties["StartingValueTo"] = "StartingValueTo"; + Properties["StartingValueFrom"] = "StartingValueFrom"; + Properties["Step"] = "Step"; + Properties["TickMarksInterval"] = "TickMarksInterval"; + })(Properties = Enum.Properties || (Enum.Properties = {})); + let Provider; + (function (Provider) { + Provider["NoUiSlider"] = "noUiSlider"; + })(Provider = Enum.Provider || (Enum.Provider = {})); + let RangeSliderEvents; + (function (RangeSliderEvents) { + RangeSliderEvents["OnInitialize"] = "OnInitialize"; + RangeSliderEvents["OnValueChange"] = "OnValueChange"; + })(RangeSliderEvents = Enum.RangeSliderEvents || (Enum.RangeSliderEvents = {})); + let RangeSliderTypes; + (function (RangeSliderTypes) { + RangeSliderTypes["Slider"] = "slider"; + RangeSliderTypes["Interval"] = "interval"; + })(RangeSliderTypes = Enum.RangeSliderTypes || (Enum.RangeSliderTypes = {})); + })(Enum = RangeSlider.Enum || (RangeSlider.Enum = {})); + })(RangeSlider = Patterns.RangeSlider || (Patterns.RangeSlider = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var RangeSlider; + (function (RangeSlider) { + var Factory; + (function (Factory) { + function NewRangeSlider(rangeSliderId, configs, mode, provider) { + let _rangeSliderItem = null; + switch (provider) { + case RangeSlider.Enum.Provider.NoUiSlider: + _rangeSliderItem = Providers.OSUI.RangeSlider.NoUiSlider.Factory.NewNoUiSlider(rangeSliderId, configs, mode); + break; + default: + throw new Error(`There is no ${OSUI.GlobalEnum.PatternName.RangeSlider} of the ${provider} provider`); + } + return _rangeSliderItem; + } + Factory.NewRangeSlider = NewRangeSlider; + })(Factory = RangeSlider.Factory || (RangeSlider.Factory = {})); + })(RangeSlider = Patterns.RangeSlider || (Patterns.RangeSlider = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Rating; + (function (Rating) { + var Enum; + (function (Enum) { + let CssClass; + (function (CssClass) { + CssClass["IconStates"] = "icon-states"; + CssClass["IsEdit"] = "is-edit"; + CssClass["IsHalf"] = "is-half"; + CssClass["RatingInput"] = "rating-input"; + CssClass["RatingItem"] = "rating-item"; + CssClass["Size"] = "rating-"; + CssClass["WCAGHideText"] = "wcag-hide-text"; + })(CssClass = Enum.CssClass || (Enum.CssClass = {})); + let Events; + (function (Events) { + Events["OnSelected"] = "OnSelected"; + })(Events = Enum.Events || (Enum.Events = {})); + let Properties; + (function (Properties) { + Properties["IsEdit"] = "IsEdit"; + Properties[Properties["MaxRatingScale"] = 100] = "MaxRatingScale"; + Properties[Properties["MinRatingScale"] = 0] = "MinRatingScale"; + Properties["RatingScale"] = "RatingScale"; + Properties["RatingValue"] = "RatingValue"; + Properties["Size"] = "Size"; + })(Properties = Enum.Properties || (Enum.Properties = {})); + })(Enum = Rating.Enum || (Rating.Enum = {})); + })(Rating = Patterns.Rating || (Patterns.Rating = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Rating; + (function (Rating_1) { + class Rating extends Patterns.AbstractPattern { + constructor(uniqueId, configs) { + super(uniqueId, new Rating_1.RatingConfig(configs)); + } + _createItems() { + if (this.configs.RatingScale > Rating_1.Enum.Properties.MaxRatingScale) { + this.configs.RatingScale = Rating_1.Enum.Properties.MaxRatingScale; + console.warn(`The value of the RatingScale property on the '${this.widgetId}' Rating is higher than supported (${Rating_1.Enum.Properties.MaxRatingScale}).`); + } + for (let i = 0; i <= this.configs.RatingScale; i++) { + this._renderItem(i); + } + } + _getDecimalValue(value) { + return Math.round((value - Math.floor(value)) * 100) / 100; + } + _getIsHalfValue(value) { + const decimalValue = this._getDecimalValue(value); + return !!(decimalValue >= 0.3 && decimalValue <= 0.7); + } + _getValue() { + const inputChecked = OSUI.Helper.Dom.TagSelector(this.selfElement, 'input:checked'); + return parseInt(inputChecked.value); + } + _handlePlaceholders() { + this._clonedPlaceholders = this._ratingIconStatesElem.innerHTML; + this._ratingIconStatesElem.remove(); + } + _manageRatingEvent() { + if (this._ratingHasEventAdded) { + this.selfElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.Click, this._eventOnRatingClick); + this._ratingHasEventAdded = false; + } + else if (this.configs.IsEdit) { + this.selfElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.Click, this._eventOnRatingClick); + this._ratingHasEventAdded = true; + } + } + _ratingOnClick(e) { + const currentTarget = e.target; + this._isHalfValue = false; + const isInput = OSUI.Helper.Dom.Styles.ContainsClass(currentTarget, Rating_1.Enum.CssClass.RatingInput); + if (isInput) { + const _lastChosen = this.selfElement.querySelectorAll(OSUI.GlobalEnum.HTMLElement.Input)[this.configs.RatingValue]; + if (_lastChosen) { + _lastChosen.ariaChecked = OSUI.Constants.A11YAttributes.States.False; + } + this.configs.RatingValue = this._getValue(); + this._setValue(true); + } + } + _removeEvents() { + if (this.selfElement && this._ratingHasEventAdded) { + this.selfElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.Click, this._eventOnRatingClick); + } + } + _renderItem(index) { + const labelHTML = index !== 0 ? this._clonedPlaceholders : ''; + const ratingInputId = this.uniqueId + '-rating-' + index; + const input = ``; + let label; + if (!this.configs.IsEdit) { + label = ``; + } + else { + label = ``; + } + this._ratingFieldsetElem.innerHTML += input + label; + } + _setFieldsetDisabledStatus(isDisabled) { + const isFieldsetDisabled = OSUI.Helper.Dom.Attribute.Get(this._ratingFieldsetElem, OSUI.GlobalEnum.HTMLAttributes.Disabled); + if (isDisabled) { + OSUI.Helper.Dom.Attribute.Set(this._ratingFieldsetElem, OSUI.GlobalEnum.HTMLAttributes.Disabled, OSUI.Constants.A11YAttributes.States.True); + } + else if (!isDisabled && isFieldsetDisabled) { + OSUI.Helper.Dom.Attribute.Remove(this._ratingFieldsetElem, OSUI.GlobalEnum.HTMLAttributes.Disabled); + } + } + _setInitialCssClasses() { + if (this._isHalfValue) { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, Rating_1.Enum.CssClass.IsHalf); + } + if (this.configs.IsEdit) { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, Rating_1.Enum.CssClass.IsEdit); + } + if (this.configs.Size !== '') { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, Rating_1.Enum.CssClass.Size + this.configs.Size); + } + } + _setInitialPropertiesValues() { + this._disabled = !this.configs.IsEdit; + this._ratingInputName = 'rating-' + this.uniqueId; + this._ratingHasEventAdded = false; + } + _setIsDisabled(isDisabled) { + this._setFieldsetDisabledStatus(isDisabled); + this._disabled = isDisabled; + } + _setIsEdit() { + this._setIsDisabled(!this.configs.IsEdit); + const LabelList = this.selfElement.querySelectorAll(OSUI.Constants.Dot + Rating_1.Enum.CssClass.RatingItem); + if (this.configs.IsEdit) { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, Rating_1.Enum.CssClass.IsEdit); + LabelList.forEach((label) => { + label.removeAttribute(OSUI.Constants.A11YAttributes.Aria.Hidden); + }); + } + else { + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, Rating_1.Enum.CssClass.IsEdit); + LabelList.forEach((label) => { + label.ariaHidden = OSUI.Constants.A11YAttributes.States.True; + }); + } + this._manageRatingEvent(); + } + _setScale() { + this._ratingFieldsetElem.innerHTML = ''; + this._createItems(); + this._setValue(); + } + _setSize(oldSize) { + if (oldSize !== '') { + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, Rating_1.Enum.CssClass.Size + oldSize); + } + if (this.configs.Size !== '') { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, Rating_1.Enum.CssClass.Size + this.configs.Size); + } + } + _setValue(triggerEvent = false) { + this._decimalValue = this._getDecimalValue(this.configs.RatingValue); + this._isHalfValue = this._getIsHalfValue(this.configs.RatingValue); + const ratingItems = this.selfElement.querySelectorAll(OSUI.GlobalEnum.HTMLElement.Input); + if (OSUI.Helper.Dom.Styles.ContainsClass(this.selfElement, Rating_1.Enum.CssClass.IsHalf)) { + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, Rating_1.Enum.CssClass.IsHalf); + } + if (this.configs.RatingScale === 1) { + ratingItems[1].checked = true; + ratingItems[1].ariaChecked = OSUI.Constants.A11YAttributes.States.True; + return; + } + let newValue = this._isHalfValue || this._decimalValue > 0.7 + ? Math.floor(this.configs.RatingValue) + 1 + : Math.floor(this.configs.RatingValue); + if (newValue < Rating_1.Enum.Properties.MinRatingScale) { + newValue = Rating_1.Enum.Properties.MinRatingScale; + console.warn(`The value of RatingValue property on the '${this.widgetId}' ${OSUI.GlobalEnum.PatternName.Rating} can't be smaller than '${Rating_1.Enum.Properties.MinRatingScale}'.`); + } + else if (newValue > this.configs.RatingScale) { + newValue = this.configs.RatingScale; + console.warn(`The value of the RatingValue property on the '${this.widgetId}' ${OSUI.GlobalEnum.PatternName.Rating} exceeds the scale boundaries. To ensure its correct behaviour, set a value smaller or equal to '${this.configs.RatingScale}'.`); + } + ratingItems[newValue].checked = true; + ratingItems[newValue].ariaChecked = OSUI.Constants.A11YAttributes.States.True; + if (this._isHalfValue) { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, Rating_1.Enum.CssClass.IsHalf); + } + this.configs.RatingValue = this._isHalfValue ? this.configs.RatingValue : newValue; + if (triggerEvent) { + this._triggerOnSelectEvent(this.configs.RatingValue); + } + } + _triggerOnSelectEvent(value) { + if (this._platformEventOnSelect !== undefined) { + this.triggerPlatformEventCallback(this._platformEventOnSelect, value); + } + } + setA11YProperties() { + console.warn(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + setCallbacks() { + this._eventOnRatingClick = this._ratingOnClick.bind(this); + } + setHtmlElements() { + this._ratingIconStatesElem = OSUI.Helper.Dom.ClassSelector(this.selfElement, Rating_1.Enum.CssClass.IconStates); + this._ratingFieldsetElem = OSUI.Helper.Dom.TagSelector(this.selfElement, OSUI.GlobalEnum.HTMLElement.FieldSet); + } + unsetCallbacks() { + this._eventOnRatingClick = undefined; + } + unsetHtmlElements() { + this._ratingFieldsetElem.innerHTML = ''; + this._ratingIconStatesElem = undefined; + this._ratingFieldsetElem = undefined; + } + build() { + super.build(); + this._setInitialPropertiesValues(); + this.setCallbacks(); + this.setHtmlElements(); + this._setInitialCssClasses(); + this._handlePlaceholders(); + this._setFieldsetDisabledStatus(!this.configs.IsEdit); + this._createItems(); + this._manageRatingEvent(); + this._setValue(); + this.finishBuild(); + } + changeProperty(propertyName, propertyValue) { + const oldSize = this.configs.Size; + super.changeProperty(propertyName, propertyValue); + if (this.isBuilt) { + switch (propertyName) { + case Rating_1.Enum.Properties.RatingValue: + this._setValue(); + break; + case Rating_1.Enum.Properties.RatingScale: + this._setScale(); + break; + case Rating_1.Enum.Properties.IsEdit: + this._setIsEdit(); + break; + case Rating_1.Enum.Properties.Size: + this._setSize(oldSize); + break; + } + } + } + dispose() { + this._removeEvents(); + this.unsetCallbacks(); + this.unsetHtmlElements(); + super.dispose(); + } + registerCallback(eventName, callback) { + switch (eventName) { + case Rating_1.Enum.Events.OnSelected: + if (this._platformEventOnSelect === undefined) { + this._platformEventOnSelect = callback; + } + break; + default: + super.registerCallback(eventName, callback); + } + } + } + Rating_1.Rating = Rating; + })(Rating = Patterns.Rating || (Patterns.Rating = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Rating; + (function (Rating) { + class RatingConfig extends Patterns.AbstractConfiguration { + constructor(config) { + super(config); + } + } + Rating.RatingConfig = RatingConfig; + })(Rating = Patterns.Rating || (Patterns.Rating = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Search; + (function (Search_1) { + class Search extends Patterns.AbstractPattern { + constructor(uniqueId, configs) { + super(uniqueId, new Search_1.SearchConfig(configs)); + } + setA11YProperties() { + console.log(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + setCallbacks() { + console.log(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + setHtmlElements() { + console.log(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + unsetCallbacks() { + console.log(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + unsetHtmlElements() { + console.log(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + build() { + super.build(); + this.finishBuild(); + } + dispose() { + if (this.isBuilt) { + super.dispose(); + } + } + } + Search_1.Search = Search; + })(Search = Patterns.Search || (Patterns.Search = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Search; + (function (Search) { + class SearchConfig extends Patterns.AbstractConfiguration { + constructor(config) { + super(config); + } + } + Search.SearchConfig = SearchConfig; + })(Search = Patterns.Search || (Patterns.Search = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var SectionIndex; + (function (SectionIndex) { + var Enum; + (function (Enum) { + let ChildNotifyActionType; + (function (ChildNotifyActionType) { + ChildNotifyActionType["Active"] = "active"; + ChildNotifyActionType["Add"] = "add"; + ChildNotifyActionType["Click"] = "click"; + ChildNotifyActionType["KeyPressed"] = "keyPressed"; + ChildNotifyActionType["Inactive"] = "unactive"; + ChildNotifyActionType["Removed"] = "removed"; + })(ChildNotifyActionType = Enum.ChildNotifyActionType || (Enum.ChildNotifyActionType = {})); + let CssClass; + (function (CssClass) { + CssClass["IsActiveItem"] = "osui-section-index-item--is-active"; + CssClass["IsSticky"] = "osui-section-index--is-sticky"; + CssClass["Pattern"] = "osui-section-index"; + })(CssClass = Enum.CssClass || (Enum.CssClass = {})); + let CssVariable; + (function (CssVariable) { + CssVariable["TopPosition"] = "--top-position"; + })(CssVariable = Enum.CssVariable || (Enum.CssVariable = {})); + let Properties; + (function (Properties) { + Properties["IsFixed"] = "IsFixed"; + Properties["SmoothScrolling"] = "SmoothScrolling"; + })(Properties = Enum.Properties || (Enum.Properties = {})); + })(Enum = SectionIndex.Enum || (SectionIndex.Enum = {})); + })(SectionIndex = Patterns.SectionIndex || (Patterns.SectionIndex = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var SectionIndex; + (function (SectionIndex_1) { + class SectionIndex extends Patterns.AbstractParent { + constructor(uniqueId, configs) { + super(uniqueId, new SectionIndex_1.SectionIndexConfig(configs)); + this._navigateOnClick = false; + } + _addSectionIndexItem(childItem) { + if (this.getChild(childItem.uniqueId)) { + throw new Error(`${OSUI.ErrorCodes.SectionIndex.FailSetNewChildItem}: There is already a ${OSUI.GlobalEnum.PatternName.SectionIndexItem} under Id: '${childItem.widgetId}' added to ${OSUI.GlobalEnum.PatternName.SectionIndex} with uniqueId: ${this.uniqueId}.`); + } + else { + this.setChild(childItem); + } + } + _childItemHasBeenClicked(childId) { + const childReference = this.getChild(childId); + if (childReference) { + this._setActiveChildOnClick(childReference); + } + else { + throw new Error(`${OSUI.ErrorCodes.SectionIndex.FailChildItemClicked}: The ${OSUI.GlobalEnum.PatternName.SectionIndexItem} under uniqueId: '${childId}' does not exist as an SectionIndexItem from ${OSUI.GlobalEnum.PatternName.SectionIndex} with Id: ${this.widgetId}.`); + } + } + _getContentPaddingTop() { + const _mainContent = OSUI.Helper.Dom.ClassSelector(document, OSUI.GlobalEnum.CssClassElements.MainContent); + this._contentPaddingTop = _mainContent + ? parseFloat(window.getComputedStyle(_mainContent).getPropertyValue(OSUI.GlobalEnum.CssProperties.PaddingTop)) + : 0; + } + _removeSectionIndexItem(childId) { + if (this.getChild(childId)) { + this.unsetChild(childId); + } + else { + throw new Error(`${OSUI.ErrorCodes.SectionIndex.FailUnsetNewChildItem}: The ${OSUI.GlobalEnum.PatternName.SectionIndexItem} under uniqueId: '${childId}' does not exist as an SectionIndexItem from ${OSUI.GlobalEnum.PatternName.SectionIndex} with Id: ${this.widgetId}.`); + } + } + _setActiveChildOnClick(child) { + this._navigateOnClick = true; + window.clearTimeout(this._scrollTimeout); + this._scrollTimeout = window.setTimeout(() => { + this._navigateOnClick = false; + }, 800); + if (this._activeSectionIndexItem) { + this._activeSectionIndexItem.unsetIsActive(); + } + child.setIsActive(); + this._activeSectionIndexItem = child; + OSUI.Behaviors.Scroll(this._mainScrollContainerElement, child.TargetElementOffset, this.configs.SmoothScrolling); + } + _setActiveChildOnScroll(child) { + if (this._navigateOnClick || this.configs.IsFixed === false) { + return; + } + const isActiveChilds = this.getChildItems().filter((item) => item.IsSelected); + for (const optionItem of isActiveChilds) { + if (isActiveChilds.length === 1 || optionItem !== isActiveChilds[isActiveChilds.length - 1]) { + this._activeSectionIndexItem.unsetIsActive(); + } + } + child.setIsActive(); + this._activeSectionIndexItem = child; + } + _toggleIsFixed() { + if (this.configs.IsFixed) { + let headerHeight = 0; + const hasFixedHeader = OSUI.Helper.Dom.ClassSelector(document.body, OSUI.GlobalEnum.CssClassElements.HeaderIsFixed); + if (hasFixedHeader) { + headerHeight = + OSUI.Helper.Dom.ClassSelector(document, OSUI.GlobalEnum.CssClassElements.Header).offsetHeight || 0; + } + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, SectionIndex_1.Enum.CssVariable.TopPosition, 'calc(' + headerHeight + 'px + ' + this._contentPaddingTop + 'px)'); + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, SectionIndex_1.Enum.CssClass.IsSticky); + } + else { + OSUI.Helper.Dom.Styles.RemoveStyleAttribute(this.selfElement, SectionIndex_1.Enum.CssVariable.TopPosition); + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, SectionIndex_1.Enum.CssClass.IsSticky); + } + } + setA11YProperties() { + console.warn(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + setCallbacks() { + console.log(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + setHtmlElements() { + if (OSUI.Helper.Dom.Attribute.Has(document.body, OSUI.GlobalEnum.HTMLAttributes.StatusBar) && + OSUI.Helper.DeviceInfo.GetOperatingSystem() === OSUI.GlobalEnum.MobileOS.IOS) { + this._mainScrollContainerElement = OSUI.Helper.Dom.ClassSelector(document, OSUI.GlobalEnum.CssClassElements.Content); + } + else { + this._mainScrollContainerElement = OSUI.Helper.Dom.ClassSelector(document, OSUI.GlobalEnum.CssClassElements.ActiveScreen); + } + } + unsetCallbacks() { + console.log(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + unsetHtmlElements() { + this._mainScrollContainerElement = undefined; + } + beNotifiedByChild(childItem, notifiedTo) { + switch (notifiedTo) { + case SectionIndex_1.Enum.ChildNotifyActionType.Add: + this._addSectionIndexItem(childItem); + break; + case SectionIndex_1.Enum.ChildNotifyActionType.Click: + this._childItemHasBeenClicked(childItem.uniqueId); + break; + case SectionIndex_1.Enum.ChildNotifyActionType.Removed: + this._removeSectionIndexItem(childItem.uniqueId); + break; + case SectionIndex_1.Enum.ChildNotifyActionType.Active: + this._setActiveChildOnScroll(this.getChild(childItem.uniqueId)); + break; + default: + throw new Error(`${OSUI.ErrorCodes.SectionIndex.FailToSetChildItemAction}: There no exist a '${notifiedTo}' notification type.`); + } + } + build() { + super.build(); + this.setHtmlElements(); + this._getContentPaddingTop(); + this._toggleIsFixed(); + this.finishBuild(); + } + changeProperty(propertyName, propertyValue) { + super.changeProperty(propertyName, propertyValue); + if (this.isBuilt) { + switch (propertyName) { + case SectionIndex_1.Enum.Properties.IsFixed: + this._toggleIsFixed(); + break; + } + } + } + dispose() { + this.unsetHtmlElements(); + super.dispose(); + } + get contentPaddingTop() { + return this._contentPaddingTop; + } + } + SectionIndex_1.SectionIndex = SectionIndex; + })(SectionIndex = Patterns.SectionIndex || (Patterns.SectionIndex = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var SectionIndex; + (function (SectionIndex) { + class SectionIndexConfig extends Patterns.AbstractConfiguration { + validateDefault(key, value) { + let validatedValue = undefined; + switch (key) { + case SectionIndex.Enum.Properties.IsFixed: + case SectionIndex.Enum.Properties.SmoothScrolling: + validatedValue = this.validateBoolean(value, false); + break; + default: + validatedValue = super.validateDefault(key, value); + break; + } + return validatedValue; + } + } + SectionIndex.SectionIndexConfig = SectionIndexConfig; + })(SectionIndex = Patterns.SectionIndex || (Patterns.SectionIndex = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var SectionIndexItem; + (function (SectionIndexItem) { + var Enum; + (function (Enum) { + let Properties; + (function (Properties) { + Properties["ScrollToWidgetId"] = "ScrollToWidgetId"; + })(Properties = Enum.Properties || (Enum.Properties = {})); + let DataTypes; + (function (DataTypes) { + DataTypes["dataItem"] = "data-item"; + })(DataTypes = Enum.DataTypes || (Enum.DataTypes = {})); + })(Enum = SectionIndexItem.Enum || (SectionIndexItem.Enum = {})); + })(SectionIndexItem = Patterns.SectionIndexItem || (Patterns.SectionIndexItem = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var SectionIndexItem; + (function (SectionIndexItem_1) { + class SectionIndexItem extends Patterns.AbstractChild { + constructor(uniqueId, configs) { + super(uniqueId, new SectionIndexItem_1.SectionIndexItemConfig(configs)); + this._headerHeight = 0; + this._headerIsFixed = true; + this._isActive = false; + this._targetElement = undefined; + this._targetElementOffset = { + bottom: 0, + top: 0, + }; + } + _onKeyboardPressed(event) { + event.preventDefault(); + event.stopPropagation(); + switch (event.key) { + case OSUI.GlobalEnum.Keycodes.Enter: + case OSUI.GlobalEnum.Keycodes.Space: + this._onSelected(event); + break; + } + } + _onScreenScroll() { + this._setTargetOffsetInfo(); + const scrollYPosition = OSUI.Behaviors.ScrollVerticalPosition(this._mainScrollContainerElement); + const thresholdVal = 40; + const elementOffsetTopVal = this._targetElementOffset.top - scrollYPosition.value; + if ((this.isFirstChild && scrollYPosition.percentageInView === 0) || + (elementOffsetTopVal >= -thresholdVal && elementOffsetTopVal <= thresholdVal) || + (this.isLastChild && scrollYPosition.percentageInView === 100)) { + this.notifyParent(Patterns.SectionIndex.Enum.ChildNotifyActionType.Active); + } + } + _onSelected(event) { + event.preventDefault(); + event.stopPropagation(); + this._setTargetOffsetInfo(); + this.notifyParent(Patterns.SectionIndex.Enum.ChildNotifyActionType.Click); + } + _removeEvents() { + this.selfElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.Click, this._eventOnClick); + this.selfElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventOnkeyBoardPress); + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.removeHandler(OSUI.Event.DOMEvents.Listeners.Type.ScreenOnScroll, this._eventOnScreenScroll); + } + _setHeaderSize() { + const header = OSUI.Helper.Dom.ClassSelector(document.body, OSUI.GlobalEnum.CssClassElements.Header); + this._headerIsFixed = !!OSUI.Helper.Dom.ClassSelector(document.body, OSUI.GlobalEnum.CssClassElements.HeaderIsFixed); + if (header) { + this._headerHeight = this._headerIsFixed ? header.offsetHeight : 2 * header.offsetHeight; + } + } + _setLinkAttribute() { + OSUI.Helper.Dom.Attribute.Set(this.selfElement, SectionIndexItem_1.Enum.DataTypes.dataItem, this.configs.ScrollToWidgetId); + } + _setTargetElement() { + if (this._targetElement === undefined) { + try { + this._targetElement = document.getElementById(this.configs.ScrollToWidgetId); + } + catch (e) { + throw new Error(`${OSUI.ErrorCodes.SectionIndexItem.FailToSetTargetElement}: Target Element with the Id '${this.configs.ScrollToWidgetId}' does not exist!`); + } + } + } + _setTargetOffsetInfo() { + this._setTargetElement(); + this._setHeaderSize(); + this._targetElementOffset.top = + this._targetElement.offsetTop + this._headerHeight + this.parentObject.contentPaddingTop; + } + _setUpEvents() { + this.selfElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.Click, this._eventOnClick); + this.selfElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventOnkeyBoardPress); + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.addHandler(OSUI.Event.DOMEvents.Listeners.Type.ScreenOnScroll, this._eventOnScreenScroll); + } + setA11YProperties() { + OSUI.Helper.A11Y.RoleButton(this.selfElement); + OSUI.Helper.A11Y.TabIndexTrue(this.selfElement); + } + setCallbacks() { + this._eventOnClick = this._onSelected.bind(this); + this._eventOnkeyBoardPress = this._onKeyboardPressed.bind(this); + this._eventOnScreenScroll = this._onScreenScroll.bind(this); + } + setHtmlElements() { + if (OSUI.Helper.Dom.Attribute.Has(document.body, OSUI.GlobalEnum.HTMLAttributes.StatusBar) && + OSUI.Helper.DeviceInfo.GetOperatingSystem() === OSUI.GlobalEnum.MobileOS.IOS) { + this._mainScrollContainerElement = OSUI.Helper.Dom.ClassSelector(document, OSUI.GlobalEnum.CssClassElements.Content); + } + else { + this._mainScrollContainerElement = OSUI.Helper.Dom.ClassSelector(document, OSUI.GlobalEnum.CssClassElements.ActiveScreen); + } + } + unsetCallbacks() { + this._removeEvents(); + this._eventOnClick = undefined; + this._eventOnkeyBoardPress = undefined; + this._eventOnScreenScroll = undefined; + } + unsetHtmlElements() { + this._mainScrollContainerElement = undefined; + this._targetElement = undefined; + } + build() { + super.build(); + this.setParentInfo(OSUI.Constants.Dot + Patterns.SectionIndex.Enum.CssClass.Pattern, OutSystems.OSUI.Patterns.SectionIndexAPI.GetSectionIndexById); + this.notifyParent(Patterns.SectionIndex.Enum.ChildNotifyActionType.Add); + this.setCallbacks(); + this.setHtmlElements(); + this._setUpEvents(); + this.setA11YProperties(); + this._setLinkAttribute(); + this.finishBuild(); + } + changeProperty(propertyName, propertyValue) { + super.changeProperty(propertyName, propertyValue); + if (this.isBuilt) { + switch (propertyName) { + case SectionIndexItem_1.Enum.Properties.ScrollToWidgetId: + console.warn(`${OSUI.GlobalEnum.PatternName.SectionIndex} (${this.widgetId}): change to ${SectionIndexItem_1.Enum.Properties.ScrollToWidgetId} on property ${SectionIndexItem_1.Enum.Properties.ScrollToWidgetId} is not editable at OnParametersChange.`); + break; + } + } + } + dispose() { + this.unsetCallbacks(); + this.notifyParent(Patterns.SectionIndex.Enum.ChildNotifyActionType.Removed); + super.dispose(); + } + setIsActive() { + if (this._isActive === false) { + this._isActive = true; + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, Patterns.SectionIndex.Enum.CssClass.IsActiveItem); + } + } + unsetIsActive() { + if (this._isActive) { + this._isActive = false; + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, Patterns.SectionIndex.Enum.CssClass.IsActiveItem); + } + } + get IsSelected() { + return this._isActive; + } + get TargetElement() { + return this._targetElement; + } + get TargetElementOffset() { + return this._targetElementOffset; + } + } + SectionIndexItem_1.SectionIndexItem = SectionIndexItem; + })(SectionIndexItem = Patterns.SectionIndexItem || (Patterns.SectionIndexItem = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var SectionIndexItem; + (function (SectionIndexItem) { + class SectionIndexItemConfig extends Patterns.AbstractConfiguration { + validateCanChange(isBuilt, key) { + if (isBuilt) { + return key !== SectionIndexItem.Enum.Properties.ScrollToWidgetId; + } + return true; + } + } + SectionIndexItem.SectionIndexItemConfig = SectionIndexItemConfig; + })(SectionIndexItem = Patterns.SectionIndexItem || (Patterns.SectionIndexItem = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Sidebar; + (function (Sidebar) { + var Enum; + (function (Enum) { + let Properties; + (function (Properties) { + Properties["StartsOpen"] = "StartsOpen"; + Properties["Direction"] = "Direction"; + Properties["Width"] = "Width"; + Properties["HasOverlay"] = "HasOverlay"; + })(Properties = Enum.Properties || (Enum.Properties = {})); + let Defaults; + (function (Defaults) { + Defaults["Width"] = "500px"; + })(Defaults = Enum.Defaults || (Enum.Defaults = {})); + let CssClass; + (function (CssClass) { + CssClass["Aside"] = "osui-sidebar"; + CssClass["Content"] = "osui-sidebar__content"; + CssClass["ClassModifier"] = "osui-sidebar--is-"; + CssClass["HasOverlay"] = "osui-sidebar--has-overlay"; + CssClass["Header"] = "osui-sidebar__header"; + CssClass["IsOpen"] = "osui-sidebar--is-open"; + CssClass["Overlay"] = "osui-sidebar__overlay"; + })(CssClass = Enum.CssClass || (Enum.CssClass = {})); + let CssProperty; + (function (CssProperty) { + CssProperty["Width"] = "--sidebar-width"; + })(CssProperty = Enum.CssProperty || (Enum.CssProperty = {})); + let Events; + (function (Events) { + Events["OnToggle"] = "OnToggle"; + })(Events = Enum.Events || (Enum.Events = {})); + })(Enum = Sidebar.Enum || (Sidebar.Enum = {})); + })(Sidebar = Patterns.Sidebar || (Patterns.Sidebar = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Sidebar; + (function (Sidebar_1) { + class Sidebar extends Patterns.AbstractPattern { + constructor(uniqueId, configs) { + super(uniqueId, new Sidebar_1.SidebarConfig(configs)); + this._isOpen = this.configs.StartsOpen; + this._currentDirectionCssClass = Sidebar_1.Enum.CssClass.ClassModifier + this.configs.Direction; + } + _closeSidebar() { + this._isOpen = false; + this._focusTrapInstance.disableForA11y(); + if (this.isBuilt) { + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, Sidebar_1.Enum.CssClass.IsOpen); + OSUI.Helper.A11Y.TabIndexFalse(this.selfElement); + OSUI.Helper.A11Y.AriaHiddenTrue(this.selfElement); + this._triggerOnToggleEvent(); + this.selfElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventSidebarKeypress); + OSUI.Helper.A11Y.SetElementsTabIndex(this._isOpen, this._focusTrapInstance.focusableElements); + if (this._clickOutsideToClose || (this.configs.HasOverlay && this._clickOutsideToClose === undefined)) { + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.removeHandler(OSUI.Event.DOMEvents.Listeners.Type.BodyOnMouseDown, this._eventOverlayMouseDown); + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.removeHandler(OSUI.Event.DOMEvents.Listeners.Type.BodyOnClick, this._eventOverlayClick); + } + } + this._focusManagerInstance.setFocusToStoredElement(); + } + _handleFocusBehavior() { + const opts = { + focusTargetElement: this._parentSelf, + }; + this._focusTrapInstance = new OSUI.Behaviors.FocusTrap(opts); + this._focusManagerInstance = new OSUI.Behaviors.FocusManager(); + if (this._isOpen === false) { + OSUI.Helper.A11Y.SetElementsTabIndex(false, this._focusTrapInstance.focusableElements); + } + } + _handleGestureEvents() { + if (OSUI.Helper.DeviceInfo.IsNative) { + this._gestureEventInstance = new OSUI.Event.GestureEvent.DragEvent(this.selfElement); + this.setGestureEvents(this._onGestureStart.bind(this), this._onGestureMove.bind(this), this._onGestureEnd.bind(this)); + this._animateOnDragInstance = new OSUI.Behaviors.AnimateOnDrag(this.selfElement); + } + } + _onGestureEnd(offsetX, offsetY, timeTaken) { + this._animateOnDragInstance.onDragEnd(offsetX, offsetY, timeTaken, this._toggle.bind(this)); + if (this.configs.HasOverlay) { + OSUI.Behaviors.OverlayTransitionOnDrag.UnSet(this.selfElement); + } + } + _onGestureMove(x, y, offsetX, offsetY, evt) { + this._animateOnDragInstance.onDragMove(offsetX, offsetY, x, y, evt); + if (this.configs.HasOverlay) { + OSUI.Behaviors.OverlayTransitionOnDrag.Set(this.selfElement, x, this.configs.Direction, this.configs.Width); + } + } + _onGestureStart(x, y) { + this._animateOnDragInstance.onDragStart(false, this.configs.Direction, x, y, this._isOpen, this.configs.Width); + } + _openSidebar() { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, Sidebar_1.Enum.CssClass.IsOpen); + OSUI.Helper.A11Y.TabIndexTrue(this.selfElement); + OSUI.Helper.A11Y.AriaHiddenFalse(this.selfElement); + this._focusTrapInstance.enableForA11y(); + this._focusManagerInstance.storeLastFocusedElement(); + if (this.isBuilt) { + this._isOpen = true; + this._triggerOnToggleEvent(); + if (this._clickOutsideToClose || (this.configs.HasOverlay && this._clickOutsideToClose === undefined)) { + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.addHandler(OSUI.Event.DOMEvents.Listeners.Type.BodyOnMouseDown, this._eventOverlayMouseDown.bind(this)); + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.addHandler(OSUI.Event.DOMEvents.Listeners.Type.BodyOnClick, this._eventOverlayClick.bind(this)); + } + } + this.selfElement.focus(); + this.selfElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventSidebarKeypress); + OSUI.Helper.A11Y.SetElementsTabIndex(this._isOpen, this._focusTrapInstance.focusableElements); + } + _overlayClickCallback(_args, e) { + if (this._isOpen && + this._clickedOutsideElement && + (e.target === this.selfElement || this._clickOutsideToClose)) { + this.close(); + } + e.stopPropagation(); + } + _overlayMouseDownCallback(_args, e) { + const targetElem = e.target; + this._clickedOutsideElement = true; + if (targetElem.closest(`${OSUI.Constants.Dot}${Sidebar_1.Enum.CssClass.Header}`) || + (targetElem.closest(`${OSUI.Constants.Dot}${Sidebar_1.Enum.CssClass.Content}`) && + this.selfElement.contains(targetElem) === false)) { + this._clickedOutsideElement = false; + } + } + _removeEvents() { + this.selfElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventSidebarKeypress); + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.removeHandler(OSUI.Event.DOMEvents.Listeners.Type.BodyOnMouseDown, this._eventOverlayMouseDown); + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.removeHandler(OSUI.Event.DOMEvents.Listeners.Type.BodyOnClick, this._eventOverlayClick); + } + _setDirection() { + if (this._currentDirectionCssClass !== '') { + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, this._currentDirectionCssClass); + } + this._currentDirectionCssClass = Sidebar_1.Enum.CssClass.ClassModifier + this.configs.Direction; + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, this._currentDirectionCssClass); + } + _setHasOverlay() { + const alreadyHasOverlayClass = OSUI.Helper.Dom.Styles.ContainsClass(this.selfElement, Sidebar_1.Enum.CssClass.HasOverlay); + if (this.configs.HasOverlay && alreadyHasOverlayClass === false) { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, Sidebar_1.Enum.CssClass.HasOverlay); + } + else if (this.isBuilt) { + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, Sidebar_1.Enum.CssClass.HasOverlay); + } + } + _setInitialCssClasses() { + this._setDirection(); + this._setWidth(); + this._setHasOverlay(); + if (this._isOpen) { + this._openSidebar(); + } + } + _setWidth() { + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Sidebar_1.Enum.CssProperty.Width, this.configs.Width); + } + _sidebarKeypressCallback(e) { + const isEscapedPressed = e.key === OSUI.GlobalEnum.Keycodes.Escape; + if (isEscapedPressed) { + this.close(); + } + e.stopPropagation(); + } + _toggle() { + if (this._isOpen) { + this.close(); + } + else { + this.open(); + } + } + _toggleGesturesSidebar(enableSwipes) { + if (enableSwipes && this._hasGestureEvents === false) { + if (this._gestureEventInstance === undefined) { + this._handleGestureEvents(); + } + } + else if (enableSwipes === false && this._hasGestureEvents) { + this.removeGestureEvents(); + } + } + _triggerOnToggleEvent() { + this.triggerPlatformEventCallback(this._platformEventOnToggle, this._isOpen); + } + setA11YProperties() { + OSUI.Helper.A11Y.RoleComplementary(this.selfElement); + OSUI.Helper.A11Y.AriaHasPopupTrue(this.selfElement); + if (this._isOpen) { + OSUI.Helper.A11Y.TabIndexTrue(this.selfElement); + OSUI.Helper.A11Y.AriaHiddenFalse(this.selfElement); + } + else { + OSUI.Helper.A11Y.TabIndexFalse(this.selfElement); + OSUI.Helper.A11Y.AriaHiddenTrue(this.selfElement); + } + } + setCallbacks() { + this._eventSidebarKeypress = this._sidebarKeypressCallback.bind(this); + this._eventOverlayClick = this._overlayClickCallback.bind(this); + this._eventOverlayMouseDown = this._overlayMouseDownCallback.bind(this); + } + setHtmlElements() { + this._parentSelf = OSUI.Helper.Dom.GetElementById(this.widgetId); + this._setWidth(); + } + unsetCallbacks() { + this._removeEvents(); + this._eventSidebarKeypress = undefined; + this._eventOverlayClick = undefined; + this._eventOverlayMouseDown = undefined; + } + unsetHtmlElements() { + this._parentSelf = undefined; + this._platformEventOnToggle = undefined; + } + build() { + super.build(); + this.setCallbacks(); + this.setHtmlElements(); + this._handleFocusBehavior(); + this._setInitialCssClasses(); + this.setA11YProperties(); + this._handleGestureEvents(); + this.finishBuild(); + } + changeProperty(propertyName, propertyValue) { + super.changeProperty(propertyName, propertyValue); + if (this.isBuilt) { + switch (propertyName) { + case Sidebar_1.Enum.Properties.StartsOpen: + console.warn(`Sidebar (${this.widgetId}): changes to ${Sidebar_1.Enum.Properties.StartsOpen} parameter do not affect the sidebar. Use the client actions 'SidebarOpen' and 'SidebarClose' to affect the Sidebar.`); + break; + case Sidebar_1.Enum.Properties.Direction: + this._setDirection(); + break; + case Sidebar_1.Enum.Properties.Width: + this._setWidth(); + break; + case Sidebar_1.Enum.Properties.HasOverlay: + this._setHasOverlay(); + break; + } + } + } + clickOutsideToClose(closeOnOutSideClick) { + this._clickOutsideToClose = closeOnOutSideClick; + } + close() { + if (this._isOpen) { + this._closeSidebar(); + } + } + dispose() { + this.unsetCallbacks(); + this.unsetHtmlElements(); + this._focusTrapInstance.dispose(); + if (this._hasGestureEvents) { + this.removeGestureEvents(); + } + super.dispose(); + } + open() { + if (this._isOpen === false) { + this._openSidebar(); + } + } + registerCallback(eventName, callback) { + switch (eventName) { + case Patterns.Sidebar.Enum.Events.OnToggle: + if (this._platformEventOnToggle === undefined) { + this._platformEventOnToggle = callback; + } + else { + console.warn(`The ${OSUI.GlobalEnum.PatternName.Sidebar} already has the toggle callback set.`); + } + break; + default: + super.registerCallback(eventName, callback); + } + } + removeGestureEvents() { + if (this._gestureEventInstance !== undefined) { + this._gestureEventInstance.unsetTouchEvents(); + this._hasGestureEvents = false; + this._gestureEventInstance = undefined; + } + } + setGestureEvents(onGestureStartCallback, onGestureMoveCallback, onGestureEndCallback) { + this._gestureEventInstance.setSwipeEvents(onGestureStartCallback, onGestureMoveCallback, onGestureEndCallback); + this._hasGestureEvents = true; + } + toggleGestures(enableSwipe) { + this._toggleGesturesSidebar(enableSwipe); + } + get gestureEventInstance() { + return this._gestureEventInstance; + } + get hasGestureEvents() { + return this._hasGestureEvents; + } + } + Sidebar_1.Sidebar = Sidebar; + })(Sidebar = Patterns.Sidebar || (Patterns.Sidebar = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Sidebar; + (function (Sidebar) { + class SidebarConfig extends Patterns.AbstractConfiguration { + constructor(config) { + super(config); + } + validateCanChange(isBuilt, key) { + if (isBuilt) { + return key !== Sidebar.Enum.Properties.StartsOpen; + } + return true; + } + validateDefault(key, value) { + let validatedValue = undefined; + switch (key) { + case Sidebar.Enum.Properties.Direction: + validatedValue = this.validateInRange(value, OSUI.GlobalEnum.Direction.Right, OSUI.GlobalEnum.Direction.Right, OSUI.GlobalEnum.Direction.Left); + break; + case Sidebar.Enum.Properties.HasOverlay: + case Sidebar.Enum.Properties.StartsOpen: + validatedValue = this.validateBoolean(value, false); + break; + case Sidebar.Enum.Properties.Width: + validatedValue = this.validateString(value, Sidebar.Enum.Defaults.Width); + break; + default: + validatedValue = super.validateDefault(key, value); + break; + } + return validatedValue; + } + } + Sidebar.SidebarConfig = SidebarConfig; + })(Sidebar = Patterns.Sidebar || (Patterns.Sidebar = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Submenu; + (function (Submenu) { + var Enum; + (function (Enum) { + let CssClass; + (function (CssClass) { + CssClass["Pattern"] = "osui-submenu"; + CssClass["PatternActive"] = "active"; + CssClass["PatternHeader"] = "osui-submenu__header"; + CssClass["PatternIsDropdown"] = "osui-submenu--is-dropdown"; + CssClass["PatternIsHidden"] = "osui-submenu--is-hidden"; + CssClass["PatternIsHover"] = "osui-submenu--is-hover"; + CssClass["PatternIsOpen"] = "osui-submenu--is-open"; + CssClass["PatternIcon"] = "osui-submenu__header__icon"; + CssClass["PatternItem"] = "osui-submenu__header__item"; + CssClass["PatternLinks"] = "osui-submenu__items"; + })(CssClass = Enum.CssClass || (Enum.CssClass = {})); + let Events; + (function (Events) { + Events["OnToggle"] = "OnToggle"; + })(Events = Enum.Events || (Enum.Events = {})); + let Properties; + (function (Properties) { + Properties["OpenOnHover"] = "OpenOnHover"; + })(Properties = Enum.Properties || (Enum.Properties = {})); + })(Enum = Submenu.Enum || (Submenu.Enum = {})); + })(Submenu = Patterns.Submenu || (Patterns.Submenu = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Submenu; + (function (Submenu_1) { + class Submenu extends Patterns.AbstractPattern { + constructor(uniqueId, configs) { + super(uniqueId, new Submenu_1.SubmenuConfig(configs)); + this._hasActiveLinks = false; + this._hasElements = false; + this._isActive = false; + this._isOpen = false; + this.hasClickOutsideToClose = true; + } + _bodyClickCallback(_args, e) { + if (this.isBuilt && this._isOpen) { + if (!this.selfElement.contains(e.target)) { + this.close(); + } + e.preventDefault(); + e.stopPropagation(); + } + } + _checkForActiveLinks() { + this._submenuActiveLinksElement = + OSUI.Helper.Dom.ClassSelector(this._submenuLinksElement, Submenu_1.Enum.CssClass.PatternActive) || + OSUI.Helper.Dom.ClassSelector(this._submenuHeaderElement, Submenu_1.Enum.CssClass.PatternActive); + this._hasActiveLinks = !!this._submenuActiveLinksElement; + } + _clickCallback() { + this._toggleSubmenu(); + } + _handleFocusBehavior() { + const opts = { + focusTargetElement: this._submenuLinksElement, + }; + this._focusTrapInstance = new OSUI.Behaviors.FocusTrap(opts); + this._focusManagerInstance = new OSUI.Behaviors.FocusManager(); + if (this._isOpen === false) { + OSUI.Helper.A11Y.SetElementsTabIndex(false, this._focusTrapInstance.focusableElements); + } + } + _keypressBalloonCallback(e) { + if (e.key === OSUI.GlobalEnum.Keycodes.Escape && this._isOpen) { + this.close(); + this._submenuHeaderElement.focus(); + } + } + _keypressCallback(e) { + const _clickedElem = e.target; + const _closestElem = _clickedElem.closest(OSUI.Constants.Dot + Submenu_1.Enum.CssClass.Pattern); + const _isEscapedPressed = e.key === OSUI.GlobalEnum.Keycodes.Escape; + const _isEnterPressed = e.key === OSUI.GlobalEnum.Keycodes.Enter; + const _isTabPressed = e.key === OSUI.GlobalEnum.Keycodes.Tab; + const _isShiftPressed = e.shiftKey; + const _isArrowUp = e.key === OSUI.GlobalEnum.Keycodes.ArrowUp; + const _isArrowDown = e.key === OSUI.GlobalEnum.Keycodes.ArrowDown; + const _targetAfterArrow = _isArrowUp ? this._focusTrapInstance.focusableElements.length - 1 : 0; + if (_isArrowDown || _isArrowUp) { + this.open(); + OSUI.Helper.AsyncInvocation(() => { + this._focusTrapInstance.focusableElements[_targetAfterArrow].focus(); + }); + } + if (_isEnterPressed) { + this._toggleSubmenu(); + } + if (_isEscapedPressed && this._isOpen) { + this.close(); + this._submenuHeaderElement.focus(); + } + if (_isShiftPressed && _isTabPressed && _clickedElem === this._submenuHeaderElement) { + if (_closestElem === this.selfElement && this._isOpen) { + this.close(); + } + } + e.stopPropagation(); + } + _onMouseEnterCallback(e) { + this.open(); + e.stopPropagation(); + } + _onMouseLeaveCallback(e) { + if (this.selfElement.querySelector(':hover') === null) { + this.close(); + } + e.preventDefault(); + e.stopPropagation(); + } + _removeActive() { + if (this._isActive) { + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, Submenu_1.Enum.CssClass.PatternActive); + this._isActive = false; + } + } + _removeEvents() { + if (this._hasElements) { + if (this.configs.OpenOnHover === false || OSUI.Helper.DeviceInfo.IsTouch) { + this._submenuHeaderElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.Click, this._eventClick); + this._submenuHeaderElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventKeypress); + } + if (this.configs.OpenOnHover && OSUI.Helper.DeviceInfo.IsTouch === false) { + this.selfElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.MouseEnter, this._eventOnMouseEnter); + this.selfElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.MouseLeave, this._eventOnMouseLeave); + } + } + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.removeHandler(OSUI.Event.DOMEvents.Listeners.Type.BodyOnClick, this._globalEventBody); + } + _setActive() { + if (this._isActive === false) { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, Submenu_1.Enum.CssClass.PatternActive); + this._isActive = true; + } + } + _show() { + if (this._isOpen === false) { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, Submenu_1.Enum.CssClass.PatternIsOpen); + this._submenuHeaderElement.focus(); + this._isOpen = true; + this._updateA11yProperties(); + } + } + _toggleSubmenu() { + if (this._isOpen) { + this.close(); + } + else { + OSUI.Helper.AsyncInvocation(this.open.bind(this)); + } + } + _updateA11yProperties() { + OSUI.Helper.A11Y.AriaExpanded(this._submenuHeaderElement, this._isOpen.toString()); + OSUI.Helper.A11Y.AriaHidden(this._submenuLinksElement, (!this._isOpen).toString()); + this._submenuAllLinksElement.forEach((item) => { + if (this._isOpen) { + OSUI.Helper.A11Y.TabIndexTrue(item); + OSUI.Helper.A11Y.AriaHiddenFalse(item); + } + else { + OSUI.Helper.A11Y.TabIndexFalse(item); + OSUI.Helper.A11Y.AriaHiddenTrue(item); + } + }); + } + setA11YProperties() { + OSUI.Helper.A11Y.AriaHasPopupTrue(this._submenuHeaderElement); + OSUI.Helper.A11Y.TabIndexTrue(this._submenuHeaderElement); + OSUI.Helper.A11Y.AriaControls(this._submenuHeaderElement, this._submenuLinksElement.id); + OSUI.Helper.A11Y.RoleButton(this._submenuHeaderElement); + this._submenuAllLinksElement.forEach((item) => { + OSUI.Helper.A11Y.RoleMenuItem(item); + }); + this._updateA11yProperties(); + } + setCallbacks() { + this._eventClick = this._clickCallback.bind(this); + this._globalEventBody = this._bodyClickCallback.bind(this); + this._eventBalloonKeypress = this._keypressBalloonCallback.bind(this); + this._eventKeypress = this._keypressCallback.bind(this); + this._eventOnMouseEnter = this._onMouseEnterCallback.bind(this); + this._eventOnMouseLeave = this._onMouseLeaveCallback.bind(this); + if (this._hasElements) { + if (this.configs.OpenOnHover === false || OSUI.Helper.DeviceInfo.IsTouch) { + this._submenuHeaderElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.Click, this._eventClick); + } + this._submenuHeaderElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventKeypress); + } + } + setHtmlElements() { + this._submenuHeaderElement = OSUI.Helper.Dom.ClassSelector(this.selfElement, Submenu_1.Enum.CssClass.PatternHeader); + this._submenuLinksElement = OSUI.Helper.Dom.ClassSelector(this.selfElement, Submenu_1.Enum.CssClass.PatternLinks); + this._submenuAllLinksElement = [...this._submenuLinksElement.querySelectorAll(OSUI.GlobalEnum.HTMLElement.Link)]; + if (this._submenuLinksElement.children.length > 0) { + this._hasElements = true; + } + OSUI.Helper.AsyncInvocation(this._checkForActiveLinks.bind(this)); + } + setInitialStates() { + if (this._hasActiveLinks) { + this._setActive(); + } + if (this._hasElements) { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, Submenu_1.Enum.CssClass.PatternIsDropdown); + } + else { + OSUI.Helper.Dom.Styles.AddClass(this._submenuLinksElement, Submenu_1.Enum.CssClass.PatternIsHidden); + } + if (OSUI.Helper.Dom.Styles.ContainsClass(this.selfElement, Submenu_1.Enum.CssClass.PatternIsOpen) && !this._isOpen) { + this._isOpen = true; + } + } + unsetCallbacks() { + this._eventClick = undefined; + this._eventBalloonKeypress = undefined; + this._eventKeypress = undefined; + this._globalEventBody = undefined; + this._eventOnMouseEnter = undefined; + this._eventOnMouseLeave = undefined; + this._platformEventOnToggleCallback = undefined; + } + unsetHtmlElements() { + this._submenuHeaderElement = undefined; + this._submenuLinksElement = undefined; + this._submenuAllLinksElement = undefined; + this._submenuActiveLinksElement = undefined; + } + build() { + super.build(); + this.setHtmlElements(); + this.setInitialStates(); + this._handleFocusBehavior(); + this.setA11YProperties(); + this.setCallbacks(); + this.finishBuild(); + } + clickOutsideToClose(clickOutsideToClose) { + this.hasClickOutsideToClose = clickOutsideToClose; + if (this.hasClickOutsideToClose) { + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.addHandler(OSUI.Event.DOMEvents.Listeners.Type.BodyOnClick, this._globalEventBody); + } + else if (this.hasClickOutsideToClose === false) { + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.removeHandler(OSUI.Event.DOMEvents.Listeners.Type.BodyOnClick, this._globalEventBody); + } + } + close() { + if (this._isOpen) { + this._focusTrapInstance.disableForA11y(); + if (this.hasClickOutsideToClose) { + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.removeHandler(OSUI.Event.DOMEvents.Listeners.Type.BodyOnClick, this._globalEventBody); + } + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, Submenu_1.Enum.CssClass.PatternIsOpen); + this._isOpen = false; + this._updateA11yProperties(); + this._focusManagerInstance.setFocusToStoredElement(); + this._submenuLinksElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventBalloonKeypress.bind(this)); + this.triggerPlatformEventCallback(this._platformEventOnToggleCallback, false); + } + } + dispose() { + this._removeEvents(); + this.unsetCallbacks(); + this.unsetHtmlElements(); + super.dispose(); + } + open() { + this._focusTrapInstance.enableForA11y(); + this._focusManagerInstance.storeLastFocusedElement(); + if (this.hasClickOutsideToClose) { + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.addHandler(OSUI.Event.DOMEvents.Listeners.Type.BodyOnClick, this._globalEventBody); + } + this._submenuLinksElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventBalloonKeypress.bind(this)); + OSUI.Helper.AsyncInvocation(this._show.bind(this)); + this.triggerPlatformEventCallback(this._platformEventOnToggleCallback, true); + } + registerCallback(eventName, callback) { + switch (eventName) { + case Submenu_1.Enum.Events.OnToggle: + if (this._platformEventOnToggleCallback === undefined) { + this._platformEventOnToggleCallback = callback; + } + break; + default: + super.registerCallback(eventName, callback); + } + } + setOpenOnHover() { + if (OSUI.Helper.DeviceInfo.IsTouch === false) { + if (this._hasElements) { + this._submenuHeaderElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.Click, this._eventClick); + this._eventClick = undefined; + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, Submenu_1.Enum.CssClass.PatternIsHover); + this.selfElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.MouseEnter, this._eventOnMouseEnter); + this.selfElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.MouseLeave, this._eventOnMouseLeave); + } + } + } + updateOnRender() { + if (this.isBuilt) { + this._checkForActiveLinks(); + if (this._hasActiveLinks && this._isActive === false) { + this._setActive(); + } + else if (this._hasActiveLinks === false && this._isActive) { + this._removeActive(); + } + } + } + } + Submenu_1.Submenu = Submenu; + })(Submenu = Patterns.Submenu || (Patterns.Submenu = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Submenu; + (function (Submenu) { + class SubmenuConfig extends Patterns.AbstractConfiguration { + constructor() { + super(...arguments); + this.OpenOnHover = false; + } + validateDefault(key, value) { + let validatedValue = undefined; + switch (key) { + case Submenu.Enum.Properties.OpenOnHover: + validatedValue = this.validateBoolean(value, false); + break; + default: + validatedValue = super.validateDefault(key, value); + break; + } + return validatedValue; + } + } + Submenu.SubmenuConfig = SubmenuConfig; + })(Submenu = Patterns.Submenu || (Patterns.Submenu = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var SwipeEvents; + (function (SwipeEvents) { + var Enum; + (function (Enum) { + let Events; + (function (Events) { + Events["SwipeUp"] = "SwipeUp"; + Events["SwipeDown"] = "SwipeDown"; + Events["SwipeRight"] = "SwipeRight"; + Events["SwipeLeft"] = "SwipeLeft"; + })(Events = Enum.Events || (Enum.Events = {})); + let Properties; + (function (Properties) { + Properties[Properties["Threshold"] = 10] = "Threshold"; + Properties[Properties["Velocity"] = 0.3] = "Velocity"; + })(Properties = Enum.Properties || (Enum.Properties = {})); + })(Enum = SwipeEvents.Enum || (SwipeEvents.Enum = {})); + })(SwipeEvents = Patterns.SwipeEvents || (Patterns.SwipeEvents = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var SwipeEvents; + (function (SwipeEvents_1) { + class SwipeEvents extends Patterns.AbstractPattern { + constructor(uniqueId, configs) { + super(uniqueId, new SwipeEvents_1.SwipeEventsConfig(configs)); + this._threshold = SwipeEvents_1.Enum.Properties.Threshold; + this._velocity = SwipeEvents_1.Enum.Properties.Velocity; + } + _removeEventListeners() { + if (this._swipableElement) { + this._swipableElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.TouchStart, this._gestureStartEvent); + this._swipableElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.TouchMove, this._gestureMoveEvent); + } + } + _setEventListeners() { + if (this._swipableElement) { + this._swipableElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.TouchStart, this._gestureStartEvent); + this._swipableElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.TouchMove, this._gestureMoveEvent); + } + } + _triggerSwipeDown() { + if (this._swipeRightCallback) { + OSUI.Helper.AsyncInvocation(this._swipeDownCallback); + } + } + _triggerSwipeLeft() { + if (this._swipeRightCallback) { + OSUI.Helper.AsyncInvocation(this._swipeLeftCallback); + } + } + _triggerSwipeRight() { + if (this._swipeRightCallback) { + OSUI.Helper.AsyncInvocation(this._swipeRightCallback); + } + } + _triggerSwipeUp() { + if (this._swipeRightCallback) { + OSUI.Helper.AsyncInvocation(this._swipeUpCallback); + } + } + setA11YProperties() { + console.warn(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + setCallbacks() { + this._gestureStartEvent = this.EventGestureEnd.bind(this); + this._gestureMoveEvent = this.EventGestureMove.bind(this); + this._setEventListeners(); + } + setHtmlElements() { + this._swipableElement = document.getElementById(this.configs.WidgetId); + } + unsetCallbacks() { + this._removeEventListeners(); + this._gestureStartEvent = undefined; + this._gestureMoveEvent = undefined; + } + unsetHtmlElements() { + this._swipableElement = undefined; + } + EventGestureEnd(offsetX, offsetY, timeTaken) { + if ((Math.abs(offsetX) > this._threshold || Math.abs(offsetY) > this._threshold) && + (Math.abs(offsetX) / timeTaken > this._velocity || Math.abs(offsetY) / timeTaken > this._velocity)) { + if (Math.abs(offsetX) > Math.abs(offsetY)) { + if (offsetX > 0) { + this._triggerSwipeRight(); + } + else { + this._triggerSwipeLeft(); + } + } + else if (offsetY > 0) { + this._triggerSwipeDown(); + } + else { + this._triggerSwipeUp(); + } + } + } + EventGestureMove(event) { + if (event) { + event.preventDefault(); + } + } + build() { + super.build(); + this.setHtmlElements(); + this.setCallbacks(); + this.finishBuild(); + } + dispose() { + super.dispose(); + this.unsetCallbacks(); + this.unsetHtmlElements(); + } + registerCallback(eventName, callback) { + switch (eventName) { + case Patterns.SwipeEvents.Enum.Events.SwipeDown: + this._swipeDownCallback = callback; + break; + case Patterns.SwipeEvents.Enum.Events.SwipeUp: + this._swipeUpCallback = callback; + break; + case Patterns.SwipeEvents.Enum.Events.SwipeRight: + this._swipeRightCallback = callback; + break; + case Patterns.SwipeEvents.Enum.Events.SwipeLeft: + this._swipeLeftCallback = callback; + break; + } + } + } + SwipeEvents_1.SwipeEvents = SwipeEvents; + })(SwipeEvents = Patterns.SwipeEvents || (Patterns.SwipeEvents = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var SwipeEvents; + (function (SwipeEvents) { + class SwipeEventsConfig extends Patterns.AbstractConfiguration { + constructor(config) { + super(config); + } + } + SwipeEvents.SwipeEventsConfig = SwipeEventsConfig; + })(SwipeEvents = Patterns.SwipeEvents || (Patterns.SwipeEvents = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Tabs; + (function (Tabs) { + var Enum; + (function (Enum) { + let ChildNotifyActionType; + (function (ChildNotifyActionType) { + ChildNotifyActionType["AddContentItem"] = "add-content-item"; + ChildNotifyActionType["AddHeaderItem"] = "add-header-item"; + ChildNotifyActionType["Click"] = "click"; + ChildNotifyActionType["RemovedContentItem"] = "removed-content-item"; + ChildNotifyActionType["RemovedHeaderItem"] = "removed-header-item"; + ChildNotifyActionType["DisabledHeaderItem"] = "disabled-header-item"; + ChildNotifyActionType["EnabledHeaderItem"] = "enabled-header-item"; + ChildNotifyActionType["UpdateIndicator"] = "update-indicator"; + })(ChildNotifyActionType = Enum.ChildNotifyActionType || (Enum.ChildNotifyActionType = {})); + let CssClasses; + (function (CssClasses) { + CssClasses["ActiveTab"] = "osui-tabs--is-active"; + CssClasses["IsVertical"] = "osui-tabs--is-vertical"; + CssClasses["IsHorizontal"] = "osui-tabs--is-horizontal"; + CssClasses["IsJustified"] = "osui-tabs--is-justified"; + CssClasses["HasContentAutoHeight"] = "osui-tabs--has-auto-height"; + CssClasses["HasDragGestures"] = "osui-tabs--has-drag"; + CssClasses["Modifier"] = "osui-tabs--is-"; + CssClasses["TabsWrapper"] = "osui-tabs"; + CssClasses["TabsHeader"] = "osui-tabs__header"; + CssClasses["TabsContent"] = "osui-tabs__content"; + CssClasses["TabsHeaderItem"] = "osui-tabs__header-item"; + CssClasses["TabsContentItem"] = "osui-tabs__content-item"; + CssClasses["TabsIndicatorElem"] = "osui-tabs__header__indicator"; + })(CssClasses = Enum.CssClasses || (Enum.CssClasses = {})); + let Attributes; + (function (Attributes) { + Attributes["DataTab"] = "data-tab"; + Attributes["DataDirection"] = "data-direction"; + })(Attributes = Enum.Attributes || (Enum.Attributes = {})); + let CssProperty; + (function (CssProperty) { + CssProperty["TabsContentItemOverflow"] = "--tabs-content-item-overflow"; + CssProperty["TabsHeaderItems"] = "--tabs-header-items"; + CssProperty["TabsHeight"] = "--tabs-height"; + CssProperty["TabsIndicatorSize"] = "--tabs-indicator-size"; + CssProperty["TabsIndicatorTransform"] = "--tabs-indicator-transform"; + })(CssProperty = Enum.CssProperty || (Enum.CssProperty = {})); + let Properties; + (function (Properties) { + Properties["ContentAutoHeight"] = "ContentAutoHeight"; + Properties["Height"] = "Height"; + Properties["JustifyHeaders"] = "JustifyHeaders"; + Properties["StartingTab"] = "StartingTab"; + Properties["TabsOrientation"] = "TabsOrientation"; + Properties["TabsVerticalPosition"] = "TabsVerticalPosition"; + })(Properties = Enum.Properties || (Enum.Properties = {})); + let ObserverOptions; + (function (ObserverOptions) { + ObserverOptions["RootMargin"] = "1px"; + })(ObserverOptions = Enum.ObserverOptions || (Enum.ObserverOptions = {})); + let ElementsBlockingOnChange; + (function (ElementsBlockingOnChange) { + ElementsBlockingOnChange["Dropdown"] = ".pop-comp-active"; + })(ElementsBlockingOnChange = Enum.ElementsBlockingOnChange || (Enum.ElementsBlockingOnChange = {})); + let ChildTypes; + (function (ChildTypes) { + ChildTypes["TabsContentItem"] = "TabsContentItem"; + ChildTypes["TabsHeaderItem"] = "TabsHeaderItem"; + })(ChildTypes = Enum.ChildTypes || (Enum.ChildTypes = {})); + let Events; + (function (Events) { + Events["OnChange"] = "OnChange"; + })(Events = Enum.Events || (Enum.Events = {})); + })(Enum = Tabs.Enum || (Tabs.Enum = {})); + })(Tabs = Patterns.Tabs || (Patterns.Tabs = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Tabs; + (function (Tabs_1) { + class Tabs extends Patterns.AbstractParent { + constructor(uniqueId, configs) { + super(uniqueId, new Tabs_1.TabsConfig(configs)); + this._hasDragGestures = + OSUI.Helper.DeviceInfo.IsNative && this.configs.TabsOrientation === OSUI.GlobalEnum.Orientation.Horizontal; + } + _addContentItem(tabsContentChildItem) { + if (this.getChild(tabsContentChildItem.uniqueId)) { + throw new Error(`${OSUI.ErrorCodes.Tabs.FailSetNewChildContentItem}: There is already a ${OSUI.GlobalEnum.PatternName.TabsContentItem} under Id: '${tabsContentChildItem.widgetId}' added to ${OSUI.GlobalEnum.PatternName.Tabs} with uniqueId: ${this.uniqueId}.`); + } + else { + this.setChild(tabsContentChildItem); + } + if (this.isBuilt) { + OSUI.Helper.AsyncInvocation(this._updateItemsConnection.bind(this)); + if (this._activeTabContentElement === undefined) { + this._activeTabContentElement = tabsContentChildItem; + } + if (this._hasDragGestures) { + tabsContentChildItem.setOnDragObserver(this._dragObserver); + } + } + else { + tabsContentChildItem.setDataTab(this.getChildItems(Tabs_1.Enum.ChildTypes.TabsContentItem).length - 1); + } + } + _addEvents() { + this.selfElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventOnHeaderKeypress); + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.addHandler(OSUI.Event.DOMEvents.Listeners.Type.WindowResize, this._eventOnResize); + if (OSUI.Helper.DeviceInfo.IsPhone || OSUI.Helper.DeviceInfo.IsTablet) { + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.addHandler(OSUI.Event.DOMEvents.Listeners.Type.OrientationChange, this._eventOnResize); + } + } + _addHeaderItem(tabsHeaderChildItem) { + if (this.getChild(tabsHeaderChildItem.uniqueId)) { + throw new Error(`${OSUI.ErrorCodes.Tabs.FailSetNewChildHeaderItem}: There is already a ${OSUI.GlobalEnum.PatternName.TabsHeaderItem} under Id: '${tabsHeaderChildItem.widgetId}' added to ${OSUI.GlobalEnum.PatternName.Tabs} with uniqueId: ${this.uniqueId}.`); + } + else { + this.setChild(tabsHeaderChildItem); + } + this._headerItemsLength = this.getChildItems(Tabs_1.Enum.ChildTypes.TabsHeaderItem).length; + const currentIndex = this._headerItemsLength - 1; + if (this.isBuilt) { + OSUI.Helper.AsyncInvocation(this._updateItemsConnection.bind(this)); + if ((this._activeTabHeaderElement === undefined || this._activeTabHeaderElement === null) && + currentIndex === this.configs.StartingTab) { + OSUI.Helper.AsyncInvocation(this.changeTab.bind(this), this.configs.StartingTab, tabsHeaderChildItem); + } + this._setHeaderItemsCustomProperty(this._headerItemsLength); + this._handleTabIndicator(); + } + else { + tabsHeaderChildItem.setDataTab(currentIndex); + } + } + _changeActiveContentItem(newTabIndex, triggeredByObserver) { + var _a; + const newContentItem = this.getChildByIndex(newTabIndex, Tabs_1.Enum.ChildTypes.TabsContentItem); + if (newContentItem) { + (_a = this._activeTabContentElement) === null || _a === void 0 ? void 0 : _a.unsetIsActive(); + newContentItem.setIsActive(); + this._activeTabContentElement = newContentItem; + } + if (this._hasDragGestures) { + this._activeTabHeaderElement.setFocus(); + } + if (triggeredByObserver === false) { + this._scrollToTargetContent(newContentItem); + } + } + _changeActiveHeaderItem(newHeaderItem) { + var _a; + if (this._activeTabHeaderElement) { + (_a = this._activeTabHeaderElement) === null || _a === void 0 ? void 0 : _a.unsetIsActive(); + } + if (newHeaderItem) { + newHeaderItem.setIsActive(); + this._activeTabHeaderElement = newHeaderItem; + } + } + _getTargetIndex(tabIndex) { + let newTabIndex; + if (this.getChildByIndex(tabIndex, Tabs_1.Enum.ChildTypes.TabsHeaderItem)) { + newTabIndex = tabIndex; + } + else if (this.getChildByIndex(this.configs.StartingTab, Tabs_1.Enum.ChildTypes.TabsHeaderItem)) { + newTabIndex = this.configs.StartingTab; + } + else { + newTabIndex = 0; + } + return newTabIndex; + } + _handleKeypressEvent(e) { + let currentTabHeader; + let targetHeaderItemIndex; + if (e.target !== this._activeTabHeaderElement.selfElement) { + return; + } + switch (e.key) { + case OSUI.GlobalEnum.Keycodes.ArrowRight: + currentTabHeader = this._tabsHeadersEnabled.indexOf(this._activeTabHeaderElement); + targetHeaderItemIndex = + this._tabsHeadersEnabled[currentTabHeader + 1] === undefined + ? this._tabsHeadersEnabled[0].getDataTab() + : this._tabsHeadersEnabled[currentTabHeader + 1].getDataTab(); + this.changeTab(targetHeaderItemIndex, undefined, true); + break; + case OSUI.GlobalEnum.Keycodes.ArrowLeft: + currentTabHeader = this._tabsHeadersEnabled.indexOf(this._activeTabHeaderElement); + targetHeaderItemIndex = + this._tabsHeadersEnabled[currentTabHeader - 1] === undefined + ? this._tabsHeadersEnabled[this._tabsHeadersEnabled.length - 1].getDataTab() + : this._tabsHeadersEnabled[currentTabHeader - 1].getDataTab(); + this.changeTab(targetHeaderItemIndex, undefined, true); + break; + case OSUI.GlobalEnum.Keycodes.End: + targetHeaderItemIndex = this._tabsHeadersEnabled[this._tabsHeadersEnabled.length - 1].getDataTab(); + this.changeTab(targetHeaderItemIndex, undefined, true); + break; + case OSUI.GlobalEnum.Keycodes.Home: + targetHeaderItemIndex = this._tabsHeadersEnabled[0].getDataTab(); + this.changeTab(targetHeaderItemIndex, undefined, true); + break; + } + const targetHeaderItem = this.getChildByIndex(targetHeaderItemIndex, Tabs_1.Enum.ChildTypes.TabsHeaderItem); + if (targetHeaderItem) { + targetHeaderItem.setFocus(); + } + } + _handleOnResizeEvent() { + this._scrollToTargetContent(this._activeTabContentElement); + OSUI.Helper.AsyncInvocation(this._handleTabIndicator.bind(this)); + } + _handleTabIndicator() { + var _a; + if ((_a = this._activeTabHeaderElement) === null || _a === void 0 ? void 0 : _a.selfElement) { + if (!OSUI.Helper.Dom.Attribute.Get(this._activeTabHeaderElement.selfElement, OSUI.GlobalEnum.HTMLAttributes.Disabled)) { + OSUI.Helper.Dom.Attribute.Remove(this._tabsIndicatorElement, OSUI.GlobalEnum.HTMLAttributes.Disabled); + } + const _isVertical = this.configs.TabsOrientation === OSUI.GlobalEnum.Orientation.Vertical; + const _activeElement = this._activeTabHeaderElement.selfElement; + const _transformValue = _isVertical + ? _activeElement.offsetTop + : OutSystems.OSUI.Utils.GetIsRTL() + ? -(this._tabsHeaderElement.offsetWidth - _activeElement.offsetLeft - _activeElement.offsetWidth) + : _activeElement.offsetLeft; + const _elementRect = _activeElement.getBoundingClientRect(); + const _finalSize = _isVertical ? _elementRect.height : _elementRect.width; + function updateIndicatorUI() { + if (this._tabsIndicatorElement) { + OSUI.Helper.Dom.Styles.SetStyleAttribute(this._tabsIndicatorElement, Tabs_1.Enum.CssProperty.TabsIndicatorTransform, _transformValue + OSUI.GlobalEnum.Units.Pixel); + OSUI.Helper.Dom.Styles.SetStyleAttribute(this._tabsIndicatorElement, Tabs_1.Enum.CssProperty.TabsIndicatorSize, Math.floor(_finalSize) + OSUI.GlobalEnum.Units.Pixel); + } + else { + cancelAnimationFrame(this._requestAnimationFrameOnIndicatorResize); + } + } + this._requestAnimationFrameOnIndicatorResize = requestAnimationFrame(updateIndicatorUI.bind(this)); + if (isNaN(_finalSize) || _finalSize === 0) { + const resizeObserver = new ResizeObserver((entries) => { + for (const entry of entries) { + if (entry.contentBoxSize) { + this._handleTabIndicator(); + resizeObserver.unobserve(_activeElement); + } + } + }); + resizeObserver.observe(_activeElement); + } + } + } + _prepareHeaderAndContentItems() { + this._hasSingleContent = this.getChildItems(Tabs_1.Enum.ChildTypes.TabsContentItem).length === 1; + this._activeTabHeaderElement = this.getChildByIndex(this.configs.StartingTab, Tabs_1.Enum.ChildTypes.TabsHeaderItem); + this._activeTabContentElement = this._hasSingleContent + ? this.getChildByIndex(0, Tabs_1.Enum.ChildTypes.TabsContentItem) + : this.getChildByIndex(this.configs.StartingTab, Tabs_1.Enum.ChildTypes.TabsContentItem); + if (this._hasSingleContent) { + this._activeTabContentElement.setIsActive(); + } + this._updateItemsConnection(false); + this._updateListOfEnabledTabsHeader(); + } + _removeContentItem(childContentId) { + const childContentItem = this.getChild(childContentId); + let auxIndex; + if (childContentItem) { + auxIndex = this.getChildIndex(childContentId); + this.unsetChild(childContentId); + } + else { + throw new Error(`${OSUI.ErrorCodes.Tabs.FailUnsetNewChildContentItem}: The ${OSUI.GlobalEnum.PatternName.TabsContentItem} under uniqueId: '${childContentId}' does not exist as an TabsContentItem from ${OSUI.GlobalEnum.PatternName.Tabs} with Id: ${this.widgetId}.`); + } + if (this._hasDragGestures) { + childContentItem.unobserveDragObserver(this._dragObserver); + } + const wasActive = childContentItem.IsActive; + if (wasActive) { + if (this.getChildByIndex(auxIndex)) { + this._activeTabContentElement = this.getChildByIndex(auxIndex, Tabs_1.Enum.ChildTypes.TabsContentItem); + this._activeTabContentElement.setIsActive(); + } + else if (this.getChildItems(Tabs_1.Enum.ChildTypes.TabsContentItem).length > 0) { + this._activeTabContentElement = this.getChildItems(Tabs_1.Enum.ChildTypes.TabsContentItem).filter((item) => item.isLastChild)[0]; + this._activeTabContentElement.setIsActive(); + } + else { + this._activeTabContentElement = null; + } + } + } + _removeEvents() { + this._tabsHeaderElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventOnHeaderKeypress); + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.removeHandler(OSUI.Event.DOMEvents.Listeners.Type.WindowResize, this._eventOnResize); + if (OSUI.Helper.DeviceInfo.IsPhone || OSUI.Helper.DeviceInfo.IsTablet) { + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.removeHandler(OSUI.Event.DOMEvents.Listeners.Type.OrientationChange, this._eventOnResize); + } + } + _removeHeaderItem(childHeaderId) { + const auxIndex = this.getChildIndex(childHeaderId); + const wasActive = this.getChild(childHeaderId).IsActive; + if (this.getChild(childHeaderId)) { + this.unsetChild(childHeaderId); + } + else { + throw new Error(`${OSUI.ErrorCodes.Tabs.FailUnsetNewChildHeaderItem}: The ${OSUI.GlobalEnum.PatternName.TabsHeaderItem} under uniqueId: '${childHeaderId}' does not exist as an TabsHeaderItem from ${OSUI.GlobalEnum.PatternName.Tabs} with Id: ${this.widgetId}.`); + } + this._headerItemsLength = this._headerItemsLength - 1; + if (this.isBuilt) { + this._setHeaderItemsCustomProperty(this._headerItemsLength); + if (wasActive) { + if (this.getChildByIndex(auxIndex)) { + this._activeTabHeaderElement = this.getChildByIndex(auxIndex, Tabs_1.Enum.ChildTypes.TabsHeaderItem); + this._activeTabHeaderElement.setIsActive(); + } + else if (this.getChildItems(Tabs_1.Enum.ChildTypes.TabsHeaderItem).length > 0) { + this._activeTabHeaderElement = this.getChildItems(Tabs_1.Enum.ChildTypes.TabsHeaderItem).filter((item) => item.isLastChild)[0]; + this._activeTabHeaderElement.setIsActive(); + } + else { + this._activeTabHeaderElement = null; + } + this._handleTabIndicator(); + } + } + } + _scrollToTargetContent(newContentItem) { + if (newContentItem) { + this._tabsContentElement.scrollTo({ + top: 0, + left: newContentItem.getOffsetLeft(), + behavior: OSUI.GlobalEnum.ScrollBehavior.Auto, + }); + } + } + _setContentAutoHeight(hasAutoHeight) { + if (this._hasDragGestures === false) { + if (hasAutoHeight) { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, Tabs_1.Enum.CssClasses.HasContentAutoHeight); + } + else { + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, Tabs_1.Enum.CssClasses.HasContentAutoHeight); + } + } + else { + console.warn(`Tabs (${this.widgetId}): changes to ${Tabs_1.Enum.Properties.ContentAutoHeight} parameter do not affect tabs when Gestures are in use.`); + } + } + _setDragObserver() { + const observerOptions = { + root: this._tabsContentElement, + rootMargin: Tabs_1.Enum.ObserverOptions.RootMargin, + threshold: 1, + }; + this._dragObserver = new IntersectionObserver((entries) => { + entries.forEach((entry) => { + if (entry.isIntersecting) { + const targetIndex = parseInt(OSUI.Helper.Dom.Attribute.Get(entry.target, Tabs_1.Enum.Attributes.DataTab)); + const currentHeaderItem = this.getChildByIndex(targetIndex, Tabs_1.Enum.ChildTypes.TabsHeaderItem); + OSUI.Helper.AsyncInvocation(this.changeTab.bind(this), targetIndex, currentHeaderItem, true, true); + } + }); + }, observerOptions); + this.getChildItems(Tabs_1.Enum.ChildTypes.TabsContentItem).forEach((item) => { + item.setOnDragObserver(this._dragObserver); + }); + } + _setHeaderItemsCustomProperty(itemsLength) { + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Tabs_1.Enum.CssProperty.TabsHeaderItems, itemsLength); + } + _setHeight(height) { + const tabsOverflow = height === OSUI.GlobalEnum.CssProperties.Auto || height === OSUI.Constants.EmptyString + ? OSUI.GlobalEnum.CssProperties.Initial + : OSUI.GlobalEnum.CssProperties.Auto; + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Tabs_1.Enum.CssProperty.TabsHeight, height); + OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, Tabs_1.Enum.CssProperty.TabsContentItemOverflow, tabsOverflow); + } + _setInitialOptions() { + this._setHeaderItemsCustomProperty(this.getChildItems(Tabs_1.Enum.ChildTypes.TabsHeaderItem).length); + this._setOrientation(this.configs.TabsOrientation); + OSUI.Helper.AsyncInvocation(this._setHeight.bind(this), this.configs.Height); + OSUI.Helper.AsyncInvocation(this._setPosition.bind(this), this.configs.TabsVerticalPosition); + OSUI.Helper.AsyncInvocation(this._setIsJustified.bind(this), this.configs.JustifyHeaders); + OSUI.Helper.AsyncInvocation(this._setContentAutoHeight.bind(this), this.configs.ContentAutoHeight); + if (this._hasDragGestures) { + OSUI.Helper.AsyncInvocation(this.toggleDragGestures.bind(this), true); + } + } + _setIsJustified(isJustified) { + if (isJustified) { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, Tabs_1.Enum.CssClasses.IsJustified); + } + else { + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, Tabs_1.Enum.CssClasses.IsJustified); + } + if (this.isBuilt) { + this._handleTabIndicator(); + } + } + _setOrientation(orientation) { + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, Tabs_1.Enum.CssClasses.Modifier + this._currentOrientation); + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, Tabs_1.Enum.CssClasses.Modifier + orientation); + this._currentOrientation = orientation; + if (this.isBuilt) { + this._handleTabIndicator(); + this._scrollToTargetContent(this._activeTabContentElement); + } + } + _setPosition(position) { + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, Tabs_1.Enum.CssClasses.Modifier + this._currentVerticalPositon); + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, Tabs_1.Enum.CssClasses.Modifier + position); + this._currentVerticalPositon = position; + } + _setTabHeaderItemDisabledStatus(childHeaderId, isDisabled) { + const _tabHeaderItemElement = OSUI.Helper.Dom.GetElementByUniqueId(childHeaderId); + const _tabItemIndex = this.getChildIndex(childHeaderId); + const _tabContentItemId = this.getChildByIndex(this._hasSingleContent ? 0 : _tabItemIndex, Tabs_1.Enum.ChildTypes.TabsContentItem).widgetId; + const _tabContentItemElement = OSUI.Helper.Dom.GetElementById(_tabContentItemId); + const isTabHeaderItemDisabled = OSUI.Helper.Dom.Attribute.Get(_tabHeaderItemElement, OSUI.GlobalEnum.HTMLAttributes.Disabled); + if (isDisabled) { + let _allTabsDisabled = false; + OSUI.Helper.Dom.Attribute.Set(_tabHeaderItemElement, OSUI.GlobalEnum.HTMLAttributes.Disabled, 'true'); + if (this._hasSingleContent) { + _allTabsDisabled = this.getChildItems().every((tabHeaderItem) => tabHeaderItem.selfElement.getAttribute(OSUI.GlobalEnum.HTMLAttributes.Disabled)); + } + if (this._hasSingleContent === false || _allTabsDisabled) { + OSUI.Helper.Dom.Styles.SetStyleAttribute(_tabContentItemElement, OSUI.GlobalEnum.InlineStyle.Display, OSUI.GlobalEnum.InlineStyleValue.Display.none); + } + if (this._activeTabHeaderElement.selfElement === _tabHeaderItemElement) { + OSUI.Helper.Dom.Attribute.Set(this._tabsIndicatorElement, OSUI.GlobalEnum.HTMLAttributes.Disabled, true); + } + } + else if (!isDisabled && isTabHeaderItemDisabled) { + OSUI.Helper.Dom.Attribute.Remove(_tabHeaderItemElement, OSUI.GlobalEnum.HTMLAttributes.Disabled); + OSUI.Helper.Dom.Styles.SetStyleAttribute(_tabContentItemElement, OSUI.GlobalEnum.InlineStyle.Display, OSUI.GlobalEnum.InlineStyleValue.Display.block); + if (this._activeTabHeaderElement.selfElement === _tabHeaderItemElement) { + OSUI.Helper.Dom.Attribute.Remove(this._tabsIndicatorElement, OSUI.GlobalEnum.HTMLAttributes.Disabled); + } + } + } + _tabHeaderItemHasBeenClicked(childHeaderId) { + const newHeaderItem = this.getChild(childHeaderId); + if (newHeaderItem === undefined) { + throw new Error(`${OSUI.ErrorCodes.Tabs.FailChildItemClicked}: The ${OSUI.GlobalEnum.PatternName.TabsHeaderItem} under uniqueId: '${childHeaderId}' does not exist as an TabsHeaderItem from ${OSUI.GlobalEnum.PatternName.Tabs} with Id: ${this.widgetId}.`); + } + this.changeTab(this.getChildIndex(childHeaderId), newHeaderItem, true); + } + _triggerOnChangeEvent(activeTab) { + if (this._platformEventTabsOnChange !== undefined) { + this.triggerPlatformEventCallback(this._platformEventTabsOnChange, activeTab); + } + } + _unsetDragObserver() { + this._dragObserver.disconnect(); + } + _updateItemsConnection(updateDataTab = true) { + let currentContentItem = this.getChildByIndex(0, Tabs_1.Enum.ChildTypes.TabsContentItem); + this.getChildItems(Tabs_1.Enum.ChildTypes.TabsHeaderItem).forEach((item, index) => { + if (this._hasSingleContent === false) { + currentContentItem = this.getChildByIndex(index, Tabs_1.Enum.ChildTypes.TabsContentItem); + } + if (item && currentContentItem) { + item.setAriaControlsAttribute(currentContentItem.widgetId); + currentContentItem.setAriaLabelledByAttribute(item.widgetId); + if (updateDataTab) { + item.setDataTab(index); + currentContentItem.setDataTab(index); + } + } + }); + } + _updateListOfEnabledTabsHeader() { + this._tabsHeadersEnabled = this.getChildItems(Tabs_1.Enum.ChildTypes.TabsHeaderItem).filter((element) => !element.selfElement.disabled); + } + setA11YProperties() { + OSUI.Helper.A11Y.RoleTabList(this._tabsHeaderElement.firstElementChild); + OSUI.Helper.A11Y.AriaHiddenTrue(this._tabsIndicatorElement); + } + setCallbacks() { + this._eventOnHeaderKeypress = this._handleKeypressEvent.bind(this); + this._eventOnResize = this._handleOnResizeEvent.bind(this); + this._addEvents(); + } + setHtmlElements() { + this._tabsHeaderElement = OSUI.Helper.Dom.ClassSelector(this.selfElement, Tabs_1.Enum.CssClasses.TabsHeader); + this._tabsContentElement = OSUI.Helper.Dom.ClassSelector(this.selfElement, Tabs_1.Enum.CssClasses.TabsContent); + this._tabsIndicatorElement = OSUI.Helper.Dom.ClassSelector(this.selfElement, Tabs_1.Enum.CssClasses.TabsIndicatorElem); + } + unsetCallbacks() { + this._removeEvents(); + this._eventOnHeaderKeypress = undefined; + this._eventOnResize = undefined; + if (this._hasDragGestures) { + this._unsetDragObserver(); + } + this._requestAnimationFrameOnIndicatorResize = undefined; + } + unsetHtmlElements() { + this._tabsHeaderElement = undefined; + this._tabsContentElement = undefined; + this._tabsIndicatorElement = undefined; + } + beNotifiedByChild(childItem, notifiedTo) { + switch (notifiedTo) { + case Tabs_1.Enum.ChildNotifyActionType.AddContentItem: + this._addContentItem(childItem); + break; + case Tabs_1.Enum.ChildNotifyActionType.AddHeaderItem: + this._addHeaderItem(childItem); + this._updateListOfEnabledTabsHeader(); + break; + case Tabs_1.Enum.ChildNotifyActionType.Click: + this._tabHeaderItemHasBeenClicked(childItem.uniqueId); + break; + case Tabs_1.Enum.ChildNotifyActionType.DisabledHeaderItem: + this._setTabHeaderItemDisabledStatus(childItem.uniqueId, true); + this._updateListOfEnabledTabsHeader(); + break; + case Tabs_1.Enum.ChildNotifyActionType.EnabledHeaderItem: + this._setTabHeaderItemDisabledStatus(childItem.uniqueId, false); + this._updateListOfEnabledTabsHeader(); + break; + case Tabs_1.Enum.ChildNotifyActionType.RemovedContentItem: + this._removeContentItem(childItem.uniqueId); + break; + case Tabs_1.Enum.ChildNotifyActionType.RemovedHeaderItem: + this._removeHeaderItem(childItem.uniqueId); + this._updateListOfEnabledTabsHeader(); + break; + case Tabs_1.Enum.ChildNotifyActionType.UpdateIndicator: + this._handleTabIndicator(); + break; + default: + throw new Error(`${OSUI.ErrorCodes.Tabs.FailToSetChildItemAction}: There no exist a '${notifiedTo}' notification type.`); + } + } + build() { + super.build(); + this.setHtmlElements(); + this._setInitialOptions(); + this._prepareHeaderAndContentItems(); + this.changeTab(this.configs.StartingTab); + OSUI.Helper.AsyncInvocation(this.setCallbacks.bind(this)); + OSUI.Helper.AsyncInvocation(this.setA11YProperties.bind(this)); + this.finishBuild(); + } + changeProperty(propertyName, propertyValue) { + super.changeProperty(propertyName, propertyValue); + if (this.isBuilt) { + switch (propertyName) { + case Tabs_1.Enum.Properties.StartingTab: + console.warn(`Tabs (${this.widgetId}): changes to ${Tabs_1.Enum.Properties.StartingTab} parameter do not affect the tabs. Use the client action 'SetActiveTab' to affect the Tabs.`); + break; + case Tabs_1.Enum.Properties.Height: + this._setHeight(propertyValue); + break; + case Tabs_1.Enum.Properties.TabsOrientation: + this._setOrientation(propertyValue); + break; + case Tabs_1.Enum.Properties.TabsVerticalPosition: + this._setPosition(propertyValue); + break; + case Tabs_1.Enum.Properties.JustifyHeaders: + this._setIsJustified(propertyValue); + break; + case Tabs_1.Enum.Properties.ContentAutoHeight: + this._setContentAutoHeight(propertyValue); + break; + } + } + } + changeTab(tabIndex = this.configs.StartingTab, tabsHeaderItem, triggerEvent = false, triggeredByObserver = false) { + if (this._activeTabHeaderElement === tabsHeaderItem || + (tabIndex === this.configs.StartingTab && this.isBuilt && tabsHeaderItem === undefined) || + this._activeTabContentElement.selfElement.querySelector(Tabs_1.Enum.ElementsBlockingOnChange.Dropdown)) { + return; + } + let newTabIndex; + let newHeaderItem; + if (tabsHeaderItem === undefined) { + newTabIndex = this._getTargetIndex(tabIndex); + newHeaderItem = this.getChildByIndex(newTabIndex, Tabs_1.Enum.ChildTypes.TabsHeaderItem); + } + else { + newTabIndex = tabIndex; + newHeaderItem = tabsHeaderItem; + } + this._changeActiveHeaderItem(newHeaderItem); + if (this._hasSingleContent === false) { + this._changeActiveContentItem(newTabIndex, triggeredByObserver); + } + OSUI.Helper.AsyncInvocation(this._handleTabIndicator.bind(this)); + this.configs.StartingTab = newTabIndex; + if (triggerEvent) { + this._triggerOnChangeEvent(newTabIndex); + } + } + dispose() { + this.unsetCallbacks(); + this.unsetHtmlElements(); + super.dispose(); + } + registerCallback(eventName, callback) { + switch (eventName) { + case Tabs_1.Enum.Events.OnChange: + if (this._platformEventTabsOnChange === undefined) { + this._platformEventTabsOnChange = callback; + } + break; + default: + super.registerCallback(eventName, callback); + } + } + toggleDragGestures(addDragGestures) { + if (addDragGestures) { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, Patterns.Tabs.Enum.CssClasses.HasDragGestures); + this._hasDragGestures = true; + this._setDragObserver(); + } + else if (this._hasDragGestures) { + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, Patterns.Tabs.Enum.CssClasses.HasDragGestures); + this._hasDragGestures = false; + this._unsetDragObserver(); + } + } + } + Tabs_1.Tabs = Tabs; + })(Tabs = Patterns.Tabs || (Patterns.Tabs = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Tabs; + (function (Tabs) { + class TabsConfig extends Patterns.AbstractConfiguration { + validateCanChange(isBuilt, key) { + if (isBuilt) { + return key !== Tabs.Enum.Properties.StartingTab; + } + return true; + } + validateDefault(key, value) { + let validatedValue = undefined; + switch (key) { + case Tabs.Enum.Properties.TabsOrientation: + validatedValue = this.validateInRange(value, OSUI.GlobalEnum.Orientation.Horizontal, OSUI.GlobalEnum.Orientation.Vertical); + break; + case Tabs.Enum.Properties.TabsVerticalPosition: + validatedValue = this.validateInRange(value, OSUI.GlobalEnum.Direction.Left, OSUI.GlobalEnum.Direction.Right); + break; + case Tabs.Enum.Properties.ContentAutoHeight: + case Tabs.Enum.Properties.JustifyHeaders: + validatedValue = this.validateBoolean(value, false); + break; + case Tabs.Enum.Properties.Height: + validatedValue = this.validateString(value, OSUI.GlobalEnum.CssProperties.Auto); + break; + default: + validatedValue = super.validateDefault(key, value); + break; + } + return validatedValue; + } + } + Tabs.TabsConfig = TabsConfig; + })(Tabs = Patterns.Tabs || (Patterns.Tabs = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var TabsContentItem; + (function (TabsContentItem_1) { + class TabsContentItem extends Patterns.AbstractChild { + constructor(uniqueId, configs) { + super(uniqueId, new TabsContentItem_1.TabsContentItemConfig(configs)); + } + setA11YProperties(isUpdate = true) { + if (isUpdate) { + OSUI.Helper.A11Y.RoleTabPanel(this.selfElement); + } + if (this._isActive) { + OSUI.Helper.A11Y.TabIndexTrue(this.selfElement); + OSUI.Helper.A11Y.AriaHiddenFalse(this.selfElement); + } + else { + OSUI.Helper.A11Y.TabIndexFalse(this.selfElement); + OSUI.Helper.A11Y.AriaHiddenTrue(this.selfElement); + } + OSUI.Helper.A11Y.SetElementsTabIndex(this._isActive, this._focusableElements); + } + setCallbacks() { + console.log(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + setHtmlElements() { + this._focusableElements = OSUI.Helper.Dom.GetFocusableElements(this.selfElement); + } + unsetCallbacks() { + console.log(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + unsetHtmlElements() { + this._focusableElements = undefined; + } + build() { + super.build(); + this.setHtmlElements(); + this.setParentInfo(OSUI.Constants.Dot + Patterns.Tabs.Enum.CssClasses.TabsWrapper, OutSystems.OSUI.Patterns.TabsAPI.GetTabsById); + this.notifyParent(Patterns.Tabs.Enum.ChildNotifyActionType.AddContentItem); + this.setA11YProperties(false); + this.finishBuild(); + } + dispose() { + this.unsetHtmlElements(); + this.notifyParent(Patterns.Tabs.Enum.ChildNotifyActionType.RemovedContentItem); + super.dispose(); + } + getDataTab() { + return this._dataTab; + } + getOffsetLeft() { + return this.selfElement.offsetLeft; + } + setAriaLabelledByAttribute(headerItemId) { + OSUI.Helper.A11Y.AriaLabelledBy(this.selfElement, headerItemId); + } + setDataTab(dataTab) { + OSUI.Helper.Dom.Attribute.Set(this.selfElement, Patterns.Tabs.Enum.Attributes.DataTab, dataTab.toString()); + this._dataTab = dataTab; + } + setIsActive() { + if (this.selfElement) { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, Patterns.Tabs.Enum.CssClasses.ActiveTab); + this._isActive = true; + this.setA11YProperties(); + } + } + setOnDragObserver(observer) { + observer.observe(this.selfElement); + } + unobserveDragObserver(observer) { + observer.unobserve(this.selfElement); + } + unsetIsActive() { + if (this.selfElement) { + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, Patterns.Tabs.Enum.CssClasses.ActiveTab); + this._isActive = false; + this.setA11YProperties(); + } + } + get IsActive() { + return this._isActive; + } + } + TabsContentItem_1.TabsContentItem = TabsContentItem; + })(TabsContentItem = Patterns.TabsContentItem || (Patterns.TabsContentItem = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var TabsContentItem; + (function (TabsContentItem) { + class TabsContentItemConfig extends Patterns.AbstractConfiguration { + constructor(config) { + super(config); + } + } + TabsContentItem.TabsContentItemConfig = TabsContentItemConfig; + })(TabsContentItem = Patterns.TabsContentItem || (Patterns.TabsContentItem = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var TabsHeaderItem; + (function (TabsHeaderItem_1) { + class TabsHeaderItem extends Patterns.AbstractChild { + constructor(uniqueId, configs) { + super(uniqueId, new TabsHeaderItem_1.TabsHeaderItemConfig(configs)); + this._isActive = false; + } + _handleClickEvent() { + if (this._isActive === false) { + this.notifyParent(Patterns.Tabs.Enum.ChildNotifyActionType.Click); + } + } + _removeEvents() { + this.selfElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.Click, this._eventOnTabsClick); + } + _setUpEvents() { + this.selfElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.Click, this._eventOnTabsClick); + } + setA11YProperties(isUpdate = true) { + if (isUpdate === false) { + OSUI.Helper.A11Y.RoleTab(this.selfElement); + if (OSUI.Helper.DeviceInfo.IsIos || OSUI.Helper.DeviceInfo.GetOperatingSystem() === OSUI.GlobalEnum.MobileOS.MacOS) { + OSUI.Helper.A11Y.RolePresentation(this.selfElement.parentElement); + } + } + if (this._isActive) { + OSUI.Helper.A11Y.TabIndexTrue(this.selfElement); + OSUI.Helper.A11Y.AriaSelectedTrue(this.selfElement); + } + else { + OSUI.Helper.A11Y.TabIndexFalse(this.selfElement); + OSUI.Helper.A11Y.AriaSelectedFalse(this.selfElement); + } + } + setCallbacks() { + this._eventOnTabsClick = this._handleClickEvent.bind(this); + } + setHtmlElements() { + console.log(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + unsetCallbacks() { + this._eventOnTabsClick = undefined; + } + unsetHtmlElements() { + console.log(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + build() { + super.build(); + this.setParentInfo(OSUI.Constants.Dot + Patterns.Tabs.Enum.CssClasses.TabsWrapper, OutSystems.OSUI.Patterns.TabsAPI.GetTabsById); + this.notifyParent(Patterns.Tabs.Enum.ChildNotifyActionType.AddHeaderItem); + this.setA11YProperties(false); + this.setCallbacks(); + this._setUpEvents(); + this.finishBuild(); + } + disable() { + this.notifyParent(Patterns.Tabs.Enum.ChildNotifyActionType.DisabledHeaderItem); + } + dispose() { + this.notifyParent(Patterns.Tabs.Enum.ChildNotifyActionType.RemovedHeaderItem); + this._removeEvents(); + this.unsetCallbacks(); + super.dispose(); + } + enable() { + this.notifyParent(Patterns.Tabs.Enum.ChildNotifyActionType.EnabledHeaderItem); + } + getDataTab() { + return this._dataTab; + } + setAriaControlsAttribute(contentItemId) { + OSUI.Helper.A11Y.AriaControls(this.selfElement, contentItemId); + } + setDataTab(dataTab) { + OSUI.Helper.Dom.Attribute.Set(this.selfElement, Patterns.Tabs.Enum.Attributes.DataTab, dataTab.toString()); + this._dataTab = dataTab; + } + setFocus() { + this.selfElement.focus(); + } + setIsActive() { + if (this.selfElement) { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, Patterns.Tabs.Enum.CssClasses.ActiveTab); + this._isActive = true; + this.setA11YProperties(); + } + } + unsetIsActive() { + if (this.selfElement) { + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, Patterns.Tabs.Enum.CssClasses.ActiveTab); + this._isActive = false; + this.setA11YProperties(); + } + } + updateOnRender() { + this.notifyParent(Patterns.Tabs.Enum.ChildNotifyActionType.UpdateIndicator); + } + get IsActive() { + return this._isActive; + } + } + TabsHeaderItem_1.TabsHeaderItem = TabsHeaderItem; + })(TabsHeaderItem = Patterns.TabsHeaderItem || (Patterns.TabsHeaderItem = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var TabsHeaderItem; + (function (TabsHeaderItem) { + class TabsHeaderItemConfig extends Patterns.AbstractConfiguration { + constructor(config) { + super(config); + } + } + TabsHeaderItem.TabsHeaderItemConfig = TabsHeaderItemConfig; + })(TabsHeaderItem = Patterns.TabsHeaderItem || (Patterns.TabsHeaderItem = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var TimePicker; + (function (TimePicker) { + class AbstractTimePicker extends Patterns.AbstractProviderPattern { + constructor(uniqueId, configs) { + super(uniqueId, configs); + } + } + TimePicker.AbstractTimePicker = AbstractTimePicker; + })(TimePicker = Patterns.TimePicker || (Patterns.TimePicker = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var TimePicker; + (function (TimePicker) { + class AbstractTimePickerConfig extends Patterns.AbstractProviderConfiguration { + constructor(config) { + super(config); + } + validateDefault(key, value) { + let validatedValue = undefined; + switch (key) { + case TimePicker.Enum.Properties.Is24Hours: + validatedValue = this.validateBoolean(value, true); + break; + case TimePicker.Enum.Properties.InitialTime: + case TimePicker.Enum.Properties.MaxTime: + case TimePicker.Enum.Properties.MinTime: + validatedValue = this.validateTime(value, undefined); + break; + default: + validatedValue = super.validateDefault(key, value); + break; + } + return validatedValue; + } + } + TimePicker.AbstractTimePickerConfig = AbstractTimePickerConfig; + })(TimePicker = Patterns.TimePicker || (Patterns.TimePicker = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var TimePicker; + (function (TimePicker) { + var Enum; + (function (Enum) { + let CssClass; + (function (CssClass) { + CssClass["Dropdown"] = "osui-timepicker__dropdown"; + CssClass["Pattern"] = "osui-timepicker"; + })(CssClass = Enum.CssClass || (Enum.CssClass = {})); + let TimePickerEvents; + (function (TimePickerEvents) { + TimePickerEvents["OnChange"] = "OnChange"; + })(TimePickerEvents = Enum.TimePickerEvents || (Enum.TimePickerEvents = {})); + let Properties; + (function (Properties) { + Properties["InitialTime"] = "InitialTime"; + Properties["Is24Hours"] = "Is24Hours"; + Properties["MaxTime"] = "MaxTime"; + Properties["MinTime"] = "MinTime"; + Properties["TimeFormat"] = "TimeFormat"; + })(Properties = Enum.Properties || (Enum.Properties = {})); + let Provider; + (function (Provider) { + Provider["FlatPicker"] = "flatpickr"; + })(Provider = Enum.Provider || (Enum.Provider = {})); + let TimeFormatMode; + (function (TimeFormatMode) { + TimeFormatMode["Time12hFormat"] = "12"; + TimeFormatMode["Time24hFormat"] = "24"; + })(TimeFormatMode = Enum.TimeFormatMode || (Enum.TimeFormatMode = {})); + })(Enum = TimePicker.Enum || (TimePicker.Enum = {})); + })(TimePicker = Patterns.TimePicker || (Patterns.TimePicker = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var TimePicker; + (function (TimePicker) { + var Factory; + (function (Factory) { + function NewTimePicker(timePickerId, configs, provider) { + let _timePickerItem = null; + if (provider === TimePicker.Enum.Provider.FlatPicker) { + _timePickerItem = new Providers.OSUI.TimePicker.Flatpickr.OSUIFlatpickrTime(timePickerId, JSON.parse(configs)); + } + else { + throw new Error(`There is no ${OSUI.GlobalEnum.PatternName.Timepicker} of the ${provider} provider`); + } + return _timePickerItem; + } + Factory.NewTimePicker = NewTimePicker; + })(Factory = TimePicker.Factory || (TimePicker.Factory = {})); + })(TimePicker = Patterns.TimePicker || (Patterns.TimePicker = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Tooltip; + (function (Tooltip) { + var Enum; + (function (Enum) { + let AriaLabelText; + (function (AriaLabelText) { + AriaLabelText["Content"] = "toggle tooltip"; + })(AriaLabelText = Enum.AriaLabelText || (Enum.AriaLabelText = {})); + let CssClass; + (function (CssClass) { + CssClass["BalloonContent"] = "osui-tooltip__balloon-wrapper__balloon"; + CssClass["BalloonIsOpened"] = "osui-tooltip__balloon-wrapper--is-open"; + CssClass["BalloonIsOpening"] = "osui-tooltip__balloon-wrapper--is-opening"; + CssClass["BalloonWrapper"] = "osui-tooltip__balloon-wrapper"; + CssClass["Content"] = "osui-tooltip__content"; + CssClass["IsHover"] = "osui-tooltip--is-hover"; + CssClass["IsOpened"] = "osui-tooltip--is-open"; + CssClass["Pattern"] = "osui-tooltip"; + })(CssClass = Enum.CssClass || (Enum.CssClass = {})); + let Events; + (function (Events) { + Events["OnToggle"] = "OnToggle"; + })(Events = Enum.Events || (Enum.Events = {})); + let InlineCssVariables; + (function (InlineCssVariables) { + InlineCssVariables["Height"] = "--osui-tooltip-height"; + InlineCssVariables["Left"] = "--osui-tooltip-left"; + InlineCssVariables["Top"] = "--osui-tooltip-top"; + InlineCssVariables["Width"] = "--osui-tooltip-width"; + })(InlineCssVariables = Enum.InlineCssVariables || (Enum.InlineCssVariables = {})); + let Properties; + (function (Properties) { + Properties["IsHover"] = "IsHover"; + Properties["Position"] = "Position"; + Properties["StartVisible"] = "StartVisible"; + })(Properties = Enum.Properties || (Enum.Properties = {})); + })(Enum = Tooltip.Enum || (Tooltip.Enum = {})); + })(Tooltip = Patterns.Tooltip || (Patterns.Tooltip = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Tooltip; + (function (Tooltip_1) { + class Tooltip extends Patterns.AbstractPattern { + constructor(uniqueId, configs) { + super(uniqueId, new Tooltip_1.TooltipConfig(configs)); + this._isBalloonWrapperMouseEnter = false; + this._isIconMouseEnter = false; + this._isOpenedByApi = false; + this._selfElementBoundingClientRect = new DOMRect(0, 0); + this._tooltipBalloonPositionClass = ''; + this._isOpen = this.configs.StartVisible; + this._tooltipBalloonPositionClass = this.configs.Position; + this._isSafari = OutSystems.OSUI.Utils.GetBrowser() === OSUI.GlobalEnum.Browser.safari; + } + _moveBalloonElement() { + OSUI.Helper.Dom.Move(this._tooltipBalloonWrapperElem, this._activeScreenElement); + } + _onBalloonClick(e) { + const clickableItems = Array.from(this._tooltipBalloonContentElem.querySelectorAll(OSUI.Constants.FocusableElems + ', ' + OSUI.GlobalEnum.HTMLAttributes.AllowEventPropagation)); + if (clickableItems.length === 0) { + e.stopPropagation(); + return; + } + let isItemClickableItem = false; + for (const item of clickableItems) { + if (e.target === item) { + isItemClickableItem = true; + break; + } + } + if (isItemClickableItem === false) { + e.stopPropagation(); + } + } + _onBalloonWrapperMouseEnter() { + this._isBalloonWrapperMouseEnter = true; + } + _onBalloonWrapperMouseLeave() { + this._isBalloonWrapperMouseEnter = false; + OSUI.Helper.AsyncInvocation(() => { + if (this._isIconMouseEnter === false) { + this._triggerClose(); + } + }); + } + _onBlur() { + OSUI.Helper.AsyncInvocation(() => { + if (this._tooltipBalloonContentActiveElem) { + this._tooltipBalloonContentActiveElem.removeEventListener(OSUI.GlobalEnum.HTMLEvent.Blur, this._eventOnBlur); + } + if (document.activeElement !== this._tooltipIconElem && this._tooltipBalloonContentElem.contains(document.activeElement) === false) { + this._triggerClose(); + } + else if (document.activeElement !== document.body) { + this._tooltipBalloonContentActiveElem = document.activeElement; + this._tooltipBalloonContentActiveElem.addEventListener(OSUI.GlobalEnum.HTMLEvent.Blur, this._eventOnBlur); + } + }); + } + _onClick(e) { + e.stopPropagation(); + this._triggerOpen(); + } + _onFocus() { + this._triggerOpen(); + } + _onIconMouseEnter() { + this._isIconMouseEnter = true; + if (this._isOpen === false) { + this._triggerOpen(); + } + } + _onIconMouseLeave() { + this._isIconMouseEnter = false; + OSUI.Helper.AsyncInvocation(() => { + if (this._isBalloonWrapperMouseEnter === false) { + this._triggerClose(); + } + }); + } + _onOpenedBalloon() { + this._tooltipBalloonContentElem.removeEventListener(OSUI.GlobalEnum.HTMLEvent.TransitionEnd, this._eventOnOpenedBalloon); + OSUI.Helper.Dom.Styles.RemoveClass(this._tooltipBalloonWrapperElem, Tooltip_1.Enum.CssClass.BalloonIsOpening); + } + _onScreenScroll() { + if (this.isBuilt) { + if (this._isOpen && OSUI.Helper.DeviceInfo.IsDesktop === false) { + cancelAnimationFrame(this._requestAnimationOnBodyScroll); + this._triggerClose(); + return; + } + if (this._isOpen) { + this._setBalloonCoordinates(); + this._requestAnimationOnBodyScroll = requestAnimationFrame(this._eventOnScreenScroll); + } + else { + cancelAnimationFrame(this._requestAnimationOnBodyScroll); + } + } + } + _onWindowResize() { + this._setBalloonCoordinates(); + if (this._isOpen) { + this._requestAnimationOnWindowResize = requestAnimationFrame(this._eventOnWindowResize); + } + else { + cancelAnimationFrame(this._requestAnimationOnWindowResize); + } + } + _onkeypressCallback(e) { + const isEscapedPressed = e.key === OSUI.GlobalEnum.Keycodes.Escape; + if (this._isOpen) { + if (isEscapedPressed) { + this.close(); + } + } + e.stopPropagation(); + } + _setBalloonCoordinates() { + const selfElement = this.selfElement.getBoundingClientRect(); + if (selfElement.x === this._selfElementBoundingClientRect.x && + selfElement.y === this._selfElementBoundingClientRect.y) { + cancelAnimationFrame(this._requestAnimationOnBodyScroll); + return; + } + this._selfElementBoundingClientRect.x = selfElement.x; + this._selfElementBoundingClientRect.y = selfElement.y; + OSUI.Helper.Dom.Styles.SetStyleAttribute(this._tooltipBalloonWrapperElem, Tooltip_1.Enum.InlineCssVariables.Top, selfElement.top + OSUI.GlobalEnum.Units.Pixel); + OSUI.Helper.Dom.Styles.SetStyleAttribute(this._tooltipBalloonWrapperElem, Tooltip_1.Enum.InlineCssVariables.Left, selfElement.left + OSUI.GlobalEnum.Units.Pixel); + OSUI.Helper.Dom.Styles.SetStyleAttribute(this._tooltipBalloonWrapperElem, Tooltip_1.Enum.InlineCssVariables.Width, selfElement.width + OSUI.GlobalEnum.Units.Pixel); + OSUI.Helper.Dom.Styles.SetStyleAttribute(this._tooltipBalloonWrapperElem, Tooltip_1.Enum.InlineCssVariables.Height, selfElement.height + OSUI.GlobalEnum.Units.Pixel); + } + _setBalloonPosition(isIntersecting, boundingClientRect) { + if (isIntersecting || this._isOpen === false) { + return; + } + const recommendedPosition = OSUI.Helper.BoundPosition.GetRecommendedPositionByBounds(boundingClientRect, document.body.getBoundingClientRect()); + if (recommendedPosition !== undefined && recommendedPosition !== this._tooltipBalloonPositionClass) { + OSUI.Helper.Dom.Styles.RemoveClass(this._tooltipBalloonWrapperElem, this._tooltipBalloonPositionClass); + if ((recommendedPosition === OSUI.GlobalEnum.Position.Top || + recommendedPosition === OSUI.GlobalEnum.Position.Bottom) && + this._tooltipBalloonPositionClass !== OSUI.GlobalEnum.Position.Top && + this._tooltipBalloonPositionClass !== OSUI.GlobalEnum.Position.Bottom) { + this._tooltipBalloonPositionClass = this._tooltipBalloonPositionClass + .replace(OSUI.GlobalEnum.Position.Top + '-', '') + .replace(OSUI.GlobalEnum.Position.Bottom + '-', ''); + this._tooltipBalloonPositionClass = recommendedPosition + '-' + this._tooltipBalloonPositionClass; + } + else { + this._tooltipBalloonPositionClass = recommendedPosition; + } + OSUI.Helper.Dom.Styles.AddClass(this._tooltipBalloonWrapperElem, this._tooltipBalloonPositionClass); + } + } + _setBalloonWrapperExtendedClass(newExtendedClass, preExtendedClass = '') { + OSUI.Helper.Dom.Styles.ExtendedClass(this._tooltipBalloonWrapperElem, preExtendedClass, newExtendedClass); + } + _setCssClasses() { + if (this.configs.IsHover) { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, Tooltip_1.Enum.CssClass.IsHover); + } + if (this._isOpen) { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, Tooltip_1.Enum.CssClass.IsOpened); + OSUI.Helper.Dom.Styles.AddClass(this._tooltipBalloonWrapperElem, Tooltip_1.Enum.CssClass.BalloonIsOpened); + } + if (this.configs.ExtendedClass !== '') { + this._setBalloonWrapperExtendedClass(this.configs.ExtendedClass); + } + OSUI.Helper.Dom.Styles.AddClass(this._tooltipBalloonWrapperElem, this._tooltipBalloonPositionClass); + } + _setObserver() { + if (window.IntersectionObserver) { + this._intersectionObserver = new IntersectionObserver((entries) => { + entries.forEach((entry) => { + this._setBalloonPosition(entry.isIntersecting, entry.boundingClientRect); + }); + }, { threshold: 1 }); + this._intersectionObserver.observe(this._tooltipBalloonContentElem); + } + else { + console.warn(`${OSUI.ErrorCodes.Tooltip.FailOnSetIntersectionObserver}: The browser in use does not support IntersectionObserver. Tooltip balloon positions wont be properly calculated.`); + } + } + _setUpEvents() { + if (this.configs.IsHover === false) { + this._tooltipIconElem.addEventListener(OSUI.GlobalEnum.HTMLEvent.Blur, this._eventOnBlur); + this._tooltipIconElem.addEventListener(OSUI.GlobalEnum.HTMLEvent.Focus, this._eventOnFocus); + this._tooltipIconElem.addEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventOnKeypress); + } + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.addHandler(OSUI.Event.DOMEvents.Listeners.Type.ScreenOnScroll, this._eventOnScreenScroll); + this._requestAnimationOnBodyScroll = requestAnimationFrame(this._eventOnScreenScroll); + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.addHandler(OSUI.Event.DOMEvents.Listeners.Type.WindowResize, this._eventOnWindowResize); + this._requestAnimationOnWindowResize = requestAnimationFrame(this._eventOnWindowResize); + if (this.configs.IsHover === false || OSUI.Helper.DeviceInfo.IsDesktop === false) { + this._tooltipIconElem.addEventListener(OSUI.GlobalEnum.HTMLEvent.Click, this._eventOnClick); + this._tooltipBalloonContentElem.addEventListener(OSUI.GlobalEnum.HTMLEvent.Click, this._eventOnBalloonClick); + } + if (this.configs.IsHover && OSUI.Helper.DeviceInfo.IsDesktop === true) { + this._tooltipIconElem.addEventListener(OSUI.GlobalEnum.HTMLEvent.MouseEnter, this._eventIconOnMouseEnter); + this._tooltipIconElem.addEventListener(OSUI.GlobalEnum.HTMLEvent.MouseLeave, this._eventIconOnMouseLeave); + this._tooltipBalloonWrapperElem.addEventListener(OSUI.GlobalEnum.HTMLEvent.MouseEnter, this._eventBalloonWrapperOnMouseEnter); + this._tooltipBalloonWrapperElem.addEventListener(OSUI.GlobalEnum.HTMLEvent.MouseLeave, this._eventBalloonWrapperOnMouseLeave); + } + } + _triggerClose() { + if (this._isOpen) { + this._isOpen = false; + const _timeout = this._tooltipBalloonContentElem.querySelector(OSUI.Constants.AllowPropagationAttr) || this._isSafari ? 110 : 0; + OSUI.Helper.ApplySetTimeOut(() => { + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, Tooltip_1.Enum.CssClass.IsOpened); + OSUI.Helper.Dom.Styles.RemoveClass(this._tooltipBalloonWrapperElem, Tooltip_1.Enum.CssClass.BalloonIsOpened); + }, _timeout); + this._unsetObserver(); + if (this._tooltipBalloonPositionClass !== this.configs.Position) { + OSUI.Helper.Dom.Styles.RemoveClass(this._tooltipBalloonWrapperElem, this._tooltipBalloonPositionClass); + this._tooltipBalloonPositionClass = this.configs.Position; + OSUI.Helper.Dom.Styles.AddClass(this._tooltipBalloonWrapperElem, this.configs.Position); + } + this.triggerPlatformEventCallback(this._platformEventOnToggleCallback, false); + } + } + _triggerOpen() { + if (this._isOpen === false) { + this._isOpen = true; + OutSystems.OSUI.Patterns.TooltipAPI.GetAllTooltips().forEach((tpId) => { + const tp = OutSystems.OSUI.Patterns.TooltipAPI.GetTooltipById(tpId); + if (tp.IsOpen && tp.widgetId !== this.widgetId) { + tp.close(); + } + }); + this._unsetObserver(); + this._setBalloonCoordinates(); + this._setBalloonPosition(false, this._tooltipBalloonContentElem.getBoundingClientRect()); + OSUI.Helper.AsyncInvocation(() => { + OSUI.Helper.Dom.Styles.AddClass(this._tooltipBalloonWrapperElem, Tooltip_1.Enum.CssClass.BalloonIsOpening); + this._tooltipBalloonContentElem.addEventListener(OSUI.GlobalEnum.HTMLEvent.TransitionEnd, this._eventOnOpenedBalloon); + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, Tooltip_1.Enum.CssClass.IsOpened); + OSUI.Helper.Dom.Styles.AddClass(this._tooltipBalloonWrapperElem, Tooltip_1.Enum.CssClass.BalloonIsOpened); + }); + OSUI.Helper.AsyncInvocation(this._setObserver.bind(this)); + this.triggerPlatformEventCallback(this._platformEventOnToggleCallback, true); + OSUI.Helper.AsyncInvocation(() => { + this._isOpenedByApi = false; + }); + } + } + _unsetEvents() { + this._tooltipIconElem.removeEventListener(OSUI.GlobalEnum.HTMLEvent.Click, this._eventOnClick); + this._tooltipIconElem.removeEventListener(OSUI.GlobalEnum.HTMLEvent.Blur, this._eventOnBlur); + this._tooltipIconElem.removeEventListener(OSUI.GlobalEnum.HTMLEvent.Focus, this._eventOnFocus); + this._tooltipIconElem.removeEventListener(OSUI.GlobalEnum.HTMLEvent.keyDown, this._eventOnKeypress); + this._tooltipBalloonContentElem.removeEventListener(OSUI.GlobalEnum.HTMLEvent.Click, this._eventOnBalloonClick); + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.removeHandler(OSUI.Event.DOMEvents.Listeners.Type.ScreenOnScroll, this._eventOnScreenScroll); + OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.removeHandler(OSUI.Event.DOMEvents.Listeners.Type.WindowResize, this._eventOnWindowResize); + this._tooltipBalloonContentElem.removeEventListener(OSUI.GlobalEnum.HTMLEvent.TransitionEnd, this._eventOnOpenedBalloon); + this._tooltipIconElem.removeEventListener(OSUI.GlobalEnum.HTMLEvent.MouseEnter, this._eventIconOnMouseEnter); + this._tooltipIconElem.removeEventListener(OSUI.GlobalEnum.HTMLEvent.MouseLeave, this._eventIconOnMouseLeave); + this._tooltipBalloonWrapperElem.removeEventListener(OSUI.GlobalEnum.HTMLEvent.MouseEnter, this._eventBalloonWrapperOnMouseEnter); + this._tooltipBalloonWrapperElem.removeEventListener(OSUI.GlobalEnum.HTMLEvent.MouseLeave, this._eventBalloonWrapperOnMouseLeave); + cancelAnimationFrame(this._requestAnimationOnBodyScroll); + cancelAnimationFrame(this._requestAnimationOnWindowResize); + this._requestAnimationOnBodyScroll = undefined; + this._requestAnimationOnWindowResize = undefined; + } + _unsetObserver() { + if (this._intersectionObserver !== undefined) { + this._intersectionObserver.disconnect(); + this._intersectionObserver = undefined; + } + } + _updateIsHover() { + if (this.configs.IsHover) { + OSUI.Helper.Dom.Styles.AddClass(this.selfElement, Tooltip_1.Enum.CssClass.IsHover); + } + else { + OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, Tooltip_1.Enum.CssClass.IsHover); + } + this._unsetEvents(); + this._setUpEvents(); + } + _updateIsVisible() { + if (this.isBuilt === false) { + this._isOpen = this.configs.StartVisible; + } + else { + console.warn(`Tooltip (${this.widgetId}): changes to StartOpen parameter do not affect the tooltip. Use the cliend actions 'TooltipOpen' and 'TooltipClose' to affect the Tooltip.`); + } + } + setA11YProperties() { + OSUI.Helper.A11Y.RoleButton(this._tooltipIconElem); + OSUI.Helper.A11Y.RoleTooltip(this._tooltipBalloonWrapperElem); + OSUI.Helper.A11Y.AriaDescribedBy(this._tooltipIconElem, this._tooltipBalloonContentElem.id); + OSUI.Helper.A11Y.AriaHiddenTrue(this._tooltipBalloonWrapperElem); + OSUI.Helper.A11Y.TabIndexTrue(this._tooltipIconElem); + } + setCallbacks() { + this._eventOnBalloonClick = this._onBalloonClick.bind(this); + this._eventOnBlur = this._onBlur.bind(this); + this._eventOnScreenScroll = this._onScreenScroll.bind(this); + this._eventOnClick = this._onClick.bind(this); + this._eventOnFocus = this._onFocus.bind(this); + this._eventOnOpenedBalloon = this._onOpenedBalloon.bind(this); + this._eventOnKeypress = this._onkeypressCallback.bind(this); + this._eventOnWindowResize = this._onWindowResize.bind(this); + this._eventBalloonWrapperOnMouseEnter = this._onBalloonWrapperMouseEnter.bind(this); + this._eventBalloonWrapperOnMouseLeave = this._onBalloonWrapperMouseLeave.bind(this); + this._eventIconOnMouseEnter = this._onIconMouseEnter.bind(this); + this._eventIconOnMouseLeave = this._onIconMouseLeave.bind(this); + } + setHtmlElements() { + this._activeScreenElement = OSUI.Helper.Dom.ClassSelector(document.body, OSUI.GlobalEnum.CssClassElements.ActiveScreen); + this._tooltipIconElem = OSUI.Helper.Dom.ClassSelector(this.selfElement, Tooltip_1.Enum.CssClass.Content); + this._tooltipBalloonContentElem = OSUI.Helper.Dom.ClassSelector(this.selfElement, Tooltip_1.Enum.CssClass.BalloonContent); + this._tooltipBalloonWrapperElem = OSUI.Helper.Dom.ClassSelector(this.selfElement, Tooltip_1.Enum.CssClass.BalloonWrapper); + this.setA11YProperties(); + this._setUpEvents(); + this._setCssClasses(); + this._moveBalloonElement(); + this._setBalloonCoordinates(); + if (this._isOpen) { + this._setBalloonPosition(false, this._tooltipBalloonContentElem.getBoundingClientRect()); + OSUI.Helper.AsyncInvocation(this._setObserver.bind(this)); + OSUI.Helper.A11Y.AriaHiddenFalse(this._tooltipBalloonWrapperElem); + } + } + unsetCallbacks() { + this._eventOnBalloonClick = undefined; + this._eventOnBlur = undefined; + this._eventOnScreenScroll = undefined; + this._eventOnClick = undefined; + this._eventOnFocus = undefined; + this._eventOnOpenedBalloon = undefined; + this._eventOnKeypress = undefined; + this._eventOnWindowResize = undefined; + this._eventBalloonWrapperOnMouseEnter = undefined; + this._eventBalloonWrapperOnMouseLeave = undefined; + this._eventIconOnMouseEnter = undefined; + this._eventIconOnMouseLeave = undefined; + } + unsetHtmlElements() { + this._tooltipBalloonWrapperElem.remove(); + this._activeScreenElement = undefined; + this._tooltipIconElem = undefined; + this._tooltipBalloonContentElem = undefined; + this._tooltipBalloonWrapperElem = undefined; + } + build() { + super.build(); + this.setCallbacks(); + this.setHtmlElements(); + this.finishBuild(); + } + changeProperty(propertyName, propertyValue) { + const prevBalloonExtendedClass = this.configs.ExtendedClass; + super.changeProperty(propertyName, propertyValue); + if (this.isBuilt) { + switch (propertyName) { + case Tooltip_1.Enum.Properties.IsHover: + this._updateIsHover(); + break; + case Tooltip_1.Enum.Properties.StartVisible: + this._updateIsVisible(); + break; + case Tooltip_1.Enum.Properties.Position: + OSUI.Helper.Dom.Styles.RemoveClass(this._tooltipBalloonWrapperElem, this._tooltipBalloonPositionClass); + OSUI.Helper.Dom.Styles.AddClass(this._tooltipBalloonWrapperElem, propertyValue); + this._tooltipBalloonPositionClass = propertyValue; + break; + case OSUI.GlobalEnum.CommonPatternsProperties.ExtendedClass: + this._setBalloonWrapperExtendedClass(propertyValue, prevBalloonExtendedClass); + break; + } + } + } + close() { + this._triggerClose(); + } + dispose() { + this._unsetEvents(); + this._unsetObserver(); + this.unsetCallbacks(); + this.unsetHtmlElements(); + super.dispose(); + } + open() { + this._isOpenedByApi = true; + this._triggerOpen(); + } + registerCallback(eventName, callback) { + switch (eventName) { + case Tooltip_1.Enum.Events.OnToggle: + if (this._platformEventOnToggleCallback === undefined) { + this._platformEventOnToggleCallback = callback; + } + break; + default: + super.registerCallback(eventName, callback); + } + } + get IsOpen() { + return this._isOpen; + } + } + Tooltip_1.Tooltip = Tooltip; + })(Tooltip = Patterns.Tooltip || (Patterns.Tooltip = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Tooltip; + (function (Tooltip) { + class TooltipConfig extends Patterns.AbstractConfiguration { + constructor(config) { + super(config); + } + validateCanChange(isBuilt, key) { + if (isBuilt) { + return key !== Tooltip.Enum.Properties.StartVisible; + } + return true; + } + validateDefault(key, value) { + let validatedValue = undefined; + switch (key) { + case Tooltip.Enum.Properties.IsHover: + validatedValue = this.validateBoolean(value, true); + break; + case Tooltip.Enum.Properties.StartVisible: + validatedValue = this.validateBoolean(value, false); + break; + case Tooltip.Enum.Properties.Position: + validatedValue = this.validateInRange(value, OSUI.GlobalEnum.Position.Right, Object.values(OSUI.GlobalEnum.Position)); + break; + default: + validatedValue = super.validateDefault(key, value); + break; + } + return validatedValue; + } + } + Tooltip.TooltipConfig = TooltipConfig; + })(Tooltip = Patterns.Tooltip || (Patterns.Tooltip = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var TouchEvents; + (function (TouchEvents) { + var Enum; + (function (Enum) { + let Properties; + (function (Properties) { + })(Properties = Enum.Properties || (Enum.Properties = {})); + let Events; + (function (Events) { + Events["End"] = "End"; + Events["Move"] = "Move"; + Events["Start"] = "Start"; + })(Events = Enum.Events || (Enum.Events = {})); + })(Enum = TouchEvents.Enum || (TouchEvents.Enum = {})); + })(TouchEvents = Patterns.TouchEvents || (Patterns.TouchEvents = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var TouchEvents; + (function (TouchEvents_1) { + class TouchEvents extends Patterns.AbstractPattern { + constructor(uniqueId, configs) { + super(uniqueId, new TouchEvents_1.TouchEventsConfig(configs)); + this._startX = 0; + this._startY = 0; + this._currentX = 0; + this._currentY = 0; + this._touchingElement = false; + } + _eventTouchEnd() { + if (this._touchingElement) { + this._touchingElement = false; + this._translateX = this._currentX - this._startX; + this._translateY = this._currentY - this._startY; + this._timeTaken = new Date().getTime() - this._startTime; + this._triggerTouchEnd(); + } + } + _eventTouchMove(evt) { + if (this._touchingElement) { + this._currentX = evt.changedTouches[0].pageX; + this._currentY = evt.changedTouches[0].pageY; + this._translateX = this._currentX - this._startX; + this._translateY = this._currentY - this._startY; + this._triggerTouchMove(evt); + } + } + _eventTouchStart(evt) { + this._startTime = new Date().getTime(); + this._startX = evt.changedTouches[0].pageX; + this._currentX = this._startX; + this._startY = evt.changedTouches[0].pageY; + this._currentY = this._startY; + this._touchingElement = true; + this._triggerTouchStart(); + } + _removeEventListeners() { + if (this._trackableElement) { + this._trackableElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.TouchStart, this._startEvent); + this._trackableElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.TouchMove, this._moveEvent); + this._trackableElement.removeEventListener(OSUI.GlobalEnum.HTMLEvent.TouchEnd, this._endEvent); + } + } + _setEventListeners() { + if (this._trackableElement) { + this._trackableElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.TouchStart, this._startEvent); + this._trackableElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.TouchMove, this._moveEvent); + this._trackableElement.addEventListener(OSUI.GlobalEnum.HTMLEvent.TouchEnd, this._endEvent); + } + } + _triggerTouchEnd() { + if (this._endEventCallback) { + OSUI.Helper.AsyncInvocation(this._endEventCallback, this._currentX, this._currentY, this._translateX, this._translateY, this._timeTaken); + } + } + _triggerTouchMove(event) { + if (this._eventMoveCallback) { + OSUI.Helper.AsyncInvocation(this._eventMoveCallback, this._currentX, this._currentY, this._translateX, this._translateY, event); + } + } + _triggerTouchStart() { + if (this._eventStartCallback) { + OSUI.Helper.AsyncInvocation(this._eventStartCallback, this._startX, this._startY); + } + } + setA11YProperties() { + console.warn(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + setCallbacks() { + this._endEvent = this._eventTouchEnd.bind(this); + this._moveEvent = this._eventTouchMove.bind(this); + this._startEvent = this._eventTouchStart.bind(this); + this._setEventListeners(); + } + setHtmlElements() { + this._trackableElement = document.getElementById(this.configs.WidgetId); + } + unsetCallbacks() { + this._removeEventListeners(); + this._endEvent = undefined; + this._moveEvent = undefined; + this._startEvent = undefined; + } + unsetHtmlElements() { + this._trackableElement = undefined; + } + build() { + super.build(); + this.setHtmlElements(); + this.setCallbacks(); + this.finishBuild(); + } + dispose() { + super.dispose(); + this.unsetCallbacks(); + this.unsetHtmlElements(); + } + registerCallback(eventName, callback) { + switch (eventName) { + case Patterns.TouchEvents.Enum.Events.End: + this._endEventCallback = callback; + break; + case Patterns.TouchEvents.Enum.Events.Move: + this._eventMoveCallback = callback; + break; + case Patterns.TouchEvents.Enum.Events.Start: + this._eventStartCallback = callback; + break; + } + } + } + TouchEvents_1.TouchEvents = TouchEvents; + })(TouchEvents = Patterns.TouchEvents || (Patterns.TouchEvents = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var TouchEvents; + (function (TouchEvents) { + class TouchEventsConfig extends Patterns.AbstractConfiguration { + constructor(config) { + super(config); + } + } + TouchEvents.TouchEventsConfig = TouchEventsConfig; + })(TouchEvents = Patterns.TouchEvents || (Patterns.TouchEvents = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Video; + (function (Video) { + var Enum; + (function (Enum) { + let CssClass; + (function (CssClass) { + CssClass["VideoSource"] = "osui-video-source"; + CssClass["VideoTrack"] = "osui-video-track"; + })(CssClass = Enum.CssClass || (Enum.CssClass = {})); + let Events; + (function (Events) { + Events["OnStateChanged"] = "StateChanged"; + })(Events = Enum.Events || (Enum.Events = {})); + let VideoStates; + (function (VideoStates) { + VideoStates["OnEnded"] = "Ended"; + VideoStates["OnPause"] = "Paused"; + VideoStates["OnPlaying"] = "Playing"; + VideoStates["Unstarted"] = "Unstarted"; + })(VideoStates = Enum.VideoStates || (Enum.VideoStates = {})); + let Properties; + (function (Properties) { + Properties["Autoplay"] = "Autoplay"; + Properties["Controls"] = "Controls"; + Properties["Height"] = "Height"; + Properties["Loop"] = "Loop"; + Properties["Muted"] = "Muted"; + Properties["PosterURL"] = "PosterURL"; + Properties["URL"] = "URL"; + Properties["Width"] = "Width"; + })(Properties = Enum.Properties || (Enum.Properties = {})); + let VideoTags; + (function (VideoTags) { + VideoTags["Source"] = "source"; + VideoTags["Track"] = "track"; + })(VideoTags = Enum.VideoTags || (Enum.VideoTags = {})); + let VideoAttributes; + (function (VideoAttributes) { + VideoAttributes["Captions"] = "captions"; + VideoAttributes["Default"] = "default"; + VideoAttributes["Height"] = "height"; + VideoAttributes["TypePath"] = "video/"; + VideoAttributes["Width"] = "width"; + VideoAttributes["Muted"] = "muted"; + })(VideoAttributes = Enum.VideoAttributes || (Enum.VideoAttributes = {})); + })(Enum = Video.Enum || (Video.Enum = {})); + })(Video = Patterns.Video || (Patterns.Video = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Video; + (function (Video_1) { + class Video extends Patterns.AbstractPattern { + constructor(uniqueId, configs) { + super(uniqueId, new Video_1.VideoConfig(configs)); + } + _setAutoplay() { + this._videoElement.autoplay = this.configs.Autoplay; + if (this.configs.Autoplay && this.configs.Muted === false) { + console.warn(`Some modern browsers will not autoplay your video on ${OSUI.GlobalEnum.PatternName.Video} if it's not muted. The general rule of many browsers is that a user must opt-in to certain actions before they can happen. Set the Muted parameter to True, to start the video automatically.`); + } + } + _setControls() { + this._videoElement.controls = this.configs.Controls; + } + _setHeight() { + if (this.configs.Height !== OSUI.Constants.EmptyString) { + OSUI.Helper.Dom.Attribute.Set(this._videoElement, Patterns.Video.Enum.VideoAttributes.Height, this.configs.Height); + } + else { + OSUI.Helper.Dom.Attribute.Remove(this._videoElement, Patterns.Video.Enum.VideoAttributes.Height); + } + } + _setLoop() { + this._videoElement.loop = this.configs.Loop; + } + _setMuted() { + this._videoElement.muted = this.configs.Muted; + } + _setPosterUrl() { + if (this.configs.PosterURL !== OSUI.Constants.EmptyString) { + this._videoElement.poster = this.configs.PosterURL; + } + else { + this._videoElement.poster = OSUI.Constants.EmptyString; + } + } + _setVideoConfigs() { + this._setAutoplay(); + this._setControls(); + this._setLoop(); + this._setMuted(); + this._setPosterUrl(); + this._setWidth(); + this._setHeight(); + if (this._videoElement.currentTime === 0) { + this._triggerOnStateChangedEvent(Patterns.Video.Enum.VideoStates.Unstarted); + } + } + _setVideoSource() { + const _urlFileExtension = this.configs.URL.split('.').pop(); + OSUI.Helper.Dom.Styles.AddClass(this._videoSourceElement, Patterns.Video.Enum.CssClass.VideoSource); + this._videoSourceElement.src = this.configs.URL; + this._videoSourceElement.type = Patterns.Video.Enum.VideoAttributes.TypePath + _urlFileExtension; + } + _setVideoTrack() { + const captionsList = JSON.parse(this.configs.Captions); + if (captionsList.length > 0) { + for (const item of captionsList) { + const trackElement = document.createElement(Patterns.Video.Enum.VideoTags.Track); + OSUI.Helper.Dom.Styles.AddClass(trackElement, Patterns.Video.Enum.CssClass.VideoTrack); + trackElement.kind = Patterns.Video.Enum.VideoAttributes.Captions; + trackElement.srclang = item.LanguageCode; + trackElement.src = item.SourceFile; + trackElement.label = item.Label; + this.selfElement.appendChild(trackElement); + } + } + } + _setWidth() { + if (this.configs.Width !== OSUI.Constants.EmptyString) { + OSUI.Helper.Dom.Attribute.Set(this._videoElement, Patterns.Video.Enum.VideoAttributes.Width, this.configs.Width); + } + else { + OSUI.Helper.Dom.Attribute.Remove(this._videoElement, Patterns.Video.Enum.VideoAttributes.Width); + } + } + _triggerOnStateChangedEvent(stateChanged) { + if (stateChanged === Patterns.Video.Enum.VideoStates.Unstarted) { + if (this._videoElement.currentTime === 0) { + this.triggerPlatformEventCallback(this._platformEventOnStateChanged.bind(this), stateChanged); + } + } + else { + this.triggerPlatformEventCallback(this._platformEventOnStateChanged.bind(this), stateChanged); + } + this._videoState = stateChanged; + } + setA11YProperties() { + console.log(OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + setCallbacks() { + this._videoElement.onplay = this._triggerOnStateChangedEvent.bind(this, Patterns.Video.Enum.VideoStates.Unstarted); + this._videoElement.onplaying = this._triggerOnStateChangedEvent.bind(this, Patterns.Video.Enum.VideoStates.OnPlaying); + this._videoElement.onpause = this._triggerOnStateChangedEvent.bind(this, Patterns.Video.Enum.VideoStates.OnPause); + this._videoElement.onended = this._triggerOnStateChangedEvent.bind(this, Patterns.Video.Enum.VideoStates.OnEnded); + } + setHtmlElements() { + this._videoElement = this.selfElement; + this._videoSourceElement = document.createElement(Patterns.Video.Enum.VideoTags.Source); + this.selfElement.appendChild(this._videoSourceElement); + this._setVideoSource(); + this._setVideoConfigs(); + this._setVideoTrack(); + } + unsetCallbacks() { + this._platformEventOnStateChanged = undefined; + this._videoElement.onended = undefined; + this._videoElement.onpause = undefined; + this._videoElement.onplay = undefined; + this._videoElement.onplaying = undefined; + } + unsetHtmlElements() { + this._videoElement = undefined; + this._videoSourceElement = undefined; + } + build() { + super.build(); + this.setHtmlElements(); + this.setCallbacks(); + this.finishBuild(); + } + changeProperty(propertyName, propertyValue) { + super.changeProperty(propertyName, propertyValue); + if (this.isBuilt) { + switch (propertyName) { + case Video_1.Enum.Properties.Autoplay: + this._setAutoplay(); + break; + case Video_1.Enum.Properties.Controls: + this._setControls(); + break; + case Video_1.Enum.Properties.Loop: + this._setLoop(); + break; + case Video_1.Enum.Properties.Muted: + this._setMuted(); + break; + case Video_1.Enum.Properties.PosterURL: + this._setPosterUrl(); + break; + case Video_1.Enum.Properties.URL: + this._setVideoSource(); + break; + case Video_1.Enum.Properties.Width: + this._setWidth(); + break; + case Video_1.Enum.Properties.Height: + this._setHeight(); + break; + } + } + } + dispose() { + this.unsetCallbacks(); + this.unsetHtmlElements(); + super.dispose(); + } + get getVideoState() { + return this._videoState; + } + registerCallback(eventName, callback) { + switch (eventName) { + case Patterns.Video.Enum.Events.OnStateChanged: + if (this._platformEventOnStateChanged === undefined) { + this._platformEventOnStateChanged = callback; + } + else { + console.warn(`The ${OSUI.GlobalEnum.PatternName.Video} already has the state changed callback set.`); + } + break; + default: + super.registerCallback(eventName, callback); + } + } + setVideoJumpToTime(currentTime) { + this._videoElement.currentTime = currentTime; + } + setVideoPause() { + this._videoElement.pause(); + } + setVideoPlay() { + this._videoElement.play(); + } + } + Video_1.Video = Video; + })(Video = Patterns.Video || (Patterns.Video = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var Video; + (function (Video) { + class VideoConfig extends Patterns.AbstractConfiguration { + constructor(config) { + super(config); + } + } + Video.VideoConfig = VideoConfig; + })(Video = Patterns.Video || (Patterns.Video = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + var FloatingPosition; + (function (FloatingPosition) { + var Enum; + (function (Enum) { + let CssCustomProperties; + (function (CssCustomProperties) { + CssCustomProperties["Offset"] = "--osui-floating-offset"; + CssCustomProperties["YPosition"] = "--osui-floating-position-y"; + CssCustomProperties["XPosition"] = "--osui-floating-position-x"; + })(CssCustomProperties = Enum.CssCustomProperties || (Enum.CssCustomProperties = {})); + let Provider; + (function (Provider) { + Provider["FloatingUI"] = "FloatingUI"; + })(Provider = Enum.Provider || (Enum.Provider = {})); + })(Enum = FloatingPosition.Enum || (FloatingPosition.Enum = {})); + })(FloatingPosition = Utils.FloatingPosition || (Utils.FloatingPosition = {})); + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + var FloatingPosition; + (function (FloatingPosition_1) { + class FloatingPosition { + constructor(options) { + this.floatingConfigs = options; + this.build(); + } + getOffsetValue() { + return parseInt(getComputedStyle(this.floatingConfigs.AnchorElem).getPropertyValue(FloatingPosition_1.Enum.CssCustomProperties.Offset)); + } + build() { + this.setFloatingPosition(); + this.isBuilt = true; + } + dispose() { + this.isBuilt = false; + } + update(options) { + this.floatingConfigs = options; + this.setFloatingPosition(); + } + } + FloatingPosition_1.FloatingPosition = FloatingPosition; + })(FloatingPosition = Utils.FloatingPosition || (Utils.FloatingPosition = {})); + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + var FloatingPosition; + (function (FloatingPosition) { + class FloatingPositionConfig { + } + FloatingPosition.FloatingPositionConfig = FloatingPositionConfig; + })(FloatingPosition = Utils.FloatingPosition || (Utils.FloatingPosition = {})); + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OSFramework; +(function (OSFramework) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + var FloatingPosition; + (function (FloatingPosition) { + var Factory; + (function (Factory) { + function NewFloatingPosition(configs, provider) { + let _floatingPositionItem = null; + switch (provider) { + case FloatingPosition.Enum.Provider.FloatingUI: + _floatingPositionItem = new Providers.OSUI.Utils.FloatingUI(configs); + break; + default: + throw new Error(`There is no FloatingPosition of the ${provider} provider`); + } + return _floatingPositionItem; + } + Factory.NewFloatingPosition = NewFloatingPosition; + })(Factory = FloatingPosition.Factory || (FloatingPosition.Factory = {})); + })(FloatingPosition = Utils.FloatingPosition || (Utils.FloatingPosition = {})); + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = OSFramework.OSUI || (OSFramework.OSUI = {})); +})(OSFramework || (OSFramework = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var ErrorCodes; + (function (ErrorCodes) { + ErrorCodes.Success = { + code: '200', + message: 'Success', + }; + ErrorCodes.Dropdown = { + FailChangeProperty: 'OSUI-API-01001', + FailClear: 'OSUI-API-01002', + FailClose: 'OSUI-API-010014', + FailDisable: 'OSUI-API-01003', + FailDispose: 'OSUI-API-01004', + FailEnable: 'OSUI-API-01005', + FailGetSelectedValues: 'OSUI-API-01006', + FailOpen: 'OSUI-API-010015', + FailRegisterCallback: 'OSUI-API-01007', + FailRegisterProviderConfig: 'OSUI-API-01009', + FailRegisterProviderEvent: 'OSUI-API-060010', + FailRemoveProviderEvent: 'OSUI-API-06011', + FailSetValidation: 'OSUI-API-01008', + FailSetValues: 'OSUI-API-06012', + FailTogglePopup: 'OSUI-API-01013', + }; + ErrorCodes.Notification = { + FailChangeProperty: 'OSUI-API-02001', + FailDispose: 'OSUI-API-02002', + FailHide: 'OSUI-API-02003', + FailRegisterCallback: 'OSUI-API-02004', + FailShow: 'OSUI-API-02005', + }; + ErrorCodes.SectionIndex = { + FailChangeProperty: 'OSUI-API-03001', + FailDisable: 'OSUI-API-03002', + FailDispose: 'OSUI-API-03003', + FailEnable: 'OSUI-API-03004', + FailRegisterCallback: 'OSUI-API-03005', + }; + ErrorCodes.Accordion = { + FailChangeProperty: 'OSUI-API-04001', + FailCollapseAll: 'OSUI-API-04002', + FailDispose: 'OSUI-API-04003', + FailExpandAll: 'OSUI-API-04004', + FailRegisterCallback: 'OSUI-API-04005', + }; + ErrorCodes.AccordionItem = { + FailAllowTitleEvents: 'OSUI-API-05001', + FailChangeProperty: 'OSUI-API-05002', + FailCollapseItem: 'OSUI-API-05003', + FailDispose: 'OSUI-API-05004', + FailExpandItem: 'OSUI-API-05005', + FailRegisterCallback: 'OSUI-API-05006', + }; + ErrorCodes.Carousel = { + FailChangeProperty: 'OSUI-API-06001', + FailDispose: 'OSUI-API-06002', + FailDirection: 'OSUI-API-06003', + FailGoTo: 'OSUI-API-06004', + FailNext: 'OSUI-API-06005', + FailPrevious: 'OSUI-API-06006', + FailRegisterCallback: 'OSUI-API-06007', + FailToggleDrag: 'OSUI-API-06008', + FailUpdate: 'OSUI-API-06009', + FailRegisterProviderConfig: 'OSUI-API-06010', + FailRegisterProviderEvent: 'OSUI-API-06011', + FailRemoveProviderEvent: 'OSUI-API-06012', + FailEnableOnRender: 'OSUI-API-06013', + FailDisableOnRender: 'OSUI-API-06014', + }; + ErrorCodes.DatePicker = { + FailChangeProperty: 'OSUI-API-07001', + FailClear: 'OSUI-API-07002', + FailClose: 'OSUI-API-07003', + FailDisableDays: 'OSUI-API-07011', + FailDisableWeekDays: 'OSUI-API-07012', + FailDispose: 'OSUI-API-07004', + FailOpen: 'OSUI-API-07005', + FailRedraw: 'OSUI-API-07006', + FailRegisterCallback: 'OSUI-API-07007', + FailRegisterProviderConfig: 'OSUI-API-07008', + FailRegisterProviderEvent: 'OSUI-API-07009', + FailRemoveProviderEvent: 'OSUI-API-07010', + FailSetEditableInput: 'OSUI-API-07013', + FailSetLanguage: 'OSUI-API-07014', + FailToggleNativeBehavior: 'OSUI-API-07015', + FailUpdateInitialDate: 'OSUI-API-07016', + FailUpdatePrompt: 'OSUI-API-07017', + }; + ErrorCodes.FlipContent = { + FailChangeProperty: 'OSUI-API-08001', + FailDispose: 'OSUI-API-08002', + FailRegisterCallback: 'OSUI-API-08003', + FailShowBack: 'OSUI-API-08004', + FailShowFront: 'OSUI-API-08005', + FailToggle: 'OSUI-API-08006', + }; + ErrorCodes.Progress = { + FailChangeProperty: 'OSUI-API-09001', + FailDispose: 'OSUI-API-09002', + FailProgressValue: 'OSUI-API-09003', + FailProgressReset: 'OSUI-API-09004', + FailtProgressGradient: 'OSUI-API-09005', + FailRegisterCallback: 'OSUI-API-09006', + }; + ErrorCodes.RangeSlider = { + FailChangeProperty: 'OSUI-API-10001', + FailDispose: 'OSUI-API-10002', + FailOnDragEnd: 'OSUI-API-10003', + FailRegisterCallback: 'OSUI-API-10004', + FailSetValues: 'OSUI-API-10005', + FailResetValues: 'OSUI-API-10006', + FailRegisterProviderConfig: 'OSUI-API-10007', + FailRegisterProviderEvent: 'OSUI-API-10008', + FailRemoveProviderEvent: 'OSUI-API-10009', + FailEnable: 'OSUI-API-10010', + FailDisable: 'OSUI-API-10011', + }; + ErrorCodes.Sidebar = { + FailChangeProperty: 'OSUI-API-11001', + FailClose: 'OSUI-API-11002', + FailDispose: 'OSUI-API-11003', + FailOpen: 'OSUI-API-11004', + FailRegisterCallback: 'OSUI-API-11005', + FailToggleSwipe: 'OSUI-API-11006', + FailClickOutsideToClose: 'OSUI-API-11007', + }; + ErrorCodes.Submenu = { + FailChangeProperty: 'OSUI-API-12001', + FailClose: 'OSUI-API-12002', + FailDispose: 'OSUI-API-12003', + FailOpen: 'OSUI-API-12004', + FailOpenOnHover: 'OSUI-API-12005', + FailRegisterCallback: 'OSUI-API-12006', + FailUpdate: 'OSUI-API-12007', + FailClickOutsideToClose: 'OSUI-API-12008', + }; + ErrorCodes.Tooltip = { + FailChangeProperty: 'OSUI-API-13001', + FailClose: 'OSUI-API-13002', + FailDispose: 'OSUI-API-13003', + FailOpen: 'OSUI-API-13004', + FailRegisterCallback: 'OSUI-GEN-13005', + }; + ErrorCodes.AnimatedLabel = { + FailChangeProperty: 'OSUI-API-14001', + FailDispose: 'OSUI-API-14002', + FailRegisterCallback: 'OSUI-API-14004', + FailUpdate: 'OSUI-API-14003', + }; + ErrorCodes.ButtonLoading = { + FailChangeProperty: 'OSUI-API-15001', + FailDispose: 'OSUI-API-15002', + FailRegisterCallback: 'OSUI-API-15003', + }; + ErrorCodes.DropdownServerSideItem = { + FailChangeProperty: 'OSUI-API-16001', + FailDispose: 'OSUI-API-16002', + FailRegisterCallback: 'OSUI-API-16003', + }; + ErrorCodes.FloatingActions = { + FailChangeProperty: 'OSUI-API-17001', + FailDispose: 'OSUI-API-17002', + FailRegisterCallback: 'OSUI-API-17003', + }; + ErrorCodes.Gallery = { + FailChangeProperty: 'OSUI-API-18001', + FailDispose: 'OSUI-API-18002', + FailRegisterCallback: 'OSUI-API-18003', + }; + ErrorCodes.Rating = { + FailChangeProperty: 'OSUI-API-19001', + FailDispose: 'OSUI-API-19002', + FailRegisterCallback: 'OSUI-API-19003', + }; + ErrorCodes.Search = { + FailChangeProperty: 'OSUI-API-20001', + FailDispose: 'OSUI-API-20002', + FailRegisterCallback: 'OSUI-API-20003', + }; + ErrorCodes.SectionIndexItem = { + FailChangeProperty: 'OSUI-API-21001', + FailDispose: 'OSUI-API-21002', + FailRegisterCallback: 'OSUI-API-21003', + }; + ErrorCodes.Tabs = { + FailChangeProperty: 'OSUI-API-22001', + FailDispose: 'OSUI-API-22002', + FailRegisterCallback: 'OSUI-API-22003', + FailSetActive: 'OSUI-API-22004', + FailToggleSwipe: 'OSUI-API-22005', + }; + ErrorCodes.TabsContentItem = { + FailChangeProperty: 'OSUI-API-23001', + FailDispose: 'OSUI-API-23002', + FailRegisterCallback: 'OSUI-API-23003', + }; + ErrorCodes.TabsHeaderItem = { + FailChangeProperty: 'OSUI-API-24001', + FailDisableTabHeader: 'OSUI-API-24002', + FailDispose: 'OSUI-API-24003', + FailEnableTabHeader: 'OSUI-API-24004', + FailRegisterCallback: 'OSUI-API-24006', + FailUpdate: 'OSUI-API-24005', + }; + ErrorCodes.BottomSheet = { + FailChangeProperty: 'OSUI-API-25001', + FailDispose: 'OSUI-API-25002', + FailRegisterCallback: 'OSUI-API-25003', + FailOpen: 'OSUI-API-25004', + FailClose: 'OSUI-API-25005', + }; + ErrorCodes.TimePicker = { + FailChangeProperty: 'OSUI-API-26001', + FailClear: 'OSUI-API-26002', + FailClose: 'OSUI-API-26003', + FailDispose: 'OSUI-API-26004', + FailOpen: 'OSUI-API-26005', + FailRedraw: 'OSUI-API-26006', + FailRegisterCallback: 'OSUI-API-26007', + FailRegisterProviderConfig: 'OSUI-API-26008', + FailRegisterProviderEvent: 'OSUI-API-26009', + FailRemoveProviderEvent: 'OSUI-API-26010', + FailToggleNativeBehavior: 'OSUI-API-26011', + FailSetLanguage: 'OSUI-API-26012', + FailUpdateInitialTime: 'OSUI-API-26013', + FailSetEditableInput: 'OSUI-API-26014', + FailUpdatePrompt: 'OSUI-API-26015', + }; + ErrorCodes.MonthPicker = { + FailChangeProperty: 'OSUI-API-27001', + FailClear: 'OSUI-API-27002', + FailClose: 'OSUI-API-27003', + FailDispose: 'OSUI-API-27004', + FailOpen: 'OSUI-API-27005', + FailRedraw: 'OSUI-API-27006', + FailRegisterCallback: 'OSUI-API-27007', + FailRegisterProviderConfig: 'OSUI-API-27008', + FailRegisterProviderEvent: 'OSUI-API-27009', + FailRemoveProviderEvent: 'OSUI-API-27010', + FailSetEditableInput: 'OSUI-API-27011', + FailSetLanguage: 'OSUI-API-27012', + FailUpdateInitialMonth: 'OSUI-API-27013', + FailUpdatePrompt: 'OSUI-API-27014', + }; + ErrorCodes.Utilities = { + FailGetInvalidInput: 'OSUI-API-28001', + FailScrollToElement: 'OSUI-API-28002', + FailSetFocus: 'OSUI-API-28003', + FailAddFavicon: 'OSUI-API-28004', + FailMoveElement: 'OSUI-API-28005', + FailSetActiveElement: 'OSUI-API-28006', + FailSetSelectedRow: 'OSUI-API-28007', + FailShowPassword: 'OSUI-API-28008', + FailMasterDetailSetContentFocus: 'OSUI-API-28009', + FailSetAccessibilityRole: 'OSUI-API-28010', + FailSetAriaHidden: 'OSUI-API-28011', + FailSetLang: 'OSUI-API-28012', + FailSkipToContent: 'OSUI-API-28013', + FailToggleTextSpacing: 'OSUI-API-28014', + FailSetActiveMenuItems: 'OSUI-API-28015', + FailSetBottomBarActiveElement: 'OSUI-API-28016', + FailSetMenuAttributes: 'OSUI-API-28017', + FailSetMenuIcon: 'OSUI-API-28018', + FailSetMenuIconListeners: 'OSUI-API-28019', + FailSetMenuListeners: 'OSUI-API-28020', + FailToggleSideMenu: 'OSUI-API-28021', + FailListItemAnimate: 'OSUI-API-28022', + FailCheckIsMenuDraggable: 'OSUI-API-28023', + FailSetExtendedMenuHide: 'OSUI-API-28024', + FailSetExtendedMenuShow: 'OSUI-API-28025', + FailCheckIsRTL: 'OSUI-API-28026', + }; + ErrorCodes.InlineSvg = { + FailChangeProperty: 'OSUI-API-29001', + FailDispose: 'OSUI-API-29002', + FailRegisterCallback: 'OSUI-API-29003', + }; + ErrorCodes.OverflowMenu = { + FailChangeProperty: 'OSUI-API-30001', + FailDispose: 'OSUI-API-30002', + FailRegisterCallback: 'OSUI-API-30003', + FailOpen: 'OSUI-API-30004', + FailClose: 'OSUI-API-30005', + FailEnable: 'OSUI-API-30006', + FailDisable: 'OSUI-API-30007', + }; + ErrorCodes.Video = { + FailChangeProperty: 'OSUI-API-31001', + FailDispose: 'OSUI-API-31002', + FailRegisterCallback: 'OSUI-API-31003', + FailGetState: 'OSUI-API-31004', + FailPause: 'OSUI-API-31005', + FailPlay: 'OSUI-API-31006', + FailSetTime: 'OSUI-API-31007', + }; + ErrorCodes.Legacy = { + FailAddFavicon_Legacy: 'OSUI-LEG-000001', + MoveElement_Legacy: 'OSUI-LEG-000002', + MasterDetailSetContentFocus_Legacy: 'OSUI-LEG-000003', + SetAccessibilityRole_Legacy: 'OSUI-LEG-000004', + SetAriaHidden_Legacy: 'OSUI-LEG-000005', + SetFocus_Legacy: 'OSUI-LEG-000006', + SetLang_Legacy: 'OSUI-LEG-000007', + SkipToContent_Legacy: 'OSUI-LEG-000008', + ToggleTextSpacing_Legacy: 'OSUI-LEG-000009', + }; + })(ErrorCodes = OSUI.ErrorCodes || (OSUI.ErrorCodes = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + function GetVersion() { + return OSFramework.OSUI.Constants.OSUIVersion; + } + OSUI.GetVersion = GetVersion; + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var AccordionAPI; + (function (AccordionAPI) { + const _accordionMap = new Map(); + function ChangeProperty(accordionId, propertyName, propertyValue) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Accordion.FailChangeProperty, + callback: () => { + const accordion = GetAccordionById(accordionId); + accordion.changeProperty(propertyName, propertyValue); + }, + }); + return result; + } + AccordionAPI.ChangeProperty = ChangeProperty; + function CollapseAllItems(accordionId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Accordion.FailCollapseAll, + callback: () => { + const accordion = GetAccordionById(accordionId); + accordion.collapseAllItems(); + }, + }); + return result; + } + AccordionAPI.CollapseAllItems = CollapseAllItems; + function Create(accordionId, configs) { + if (_accordionMap.has(accordionId)) { + throw new Error(`There is already a ${OSFramework.OSUI.GlobalEnum.PatternName.Accordion} registered under id: ${accordionId}`); + } + const _newAccordion = new OSFramework.OSUI.Patterns.Accordion.Accordion(accordionId, JSON.parse(configs)); + _accordionMap.set(accordionId, _newAccordion); + return _newAccordion; + } + AccordionAPI.Create = Create; + function Dispose(accordionId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Accordion.FailDispose, + callback: () => { + const accordion = GetAccordionById(accordionId); + accordion.dispose(); + _accordionMap.delete(accordion.uniqueId); + }, + }); + return result; + } + AccordionAPI.Dispose = Dispose; + function ExpandAllItems(accordionId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Accordion.FailExpandAll, + callback: () => { + const accordion = GetAccordionById(accordionId); + accordion.expandAllItems(); + }, + }); + return result; + } + AccordionAPI.ExpandAllItems = ExpandAllItems; + function GetAllAccordions() { + return OSFramework.OSUI.Helper.MapOperation.ExportKeys(_accordionMap); + } + AccordionAPI.GetAllAccordions = GetAllAccordions; + function GetAccordionById(AccordionId) { + return OSFramework.OSUI.Helper.MapOperation.FindInMap('Accordion', AccordionId, _accordionMap); + } + AccordionAPI.GetAccordionById = GetAccordionById; + function Initialize(accordionId) { + const accordion = GetAccordionById(accordionId); + accordion.build(); + return accordion; + } + AccordionAPI.Initialize = Initialize; + function RegisterCallback(accordionId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Accordion.FailRegisterCallback, + callback: () => { + const accordion = GetAccordionById(accordionId); + accordion.registerCallback(eventName, callback); + }, + }); + return result; + } + AccordionAPI.RegisterCallback = RegisterCallback; + })(AccordionAPI = Patterns.AccordionAPI || (Patterns.AccordionAPI = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var AccordionItemAPI; + (function (AccordionItemAPI) { + const _accordionItemMap = new Map(); + function AllowTitleEvents(accordionItemId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.AccordionItem.FailAllowTitleEvents, + callback: () => { + const accordionItem = GetAccordionItemById(accordionItemId); + accordionItem.allowTitleEvents(); + }, + }); + return result; + } + AccordionItemAPI.AllowTitleEvents = AllowTitleEvents; + function ChangeProperty(accordionItemId, propertyName, propertyValue) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.AccordionItem.FailChangeProperty, + callback: () => { + const accordionItem = GetAccordionItemById(accordionItemId); + accordionItem.changeProperty(propertyName, propertyValue); + }, + }); + return result; + } + AccordionItemAPI.ChangeProperty = ChangeProperty; + function Collapse(accordionItemId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.AccordionItem.FailCollapseItem, + callback: () => { + const accordionItem = GetAccordionItemById(accordionItemId); + accordionItem.close(); + }, + }); + return result; + } + AccordionItemAPI.Collapse = Collapse; + function Create(accordionItemId, configs) { + if (_accordionItemMap.has(accordionItemId)) { + throw new Error(`There is already a ${OSFramework.OSUI.GlobalEnum.PatternName.AccordionItem} registered under id: ${accordionItemId}`); + } + const _newAccordionItem = new OSFramework.OSUI.Patterns.AccordionItem.AccordionItem(accordionItemId, JSON.parse(configs)); + _accordionItemMap.set(accordionItemId, _newAccordionItem); + return _newAccordionItem; + } + AccordionItemAPI.Create = Create; + function Dispose(accordionItemId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.AccordionItem.FailDispose, + callback: () => { + const accordionItem = GetAccordionItemById(accordionItemId); + accordionItem.dispose(); + _accordionItemMap.delete(accordionItem.uniqueId); + }, + }); + return result; + } + AccordionItemAPI.Dispose = Dispose; + function Expand(accordionItemId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.AccordionItem.FailExpandItem, + callback: () => { + const accordionItem = GetAccordionItemById(accordionItemId); + accordionItem.open(); + }, + }); + return result; + } + AccordionItemAPI.Expand = Expand; + function GetAllAccordionItems() { + return OSFramework.OSUI.Helper.MapOperation.ExportKeys(_accordionItemMap); + } + AccordionItemAPI.GetAllAccordionItems = GetAllAccordionItems; + function GetAccordionItemById(accordionItemId) { + return OSFramework.OSUI.Helper.MapOperation.FindInMap('AccordionItem', accordionItemId, _accordionItemMap); + } + AccordionItemAPI.GetAccordionItemById = GetAccordionItemById; + function Initialize(accordionItemId) { + const accordionItem = GetAccordionItemById(accordionItemId); + accordionItem.build(); + return accordionItem; + } + AccordionItemAPI.Initialize = Initialize; + function RegisterCallback(accordionItemId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.AccordionItem.FailRegisterCallback, + callback: () => { + const accordionItem = GetAccordionItemById(accordionItemId); + accordionItem.registerCallback(eventName, callback); + }, + }); + return result; + } + AccordionItemAPI.RegisterCallback = RegisterCallback; + })(AccordionItemAPI = Patterns.AccordionItemAPI || (Patterns.AccordionItemAPI = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var AnimatedLabelAPI; + (function (AnimatedLabelAPI) { + const _animatedLabelsMap = new Map(); + function ChangeProperty(animatedLabelId, propertyName, propertyValue) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.AnimatedLabel.FailChangeProperty, + callback: () => { + const animatedlabel = GetAnimatedLabelById(animatedLabelId); + animatedlabel.changeProperty(propertyName, propertyValue); + }, + }); + return result; + } + AnimatedLabelAPI.ChangeProperty = ChangeProperty; + function Create(animatedLabelId, configs) { + if (_animatedLabelsMap.has(animatedLabelId)) { + throw new Error(`There is already an ${OSFramework.OSUI.GlobalEnum.PatternName.AnimatedLabel} registered under id: ${animatedLabelId}`); + } + const _newAnimatedLabel = new OSFramework.OSUI.Patterns.AnimatedLabel.AnimatedLabel(animatedLabelId, JSON.parse(configs)); + _animatedLabelsMap.set(animatedLabelId, _newAnimatedLabel); + return _newAnimatedLabel; + } + AnimatedLabelAPI.Create = Create; + function Dispose(animatedLabelId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.AnimatedLabel.FailDispose, + callback: () => { + const animatedlabel = GetAnimatedLabelById(animatedLabelId); + animatedlabel.dispose(); + _animatedLabelsMap.delete(animatedlabel.uniqueId); + }, + }); + return result; + } + AnimatedLabelAPI.Dispose = Dispose; + function GetAllAnimatedLabels() { + return OSFramework.OSUI.Helper.MapOperation.ExportKeys(_animatedLabelsMap); + } + AnimatedLabelAPI.GetAllAnimatedLabels = GetAllAnimatedLabels; + function GetAnimatedLabelById(animatedLabelId) { + return OSFramework.OSUI.Helper.MapOperation.FindInMap(OSFramework.OSUI.GlobalEnum.PatternName.AnimatedLabel, animatedLabelId, _animatedLabelsMap); + } + AnimatedLabelAPI.GetAnimatedLabelById = GetAnimatedLabelById; + function Initialize(animatedLabelId) { + const animatedlabel = GetAnimatedLabelById(animatedLabelId); + animatedlabel.build(); + return animatedlabel; + } + AnimatedLabelAPI.Initialize = Initialize; + function RegisterCallback(dropdownId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.AnimatedLabel.FailRegisterCallback, + callback: () => { + const animatedlabel = this.GetAnimatedLabelById(dropdownId); + animatedlabel.registerCallback(eventName, callback); + }, + }); + return result; + } + AnimatedLabelAPI.RegisterCallback = RegisterCallback; + function UpdateOnRender(animatedLabelId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.AnimatedLabel.FailUpdate, + callback: () => { + const animatedlabel = GetAnimatedLabelById(animatedLabelId); + animatedlabel.updateOnRender(); + }, + }); + return result; + } + AnimatedLabelAPI.UpdateOnRender = UpdateOnRender; + })(AnimatedLabelAPI = Patterns.AnimatedLabelAPI || (Patterns.AnimatedLabelAPI = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var BottomSheetAPI; + (function (BottomSheetAPI) { + const _bottomSheetItemsMap = new Map(); + function ChangeProperty(bottomSheetId, propertyName, propertyValue) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.BottomSheet.FailChangeProperty, + callback: () => { + const _bottomSheetItem = GetBottomSheetItemById(bottomSheetId); + _bottomSheetItem.changeProperty(propertyName, propertyValue); + }, + }); + return result; + } + BottomSheetAPI.ChangeProperty = ChangeProperty; + function Create(bottomSheetId, configs) { + if (_bottomSheetItemsMap.has(bottomSheetId)) { + throw new Error('There is already an BottomSheet registered under id: ' + bottomSheetId); + } + const _bottomSheetItem = new OSFramework.OSUI.Patterns.BottomSheet.BottomSheet(bottomSheetId, JSON.parse(configs)); + _bottomSheetItemsMap.set(bottomSheetId, _bottomSheetItem); + return _bottomSheetItem; + } + BottomSheetAPI.Create = Create; + function Dispose(bottomSheetId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.BottomSheet.FailDispose, + callback: () => { + const _bottomSheetItem = GetBottomSheetItemById(bottomSheetId); + _bottomSheetItem.dispose(); + _bottomSheetItemsMap.delete(_bottomSheetItem.uniqueId); + }, + }); + return result; + } + BottomSheetAPI.Dispose = Dispose; + function GetAllBottomSheetItemsMap() { + return OSFramework.OSUI.Helper.MapOperation.ExportKeys(_bottomSheetItemsMap); + } + BottomSheetAPI.GetAllBottomSheetItemsMap = GetAllBottomSheetItemsMap; + function GetBottomSheetItemById(bottomSheetId) { + return OSFramework.OSUI.Helper.MapOperation.FindInMap('BottomSheet', bottomSheetId, _bottomSheetItemsMap); + } + BottomSheetAPI.GetBottomSheetItemById = GetBottomSheetItemById; + function Initialize(bottomSheetId) { + const _bottomSheetItem = GetBottomSheetItemById(bottomSheetId); + _bottomSheetItem.build(); + return _bottomSheetItem; + } + BottomSheetAPI.Initialize = Initialize; + function Open(bottomSheetId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.BottomSheet.FailOpen, + callback: () => { + const _bottomSheetItem = GetBottomSheetItemById(bottomSheetId); + _bottomSheetItem.open(); + }, + }); + return result; + } + BottomSheetAPI.Open = Open; + function Close(bottomSheetId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.BottomSheet.FailClose, + callback: () => { + const _bottomSheetItem = GetBottomSheetItemById(bottomSheetId); + _bottomSheetItem.close(); + }, + }); + return result; + } + BottomSheetAPI.Close = Close; + function RegisterCallback(bottomSheetId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.BottomSheet.FailRegisterCallback, + callback: () => { + const bottomSheet = GetBottomSheetItemById(bottomSheetId); + bottomSheet.registerCallback(eventName, callback); + }, + }); + return result; + } + BottomSheetAPI.RegisterCallback = RegisterCallback; + })(BottomSheetAPI = Patterns.BottomSheetAPI || (Patterns.BottomSheetAPI = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var ButtonLoadingAPI; + (function (ButtonLoadingAPI) { + const _buttonsLoadingMap = new Map(); + function ChangeProperty(buttonLoadingId, propertyName, propertyValue) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.ButtonLoading.FailChangeProperty, + callback: () => { + const buttonLoading = GetButtonLoadingById(buttonLoadingId); + buttonLoading.changeProperty(propertyName, propertyValue); + }, + }); + return result; + } + ButtonLoadingAPI.ChangeProperty = ChangeProperty; + function Create(buttonLoadingId, configs) { + if (_buttonsLoadingMap.has(buttonLoadingId)) { + throw new Error(`There is already a ${OSFramework.OSUI.GlobalEnum.PatternName.ButtonLoading} registered under id: ${buttonLoadingId}`); + } + const _newButtonLoading = new OSFramework.OSUI.Patterns.ButtonLoading.ButtonLoading(buttonLoadingId, JSON.parse(configs)); + _buttonsLoadingMap.set(buttonLoadingId, _newButtonLoading); + return _newButtonLoading; + } + ButtonLoadingAPI.Create = Create; + function Dispose(buttonLoadingId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.ButtonLoading.FailDispose, + callback: () => { + const buttonLoading = GetButtonLoadingById(buttonLoadingId); + buttonLoading.dispose(); + _buttonsLoadingMap.delete(buttonLoading.uniqueId); + }, + }); + return result; + } + ButtonLoadingAPI.Dispose = Dispose; + function GetAllButtonsLoading() { + return OSFramework.OSUI.Helper.MapOperation.ExportKeys(_buttonsLoadingMap); + } + ButtonLoadingAPI.GetAllButtonsLoading = GetAllButtonsLoading; + function GetButtonLoadingById(buttonLoadingId) { + return OSFramework.OSUI.Helper.MapOperation.FindInMap(OSFramework.OSUI.GlobalEnum.PatternName.ButtonLoading, buttonLoadingId, _buttonsLoadingMap); + } + ButtonLoadingAPI.GetButtonLoadingById = GetButtonLoadingById; + function Initialize(buttonLoadingId) { + const buttonLoading = GetButtonLoadingById(buttonLoadingId); + buttonLoading.build(); + return buttonLoading; + } + ButtonLoadingAPI.Initialize = Initialize; + function RegisterCallback(dropdownId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.ButtonLoading.FailRegisterCallback, + callback: () => { + const buttonLoading = this.GetButtonLoadingById(dropdownId); + buttonLoading.registerCallback(eventName, callback); + }, + }); + return result; + } + ButtonLoadingAPI.RegisterCallback = RegisterCallback; + })(ButtonLoadingAPI = Patterns.ButtonLoadingAPI || (Patterns.ButtonLoadingAPI = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var CarouselAPI; + (function (CarouselAPI) { + const _carouselItemsMap = new Map(); + function CarouselEnableOnRender(carouselId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Carousel.FailEnableOnRender, + callback: () => { + const carousel = GetCarouselItemById(carouselId); + carousel.toggleOnRender(false); + }, + }); + return result; + } + CarouselAPI.CarouselEnableOnRender = CarouselEnableOnRender; + function CarouselDisableOnRender(carouselId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Carousel.FailDisableOnRender, + callback: () => { + const carousel = GetCarouselItemById(carouselId); + carousel.toggleOnRender(true); + }, + }); + return result; + } + CarouselAPI.CarouselDisableOnRender = CarouselDisableOnRender; + function ChangeProperty(carouselId, propertyName, propertyValue) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Carousel.FailChangeProperty, + callback: () => { + const _carouselItem = GetCarouselItemById(carouselId); + _carouselItem.changeProperty(propertyName, propertyValue); + }, + }); + return result; + } + CarouselAPI.ChangeProperty = ChangeProperty; + function Create(carouselId, configs, provider) { + if (_carouselItemsMap.has(carouselId)) { + throw new Error(`There is already an ${OSFramework.OSUI.GlobalEnum.PatternName.Carousel} registered under id: ${carouselId}`); + } + const _carouselItem = OSFramework.OSUI.Patterns.Carousel.Factory.NewCarousel(carouselId, configs, provider); + _carouselItemsMap.set(carouselId, _carouselItem); + return _carouselItem; + } + CarouselAPI.Create = Create; + function Dispose(carouselId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Carousel.FailDispose, + callback: () => { + const _carouselItem = GetCarouselItemById(carouselId); + _carouselItem.dispose(); + _carouselItemsMap.delete(_carouselItem.uniqueId); + }, + }); + return result; + } + CarouselAPI.Dispose = Dispose; + function GetAllCarouselItemsMap() { + return OSFramework.OSUI.Helper.MapOperation.ExportKeys(_carouselItemsMap); + } + CarouselAPI.GetAllCarouselItemsMap = GetAllCarouselItemsMap; + function GetCarouselItemById(carouselId) { + return OSFramework.OSUI.Helper.MapOperation.FindInMap('Carousel', carouselId, _carouselItemsMap); + } + CarouselAPI.GetCarouselItemById = GetCarouselItemById; + function GoTo(carouselId, index) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Carousel.FailGoTo, + callback: () => { + const carousel = GetCarouselItemById(carouselId); + carousel.goTo(index); + }, + }); + return result; + } + CarouselAPI.GoTo = GoTo; + function Initialize(carouselId) { + const _carouselItem = GetCarouselItemById(carouselId); + _carouselItem.build(); + return _carouselItem; + } + CarouselAPI.Initialize = Initialize; + function Next(carouselId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Carousel.FailNext, + callback: () => { + const carousel = GetCarouselItemById(carouselId); + carousel.next(); + }, + }); + return result; + } + CarouselAPI.Next = Next; + function Previous(carouselId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Carousel.FailPrevious, + callback: () => { + const carousel = GetCarouselItemById(carouselId); + carousel.previous(); + }, + }); + return result; + } + CarouselAPI.Previous = Previous; + function RegisterCallback(carouselId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Carousel.FailRegisterCallback, + callback: () => { + const carousel = GetCarouselItemById(carouselId); + carousel.registerCallback(eventName, callback); + }, + }); + return result; + } + CarouselAPI.RegisterCallback = RegisterCallback; + function ToggleDrag(carouselId, hasDrag) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Carousel.FailToggleDrag, + callback: () => { + const carousel = GetCarouselItemById(carouselId); + carousel.toggleDrag(hasDrag); + }, + }); + return result; + } + CarouselAPI.ToggleDrag = ToggleDrag; + function UpdateOnRender(carouselId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Carousel.FailUpdate, + callback: () => { + const carousel = GetCarouselItemById(carouselId); + carousel.updateOnRender(); + }, + }); + return result; + } + CarouselAPI.UpdateOnRender = UpdateOnRender; + function SetCarouselDirection(carouselId, direction) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Carousel.FailDirection, + callback: () => { + const carousel = GetCarouselItemById(carouselId); + carousel.setCarouselDirection(direction); + }, + }); + return result; + } + CarouselAPI.SetCarouselDirection = SetCarouselDirection; + function SetProviderConfigs(carouselId, configs) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Carousel.FailRegisterProviderConfig, + callback: () => { + const carousel = GetCarouselItemById(carouselId); + carousel.setProviderConfigs(configs); + }, + }); + return result; + } + CarouselAPI.SetProviderConfigs = SetProviderConfigs; + function SetProviderEvent(carouselId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Carousel.FailRegisterProviderEvent, + hasValue: true, + callback: () => { + const _eventUniqueId = OSFramework.OSUI.Helper.Dom.GenerateUniqueId(); + const carousel = GetCarouselItemById(carouselId); + carousel.setProviderEvent(eventName, callback, _eventUniqueId); + return _eventUniqueId; + }, + }); + return result; + } + CarouselAPI.SetProviderEvent = SetProviderEvent; + function UnsetProviderEvent(carouselId, eventId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Carousel.FailRemoveProviderEvent, + callback: () => { + const carousel = GetCarouselItemById(carouselId); + carousel.unsetProviderEvent(eventId); + }, + }); + return result; + } + CarouselAPI.UnsetProviderEvent = UnsetProviderEvent; + })(CarouselAPI = Patterns.CarouselAPI || (Patterns.CarouselAPI = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var DatePickerAPI; + (function (DatePickerAPI) { + const _datePickerItemsMap = new Map(); + function ChangeProperty(datePickerId, propertyName, propertyValue) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.DatePicker.FailChangeProperty, + callback: () => { + const _datePickerItem = GetDatePickerItemById(datePickerId); + _datePickerItem.changeProperty(propertyName, propertyValue); + }, + }); + return result; + } + DatePickerAPI.ChangeProperty = ChangeProperty; + function Clear(datePickerId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.DatePicker.FailClear, + callback: () => { + const _datePickerItem = GetDatePickerItemById(datePickerId); + _datePickerItem.clear(); + }, + }); + return result; + } + DatePickerAPI.Clear = Clear; + function Close(datePickerId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.DatePicker.FailClose, + callback: () => { + const _datePickerItem = GetDatePickerItemById(datePickerId); + _datePickerItem.close(); + }, + }); + return result; + } + DatePickerAPI.Close = Close; + function Create(datePickerId, configs, mode, provider) { + if (_datePickerItemsMap.has(datePickerId)) { + throw new Error(`There is already an DatePicker registered under id: ${datePickerId}`); + } + const _datePickerItem = OSFramework.OSUI.Patterns.DatePicker.Factory.NewDatePicker(datePickerId, configs, mode, provider); + _datePickerItemsMap.set(datePickerId, _datePickerItem); + return _datePickerItem; + } + DatePickerAPI.Create = Create; + function ToggleNativeBehavior(datePickerId, IsNative) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.DatePicker.FailToggleNativeBehavior, + callback: () => { + const _datePicker = this.GetDatePickerItemById(datePickerId); + _datePicker.toggleNativeBehavior(IsNative); + }, + }); + return result; + } + DatePickerAPI.ToggleNativeBehavior = ToggleNativeBehavior; + function Dispose(datePickerId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.DatePicker.FailDispose, + callback: () => { + const _datePickerItem = GetDatePickerItemById(datePickerId); + _datePickerItem.dispose(); + _datePickerItemsMap.delete(_datePickerItem.uniqueId); + }, + }); + return result; + } + DatePickerAPI.Dispose = Dispose; + function GetAllDatePickerItemsMap() { + return OSFramework.OSUI.Helper.MapOperation.ExportKeys(_datePickerItemsMap); + } + DatePickerAPI.GetAllDatePickerItemsMap = GetAllDatePickerItemsMap; + function GetDatePickerItemById(datePickerId) { + return OSFramework.OSUI.Helper.MapOperation.FindInMap('DatePicker', datePickerId, _datePickerItemsMap); + } + DatePickerAPI.GetDatePickerItemById = GetDatePickerItemById; + function Initialize(datePickerId) { + const _datePickerItem = GetDatePickerItemById(datePickerId); + _datePickerItem.build(); + return _datePickerItem; + } + DatePickerAPI.Initialize = Initialize; + function Open(datePickerId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.DatePicker.FailOpen, + callback: () => { + const _datePickerItem = GetDatePickerItemById(datePickerId); + _datePickerItem.open(); + }, + }); + return result; + } + DatePickerAPI.Open = Open; + function RegisterCallback(datePickerId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.DatePicker.FailRegisterCallback, + callback: () => { + const _datePicker = this.GetDatePickerItemById(datePickerId); + _datePicker.registerCallback(eventName, callback); + }, + }); + return result; + } + DatePickerAPI.RegisterCallback = RegisterCallback; + function Redraw(datePickerId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.DatePicker.FailRedraw, + callback: () => { + const _datePicker = this.GetDatePickerItemById(datePickerId); + _datePicker.redraw(); + }, + }); + return result; + } + DatePickerAPI.Redraw = Redraw; + function SetLanguage(datePickerId, isoCode) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.DatePicker.FailSetLanguage, + callback: () => { + const _datePicker = this.GetDatePickerItemById(datePickerId); + _datePicker.setLanguage(isoCode); + }, + }); + return result; + } + DatePickerAPI.SetLanguage = SetLanguage; + function UpdateInitialDate(datePickerId, date1, date2) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.DatePicker.FailUpdateInitialDate, + callback: () => { + if (OSFramework.OSUI.Helper.Dates.IsNull(date1)) { + throw new Error(`Given Date: '${date1}', can't be Null.`); + } + else if (OSFramework.OSUI.Helper.Dates.IsNull(date1) === false && + date2 !== undefined && + OSFramework.OSUI.Helper.Dates.IsNull(date2) === false && + OSFramework.OSUI.Helper.Dates.IsBeforeThan(date1, date2) === false) { + throw new Error(`Date1: '${date1}', can't be after Date2: '${date2}'.`); + } + else { + const _datePicker = this.GetDatePickerItemById(datePickerId); + _datePicker.updateInitialDate(date1, date2); + } + }, + }); + return result; + } + DatePickerAPI.UpdateInitialDate = UpdateInitialDate; + function UpdatePrompt(datePickerId, promptMessage) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.DatePicker.FailUpdatePrompt, + callback: () => { + const _datePicker = this.GetDatePickerItemById(datePickerId); + _datePicker.updatePrompt(promptMessage); + }, + }); + return result; + } + DatePickerAPI.UpdatePrompt = UpdatePrompt; + function DisableDays(datePickerId, disableDays) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.DatePicker.FailDisableDays, + callback: () => { + const datePicker = GetDatePickerItemById(datePickerId); + datePicker.disableDays(disableDays); + }, + }); + return result; + } + DatePickerAPI.DisableDays = DisableDays; + function DisableWeekDays(datePickerId, disableWeekDays) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.DatePicker.FailDisableWeekDays, + callback: () => { + const datePicker = GetDatePickerItemById(datePickerId); + datePicker.disableWeekDays(disableWeekDays); + }, + }); + return result; + } + DatePickerAPI.DisableWeekDays = DisableWeekDays; + function SetProviderConfigs(datePickerId, providerConfigs) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.DatePicker.FailRegisterProviderConfig, + callback: () => { + const datePicker = GetDatePickerItemById(datePickerId); + datePicker.setProviderConfigs(providerConfigs); + }, + }); + return result; + } + DatePickerAPI.SetProviderConfigs = SetProviderConfigs; + function SetProviderEvent(datePickerId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.DatePicker.FailRegisterProviderEvent, + hasValue: true, + callback: () => { + const _eventUniqueId = OSFramework.OSUI.Helper.Dom.GenerateUniqueId(); + const datePicker = GetDatePickerItemById(datePickerId); + datePicker.setProviderEvent(eventName, callback, _eventUniqueId); + return _eventUniqueId; + }, + }); + return result; + } + DatePickerAPI.SetProviderEvent = SetProviderEvent; + function UnsetProviderEvent(datePickerId, eventId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.DatePicker.FailRemoveProviderEvent, + callback: () => { + const datePicker = GetDatePickerItemById(datePickerId); + datePicker.unsetProviderEvent(eventId); + }, + }); + return result; + } + DatePickerAPI.UnsetProviderEvent = UnsetProviderEvent; + function SetEditableInput(datePickerId, IsEditable) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.DatePicker.FailSetEditableInput, + callback: () => { + const _datePicker = this.GetDatePickerItemById(datePickerId); + _datePicker.setEditableInput(IsEditable); + }, + }); + return result; + } + DatePickerAPI.SetEditableInput = SetEditableInput; + })(DatePickerAPI = Patterns.DatePickerAPI || (Patterns.DatePickerAPI = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var DropdownAPI; + (function (DropdownAPI) { + const _dropdownItemsMap = new Map(); + function ChangeProperty(dropdownId, propertyName, propertyValue) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Dropdown.FailChangeProperty, + callback: () => { + const _dropdownItem = GetDropdownById(dropdownId); + _dropdownItem.changeProperty(propertyName, propertyValue); + }, + }); + return result; + } + DropdownAPI.ChangeProperty = ChangeProperty; + function Clear(dropdownId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Dropdown.FailClear, + callback: () => { + const _dropdownItem = GetDropdownById(dropdownId); + _dropdownItem.clear(); + }, + }); + return result; + } + DropdownAPI.Clear = Clear; + function Close(dropdownId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Dropdown.FailClose, + callback: () => { + const _dropdownItem = GetDropdownById(dropdownId); + _dropdownItem.close(); + }, + }); + return result; + } + DropdownAPI.Close = Close; + function Create(dropdownId, mode, provider, configs) { + if (_dropdownItemsMap.has(dropdownId)) { + throw new Error(`There is already an Dropdown registered under id: ${dropdownId}`); + } + const _dropdownItem = OSFramework.OSUI.Patterns.Dropdown.Factory.NewDropdown(dropdownId, mode, provider, configs); + _dropdownItemsMap.set(dropdownId, _dropdownItem); + return _dropdownItem; + } + DropdownAPI.Create = Create; + function Disable(dropdownId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Dropdown.FailDisable, + callback: () => { + const _dropdownItem = GetDropdownById(dropdownId); + _dropdownItem.disable(); + }, + }); + return result; + } + DropdownAPI.Disable = Disable; + function TogglePopup(dropdownId, isEnabled) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Dropdown.FailTogglePopup, + callback: () => { + const _dropdownItem = GetDropdownById(dropdownId); + _dropdownItem.togglePopup(isEnabled); + }, + }); + return result; + } + DropdownAPI.TogglePopup = TogglePopup; + function Dispose(dropdownId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Dropdown.FailDispose, + callback: () => { + const _dropdownItem = GetDropdownById(dropdownId); + _dropdownItem.dispose(); + _dropdownItemsMap.delete(_dropdownItem.uniqueId); + }, + }); + return result; + } + DropdownAPI.Dispose = Dispose; + function Enable(dropdownId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Dropdown.FailEnable, + callback: () => { + const _dropdownItem = GetDropdownById(dropdownId); + _dropdownItem.enable(); + }, + }); + return result; + } + DropdownAPI.Enable = Enable; + function GetAllDropdowns() { + return OSFramework.OSUI.Helper.MapOperation.ExportKeys(_dropdownItemsMap); + } + DropdownAPI.GetAllDropdowns = GetAllDropdowns; + function GetDropdownById(dropdownId) { + return OSFramework.OSUI.Helper.MapOperation.FindInMap(OSFramework.OSUI.GlobalEnum.PatternName.Dropdown, dropdownId, _dropdownItemsMap); + } + DropdownAPI.GetDropdownById = GetDropdownById; + function GetSelectedValues(dropdownId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Dropdown.FailGetSelectedValues, + hasValue: true, + callback: () => { + const _dropdownItem = GetDropdownById(dropdownId); + return _dropdownItem.getSelectedValues(); + }, + }); + return result; + } + DropdownAPI.GetSelectedValues = GetSelectedValues; + function Open(dropdownId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Dropdown.FailOpen, + callback: () => { + const _dropdownItem = GetDropdownById(dropdownId); + _dropdownItem.open(); + }, + }); + return result; + } + DropdownAPI.Open = Open; + function Initialize(dropdownId) { + const _dropdownItem = GetDropdownById(dropdownId); + _dropdownItem.build(); + return _dropdownItem; + } + DropdownAPI.Initialize = Initialize; + function RegisterCallback(dropdownId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Dropdown.FailRegisterCallback, + callback: () => { + const _dropdownItem = this.GetDropdownById(dropdownId); + _dropdownItem.registerCallback(eventName, callback); + }, + }); + return result; + } + DropdownAPI.RegisterCallback = RegisterCallback; + function SetProviderConfigs(dropdownId, providerConfigs) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Dropdown.FailRegisterProviderConfig, + callback: () => { + const _dropdownItem = GetDropdownById(dropdownId); + if (_dropdownItem['provider'] !== undefined) { + _dropdownItem.setProviderConfigs(providerConfigs); + } + else { + throw new Error(`Dropdown with Id:${dropdownId} does not have a provider.`); + } + }, + }); + return result; + } + DropdownAPI.SetProviderConfigs = SetProviderConfigs; + function SetProviderEvent(dropdownId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Dropdown.FailRegisterProviderEvent, + hasValue: true, + callback: () => { + const _eventUniqueId = OSFramework.OSUI.Helper.Dom.GenerateUniqueId(); + const dropdown = GetDropdownById(dropdownId); + dropdown.setProviderEvent(eventName, callback, _eventUniqueId); + return _eventUniqueId; + }, + }); + return result; + } + DropdownAPI.SetProviderEvent = SetProviderEvent; + function UnsetProviderEvent(dropdownId, eventId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Dropdown.FailRemoveProviderEvent, + callback: () => { + const dropdown = GetDropdownById(dropdownId); + dropdown.unsetProviderEvent(eventId); + }, + }); + return result; + } + DropdownAPI.UnsetProviderEvent = UnsetProviderEvent; + function SetValidation(dropdownId, isValid, validationMessage) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Dropdown.FailSetValidation, + callback: () => { + const _dropdownItem = GetDropdownById(dropdownId); + _dropdownItem.validation(isValid, validationMessage); + }, + }); + return result; + } + DropdownAPI.SetValidation = SetValidation; + function SetValues(dropdownId, selectedValues, silentOnChangedEvent = true) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Dropdown.FailSetValues, + callback: () => { + const _dropdownItem = GetDropdownById(dropdownId); + _dropdownItem.setValue(JSON.parse(selectedValues), silentOnChangedEvent); + }, + }); + return result; + } + DropdownAPI.SetValues = SetValues; + })(DropdownAPI = Patterns.DropdownAPI || (Patterns.DropdownAPI = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var DropdownServerSideItemAPI; + (function (DropdownServerSideItemAPI) { + const _dropdownServerSideItemItemsMap = new Map(); + function ChangeProperty(dropdownServerSideItemId, propertyName, propertyValue) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.DropdownServerSideItem.FailChangeProperty, + callback: () => { + const _dropdownServerSideItemItem = GetDropdownServerSideItemItemById(dropdownServerSideItemId); + _dropdownServerSideItemItem.changeProperty(propertyName, propertyValue); + }, + }); + return result; + } + DropdownServerSideItemAPI.ChangeProperty = ChangeProperty; + function Create(dropdownServerSideItemId, configs) { + if (_dropdownServerSideItemItemsMap.has(dropdownServerSideItemId)) { + throw new Error(`There is already a ${OSFramework.OSUI.GlobalEnum.PatternName.DropdownServerSideItem} registered under id: ${dropdownServerSideItemId}`); + } + const _dropdownServerSideItemItem = new OSFramework.OSUI.Patterns.DropdownServerSideItem.DropdownServerSideItem(dropdownServerSideItemId, JSON.parse(configs)); + _dropdownServerSideItemItemsMap.set(dropdownServerSideItemId, _dropdownServerSideItemItem); + return _dropdownServerSideItemItem; + } + DropdownServerSideItemAPI.Create = Create; + function Dispose(dropdownServerSideItemId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.DropdownServerSideItem.FailDispose, + callback: () => { + const _dropdownServerSideItemItem = GetDropdownServerSideItemItemById(dropdownServerSideItemId); + _dropdownServerSideItemItem.dispose(); + _dropdownServerSideItemItemsMap.delete(_dropdownServerSideItemItem.uniqueId); + }, + }); + return result; + } + DropdownServerSideItemAPI.Dispose = Dispose; + function GetAllDropdownServerSideItemItemsMap() { + return OSFramework.OSUI.Helper.MapOperation.ExportKeys(_dropdownServerSideItemItemsMap); + } + DropdownServerSideItemAPI.GetAllDropdownServerSideItemItemsMap = GetAllDropdownServerSideItemItemsMap; + function GetDropdownServerSideItemItemById(dropdownServerSideItemId) { + return OSFramework.OSUI.Helper.MapOperation.FindInMap('DropdownServerSideItem', dropdownServerSideItemId, _dropdownServerSideItemItemsMap); + } + DropdownServerSideItemAPI.GetDropdownServerSideItemItemById = GetDropdownServerSideItemItemById; + function Initialize(dropdownServerSideItemId) { + const _dropdownServerSideItemItem = GetDropdownServerSideItemItemById(dropdownServerSideItemId); + _dropdownServerSideItemItem.build(); + return _dropdownServerSideItemItem; + } + DropdownServerSideItemAPI.Initialize = Initialize; + function RegisterCallback(dropdownServerSideItemId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.DropdownServerSideItem.FailRegisterCallback, + callback: () => { + const _dropdownServerSideItemItem = this.GetDropdownServerSideItemItemById(dropdownServerSideItemId); + _dropdownServerSideItemItem.registerCallback(eventName, callback); + }, + }); + return result; + } + DropdownServerSideItemAPI.RegisterCallback = RegisterCallback; + })(DropdownServerSideItemAPI = Patterns.DropdownServerSideItemAPI || (Patterns.DropdownServerSideItemAPI = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var FlipContentAPI; + (function (FlipContentAPI) { + const _flipContentMap = new Map(); + function ChangeProperty(flipId, propertyName, propertyValue) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.FlipContent.FailChangeProperty, + callback: () => { + const flipContent = GetFlipContentById(flipId); + flipContent.changeProperty(propertyName, propertyValue); + }, + }); + return result; + } + FlipContentAPI.ChangeProperty = ChangeProperty; + function Create(flipId, configs) { + if (_flipContentMap.has(flipId)) { + throw new Error(`There is already a ${OSFramework.OSUI.GlobalEnum.PatternName.FlipContent} registered under id: ${flipId}`); + } + const _newFlip = new OSFramework.OSUI.Patterns.FlipContent.FlipContent(flipId, JSON.parse(configs)); + _flipContentMap.set(flipId, _newFlip); + return _newFlip; + } + FlipContentAPI.Create = Create; + function Dispose(flipId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.FlipContent.FailDispose, + callback: () => { + const flipContent = GetFlipContentById(flipId); + flipContent.dispose(); + _flipContentMap.delete(flipContent.uniqueId); + }, + }); + return result; + } + FlipContentAPI.Dispose = Dispose; + function GetAllFlipContent() { + return OSFramework.OSUI.Helper.MapOperation.ExportKeys(_flipContentMap); + } + FlipContentAPI.GetAllFlipContent = GetAllFlipContent; + function GetFlipContentById(flipId) { + return OSFramework.OSUI.Helper.MapOperation.FindInMap('FlipContent', flipId, _flipContentMap); + } + FlipContentAPI.GetFlipContentById = GetFlipContentById; + function Initialize(flipId) { + const flipContent = GetFlipContentById(flipId); + flipContent.build(); + return flipContent; + } + FlipContentAPI.Initialize = Initialize; + function RegisterCallback(flipId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.FlipContent.FailRegisterCallback, + callback: () => { + const flipContent = GetFlipContentById(flipId); + flipContent.registerCallback(eventName, callback); + }, + }); + return result; + } + FlipContentAPI.RegisterCallback = RegisterCallback; + function ShowBackContent(flipId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.FlipContent.FailShowBack, + callback: () => { + const flipContent = GetFlipContentById(flipId); + flipContent.showBackContent(); + }, + }); + return result; + } + FlipContentAPI.ShowBackContent = ShowBackContent; + function ShowFrontContent(flipId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.FlipContent.FailShowFront, + callback: () => { + const flipContent = GetFlipContentById(flipId); + flipContent.showFrontContent(); + }, + }); + return result; + } + FlipContentAPI.ShowFrontContent = ShowFrontContent; + function ToggleFlipContent(flipId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.FlipContent.FailToggle, + callback: () => { + const flipContent = GetFlipContentById(flipId); + flipContent.toggleFlipContent(); + }, + }); + return result; + } + FlipContentAPI.ToggleFlipContent = ToggleFlipContent; + })(FlipContentAPI = Patterns.FlipContentAPI || (Patterns.FlipContentAPI = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var GalleryAPI; + (function (GalleryAPI) { + const _galleryMap = new Map(); + function ChangeProperty(galleryId, propertyName, propertyValue) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Gallery.FailChangeProperty, + callback: () => { + const gallery = GetGalleryById(galleryId); + gallery.changeProperty(propertyName, propertyValue); + }, + }); + return result; + } + GalleryAPI.ChangeProperty = ChangeProperty; + function Create(galleryId, configs) { + if (_galleryMap.has(galleryId)) { + throw new Error(`There is already a ${OSFramework.OSUI.GlobalEnum.PatternName.Gallery} registered under id: ${galleryId}`); + } + const _newGallery = new OSFramework.OSUI.Patterns.Gallery.Gallery(galleryId, JSON.parse(configs)); + _galleryMap.set(galleryId, _newGallery); + return _newGallery; + } + GalleryAPI.Create = Create; + function Dispose(galleryId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Gallery.FailDispose, + callback: () => { + const gallery = GetGalleryById(galleryId); + gallery.dispose(); + _galleryMap.delete(galleryId); + }, + }); + return result; + } + GalleryAPI.Dispose = Dispose; + function GetAllGalleries() { + return OSFramework.OSUI.Helper.MapOperation.ExportKeys(_galleryMap); + } + GalleryAPI.GetAllGalleries = GetAllGalleries; + function GetGalleryById(galleryId) { + return OSFramework.OSUI.Helper.MapOperation.FindInMap('Gallery', galleryId, _galleryMap); + } + GalleryAPI.GetGalleryById = GetGalleryById; + function Initialize(galleryId) { + const gallery = GetGalleryById(galleryId); + gallery.build(); + return gallery; + } + GalleryAPI.Initialize = Initialize; + function RegisterCallback(dropdownId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Gallery.FailRegisterCallback, + callback: () => { + const gallery = this.GetGalleryById(dropdownId); + gallery.registerCallback(eventName, callback); + }, + }); + return result; + } + GalleryAPI.RegisterCallback = RegisterCallback; + })(GalleryAPI = Patterns.GalleryAPI || (Patterns.GalleryAPI = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var InlineSvgAPI; + (function (InlineSvgAPI) { + const _inlineSvgMap = new Map(); + function ChangeProperty(inlineSvgId, propertyName, propertyValue) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.InlineSvg.FailChangeProperty, + callback: () => { + const inlineSvg = GetInlineSvgById(inlineSvgId); + inlineSvg.changeProperty(propertyName, propertyValue); + }, + }); + return result; + } + InlineSvgAPI.ChangeProperty = ChangeProperty; + function Create(inlineSvgId, configs) { + if (_inlineSvgMap.has(inlineSvgId)) { + throw new Error(`There is already a ${OSFramework.OSUI.GlobalEnum.PatternName.InlineSvg} registered under id: ${inlineSvgId}`); + } + const _newInlineSvg = new OSFramework.OSUI.Patterns.InlineSvg.InlineSvg(inlineSvgId, JSON.parse(configs)); + _inlineSvgMap.set(inlineSvgId, _newInlineSvg); + return _newInlineSvg; + } + InlineSvgAPI.Create = Create; + function Dispose(inlineSvgId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.InlineSvg.FailDispose, + callback: () => { + const inlineSvg = GetInlineSvgById(inlineSvgId); + inlineSvg.dispose(); + _inlineSvgMap.delete(inlineSvgId); + }, + }); + return result; + } + InlineSvgAPI.Dispose = Dispose; + function GetAllInlineSvgs() { + return OSFramework.OSUI.Helper.MapOperation.ExportKeys(_inlineSvgMap); + } + InlineSvgAPI.GetAllInlineSvgs = GetAllInlineSvgs; + function GetInlineSvgById(inlineSvgId) { + return OSFramework.OSUI.Helper.MapOperation.FindInMap('InlineSvg', inlineSvgId, _inlineSvgMap); + } + InlineSvgAPI.GetInlineSvgById = GetInlineSvgById; + function Initialize(inlineSvgId) { + const inlineSvg = GetInlineSvgById(inlineSvgId); + inlineSvg.build(); + return inlineSvg; + } + InlineSvgAPI.Initialize = Initialize; + function RegisterCallback(inlineSvgId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.InlineSvg.FailRegisterCallback, + callback: () => { + const _InlineSvgItem = this.GetInlineSvgById(inlineSvgId); + _InlineSvgItem.registerCallback(eventName, callback); + }, + }); + return result; + } + InlineSvgAPI.RegisterCallback = RegisterCallback; + })(InlineSvgAPI = Patterns.InlineSvgAPI || (Patterns.InlineSvgAPI = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var MonthPickerAPI; + (function (MonthPickerAPI) { + const _monthPickerItemsMap = new Map(); + function ChangeProperty(monthPickerId, propertyName, propertyValue) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.MonthPicker.FailChangeProperty, + callback: () => { + const _monthPickerItem = GetMonthPickerItemById(monthPickerId); + _monthPickerItem.changeProperty(propertyName, propertyValue); + }, + }); + return result; + } + MonthPickerAPI.ChangeProperty = ChangeProperty; + function Clear(monthPickerId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.MonthPicker.FailClear, + callback: () => { + const _MonthPickerItem = GetMonthPickerItemById(monthPickerId); + _MonthPickerItem.clear(); + }, + }); + return result; + } + MonthPickerAPI.Clear = Clear; + function Close(monthPickerId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.MonthPicker.FailClose, + callback: () => { + const _MonthPickerItem = GetMonthPickerItemById(monthPickerId); + _MonthPickerItem.close(); + }, + }); + return result; + } + MonthPickerAPI.Close = Close; + function Create(monthPickerId, configs, provider) { + if (_monthPickerItemsMap.has(monthPickerId)) { + throw new Error('There is already an MonthPicker registered under id: ' + monthPickerId); + } + const _monthPickerItem = OSFramework.OSUI.Patterns.MonthPicker.Factory.NewMonthPicker(monthPickerId, provider, configs); + _monthPickerItemsMap.set(monthPickerId, _monthPickerItem); + return _monthPickerItem; + } + MonthPickerAPI.Create = Create; + function Dispose(monthPickerId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.MonthPicker.FailDispose, + callback: () => { + const _monthPickerItem = GetMonthPickerItemById(monthPickerId); + _monthPickerItem.dispose(); + _monthPickerItemsMap.delete(_monthPickerItem.uniqueId); + }, + }); + return result; + } + MonthPickerAPI.Dispose = Dispose; + function GetAllMonthPickerItemsMap() { + return OSFramework.OSUI.Helper.MapOperation.ExportKeys(_monthPickerItemsMap); + } + MonthPickerAPI.GetAllMonthPickerItemsMap = GetAllMonthPickerItemsMap; + function GetMonthPickerItemById(monthPickerId) { + return OSFramework.OSUI.Helper.MapOperation.FindInMap('MonthPicker', monthPickerId, _monthPickerItemsMap); + } + MonthPickerAPI.GetMonthPickerItemById = GetMonthPickerItemById; + function Initialize(monthPickerId) { + const _monthPickerItem = GetMonthPickerItemById(monthPickerId); + _monthPickerItem.build(); + return _monthPickerItem; + } + MonthPickerAPI.Initialize = Initialize; + function Open(monthPickerId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.MonthPicker.FailOpen, + callback: () => { + const _MonthPickerItem = GetMonthPickerItemById(monthPickerId); + _MonthPickerItem.open(); + }, + }); + return result; + } + MonthPickerAPI.Open = Open; + function RegisterCallback(monthPickerId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.MonthPicker.FailRegisterCallback, + callback: () => { + const _monthPicker = this.GetMonthPickerItemById(monthPickerId); + _monthPicker.registerCallback(eventName, callback); + }, + }); + return result; + } + MonthPickerAPI.RegisterCallback = RegisterCallback; + function SetProviderConfigs(monthPickerId, providerConfigs) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.MonthPicker.FailRegisterProviderConfig, + callback: () => { + const monthPicker = GetMonthPickerItemById(monthPickerId); + monthPicker.setProviderConfigs(providerConfigs); + }, + }); + return result; + } + MonthPickerAPI.SetProviderConfigs = SetProviderConfigs; + function SetProviderEvent(monthPickerId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.MonthPicker.FailRegisterProviderEvent, + hasValue: true, + callback: () => { + const _eventUniqueId = OSFramework.OSUI.Helper.Dom.GenerateUniqueId(); + const monthPicker = GetMonthPickerItemById(monthPickerId); + monthPicker.setProviderEvent(eventName, callback, _eventUniqueId); + return _eventUniqueId; + }, + }); + return result; + } + MonthPickerAPI.SetProviderEvent = SetProviderEvent; + function SetLanguage(monthPickerId, isoCode) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.MonthPicker.FailSetLanguage, + callback: () => { + const _monthPicker = this.GetMonthPickerItemById(monthPickerId); + _monthPicker.setLanguage(isoCode); + }, + }); + return result; + } + MonthPickerAPI.SetLanguage = SetLanguage; + function SetEditableInput(monthPickerId, IsEditable) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.MonthPicker.FailSetEditableInput, + callback: () => { + const _monthPicker = this.GetMonthPickerItemById(monthPickerId); + _monthPicker.setEditableInput(IsEditable); + }, + }); + return result; + } + MonthPickerAPI.SetEditableInput = SetEditableInput; + function UnsetProviderEvent(monthPickerId, eventId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.MonthPicker.FailRemoveProviderEvent, + callback: () => { + const monthPicker = GetMonthPickerItemById(monthPickerId); + monthPicker.unsetProviderEvent(eventId); + }, + }); + return result; + } + MonthPickerAPI.UnsetProviderEvent = UnsetProviderEvent; + function UpdateInitialMonth(monthPickerId, monthYear) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.MonthPicker.FailUpdateInitialMonth, + callback: () => { + const _monthPicker = this.GetMonthPickerItemById(monthPickerId); + _monthPicker.updateInitialMonth(monthYear); + }, + }); + return result; + } + MonthPickerAPI.UpdateInitialMonth = UpdateInitialMonth; + function UpdatePrompt(monthPickerId, promptMessage) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.MonthPicker.FailUpdatePrompt, + callback: () => { + const _monthPicker = this.GetMonthPickerItemById(monthPickerId); + _monthPicker.updatePrompt(promptMessage); + }, + }); + return result; + } + MonthPickerAPI.UpdatePrompt = UpdatePrompt; + })(MonthPickerAPI = Patterns.MonthPickerAPI || (Patterns.MonthPickerAPI = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var NotificationAPI; + (function (NotificationAPI) { + const _notificationMap = new Map(); + function ChangeProperty(notificationId, propertyName, propertyValue) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Notification.FailChangeProperty, + callback: () => { + const notification = GetNotificationById(notificationId); + notification.changeProperty(propertyName, propertyValue); + }, + }); + return result; + } + NotificationAPI.ChangeProperty = ChangeProperty; + function Create(notificationId, configs) { + if (_notificationMap.has(notificationId)) { + throw new Error(`There is already a ${OSFramework.OSUI.GlobalEnum.PatternName.Notification} registered under id: ${notificationId}`); + } + const _newNotification = new OSFramework.OSUI.Patterns.Notification.Notification(notificationId, JSON.parse(configs)); + _notificationMap.set(notificationId, _newNotification); + return _newNotification; + } + NotificationAPI.Create = Create; + function Dispose(notificationId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Notification.FailDispose, + callback: () => { + const notification = GetNotificationById(notificationId); + notification.dispose(); + _notificationMap.delete(notificationId); + }, + }); + return result; + } + NotificationAPI.Dispose = Dispose; + function GetAllNotifications() { + return OSFramework.OSUI.Helper.MapOperation.ExportKeys(_notificationMap); + } + NotificationAPI.GetAllNotifications = GetAllNotifications; + function GetNotificationById(notificationId) { + return OSFramework.OSUI.Helper.MapOperation.FindInMap('Notification', notificationId, _notificationMap); + } + NotificationAPI.GetNotificationById = GetNotificationById; + function Hide(notificationId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Notification.FailHide, + callback: () => { + const notification = GetNotificationById(notificationId); + notification.hide(); + }, + }); + return result; + } + NotificationAPI.Hide = Hide; + function Initialize(notificationId) { + const notification = GetNotificationById(notificationId); + notification.build(); + return notification; + } + NotificationAPI.Initialize = Initialize; + function RegisterCallback(notificationId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Notification.FailRegisterCallback, + callback: () => { + const _notificationItem = this.GetNotificationById(notificationId); + _notificationItem.registerCallback(eventName, callback); + }, + }); + return result; + } + NotificationAPI.RegisterCallback = RegisterCallback; + function Show(notificationId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Notification.FailShow, + callback: () => { + const notification = GetNotificationById(notificationId); + notification.show(); + }, + }); + return result; + } + NotificationAPI.Show = Show; + })(NotificationAPI = Patterns.NotificationAPI || (Patterns.NotificationAPI = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var OverflowMenuAPI; + (function (OverflowMenuAPI) { + const _overflowMenuMap = new Map(); + function ChangeProperty(overflowMenuId, propertyName, propertyValue) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.OverflowMenu.FailChangeProperty, + callback: () => { + const overflowMenu = GetOverflowMenuById(overflowMenuId); + overflowMenu.changeProperty(propertyName, propertyValue); + }, + }); + return result; + } + OverflowMenuAPI.ChangeProperty = ChangeProperty; + function Create(overflowMenuId, configs) { + if (_overflowMenuMap.has(overflowMenuId)) { + throw new Error(`There is already a ${OSFramework.OSUI.GlobalEnum.PatternName.OverflowMenu} registered under id: ${overflowMenuId}`); + } + const _overflowMenuItem = new OSFramework.OSUI.Patterns.OverflowMenu.OverflowMenu(overflowMenuId, JSON.parse(configs)); + _overflowMenuMap.set(overflowMenuId, _overflowMenuItem); + return _overflowMenuItem; + } + OverflowMenuAPI.Create = Create; + function Disable(overflowMenuId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.OverflowMenu.FailDisable, + callback: () => { + const _overflowMenu = GetOverflowMenuById(overflowMenuId); + _overflowMenu.disable(); + }, + }); + return result; + } + OverflowMenuAPI.Disable = Disable; + function Dispose(overflowMenuId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.OverflowMenu.FailDispose, + callback: () => { + const _overflowMenu = GetOverflowMenuById(overflowMenuId); + _overflowMenu.dispose(); + _overflowMenuMap.delete(_overflowMenu.uniqueId); + }, + }); + return result; + } + OverflowMenuAPI.Dispose = Dispose; + function Enable(overflowMenuId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.OverflowMenu.FailEnable, + callback: () => { + const _overflowMenu = GetOverflowMenuById(overflowMenuId); + _overflowMenu.enable(); + }, + }); + return result; + } + OverflowMenuAPI.Enable = Enable; + function GetAllOverflowMenus() { + return OSFramework.OSUI.Helper.MapOperation.ExportKeys(_overflowMenuMap); + } + OverflowMenuAPI.GetAllOverflowMenus = GetAllOverflowMenus; + function GetOverflowMenuById(overflowMenuId) { + return OSFramework.OSUI.Helper.MapOperation.FindInMap(OSFramework.OSUI.GlobalEnum.PatternName.OverflowMenu, overflowMenuId, _overflowMenuMap); + } + OverflowMenuAPI.GetOverflowMenuById = GetOverflowMenuById; + function Initialize(overflowMenuId) { + const _overflowMenu = GetOverflowMenuById(overflowMenuId); + _overflowMenu.build(); + return _overflowMenu; + } + OverflowMenuAPI.Initialize = Initialize; + function RegisterCallback(overflowMenuId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.OverflowMenu.FailRegisterCallback, + callback: () => { + const _overflowMenu = GetOverflowMenuById(overflowMenuId); + _overflowMenu.registerCallback(eventName, callback); + }, + }); + return result; + } + OverflowMenuAPI.RegisterCallback = RegisterCallback; + function Open(overflowMenuId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.OverflowMenu.FailOpen, + callback: () => { + const _overflowMenuItem = GetOverflowMenuById(overflowMenuId); + _overflowMenuItem.open(true); + }, + }); + return result; + } + OverflowMenuAPI.Open = Open; + function Close(overflowMenuId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.OverflowMenu.FailClose, + callback: () => { + const _overflowMenuItem = GetOverflowMenuById(overflowMenuId); + _overflowMenuItem.close(); + }, + }); + return result; + } + OverflowMenuAPI.Close = Close; + })(OverflowMenuAPI = Patterns.OverflowMenuAPI || (Patterns.OverflowMenuAPI = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var ProgressAPI; + (function (ProgressAPI) { + const _progressItemsMap = new Map(); + function ChangeProperty(progressId, propertyName, propertyValue) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Progress.FailChangeProperty, + callback: () => { + const _progressItem = GetProgressItemById(progressId); + _progressItem.changeProperty(propertyName, propertyValue); + }, + }); + return result; + } + ProgressAPI.ChangeProperty = ChangeProperty; + function Create(progressId, type, configs) { + if (_progressItemsMap.has(progressId)) { + throw new Error(`There is already an ProgressItem registered under id: ${progressId}`); + } + const _progressItem = OSFramework.OSUI.Patterns.Progress.Factory.NewProgress(progressId, type, configs); + _progressItemsMap.set(progressId, _progressItem); + return _progressItem; + } + ProgressAPI.Create = Create; + function Dispose(progressId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Progress.FailDispose, + callback: () => { + const _progressItem = GetProgressItemById(progressId); + _progressItem.dispose(); + _progressItemsMap.delete(_progressItem.uniqueId); + }, + }); + return result; + } + ProgressAPI.Dispose = Dispose; + function GetAllProgressItemsMap() { + return OSFramework.OSUI.Helper.MapOperation.ExportKeys(_progressItemsMap); + } + ProgressAPI.GetAllProgressItemsMap = GetAllProgressItemsMap; + function GetProgressItemById(progressId) { + return OSFramework.OSUI.Helper.MapOperation.FindInMap('Progress', progressId, _progressItemsMap); + } + ProgressAPI.GetProgressItemById = GetProgressItemById; + function Initialize(progressId) { + const _progressItem = GetProgressItemById(progressId); + _progressItem.build(); + return _progressItem; + } + ProgressAPI.Initialize = Initialize; + function RegisterCallback(dropdownId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Progress.FailRegisterCallback, + callback: () => { + const _progressItem = this.GetProgressItemById(dropdownId); + _progressItem.registerCallback(eventName, callback); + }, + }); + return result; + } + ProgressAPI.RegisterCallback = RegisterCallback; + function ResetProgressValue(progressId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Progress.FailProgressReset, + callback: () => { + const _progressItem = GetProgressItemById(progressId); + _progressItem.resetProgressValue(); + }, + }); + return result; + } + ProgressAPI.ResetProgressValue = ResetProgressValue; + function SetProgressValue(progressId, progress) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Progress.FailProgressValue, + callback: () => { + const _progressItem = GetProgressItemById(progressId); + _progressItem.setProgressValue(progress); + }, + }); + return result; + } + ProgressAPI.SetProgressValue = SetProgressValue; + function ProgressApplyGradient(progressId, gradientType, colors) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Progress.FailtProgressGradient, + callback: () => { + const _progressItem = GetProgressItemById(progressId); + _progressItem.progressApplyGradient(gradientType, JSON.parse(colors)); + }, + }); + return result; + } + ProgressAPI.ProgressApplyGradient = ProgressApplyGradient; + })(ProgressAPI = Patterns.ProgressAPI || (Patterns.ProgressAPI = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var RangeSliderAPI; + (function (RangeSliderAPI) { + const _rangeSliderItemsMap = new Map(); + function ChangeProperty(rangeSliderId, propertyName, propertyValue) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.RangeSlider.FailChangeProperty, + callback: () => { + const _rangeSliderItem = GetRangeSliderItemById(rangeSliderId); + _rangeSliderItem.changeProperty(propertyName, propertyValue); + }, + }); + return result; + } + RangeSliderAPI.ChangeProperty = ChangeProperty; + function Create(rangeSliderId, configs, mode, provider) { + if (_rangeSliderItemsMap.has(rangeSliderId)) { + throw new Error(`There is already an ${OSFramework.OSUI.GlobalEnum.PatternName.RangeSlider} registered under id: ${rangeSliderId}`); + } + const _rangeSliderItem = OSFramework.OSUI.Patterns.RangeSlider.Factory.NewRangeSlider(rangeSliderId, configs, mode, provider); + _rangeSliderItemsMap.set(rangeSliderId, _rangeSliderItem); + return _rangeSliderItem; + } + RangeSliderAPI.Create = Create; + function Disable(rangeSliderId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.RangeSlider.FailDisable, + callback: () => { + const rangeSlider = this.GetRangeSliderItemById(rangeSliderId); + rangeSlider.disable(); + }, + }); + return result; + } + RangeSliderAPI.Disable = Disable; + function Dispose(rangeSliderId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.RangeSlider.FailDispose, + callback: () => { + const _rangeSliderItem = GetRangeSliderItemById(rangeSliderId); + _rangeSliderItem.dispose(); + _rangeSliderItemsMap.delete(_rangeSliderItem.uniqueId); + }, + }); + return result; + } + RangeSliderAPI.Dispose = Dispose; + function Enable(rangeSliderId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.RangeSlider.FailEnable, + callback: () => { + const rangeSlider = this.GetRangeSliderItemById(rangeSliderId); + rangeSlider.enable(); + }, + }); + return result; + } + RangeSliderAPI.Enable = Enable; + function GetAllRangeSliderItemsMap() { + return OSFramework.OSUI.Helper.MapOperation.ExportKeys(_rangeSliderItemsMap); + } + RangeSliderAPI.GetAllRangeSliderItemsMap = GetAllRangeSliderItemsMap; + function GetRangeSliderItemById(rangeSliderId) { + return OSFramework.OSUI.Helper.MapOperation.FindInMap(OSFramework.OSUI.GlobalEnum.PatternName.RangeSlider, rangeSliderId, _rangeSliderItemsMap); + } + RangeSliderAPI.GetRangeSliderItemById = GetRangeSliderItemById; + function Initialize(rangeSliderId) { + const _rangeSliderItem = GetRangeSliderItemById(rangeSliderId); + _rangeSliderItem.build(); + return _rangeSliderItem; + } + RangeSliderAPI.Initialize = Initialize; + function RegisterCallback(rangeSliderId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.RangeSlider.FailRegisterCallback, + callback: () => { + const rangeSlider = this.GetRangeSliderItemById(rangeSliderId); + rangeSlider.registerCallback(eventName, callback); + }, + }); + return result; + } + RangeSliderAPI.RegisterCallback = RegisterCallback; + function SetRangeIntervalChangeOnDragEnd(rangeSliderId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.RangeSlider.FailOnDragEnd, + callback: () => { + const rangeSlider = this.GetRangeSliderItemById(rangeSliderId); + rangeSlider.setRangeIntervalChangeOnDragEnd(); + }, + }); + return result; + } + RangeSliderAPI.SetRangeIntervalChangeOnDragEnd = SetRangeIntervalChangeOnDragEnd; + function SetRangeSliderValue(rangeSliderId, valueFrom, valueTo) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.RangeSlider.FailSetValues, + callback: () => { + const rangeSlider = this.GetRangeSliderItemById(rangeSliderId); + rangeSlider.setValue(valueFrom, valueTo); + }, + }); + return result; + } + RangeSliderAPI.SetRangeSliderValue = SetRangeSliderValue; + function ResetRangeSliderValue(rangeSliderId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.RangeSlider.FailResetValues, + callback: () => { + const rangeSlider = this.GetRangeSliderItemById(rangeSliderId); + rangeSlider.resetValue(); + }, + }); + return result; + } + RangeSliderAPI.ResetRangeSliderValue = ResetRangeSliderValue; + function SetProviderConfigs(rangeSliderId, configs) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.RangeSlider.FailRegisterProviderConfig, + callback: () => { + const rangeSlider = GetRangeSliderItemById(rangeSliderId); + rangeSlider.setProviderConfigs(configs); + }, + }); + return result; + } + RangeSliderAPI.SetProviderConfigs = SetProviderConfigs; + function SetProviderEvent(rangeSliderId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.RangeSlider.FailRegisterProviderEvent, + hasValue: true, + callback: () => { + const _eventUniqueId = OSFramework.OSUI.Helper.Dom.GenerateUniqueId(); + const rangeSlider = GetRangeSliderItemById(rangeSliderId); + rangeSlider.setProviderEvent(eventName, callback, _eventUniqueId); + return _eventUniqueId; + }, + }); + return result; + } + RangeSliderAPI.SetProviderEvent = SetProviderEvent; + function UnsetProviderEvent(rangeSliderId, eventId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.RangeSlider.FailRemoveProviderEvent, + callback: () => { + const rangeSlider = GetRangeSliderItemById(rangeSliderId); + rangeSlider.unsetProviderEvent(eventId); + }, + }); + return result; + } + RangeSliderAPI.UnsetProviderEvent = UnsetProviderEvent; + })(RangeSliderAPI = Patterns.RangeSliderAPI || (Patterns.RangeSliderAPI = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var RatingAPI; + (function (RatingAPI) { + const _ratingsMap = new Map(); + function ChangeProperty(ratingId, propertyName, propertyValue) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Rating.FailChangeProperty, + callback: () => { + const rating = GetRatingById(ratingId); + rating.changeProperty(propertyName, propertyValue); + }, + }); + return result; + } + RatingAPI.ChangeProperty = ChangeProperty; + function Create(ratingId, configs) { + if (_ratingsMap.has(ratingId)) { + throw new Error(`There is already a ${OSFramework.OSUI.GlobalEnum.PatternName.Rating} registered under id: ${ratingId}`); + } + const _newRating = new OSFramework.OSUI.Patterns.Rating.Rating(ratingId, JSON.parse(configs)); + _ratingsMap.set(ratingId, _newRating); + return _newRating; + } + RatingAPI.Create = Create; + function Dispose(ratingId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Rating.FailDispose, + callback: () => { + const rating = GetRatingById(ratingId); + rating.dispose(); + _ratingsMap.delete(ratingId); + }, + }); + return result; + } + RatingAPI.Dispose = Dispose; + function GetAllRatings() { + return OSFramework.OSUI.Helper.MapOperation.ExportKeys(_ratingsMap); + } + RatingAPI.GetAllRatings = GetAllRatings; + function GetRatingById(ratingId) { + return OSFramework.OSUI.Helper.MapOperation.FindInMap('Rating', ratingId, _ratingsMap); + } + RatingAPI.GetRatingById = GetRatingById; + function Initialize(ratingId) { + const rating = GetRatingById(ratingId); + rating.build(); + return rating; + } + RatingAPI.Initialize = Initialize; + function RegisterCallback(ratingId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Rating.FailRegisterCallback, + callback: () => { + const rating = GetRatingById(ratingId); + rating.registerCallback(eventName, callback); + }, + }); + return result; + } + RatingAPI.RegisterCallback = RegisterCallback; + })(RatingAPI = Patterns.RatingAPI || (Patterns.RatingAPI = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var SearchAPI; + (function (SearchAPI) { + const _searchMap = new Map(); + function ChangeProperty(searchId, propertyName, propertyValue) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Search.FailChangeProperty, + callback: () => { + const search = GetSearchById(searchId); + search.changeProperty(propertyName, propertyValue); + }, + }); + return result; + } + SearchAPI.ChangeProperty = ChangeProperty; + function Create(searchId, configs) { + if (_searchMap.has(searchId)) { + throw new Error(`There is already a ${OSFramework.OSUI.GlobalEnum.PatternName.Search} registered under id: ${searchId}`); + } + const _newSearch = new OSFramework.OSUI.Patterns.Search.Search(searchId, JSON.parse(configs)); + _searchMap.set(searchId, _newSearch); + return _newSearch; + } + SearchAPI.Create = Create; + function Dispose(searchId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Search.FailDispose, + callback: () => { + const search = GetSearchById(searchId); + search.dispose(); + _searchMap.delete(searchId); + }, + }); + return result; + } + SearchAPI.Dispose = Dispose; + function GetAllSearches() { + return OSFramework.OSUI.Helper.MapOperation.ExportKeys(_searchMap); + } + SearchAPI.GetAllSearches = GetAllSearches; + function GetSearchById(searchId) { + return OSFramework.OSUI.Helper.MapOperation.FindInMap('Search', searchId, _searchMap); + } + SearchAPI.GetSearchById = GetSearchById; + function Initialize(searchId) { + const search = GetSearchById(searchId); + search.build(); + return search; + } + SearchAPI.Initialize = Initialize; + function RegisterCallback(searchId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Search.FailRegisterCallback, + callback: () => { + const _SearchItem = this.GetSearchById(searchId); + _SearchItem.registerCallback(eventName, callback); + }, + }); + return result; + } + SearchAPI.RegisterCallback = RegisterCallback; + })(SearchAPI = Patterns.SearchAPI || (Patterns.SearchAPI = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var SectionIndexAPI; + (function (SectionIndexAPI) { + const _sectionIndexItemsMap = new Map(); + function ChangeProperty(sectionIndexId, propertyName, propertyValue) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.SectionIndex.FailChangeProperty, + callback: () => { + const _sectionIndexItem = GetSectionIndexById(sectionIndexId); + _sectionIndexItem.changeProperty(propertyName, propertyValue); + }, + }); + return result; + } + SectionIndexAPI.ChangeProperty = ChangeProperty; + function Create(sectionIndexId, configs) { + if (_sectionIndexItemsMap.has(sectionIndexId)) { + throw new Error(`There is already an SectionIndex registered under id: ${sectionIndexId}`); + } + const _sectionIndexItem = new OSFramework.OSUI.Patterns.SectionIndex.SectionIndex(sectionIndexId, JSON.parse(configs)); + _sectionIndexItemsMap.set(sectionIndexId, _sectionIndexItem); + return _sectionIndexItem; + } + SectionIndexAPI.Create = Create; + function Dispose(sectionIndexId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.SectionIndex.FailDispose, + callback: () => { + const _sectionIndexItem = GetSectionIndexById(sectionIndexId); + _sectionIndexItem.dispose(); + _sectionIndexItemsMap.delete(_sectionIndexItem.uniqueId); + }, + }); + return result; + } + SectionIndexAPI.Dispose = Dispose; + function GetAllSectionIndexItemsMap() { + return OSFramework.OSUI.Helper.MapOperation.ExportKeys(_sectionIndexItemsMap); + } + SectionIndexAPI.GetAllSectionIndexItemsMap = GetAllSectionIndexItemsMap; + function GetSectionIndexById(sectionIndexId) { + return OSFramework.OSUI.Helper.MapOperation.FindInMap(OSFramework.OSUI.GlobalEnum.PatternName.SectionIndex, sectionIndexId, _sectionIndexItemsMap); + } + SectionIndexAPI.GetSectionIndexById = GetSectionIndexById; + function Initialize(sectionIndexId) { + const _sectionIndexItem = GetSectionIndexById(sectionIndexId); + _sectionIndexItem.build(); + return _sectionIndexItem; + } + SectionIndexAPI.Initialize = Initialize; + function RegisterCallback(sectionIndexId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.SectionIndex.FailRegisterCallback, + callback: () => { + const _sectionIndexItem = GetSectionIndexById(sectionIndexId); + _sectionIndexItem.registerCallback(eventName, callback); + }, + }); + return result; + } + SectionIndexAPI.RegisterCallback = RegisterCallback; + })(SectionIndexAPI = Patterns.SectionIndexAPI || (Patterns.SectionIndexAPI = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var SectionIndexItemAPI; + (function (SectionIndexItemAPI) { + const _sectionIndexItemMap = new Map(); + function ChangeProperty(sectionIndexItemId, propertyName, propertyValue) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.SectionIndexItem.FailChangeProperty, + callback: () => { + const _sectionIndexItem = GetSectionIndexItemById(sectionIndexItemId); + _sectionIndexItem.changeProperty(propertyName, propertyValue); + }, + }); + return result; + } + SectionIndexItemAPI.ChangeProperty = ChangeProperty; + function Create(sectionIndexItemId, configs) { + if (_sectionIndexItemMap.has(sectionIndexItemId)) { + throw new Error(`There is already a SectionIndexItem registered under id: ${sectionIndexItemId}`); + } + const _sectionIndexItem = new OSFramework.OSUI.Patterns.SectionIndexItem.SectionIndexItem(sectionIndexItemId, JSON.parse(configs)); + _sectionIndexItemMap.set(sectionIndexItemId, _sectionIndexItem); + return _sectionIndexItem; + } + SectionIndexItemAPI.Create = Create; + function Dispose(sectionIndexItemId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.SectionIndexItem.FailDispose, + callback: () => { + const _sectionIndexItemItem = GetSectionIndexItemById(sectionIndexItemId); + _sectionIndexItemItem.dispose(); + _sectionIndexItemMap.delete(_sectionIndexItemItem.uniqueId); + }, + }); + return result; + } + SectionIndexItemAPI.Dispose = Dispose; + function GetAllSectionIndexItemItemsMap() { + return OSFramework.OSUI.Helper.MapOperation.ExportKeys(_sectionIndexItemMap); + } + SectionIndexItemAPI.GetAllSectionIndexItemItemsMap = GetAllSectionIndexItemItemsMap; + function GetSectionIndexItemById(sectionIndexItemId) { + return OSFramework.OSUI.Helper.MapOperation.FindInMap('SectionIndexItem', sectionIndexItemId, _sectionIndexItemMap); + } + SectionIndexItemAPI.GetSectionIndexItemById = GetSectionIndexItemById; + function Initialize(sectionIndexItemId) { + const _sectionIndexItem = GetSectionIndexItemById(sectionIndexItemId); + _sectionIndexItem.build(); + return _sectionIndexItem; + } + SectionIndexItemAPI.Initialize = Initialize; + function RegisterCallback(sectionIndexItemId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.SectionIndexItem.FailRegisterCallback, + callback: () => { + const _sectionIndexItem = this.GetSectionIndexItemById(sectionIndexItemId); + _sectionIndexItem.registerCallback(eventName, callback); + }, + }); + return result; + } + SectionIndexItemAPI.RegisterCallback = RegisterCallback; + })(SectionIndexItemAPI = Patterns.SectionIndexItemAPI || (Patterns.SectionIndexItemAPI = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var SidebarAPI; + (function (SidebarAPI) { + const _sidebarMap = new Map(); + function ChangeProperty(sidebarId, propertyName, propertyValue) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Sidebar.FailChangeProperty, + callback: () => { + const sidebar = GetSidebarById(sidebarId); + sidebar.changeProperty(propertyName, propertyValue); + }, + }); + return result; + } + SidebarAPI.ChangeProperty = ChangeProperty; + function ClickOutsideToClose(sidebarId, closeOnOutSIdeClick) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Sidebar.FailClickOutsideToClose, + callback: () => { + const sidebar = GetSidebarById(sidebarId); + sidebar.clickOutsideToClose(closeOnOutSIdeClick); + }, + }); + return result; + } + SidebarAPI.ClickOutsideToClose = ClickOutsideToClose; + function Close(sidebarId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Sidebar.FailClose, + callback: () => { + const sidebar = GetSidebarById(sidebarId); + sidebar.close(); + }, + }); + return result; + } + SidebarAPI.Close = Close; + function Create(sidebarId, configs) { + if (_sidebarMap.has(sidebarId)) { + throw new Error(`There is already a ${OSFramework.OSUI.GlobalEnum.PatternName.Sidebar} registered under id: ${sidebarId}`); + } + const _newSidebar = new OSFramework.OSUI.Patterns.Sidebar.Sidebar(sidebarId, JSON.parse(configs)); + _sidebarMap.set(sidebarId, _newSidebar); + return _newSidebar; + } + SidebarAPI.Create = Create; + function Dispose(sidebarId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Sidebar.FailDispose, + callback: () => { + const sidebar = GetSidebarById(sidebarId); + sidebar.dispose(); + _sidebarMap.delete(sidebarId); + }, + }); + return result; + } + SidebarAPI.Dispose = Dispose; + function GetAllSidebars() { + return OSFramework.OSUI.Helper.MapOperation.ExportKeys(_sidebarMap); + } + SidebarAPI.GetAllSidebars = GetAllSidebars; + function GetSidebarById(sidebarId) { + return OSFramework.OSUI.Helper.MapOperation.FindInMap(OSFramework.OSUI.GlobalEnum.PatternName.Sidebar, sidebarId, _sidebarMap); + } + SidebarAPI.GetSidebarById = GetSidebarById; + function Initialize(sidebarId) { + const sidebar = GetSidebarById(sidebarId); + sidebar.build(); + return sidebar; + } + SidebarAPI.Initialize = Initialize; + function Open(sidebarId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Sidebar.FailOpen, + callback: () => { + const sidebar = GetSidebarById(sidebarId); + sidebar.open(); + }, + }); + return result; + } + SidebarAPI.Open = Open; + function RegisterCallback(sidebarId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Sidebar.FailRegisterCallback, + callback: () => { + const _sidebarItem = this.GetSidebarById(sidebarId); + _sidebarItem.registerCallback(eventName, callback); + }, + }); + return result; + } + SidebarAPI.RegisterCallback = RegisterCallback; + function ToggleGestures(sidebarId, enableSwipe) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Sidebar.FailToggleSwipe, + callback: () => { + const sidebar = GetSidebarById(sidebarId); + sidebar.toggleGestures(enableSwipe); + }, + }); + return result; + } + SidebarAPI.ToggleGestures = ToggleGestures; + })(SidebarAPI = Patterns.SidebarAPI || (Patterns.SidebarAPI = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var SubmenuAPI; + (function (SubmenuAPI) { + const _submenusMap = new Map(); + function ChangeProperty(submenuId, propertyName, propertyValue) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Submenu.FailChangeProperty, + callback: () => { + const submenu = GetSubmenuById(submenuId); + submenu.changeProperty(propertyName, propertyValue); + }, + }); + return result; + } + SubmenuAPI.ChangeProperty = ChangeProperty; + function ClickOutsideToClose(submenuId, clickOutsideToClose) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Submenu.FailClickOutsideToClose, + callback: () => { + const submenu = GetSubmenuById(submenuId); + submenu.clickOutsideToClose(clickOutsideToClose); + }, + }); + return result; + } + SubmenuAPI.ClickOutsideToClose = ClickOutsideToClose; + function Close(submenuId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Submenu.FailClose, + callback: () => { + const submenu = GetSubmenuById(submenuId); + submenu.close(); + }, + }); + return result; + } + SubmenuAPI.Close = Close; + function Open(submenuId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Submenu.FailOpen, + callback: () => { + const submenu = GetSubmenuById(submenuId); + submenu.open(); + }, + }); + return result; + } + SubmenuAPI.Open = Open; + function Create(submenuId, configs) { + if (_submenusMap.has(submenuId)) { + throw new Error(`There is already a ${OSFramework.OSUI.GlobalEnum.PatternName.Submenu} registered under id: ${submenuId}`); + } + const _newSubmenu = new OSFramework.OSUI.Patterns.Submenu.Submenu(submenuId, JSON.parse(configs)); + _submenusMap.set(submenuId, _newSubmenu); + return _newSubmenu; + } + SubmenuAPI.Create = Create; + function Dispose(submenuId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Submenu.FailDispose, + callback: () => { + const submenu = GetSubmenuById(submenuId); + submenu.dispose(); + _submenusMap.delete(submenuId); + }, + }); + return result; + } + SubmenuAPI.Dispose = Dispose; + function GetAllSubmenus() { + return OSFramework.OSUI.Helper.MapOperation.ExportKeys(_submenusMap); + } + SubmenuAPI.GetAllSubmenus = GetAllSubmenus; + function GetSubmenuById(submenuId) { + return OSFramework.OSUI.Helper.MapOperation.FindInMap(OSFramework.OSUI.GlobalEnum.PatternName.Submenu, submenuId, _submenusMap); + } + SubmenuAPI.GetSubmenuById = GetSubmenuById; + function Initialize(submenuId) { + const submenu = GetSubmenuById(submenuId); + submenu.build(); + return submenu; + } + SubmenuAPI.Initialize = Initialize; + function RegisterCallback(submenuId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Submenu.FailRegisterCallback, + callback: () => { + const submenu = GetSubmenuById(submenuId); + submenu.registerCallback(eventName, callback); + }, + }); + return result; + } + SubmenuAPI.RegisterCallback = RegisterCallback; + function SubmenuOpenOnHover(submenuId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Submenu.FailOpenOnHover, + callback: () => { + const submenu = GetSubmenuById(submenuId); + submenu.setOpenOnHover(); + }, + }); + return result; + } + SubmenuAPI.SubmenuOpenOnHover = SubmenuOpenOnHover; + function UpdateOnRender(submenuId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Submenu.FailUpdate, + callback: () => { + const submenu = GetSubmenuById(submenuId); + submenu.updateOnRender(); + }, + }); + return result; + } + SubmenuAPI.UpdateOnRender = UpdateOnRender; + })(SubmenuAPI = Patterns.SubmenuAPI || (Patterns.SubmenuAPI = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var SwipeEventsAPI; + (function (SwipeEventsAPI) { + const _swipeEventsMap = new Map(); + function Create(swipeEventsId, configs) { + if (_swipeEventsMap.has(swipeEventsId)) { + throw new Error(`There is already an ${OSFramework.OSUI.GlobalEnum.PatternName.SwipeEvents} registered under id: ${swipeEventsId}`); + } + const _newSwipeEvents = new OSFramework.OSUI.Patterns.SwipeEvents.SwipeEvents(swipeEventsId, JSON.parse(configs)); + _swipeEventsMap.set(swipeEventsId, _newSwipeEvents); + return _newSwipeEvents; + } + SwipeEventsAPI.Create = Create; + function Dispose(swipeEventsId) { + const swipeEvent = GetSwipeEventsById(swipeEventsId); + swipeEvent.dispose(); + _swipeEventsMap.delete(swipeEvent.uniqueId); + } + SwipeEventsAPI.Dispose = Dispose; + function GetAllSwipeEvents() { + return OSFramework.OSUI.Helper.MapOperation.ExportKeys(_swipeEventsMap); + } + SwipeEventsAPI.GetAllSwipeEvents = GetAllSwipeEvents; + function GetSwipeEventsById(swipeEventsId) { + return OSFramework.OSUI.Helper.MapOperation.FindInMap('SwipeEvents', swipeEventsId, _swipeEventsMap); + } + SwipeEventsAPI.GetSwipeEventsById = GetSwipeEventsById; + function Initialize(swipeEventsId) { + const SwipeEvents = GetSwipeEventsById(swipeEventsId); + SwipeEvents.build(); + return SwipeEvents; + } + SwipeEventsAPI.Initialize = Initialize; + function RegisterCallback(swipeEventsID, eventName, callback) { + const swipeEvents = this.GetSwipeEventsById(swipeEventsID); + swipeEvents.registerCallback(eventName, callback); + } + SwipeEventsAPI.RegisterCallback = RegisterCallback; + function GestureMove(swipeEventsId, event) { + const SwipeEvents = GetSwipeEventsById(swipeEventsId); + SwipeEvents.EventGestureMove(event); + } + SwipeEventsAPI.GestureMove = GestureMove; + function GestureEnd(swipeEventsId, offsetX, offsetY, timeTaken) { + const SwipeEvents = GetSwipeEventsById(swipeEventsId); + SwipeEvents.EventGestureEnd(offsetX, offsetY, timeTaken); + } + SwipeEventsAPI.GestureEnd = GestureEnd; + })(SwipeEventsAPI = Patterns.SwipeEventsAPI || (Patterns.SwipeEventsAPI = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var TabsAPI; + (function (TabsAPI) { + const _tabsMap = new Map(); + function ChangeProperty(tabsId, propertyName, propertyValue) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Tabs.FailChangeProperty, + callback: () => { + const tabs = GetTabsById(tabsId); + tabs.changeProperty(propertyName, propertyValue); + }, + }); + return result; + } + TabsAPI.ChangeProperty = ChangeProperty; + function Create(tabsId, configs) { + if (_tabsMap.has(tabsId)) { + throw new Error(`There is already a ${OSFramework.OSUI.GlobalEnum.PatternName.Tabs} registered under id: ${tabsId}`); + } + const _newTabs = new OSFramework.OSUI.Patterns.Tabs.Tabs(tabsId, JSON.parse(configs)); + _tabsMap.set(tabsId, _newTabs); + return _newTabs; + } + TabsAPI.Create = Create; + function Dispose(tabsId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Tabs.FailDispose, + callback: () => { + const tabs = GetTabsById(tabsId); + tabs.dispose(); + _tabsMap.delete(tabs.uniqueId); + }, + }); + return result; + } + TabsAPI.Dispose = Dispose; + function GetAllTabs() { + return OSFramework.OSUI.Helper.MapOperation.ExportKeys(_tabsMap); + } + TabsAPI.GetAllTabs = GetAllTabs; + function GetTabsById(tabsId) { + return OSFramework.OSUI.Helper.MapOperation.FindInMap('Tabs', tabsId, _tabsMap); + } + TabsAPI.GetTabsById = GetTabsById; + function Initialize(tabsId) { + const tabs = GetTabsById(tabsId); + tabs.build(); + return tabs; + } + TabsAPI.Initialize = Initialize; + function RegisterCallback(tabsId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Tabs.FailRegisterCallback, + callback: () => { + const tabs = GetTabsById(tabsId); + tabs.registerCallback(eventName, callback); + }, + }); + return result; + } + TabsAPI.RegisterCallback = RegisterCallback; + function TabsToggleSwipe(tabsId, enableSwipe) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Tabs.FailToggleSwipe, + callback: () => { + const tabs = GetTabsById(tabsId); + tabs.toggleDragGestures(enableSwipe); + }, + }); + return result; + } + TabsAPI.TabsToggleSwipe = TabsToggleSwipe; + function SetActiveTab(tabsId, tabsNumber) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Tabs.FailSetActive, + callback: () => { + const tabs = GetTabsById(tabsId); + tabs.changeTab(tabsNumber, undefined, true); + }, + }); + return result; + } + TabsAPI.SetActiveTab = SetActiveTab; + })(TabsAPI = Patterns.TabsAPI || (Patterns.TabsAPI = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var TabsContentItemAPI; + (function (TabsContentItemAPI) { + const _tabsContentItemMap = new Map(); + function ChangeProperty(tabsContentItemId, propertyName, propertyValue) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.TabsContentItem.FailChangeProperty, + callback: () => { + const tabsContentItem = GetTabsContentItemById(tabsContentItemId); + tabsContentItem.changeProperty(propertyName, propertyValue); + }, + }); + return result; + } + TabsContentItemAPI.ChangeProperty = ChangeProperty; + function Create(tabsContentItemId, configs) { + if (_tabsContentItemMap.has(tabsContentItemId)) { + throw new Error(`There is already a ${OSFramework.OSUI.GlobalEnum.PatternName.TabsContentItem} registered under id: ${tabsContentItemId}`); + } + const _newTabsContentItem = new OSFramework.OSUI.Patterns.TabsContentItem.TabsContentItem(tabsContentItemId, JSON.parse(configs)); + _tabsContentItemMap.set(tabsContentItemId, _newTabsContentItem); + return _newTabsContentItem; + } + TabsContentItemAPI.Create = Create; + function Dispose(tabsContentItemId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.TabsContentItem.FailDispose, + callback: () => { + const tabsContentItem = GetTabsContentItemById(tabsContentItemId); + tabsContentItem.dispose(); + _tabsContentItemMap.delete(tabsContentItem.uniqueId); + }, + }); + return result; + } + TabsContentItemAPI.Dispose = Dispose; + function GetAllTabsContentItems() { + return OSFramework.OSUI.Helper.MapOperation.ExportKeys(_tabsContentItemMap); + } + TabsContentItemAPI.GetAllTabsContentItems = GetAllTabsContentItems; + function GetTabsContentItemById(tabsContentItemId) { + return OSFramework.OSUI.Helper.MapOperation.FindInMap('TabsContentItem', tabsContentItemId, _tabsContentItemMap); + } + TabsContentItemAPI.GetTabsContentItemById = GetTabsContentItemById; + function Initialize(tabsContentItemId) { + const tabsContentItem = GetTabsContentItemById(tabsContentItemId); + tabsContentItem.build(); + return tabsContentItem; + } + TabsContentItemAPI.Initialize = Initialize; + function RegisterCallback(tabsContentItemId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.TabsContentItem.FailRegisterCallback, + callback: () => { + const tabsContentItem = GetTabsContentItemById(tabsContentItemId); + tabsContentItem.registerCallback(eventName, callback); + }, + }); + return result; + } + TabsContentItemAPI.RegisterCallback = RegisterCallback; + })(TabsContentItemAPI = Patterns.TabsContentItemAPI || (Patterns.TabsContentItemAPI = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var TabsHeaderItemAPI; + (function (TabsHeaderItemAPI) { + const _tabsHeaderItemMap = new Map(); + function ChangeProperty(tabsHeaderItemId, propertyName, propertyValue) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.TabsHeaderItem.FailChangeProperty, + callback: () => { + const tabsHeaderItem = GetTabsHeaderItemById(tabsHeaderItemId); + tabsHeaderItem.changeProperty(propertyName, propertyValue); + }, + }); + return result; + } + TabsHeaderItemAPI.ChangeProperty = ChangeProperty; + function Create(tabsHeaderItemId, configs) { + if (_tabsHeaderItemMap.has(tabsHeaderItemId)) { + throw new Error(`There is already a ${OSFramework.OSUI.GlobalEnum.PatternName.TabsHeaderItem} registered under id: ${tabsHeaderItemId}`); + } + const _newTabsHeaderItem = new OSFramework.OSUI.Patterns.TabsHeaderItem.TabsHeaderItem(tabsHeaderItemId, JSON.parse(configs)); + _tabsHeaderItemMap.set(tabsHeaderItemId, _newTabsHeaderItem); + return _newTabsHeaderItem; + } + TabsHeaderItemAPI.Create = Create; + function DisableTabItem(tabsHeaderItemId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.TabsHeaderItem.FailDisableTabHeader, + callback: () => { + const tabsHeaderItem = GetTabsHeaderItemById(tabsHeaderItemId); + tabsHeaderItem.disable(); + }, + }); + return result; + } + TabsHeaderItemAPI.DisableTabItem = DisableTabItem; + function Dispose(tabsHeaderItemId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.TabsHeaderItem.FailDispose, + callback: () => { + const tabsHeaderItem = GetTabsHeaderItemById(tabsHeaderItemId); + tabsHeaderItem.dispose(); + _tabsHeaderItemMap.delete(tabsHeaderItem.uniqueId); + }, + }); + return result; + } + TabsHeaderItemAPI.Dispose = Dispose; + function EnableTabItem(tabsHeaderItemId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.TabsHeaderItem.FailEnableTabHeader, + callback: () => { + const tabsHeaderItem = GetTabsHeaderItemById(tabsHeaderItemId); + tabsHeaderItem.enable(); + }, + }); + return result; + } + TabsHeaderItemAPI.EnableTabItem = EnableTabItem; + function GetAllTabsHeaderItems() { + return OSFramework.OSUI.Helper.MapOperation.ExportKeys(_tabsHeaderItemMap); + } + TabsHeaderItemAPI.GetAllTabsHeaderItems = GetAllTabsHeaderItems; + function GetTabsHeaderItemById(tabsHeaderItemId) { + return OSFramework.OSUI.Helper.MapOperation.FindInMap('TabsHeaderItem', tabsHeaderItemId, _tabsHeaderItemMap); + } + TabsHeaderItemAPI.GetTabsHeaderItemById = GetTabsHeaderItemById; + function UpdateOnRender(tabsHeaderItemId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.TabsHeaderItem.FailUpdate, + callback: () => { + const tabsHeaderItem = GetTabsHeaderItemById(tabsHeaderItemId); + tabsHeaderItem.updateOnRender(); + }, + }); + return result; + } + TabsHeaderItemAPI.UpdateOnRender = UpdateOnRender; + function Initialize(tabsHeaderItemId) { + const tabsHeaderItem = GetTabsHeaderItemById(tabsHeaderItemId); + tabsHeaderItem.build(); + return tabsHeaderItem; + } + TabsHeaderItemAPI.Initialize = Initialize; + function RegisterCallback(tabsHeaderItemId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.TabsHeaderItem.FailRegisterCallback, + callback: () => { + const tabsHeaderItem = GetTabsHeaderItemById(tabsHeaderItemId); + tabsHeaderItem.registerCallback(eventName, callback); + }, + }); + return result; + } + TabsHeaderItemAPI.RegisterCallback = RegisterCallback; + })(TabsHeaderItemAPI = Patterns.TabsHeaderItemAPI || (Patterns.TabsHeaderItemAPI = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var TimePickerAPI; + (function (TimePickerAPI) { + const _timePickerItemsMap = new Map(); + function ChangeProperty(timePickerId, propertyName, propertyValue) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.TimePicker.FailChangeProperty, + callback: () => { + const _timePickerItem = GetTimePickerItemById(timePickerId); + _timePickerItem.changeProperty(propertyName, propertyValue); + }, + }); + return result; + } + TimePickerAPI.ChangeProperty = ChangeProperty; + function Clear(timePickerId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.TimePicker.FailClear, + callback: () => { + const _timePickerItem = GetTimePickerItemById(timePickerId); + _timePickerItem.clear(); + }, + }); + return result; + } + TimePickerAPI.Clear = Clear; + function Close(timePickerId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.TimePicker.FailClose, + callback: () => { + const _timePickerItem = GetTimePickerItemById(timePickerId); + _timePickerItem.close(); + }, + }); + return result; + } + TimePickerAPI.Close = Close; + function Create(timePickerId, configs, provider) { + if (_timePickerItemsMap.has(timePickerId)) { + throw new Error(`There is already an TimePicker registered under id: ${timePickerId}`); + } + const _timePickerItem = OSFramework.OSUI.Patterns.TimePicker.Factory.NewTimePicker(timePickerId, configs, provider); + _timePickerItemsMap.set(timePickerId, _timePickerItem); + return _timePickerItem; + } + TimePickerAPI.Create = Create; + function ToggleNativeBehavior(timePickerId, IsNative) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.TimePicker.FailToggleNativeBehavior, + callback: () => { + const _timePicker = this.GetTimePickerItemById(timePickerId); + _timePicker.toggleNativeBehavior(IsNative); + }, + }); + return result; + } + TimePickerAPI.ToggleNativeBehavior = ToggleNativeBehavior; + function Dispose(timePickerId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.TimePicker.FailDispose, + callback: () => { + const _timePickerItem = GetTimePickerItemById(timePickerId); + _timePickerItem.dispose(); + _timePickerItemsMap.delete(_timePickerItem.uniqueId); + }, + }); + return result; + } + TimePickerAPI.Dispose = Dispose; + function GetAllTimePickerItemsMap() { + return OSFramework.OSUI.Helper.MapOperation.ExportKeys(_timePickerItemsMap); + } + TimePickerAPI.GetAllTimePickerItemsMap = GetAllTimePickerItemsMap; + function GetTimePickerItemById(timePickerId) { + return OSFramework.OSUI.Helper.MapOperation.FindInMap(OSFramework.OSUI.GlobalEnum.PatternName.Timepicker, timePickerId, _timePickerItemsMap); + } + TimePickerAPI.GetTimePickerItemById = GetTimePickerItemById; + function Initialize(timePickerId) { + const _timePickerItem = GetTimePickerItemById(timePickerId); + _timePickerItem.build(); + return _timePickerItem; + } + TimePickerAPI.Initialize = Initialize; + function Open(timePickerId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.TimePicker.FailOpen, + callback: () => { + const _timePickerItem = GetTimePickerItemById(timePickerId); + _timePickerItem.open(); + }, + }); + return result; + } + TimePickerAPI.Open = Open; + function RegisterCallback(timePickerId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.TimePicker.FailRegisterCallback, + callback: () => { + const _timePicker = this.GetTimePickerItemById(timePickerId); + _timePicker.registerCallback(eventName, callback); + }, + }); + return result; + } + TimePickerAPI.RegisterCallback = RegisterCallback; + function Redraw(timePickerId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.TimePicker.FailRedraw, + callback: () => { + const _timePicker = this.GetTimePickerItemById(timePickerId); + _timePicker.redraw(); + }, + }); + return result; + } + TimePickerAPI.Redraw = Redraw; + function SetLanguage(timePickerId, isoCode) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.TimePicker.FailSetLanguage, + callback: () => { + const _timePicker = this.GetTimePickerItemById(timePickerId); + _timePicker.setLanguage(isoCode); + }, + }); + return result; + } + TimePickerAPI.SetLanguage = SetLanguage; + function UpdateInitialTime(timePickerId, time) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.TimePicker.FailUpdateInitialTime, + callback: () => { + const _timePicker = this.GetTimePickerItemById(timePickerId); + _timePicker.updateInitialTime(time); + }, + }); + return result; + } + TimePickerAPI.UpdateInitialTime = UpdateInitialTime; + function UpdatePrompt(timePickerId, promptMessage) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.TimePicker.FailUpdatePrompt, + callback: () => { + const _timePicker = this.GetTimePickerItemById(timePickerId); + _timePicker.updatePrompt(promptMessage); + }, + }); + return result; + } + TimePickerAPI.UpdatePrompt = UpdatePrompt; + function SetProviderConfigs(timePickerId, providerConfigs) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.TimePicker.FailRegisterProviderConfig, + callback: () => { + const timePicker = GetTimePickerItemById(timePickerId); + timePicker.setProviderConfigs(providerConfigs); + }, + }); + return result; + } + TimePickerAPI.SetProviderConfigs = SetProviderConfigs; + function SetProviderEvent(timePickerId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.TimePicker.FailRegisterProviderEvent, + hasValue: true, + callback: () => { + const _eventUniqueId = OSFramework.OSUI.Helper.Dom.GenerateUniqueId(); + const timePicker = GetTimePickerItemById(timePickerId); + timePicker.setProviderEvent(eventName, callback, _eventUniqueId); + return _eventUniqueId; + }, + }); + return result; + } + TimePickerAPI.SetProviderEvent = SetProviderEvent; + function UnsetProviderEvent(timePickerId, eventId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.TimePicker.FailRemoveProviderEvent, + callback: () => { + const timePicker = GetTimePickerItemById(timePickerId); + timePicker.unsetProviderEvent(eventId); + }, + }); + return result; + } + TimePickerAPI.UnsetProviderEvent = UnsetProviderEvent; + function SetEditableInput(timePickerId, IsEditable) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.TimePicker.FailSetEditableInput, + callback: () => { + const _timePicker = this.GetTimePickerItemById(timePickerId); + _timePicker.setEditableInput(IsEditable); + }, + }); + return result; + } + TimePickerAPI.SetEditableInput = SetEditableInput; + })(TimePickerAPI = Patterns.TimePickerAPI || (Patterns.TimePickerAPI = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var TooltipAPI; + (function (TooltipAPI) { + const _tooltipsMap = new Map(); + function ChangeProperty(tooltipId, propertyName, propertyValue) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Tooltip.FailChangeProperty, + callback: () => { + const tooltip = GetTooltipById(tooltipId); + tooltip.changeProperty(propertyName, propertyValue); + }, + }); + return result; + } + TooltipAPI.ChangeProperty = ChangeProperty; + function Close(tooltipId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Tooltip.FailClose, + callback: () => { + const tooltip = GetTooltipById(tooltipId); + tooltip.close(); + }, + }); + return result; + } + TooltipAPI.Close = Close; + function Create(tooltipId, configs) { + if (_tooltipsMap.has(tooltipId)) { + throw new Error(`There is already a ${OSFramework.OSUI.GlobalEnum.PatternName.Tooltip} registered under id: ${tooltipId}`); + } + const _newTooltip = new OSFramework.OSUI.Patterns.Tooltip.Tooltip(tooltipId, JSON.parse(configs)); + _tooltipsMap.set(tooltipId, _newTooltip); + return _newTooltip; + } + TooltipAPI.Create = Create; + function Dispose(tooltipId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Tooltip.FailDispose, + callback: () => { + const tooltip = GetTooltipById(tooltipId); + tooltip.dispose(); + _tooltipsMap.delete(tooltip.uniqueId); + }, + }); + return result; + } + TooltipAPI.Dispose = Dispose; + function GetAllTooltips() { + return OSFramework.OSUI.Helper.MapOperation.ExportKeys(_tooltipsMap); + } + TooltipAPI.GetAllTooltips = GetAllTooltips; + function GetTooltipById(tooltipId) { + return OSFramework.OSUI.Helper.MapOperation.FindInMap(OSFramework.OSUI.GlobalEnum.PatternName.Tooltip, tooltipId, _tooltipsMap); + } + TooltipAPI.GetTooltipById = GetTooltipById; + function Initialize(tooltipId) { + const tooltip = GetTooltipById(tooltipId); + tooltip.build(); + return tooltip; + } + TooltipAPI.Initialize = Initialize; + function Open(tooltipId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Tooltip.FailOpen, + callback: () => { + const tooltip = GetTooltipById(tooltipId); + tooltip.open(); + }, + }); + return result; + } + TooltipAPI.Open = Open; + function RegisterCallback(tooltipId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Tooltip.FailRegisterCallback, + callback: () => { + const tooltip = this.GetTooltipById(tooltipId); + tooltip.registerCallback(eventName, callback); + }, + }); + return result; + } + TooltipAPI.RegisterCallback = RegisterCallback; + })(TooltipAPI = Patterns.TooltipAPI || (Patterns.TooltipAPI = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var TouchEventsAPI; + (function (TouchEventsAPI) { + const _touchEventsMap = new Map(); + function Create(touchEventsId, configs) { + if (_touchEventsMap.has(touchEventsId)) { + throw new Error(`There is already an ${OSFramework.OSUI.GlobalEnum.PatternName.TouchEvents} registered under id: ${touchEventsId}`); + } + const _newTouchEvents = new OSFramework.OSUI.Patterns.TouchEvents.TouchEvents(touchEventsId, JSON.parse(configs)); + _touchEventsMap.set(touchEventsId, _newTouchEvents); + return _newTouchEvents; + } + TouchEventsAPI.Create = Create; + function Dispose(touchEventsId) { + const swipeEvent = GetTouchEventsById(touchEventsId); + swipeEvent.dispose(); + _touchEventsMap.delete(swipeEvent.uniqueId); + } + TouchEventsAPI.Dispose = Dispose; + function GetAllTouchEvents() { + return OSFramework.OSUI.Helper.MapOperation.ExportKeys(_touchEventsMap); + } + TouchEventsAPI.GetAllTouchEvents = GetAllTouchEvents; + function GetTouchEventsById(touchEventsId) { + return OSFramework.OSUI.Helper.MapOperation.FindInMap('TouchEvents', touchEventsId, _touchEventsMap); + } + TouchEventsAPI.GetTouchEventsById = GetTouchEventsById; + function Initialize(touchEventsId) { + const TouchEvents = GetTouchEventsById(touchEventsId); + TouchEvents.build(); + return TouchEvents; + } + TouchEventsAPI.Initialize = Initialize; + function RegisterCallback(touchEventsID, eventName, callback) { + const touchEvents = this.GetTouchEventsById(touchEventsID); + touchEvents.registerCallback(eventName, callback); + } + TouchEventsAPI.RegisterCallback = RegisterCallback; + })(TouchEventsAPI = Patterns.TouchEventsAPI || (Patterns.TouchEventsAPI = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Patterns; + (function (Patterns) { + var VideoAPI; + (function (VideoAPI) { + const _videoMap = new Map(); + function ChangeProperty(videoId, propertyName, propertyValue) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Video.FailChangeProperty, + callback: () => { + const video = GetVideoById(videoId); + video.changeProperty(propertyName, propertyValue); + }, + }); + return result; + } + VideoAPI.ChangeProperty = ChangeProperty; + function Create(videoId, configs) { + if (_videoMap.has(videoId)) { + throw new Error(`There is already a ${OSFramework.OSUI.GlobalEnum.PatternName.Video} registered under id: ${videoId}`); + } + const _newVideo = new OSFramework.OSUI.Patterns.Video.Video(videoId, JSON.parse(configs)); + _videoMap.set(videoId, _newVideo); + return _newVideo; + } + VideoAPI.Create = Create; + function Dispose(videoId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Video.FailDispose, + callback: () => { + const video = GetVideoById(videoId); + video.dispose(); + _videoMap.delete(videoId); + }, + }); + return result; + } + VideoAPI.Dispose = Dispose; + function GetAllVideos() { + return OSFramework.OSUI.Helper.MapOperation.ExportKeys(_videoMap); + } + VideoAPI.GetAllVideos = GetAllVideos; + function GetVideoById(videoId) { + return OSFramework.OSUI.Helper.MapOperation.FindInMap(OSFramework.OSUI.GlobalEnum.PatternName.Video, videoId, _videoMap); + } + VideoAPI.GetVideoById = GetVideoById; + function Initialize(videoId) { + const video = GetVideoById(videoId); + video.build(); + return video; + } + VideoAPI.Initialize = Initialize; + function RegisterCallback(videoId, eventName, callback) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Video.FailRegisterCallback, + callback: () => { + const _videoItem = this.GetVideoById(videoId); + _videoItem.registerCallback(eventName, callback); + }, + }); + return result; + } + VideoAPI.RegisterCallback = RegisterCallback; + function GetState(videoId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Video.FailGetState, + hasValue: true, + callback: () => { + const video = GetVideoById(videoId); + return video.getVideoState; + }, + }); + return result; + } + VideoAPI.GetState = GetState; + function Pause(videoId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Video.FailPause, + callback: () => { + const video = GetVideoById(videoId); + video.setVideoPause(); + }, + }); + return result; + } + VideoAPI.Pause = Pause; + function Play(videoId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Video.FailPlay, + callback: () => { + const video = GetVideoById(videoId); + video.setVideoPlay(); + }, + }); + return result; + } + VideoAPI.Play = Play; + function JumpToTime(videoId, currentTime) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Video.FailSetTime, + callback: () => { + const video = GetVideoById(videoId); + video.setVideoJumpToTime(currentTime); + }, + }); + return result; + } + VideoAPI.JumpToTime = JumpToTime; + })(VideoAPI = Patterns.VideoAPI || (Patterns.VideoAPI = {})); + })(Patterns = OSUI.Patterns || (OSUI.Patterns = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + var Accessibility; + (function (Accessibility) { + function SetAccessibilityRole(widgetId, role) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Utilities.FailSetAccessibilityRole, + callback: () => { + const element = OSFramework.OSUI.Helper.Dom.GetElementById(widgetId); + if (element) { + const isBlock = OSFramework.OSUI.Helper.Dom.Attribute.Has(element, OSFramework.OSUI.GlobalEnum.DataBlocksTag.DataBlock); + if (isBlock) { + OSFramework.OSUI.Helper.Dom.Attribute.Set(element.children[0], OSFramework.OSUI.Constants.A11YAttributes.Role.AttrName, role); + } + else { + OSFramework.OSUI.Helper.Dom.Attribute.Set(element, OSFramework.OSUI.Constants.A11YAttributes.Role.AttrName, role); + } + } + }, + }); + return result; + } + Accessibility.SetAccessibilityRole = SetAccessibilityRole; + function SetAriaHidden(widgetId, isHidden) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Utilities.FailSetAriaHidden, + callback: () => { + const elem = OSFramework.OSUI.Helper.Dom.GetElementById(widgetId); + if (elem) { + OSFramework.OSUI.Helper.A11Y.AriaHidden(elem, `${isHidden}`); + } + }, + }); + return result; + } + Accessibility.SetAriaHidden = SetAriaHidden; + function SetFocus(widgetId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Utilities.FailSetFocus, + callback: () => { + const elementId = OSFramework.OSUI.Helper.Dom.GetElementById(widgetId); + if (elementId) { + elementId.focus(); + } + }, + }); + return result; + } + Accessibility.SetFocus = SetFocus; + function SetLang(lang) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Utilities.FailSetLang, + callback: () => { + OSFramework.OSUI.Helper.Language.Set(lang); + }, + }); + return result; + } + Accessibility.SetLang = SetLang; + function SkipToContent(targetId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Utilities.FailSkipToContent, + callback: () => { + const target = OSFramework.OSUI.Helper.Dom.GetElementById(targetId); + if (target) { + const isFocusable = OSFramework.OSUI.Helper.Dom.Attribute.Get(target, 'tabindex'); + if (isFocusable === undefined) { + OSFramework.OSUI.Helper.Dom.Attribute.Set(target, 'tabindex', '0'); + target.focus(); + OSFramework.OSUI.Helper.Dom.Attribute.Remove(target, 'tabindex'); + } + else { + target.focus(); + } + } + }, + }); + return result; + } + Accessibility.SkipToContent = SkipToContent; + function ToggleTextSpacing() { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Utilities.FailToggleTextSpacing, + callback: () => { + let spacingStyles = OSFramework.OSUI.Helper.Dom.ClassSelector(document, OSFramework.OSUI.GlobalEnum.CssClassElements.AcessibilityStyleTag); + if (spacingStyles === undefined) { + spacingStyles = document.createElement('style'); + OSFramework.OSUI.Helper.Dom.Styles.AddClass(spacingStyles, OSFramework.OSUI.GlobalEnum.CssClassElements.AcessibilityStyleTag); + spacingStyles.textContent = + ' * { line-height: 1.5 !important; letter-spacing: 0.12em !important; word-spacing: 0.16em !important; } p { margin-bottom: 2em !important; } '; + OSFramework.OSUI.Helper.Dom.Move(spacingStyles, document.head); + } + else if (spacingStyles) { + spacingStyles.remove(); + } + }, + }); + return result; + } + Accessibility.ToggleTextSpacing = ToggleTextSpacing; + function WCAGMetaTag() { + OSFramework.OSUI.Helper.Dom.Attribute.Set(OSFramework.OSUI.Helper.Dom.TagSelector(document.head, '[name="viewport"]'), 'content', 'viewport-fit=cover, width=device-width, initial-scale=1'); + } + Accessibility.WCAGMetaTag = WCAGMetaTag; + })(Accessibility = Utils.Accessibility || (Utils.Accessibility = {})); + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + var Application; + (function (Application) { + function SetExpandableExceptions() { + const layout = OSFramework.OSUI.Helper.Dom.ClassSelector(document, OSFramework.OSUI.GlobalEnum.CssClassElements.Layout); + const body = document.body; + if (layout) { + const expandableMenuBehavior = OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(layout, OSFramework.OSUI.GlobalEnum.CssClassElements.AsideExpandable); + const isLayoutNative = OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(layout, OSFramework.OSUI.GlobalEnum.CssClassElements.LayoutNative); + if (expandableMenuBehavior && isLayoutNative) { + const deviceDetectionClasses = (OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(body, OSFramework.OSUI.GlobalEnum.DeviceType.tablet) && + OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(body, OSFramework.OSUI.GlobalEnum.DeviceOrientation.landscape)) || + OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(body, OSFramework.OSUI.GlobalEnum.DeviceType.desktop); + if (deviceDetectionClasses) { + const isHideOnScroll = OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(layout, OSFramework.OSUI.GlobalEnum.CssClassElements.HeaderHideOnScroll); + Utils.Menu.ToggleSideMenu(); + if (isHideOnScroll) { + Utils.LayoutPrivate.SetStickyObserver(); + } + } + } + } + } + Application.SetExpandableExceptions = SetExpandableExceptions; + })(Application = Utils.Application || (Utils.Application = {})); + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + function _bodyClick(eventName, event) { + const target = event.target; + if (target.classList.contains('btn')) { + _buttonEffect(target); + return; + } + const foundElement = _hasSomeParentTheClass(target, 'list-item') || _hasSomeParentTheClass(target, 'bottom-bar-item'); + if (foundElement) { + _clickEffect(foundElement); + } + } + function _clickEffect(el) { + const spanEl = document.createElement(OSFramework.OSUI.GlobalEnum.HTMLElement.Span); + spanEl.classList.add('scale-animation'); + el.appendChild(spanEl); + el.addEventListener(OSFramework.OSUI.GlobalEnum.HTMLEvent.AnimationEnd, OnTransitionEnd, false); + el.addEventListener('webkitAnimationEnd', OnTransitionEnd, false); + function OnTransitionEnd() { + if (spanEl && this === el && this === spanEl.parentNode) { + this.removeChild(spanEl); + } + } + } + function _buttonEffect(el) { + const spanEl = document.createElement(OSFramework.OSUI.GlobalEnum.HTMLElement.Span); + spanEl.classList.add('btn-animation'); + el.appendChild(spanEl); + setTimeout(function () { + el.removeChild(spanEl); + }, 1800); + } + function _hasSomeParentTheClass(element, classname) { + if (element) { + if (typeof element.className !== 'undefined' && + !element.classList.contains('.main-content') && + !(element instanceof SVGElement)) { + if (element.className.split(' ').indexOf(classname) >= 0) { + return element; + } + else { + return _hasSomeParentTheClass(element.parentElement, classname); + } + } + } + return undefined; + } + OSFramework.OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.addHandler(OSFramework.OSUI.Event.DOMEvents.Listeners.Type.BodyOnClick, _bodyClick); + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + function ChildrenMatches(elem, selector) { + let matchingChildren = []; + if (elem) { + matchingChildren = [...elem.children].filter((child) => child.matches(selector)); + } + return matchingChildren; + } + Utils.ChildrenMatches = ChildrenMatches; + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + function CreateApiResponse({ callback, errorCode, hasValue = false }) { + const responseObj = { + code: OutSystems.OSUI.ErrorCodes.Success.code, + isSuccess: true, + message: OutSystems.OSUI.ErrorCodes.Success.message, + }; + try { + if (hasValue) { + responseObj.value = callback(); + } + else { + callback(); + } + } + catch (error) { + responseObj.code = errorCode; + responseObj.isSuccess = false; + responseObj.message = error.message; + } + return JSON.stringify(responseObj); + } + Utils.CreateApiResponse = CreateApiResponse; + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Dates; + (function (Dates) { + function GetServerDateFormat() { + return OSFramework.OSUI.Helper.Dates.ServerFormat; + } + Dates.GetServerDateFormat = GetServerDateFormat; + function SetServerDateFormat(date) { + OSFramework.OSUI.Helper.Dates.SetServerDateFormat(date); + } + Dates.SetServerDateFormat = SetServerDateFormat; + })(Dates = OSUI.Dates || (OSUI.Dates = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + var DeviceDetection; + (function (DeviceDetection) { + function GetDeviceOrientation() { + return OSFramework.OSUI.Helper.DeviceInfo.GetDeviceOrientation(); + } + DeviceDetection.GetDeviceOrientation = GetDeviceOrientation; + function GetDeviceType() { + return OSFramework.OSUI.Helper.DeviceInfo.GetDeviceType(); + } + DeviceDetection.GetDeviceType = GetDeviceType; + function IsTouch() { + return OSFramework.OSUI.Helper.DeviceInfo.IsTouch; + } + DeviceDetection.IsTouch = IsTouch; + function GetOperatingSystem(UserAgent) { + return OSFramework.OSUI.Helper.DeviceInfo.GetOperatingSystem(UserAgent); + } + DeviceDetection.GetOperatingSystem = GetOperatingSystem; + function IsDesktop() { + return OSFramework.OSUI.Helper.DeviceInfo.IsDesktop; + } + DeviceDetection.IsDesktop = IsDesktop; + function CheckIsLayoutNative() { + const layout = OSFramework.OSUI.Helper.Dom.ClassSelector(document.body, OSFramework.OSUI.GlobalEnum.CssClassElements.Layout); + if (layout) { + return OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(layout, OSFramework.OSUI.GlobalEnum.CssClassElements.LayoutNative); + } + else { + return false; + } + } + DeviceDetection.CheckIsLayoutNative = CheckIsLayoutNative; + function CheckIsLayoutSide() { + const layout = OSFramework.OSUI.Helper.Dom.ClassSelector(document.body, OSFramework.OSUI.GlobalEnum.CssClassElements.Layout); + if (layout) { + return OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(layout, OSFramework.OSUI.GlobalEnum.CssClassElements.LayoutSide); + } + else { + return false; + } + } + DeviceDetection.CheckIsLayoutSide = CheckIsLayoutSide; + function IsRunningAsPWA() { + return OSFramework.OSUI.Helper.DeviceInfo.IsPwa; + } + DeviceDetection.IsRunningAsPWA = IsRunningAsPWA; + function IsPhone() { + return OSFramework.OSUI.Helper.DeviceInfo.IsPhone; + } + DeviceDetection.IsPhone = IsPhone; + function IsRunningAsNativeApp() { + return OSFramework.OSUI.Helper.DeviceInfo.IsNative; + } + DeviceDetection.IsRunningAsNativeApp = IsRunningAsNativeApp; + function IsTablet() { + return OSFramework.OSUI.Helper.DeviceInfo.IsTablet; + } + DeviceDetection.IsTablet = IsTablet; + function IsWebApp() { + const layout = OSFramework.OSUI.Helper.Dom.ClassSelector(document.body, OSFramework.OSUI.GlobalEnum.CssClassElements.Layout); + if (layout) { + const isNotOldNativeLayouts = OSFramework.OSUI.Helper.Dom.TagSelector(document.body, '.active-screen .layout.layout-top') || + OSFramework.OSUI.Helper.Dom.TagSelector(document.body, '.active-screen .layout.layout-side') || + OSFramework.OSUI.Helper.Dom.TagSelector(document.body, '.active-screen .layout.blank') || + OSFramework.OSUI.Helper.Dom.TagSelector(document.body, '.active-screen .layout.layout-blank'); + return !!isNotOldNativeLayouts && CheckIsLayoutNative() === false; + } + else { + return false; + } + } + DeviceDetection.IsWebApp = IsWebApp; + function SetDeviceBreakpoints(phoneWidth, tabletWidth) { + return function () { + const windowWidth = window.innerWidth || document.documentElement.clientWidth; + const windowHeight = window.innerHeight || document.documentElement.clientHeight; + const orient = windowWidth > windowHeight + ? OSFramework.OSUI.GlobalEnum.DeviceOrientation.landscape + : OSFramework.OSUI.GlobalEnum.DeviceOrientation.portrait; + const userValues = { + phone: phoneWidth, + tablet: tabletWidth, + }; + const phoneMax = userValues.phone ? userValues.phone : 700; + const tabletMax = userValues.tablet ? userValues.tablet : 1024; + const deviceList = [ + OSFramework.OSUI.GlobalEnum.DeviceType.phone, + OSFramework.OSUI.GlobalEnum.DeviceType.tablet, + OSFramework.OSUI.GlobalEnum.DeviceType.desktop, + ]; + let device; + if (windowWidth <= phoneMax) { + device = 0; + } + else if (windowWidth <= tabletMax) { + device = 1; + } + else { + device = 2; + } + return [orient, deviceList[device]]; + }; + } + DeviceDetection.SetDeviceBreakpoints = SetDeviceBreakpoints; + })(DeviceDetection = Utils.DeviceDetection || (Utils.DeviceDetection = {})); + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + var InvalidInputs; + (function (InvalidInputs) { + function FocusFirstInvalidInput(elementId, isSmooth, elementParentClass) { + return OSFramework.OSUI.Helper.InvalidInputs.FocusFirstInvalidInput(elementId, isSmooth, elementParentClass); + } + InvalidInputs.FocusFirstInvalidInput = FocusFirstInvalidInput; + })(InvalidInputs = Utils.InvalidInputs || (Utils.InvalidInputs = {})); + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + function GenerateUniqueId() { + return OSFramework.OSUI.Helper.Dom.GenerateUniqueId(); + } + Utils.GenerateUniqueId = GenerateUniqueId; + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + function GetBrowser(useragent = '') { + return OSFramework.OSUI.Helper.DeviceInfo.GetBrowser(useragent); + } + Utils.GetBrowser = GetBrowser; + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + function GetClosest(elem, selector) { + return elem.closest(selector) ? elem.closest(selector) : false; + } + Utils.GetClosest = GetClosest; + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + function GetHasListInside(targetElem) { + const listElements = OSUI.Utils.ChildrenMatches(targetElem, OSFramework.OSUI.Constants.Dot + OSFramework.OSUI.GlobalEnum.CssClassElements.List); + return listElements.length > 0; + } + Utils.GetHasListInside = GetHasListInside; + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + let APIMethod; + (function (APIMethod) { + APIMethod["SetProviderConfigs"] = "SetProviderConfigs"; + APIMethod["SetProviderEvent"] = "SetProviderEvent"; + APIMethod["UnsetProviderEvent"] = "UnsetProviderEvent"; + })(APIMethod = Utils.APIMethod || (Utils.APIMethod = {})); + function GetPickerExtensibilityAPI(widgetId, method) { + try { + OutSystems.OSUI.Patterns.DatePickerAPI.GetDatePickerItemById(widgetId); + return OutSystems.OSUI.Patterns.DatePickerAPI[method]; + } + catch (error) { + try { + OutSystems.OSUI.Patterns.TimePickerAPI.GetTimePickerItemById(widgetId); + return OutSystems.OSUI.Patterns.TimePickerAPI[method]; + } + catch (error) { + try { + OutSystems.OSUI.Patterns.MonthPickerAPI.GetMonthPickerItemById(widgetId); + return OutSystems.OSUI.Patterns.MonthPickerAPI[method]; + } + catch (error) { + console.warn(`WidgetId: ${widgetId} is not valid.`); + } + } + } + } + Utils.GetPickerExtensibilityAPI = GetPickerExtensibilityAPI; + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + var HideOnScroll; + (function (HideOnScroll) { + function addEvents(header) { + var _a; + const content = document.querySelector('.active-screen .content'); + if (OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(header, 'hide') && content) { + let startY = 0; + const mainContentHeight = (_a = OSFramework.OSUI.Helper.Dom.ClassSelector(document.body, 'main-content')) === null || _a === void 0 ? void 0 : _a.scrollHeight; + const threshold = 60; + const layout = OSFramework.OSUI.Helper.Dom.ClassSelector(document.body, OSFramework.OSUI.GlobalEnum.CssClassElements.Layout); + if (mainContentHeight - threshold > content.offsetHeight) { + content.addEventListener(OSFramework.OSUI.GlobalEnum.HTMLEvent.TouchStart, (e) => { + startY = e.touches[0].pageY; + }, false); + content.addEventListener(OSFramework.OSUI.GlobalEnum.HTMLEvent.TouchMove, (e) => { + const c = e.touches[0].pageY; + const translateY = c - startY; + if (c < startY - threshold && translateY < 0) { + OSFramework.OSUI.Helper.Dom.Styles.AddClass(header, 'header-on-scroll'); + OSFramework.OSUI.Helper.Dom.Styles.AddClass(layout, 'header-is-hidden'); + } + else if (c > startY + threshold) { + OSFramework.OSUI.Helper.Dom.Styles.RemoveClass(header, 'header-on-scroll'); + OSFramework.OSUI.Helper.Dom.Styles.RemoveClass(layout, 'header-is-hidden'); + } + }, false); + } + } + } + function Init() { + const header = OSFramework.OSUI.Helper.Dom.ClassSelector(document.body, OSFramework.OSUI.GlobalEnum.CssClassElements.Header); + if (header) { + addEvents(header); + } + } + HideOnScroll.Init = Init; + })(HideOnScroll = Utils.HideOnScroll || (Utils.HideOnScroll = {})); + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Language; + (function (Language) { + function Get() { + return OSFramework.OSUI.Helper.Language.Lang; + } + Language.Get = Get; + function GetShort() { + return OSFramework.OSUI.Helper.Language.ShortLang; + } + Language.GetShort = GetShort; + function Set(lang) { + OSFramework.OSUI.Helper.Language.Set(lang); + } + Language.Set = Set; + })(Language = OSUI.Language || (OSUI.Language = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + var LayoutPrivate; + (function (LayoutPrivate) { + function Dispose() { + LayoutPrivate.OnOrientationChange.Unset(); + } + LayoutPrivate.Dispose = Dispose; + function FixInputs() { + let originalPosition = 0; + let currentPosition = 0; + const content = OSFramework.OSUI.Helper.Dom.ClassSelector(document, OSFramework.OSUI.GlobalEnum.CssClassElements.Content); + const inputs = document.querySelectorAll(OSFramework.OSUI.Constants.JustInputs); + if (inputs.length !== 0) { + for (let i = inputs.length - 1; i >= 0; i--) { + inputs[i].style.webkitUserSelect = 'auto'; + } + if (content) { + content.addEventListener(OSFramework.OSUI.GlobalEnum.HTMLEvent.TouchStart, function (e) { + originalPosition = e.changedTouches[0].pageY; + for (let i = inputs.length - 1; i >= 0; i--) { + inputs[i].style.webkitUserSelect = 'auto'; + } + }); + content.addEventListener(OSFramework.OSUI.GlobalEnum.HTMLEvent.TouchMove, function (e) { + currentPosition = e.touches[0].pageY; + if (Math.abs(originalPosition - currentPosition) > 10) { + for (let i = inputs.length - 1; i >= 0; i--) { + inputs[i].style.webkitUserSelect = 'none'; + } + } + else { + for (let i = inputs.length - 1; i >= 0; i--) { + inputs[i].style.webkitUserSelect = 'auto'; + } + } + }); + content.addEventListener(OSFramework.OSUI.GlobalEnum.HTMLEvent.TouchEnd, function () { + setTimeout(function () { + for (let i = inputs.length - 1; i >= 0; i--) { + inputs[i].style.webkitUserSelect = 'auto'; + } + }, 0); + }); + } + } + } + LayoutPrivate.FixInputs = FixInputs; + function HideHeader(HideHeader) { + if (HideHeader) { + const loadTime = window.performance.timing.domContentLoadedEventEnd - window.performance.timing.navigationStart; + setTimeout(function () { + OSUI.Utils.HideOnScroll.Init(); + }, loadTime); + } + } + LayoutPrivate.HideHeader = HideHeader; + function RTLObserver(callback) { + console.warn(`This method is deprecated. Use instead the API OSFramework.OSUI.Event.DOMEvents.Observers.GlobalObserverManager.Instance.addHandler`); + OSFramework.OSUI.Event.DOMEvents.Observers.GlobalObserverManager.Instance.addHandler(OSFramework.OSUI.Event.DOMEvents.Observers.ObserverEvent.RTL, callback); + } + LayoutPrivate.RTLObserver = RTLObserver; + function SetDeviceClass(IsWebApp) { + const operatingSystem = OSFramework.OSUI.Helper.DeviceInfo.GetOperatingSystem(); + const body = document.body; + if (body) { + if (operatingSystem !== OSFramework.OSUI.GlobalEnum.MobileOS.Unknown) { + OSFramework.OSUI.Helper.Dom.Styles.AddClass(body, operatingSystem); + } + if (operatingSystem === OSFramework.OSUI.GlobalEnum.MobileOS.IOS && + OSFramework.OSUI.Helper.DeviceInfo.IsIphoneWithNotch) { + OSFramework.OSUI.Helper.Dom.Styles.AddClass(body, OSFramework.OSUI.GlobalEnum.NotchClasses.IPhoneX); + } + if (IsWebApp) { + const browser = OSFramework.OSUI.Helper.DeviceInfo.GetBrowser(); + if (browser !== OSFramework.OSUI.GlobalEnum.Browser.unknown) { + OSFramework.OSUI.Helper.Dom.Styles.AddClass(body, browser); + } + if (OSFramework.OSUI.Helper.DeviceInfo.IsTouch) { + OSFramework.OSUI.Helper.Dom.Styles.AddClass(body, OSFramework.OSUI.GlobalEnum.CssClassElements.IsTouch); + } + } + else { + if (OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(body, OSFramework.OSUI.GlobalEnum.DeviceType.phone) === false && + OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(body, OSFramework.OSUI.GlobalEnum.DeviceType.tablet) === false) { + body.classList.add(OSFramework.OSUI.GlobalEnum.DeviceType.desktop); + } + } + LayoutPrivate.OnOrientationChange.Set(); + } + } + LayoutPrivate.SetDeviceClass = SetDeviceClass; + function SetStickyObserver() { + const layout = document.querySelector('.active-screen .layout'); + const stickyObserver = document.querySelector('.active-screen .sticky-observer'); + const observer = new IntersectionObserver(function (entries) { + if (entries[0].isIntersecting) { + layout.classList.add(OSFramework.OSUI.GlobalEnum.CssClassElements.HeaderIsVisible); + } + else { + layout.classList.remove(OSFramework.OSUI.GlobalEnum.CssClassElements.HeaderIsVisible); + } + }); + observer.observe(stickyObserver); + } + LayoutPrivate.SetStickyObserver = SetStickyObserver; + })(LayoutPrivate = Utils.LayoutPrivate || (Utils.LayoutPrivate = {})); + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + var LayoutPrivate; + (function (LayoutPrivate) { + class CssBodyVariables { + static _setCssVars() { + const body = document.body; + const headerContent = OSFramework.OSUI.Helper.Dom.ClassSelector(document, OSFramework.OSUI.GlobalEnum.CssClassElements.HeaderTopContent); + const footer = OSFramework.OSUI.Helper.Dom.ClassSelector(document, OSFramework.OSUI.GlobalEnum.CssClassElements.Footer); + if (OSUI.Utils.DeviceDetection.IsWebApp() === false) { + if (headerContent) { + OSFramework.OSUI.Helper.Dom.Styles.SetStyleAttribute(body, OSFramework.OSUI.GlobalEnum.CSSVariables.HeaderContentHeight, headerContent.getBoundingClientRect().height + OSFramework.OSUI.GlobalEnum.Units.Pixel); + } + if (footer) { + OSFramework.OSUI.Helper.Dom.Styles.SetStyleAttribute(body, OSFramework.OSUI.GlobalEnum.CSSVariables.FooterHeight, footer.getBoundingClientRect().height + OSFramework.OSUI.GlobalEnum.Units.Pixel); + } + } + if (OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(body, OSFramework.OSUI.GlobalEnum.DeviceType.phone) || + OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(body, OSFramework.OSUI.GlobalEnum.DeviceType.tablet)) { + OSFramework.OSUI.Helper.Dom.Styles.SetStyleAttribute(body, OSFramework.OSUI.GlobalEnum.CSSVariables.ViewportHeight, window.innerHeight + OSFramework.OSUI.GlobalEnum.Units.Pixel); + } + } + static Set() { + this._setCssVars(); + } + } + LayoutPrivate.CssBodyVariables = CssBodyVariables; + })(LayoutPrivate = Utils.LayoutPrivate || (Utils.LayoutPrivate = {})); + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + var LayoutPrivate; + (function (LayoutPrivate) { + class CloseDeprecatedSubmenu { + static _checkDeprecatedSubmenu() { + const activeScreen = document.querySelector(OSFramework.OSUI.Constants.Dot + OSFramework.OSUI.GlobalEnum.CssClassElements.ActiveScreen); + this._checkMenuLinks = activeScreen.querySelector(OSFramework.OSUI.Constants.Dot + OSFramework.OSUI.GlobalEnum.CssClassElements.MenuLinks); + if (this._checkMenuLinks) { + this._deprecatedSubmenuItems = this._checkMenuLinks.querySelectorAll(OSFramework.OSUI.Constants.Dot + OSFramework.OSUI.GlobalEnum.CssClassElements.DeprecatedSubmenu); + } + } + static _closeDeprecatedSubmenu() { + if (this._deprecatedSubmenuItems && this._deprecatedSubmenuItems.length > 0) { + for (const item of this._deprecatedSubmenuItems) { + if (item.classList.contains('open')) { + item.CloseMenu(); + } + } + } + } + static Set() { + this._checkDeprecatedSubmenu(); + this.Unset(); + if (this._deprecatedSubmenuItems && + this._deprecatedSubmenuItems.length > 0 && + OSFramework.OSUI.Helper.DeviceInfo.IsDesktop && + !OSUI.Utils.DeviceDetection.CheckIsLayoutSide()) { + this._closeMenuEvent = this._closeDeprecatedSubmenu.bind(this); + document.body.addEventListener(OSFramework.OSUI.GlobalEnum.HTMLEvent.Click, this._closeMenuEvent); + } + } + static Unset() { + document.body.removeEventListener(OSFramework.OSUI.GlobalEnum.HTMLEvent.Click, this._closeMenuEvent); + } + } + LayoutPrivate.CloseDeprecatedSubmenu = CloseDeprecatedSubmenu; + })(LayoutPrivate = Utils.LayoutPrivate || (Utils.LayoutPrivate = {})); + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + var LayoutPrivate; + (function (LayoutPrivate) { + class OnOrientationChange { + static _onOrientationChange() { + const body = document.body; + if (body) { + setTimeout(() => { + if (OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(body, OSFramework.OSUI.GlobalEnum.NotchClasses.IPhoneX)) { + OSFramework.OSUI.Helper.Dom.Styles.RemoveClass(body, OSFramework.OSUI.GlobalEnum.DeviceType.tablet); + OSFramework.OSUI.Helper.Dom.Styles.AddClass(body, OSFramework.OSUI.GlobalEnum.DeviceType.phone); + } + if (OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(body, OSFramework.OSUI.GlobalEnum.DeviceType.phone) === false && + OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(body, OSFramework.OSUI.GlobalEnum.DeviceType.tablet) === false) { + OSFramework.OSUI.Helper.Dom.Styles.AddClass(body, OSFramework.OSUI.GlobalEnum.DeviceType.desktop); + } + else if (OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(body, OSFramework.OSUI.GlobalEnum.DeviceType.desktop) && + OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(body, OSFramework.OSUI.GlobalEnum.DeviceType.tablet)) { + OSFramework.OSUI.Helper.Dom.Styles.RemoveClass(body, OSFramework.OSUI.GlobalEnum.DeviceType.desktop); + } + LayoutPrivate.CssBodyVariables.Set(); + }, 500); + } + } + static Set() { + OSFramework.OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.addHandler(OSFramework.OSUI.Event.DOMEvents.Listeners.Type.OrientationChange, this._onOrientationChange); + } + static Unset() { + OSFramework.OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.removeHandler(OSFramework.OSUI.Event.DOMEvents.Listeners.Type.OrientationChange, this._onOrientationChange); + } + } + LayoutPrivate.OnOrientationChange = OnOrientationChange; + })(LayoutPrivate = Utils.LayoutPrivate || (Utils.LayoutPrivate = {})); + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + var LayoutPrivate; + (function (LayoutPrivate) { + class SkipContentLink { + static _setLink() { + const mainContent = OSFramework.OSUI.Helper.Dom.ClassSelector(document, OSFramework.OSUI.GlobalEnum.CssClassElements.MainContent); + const skipContentLink = OSFramework.OSUI.Helper.Dom.ClassSelector(document, OSFramework.OSUI.GlobalEnum.CssClassElements.SkipContent); + if (mainContent && skipContentLink) { + skipContentLink.setAttribute(OSFramework.OSUI.GlobalEnum.HTMLAttributes.Href, mainContent.getAttribute(OSFramework.OSUI.GlobalEnum.HTMLAttributes.Id)); + } + } + static Set() { + this._setLink(); + } + } + LayoutPrivate.SkipContentLink = SkipContentLink; + })(LayoutPrivate = Utils.LayoutPrivate || (Utils.LayoutPrivate = {})); + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + function LogMessage(message) { + if (OSFramework.OSUI.Helper.LogMessage(message)) { + console.log(OSFramework.OSUI.Helper.LogMessage(message)); + } + } + Utils.LogMessage = LogMessage; + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + function HasMasterDetail() { + let returnOutput = false; + const masterDetail = OSFramework.OSUI.Helper.Dom.ClassSelector(document.body, 'split-screen-wrapper'); + const content = document.querySelector('.active-screen .content'); + if (content && content.contains(masterDetail)) { + OSFramework.OSUI.Helper.Dom.Styles.AddClass(content, 'has-master-detail'); + returnOutput = true; + } + return returnOutput; + } + Utils.HasMasterDetail = HasMasterDetail; + function SetFocusBehaviour(contentId, triggerItem) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Utilities.FailMasterDetailSetContentFocus, + callback: () => { + const element = OSFramework.OSUI.Helper.Dom.GetElementById(contentId); + const isPhone = OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(document.body, 'phone'); + OSFramework.OSUI.Helper.Dom.Attribute.Set(element, 'tabindex', '0'); + element.focus(); + if (isPhone === false) { + const focusItemTop = element + .closest('.split-right-content') + .querySelector('span.focus-item.top'); + OSFramework.OSUI.Helper.Dom.Attribute.Set(focusItemTop, 'tabindex', '0'); + OSFramework.OSUI.Helper.Dom.Attribute.Set(focusItemTop, 'focusItemId', triggerItem); + const focusItemBottom = element + .closest('.split-right-content') + .querySelector('span.focus-item.bottom'); + const itemChild = OSFramework.OSUI.Helper.Dom.TagSelector(OSFramework.OSUI.Helper.Dom.GetElementById(triggerItem), 'div'); + if (itemChild) { + OSFramework.OSUI.Helper.Dom.Attribute.Set(focusItemBottom, 'tabindex', '0'); + OSFramework.OSUI.Helper.Dom.Attribute.Set(focusItemBottom, 'focusItemId', itemChild.id); + } + else { + OSFramework.OSUI.Helper.Dom.Attribute.Set(focusItemBottom, 'tabindex', '-1'); + OSFramework.OSUI.Helper.Dom.Attribute.Remove(focusItemBottom, 'focusItemId'); + } + } + }, + }); + return result; + } + Utils.SetFocusBehaviour = SetFocusBehaviour; + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + var Menu; + (function (Menu) { + let _onOrientationChangeCallback; + function _onOrientationChangeCallbackHandler(callback) { + if (callback !== undefined) { + setTimeout(function () { + _onOrientationChangeCallback(); + }, 300); + } + } + function AddMenuOnOrientationChange(callback) { + if (callback !== undefined) { + _onOrientationChangeCallback = callback; + OSFramework.OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.addHandler(OSFramework.OSUI.Event.DOMEvents.Listeners.Type.OrientationChange, _onOrientationChangeCallbackHandler); + } + } + Menu.AddMenuOnOrientationChange = AddMenuOnOrientationChange; + function IsMenuDraggable() { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Utilities.FailCheckIsMenuDraggable, + hasValue: true, + callback: () => { + const _layoutMenuVisible = OSFramework.OSUI.Helper.Dom.TagSelector(document.body, '.active-screen .aside-visible'); + const _isLandscape = OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(document.body, 'landscape'); + let _addDragGestures = false; + if (window.cordova !== undefined && Utils.DeviceDetection.IsRunningAsPWA() === false) { + if ((_layoutMenuVisible && OSFramework.OSUI.Helper.DeviceInfo.IsDesktop) || + (_layoutMenuVisible && OSFramework.OSUI.Helper.DeviceInfo.IsTablet && _isLandscape)) { + _addDragGestures = false; + } + else { + _addDragGestures = true; + } + } + return _addDragGestures; + }, + }); + return result; + } + Menu.IsMenuDraggable = IsMenuDraggable; + function MenuHide() { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Utilities.FailSetExtendedMenuHide, + callback: () => { + const menu = OSFramework.OSUI.Helper.Dom.ClassSelector(document, 'menu'); + const appMenu = OSFramework.OSUI.Helper.Dom.ClassSelector(document, 'app-menu-container'); + const menuOverlay = OSFramework.OSUI.Helper.Dom.ClassSelector(document, 'menu-background'); + if (menu) { + OSFramework.OSUI.Helper.Dom.Styles.RemoveClass(menu, 'menu--visible'); + if (menuOverlay) { + menuOverlay.style.opacity = ''; + } + appMenu.style.transform = ''; + menu.addEventListener('transitionend', OnTransitionEnd, false); + } + else { + console.warn('The menu element is not present in the screen'); + } + function OnTransitionEnd() { + OSFramework.OSUI.Helper.Dom.Styles.RemoveClass(menu, 'menu--animatable'); + menu.removeEventListener('transitionend', OnTransitionEnd); + } + SetMenuAttributes(); + }, + }); + return result; + } + Menu.MenuHide = MenuHide; + function MenuShow() { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Utilities.FailSetExtendedMenuShow, + callback: () => { + const myMenu = OSFramework.OSUI.Helper.Dom.ClassSelector(document, 'menu'); + if (myMenu) { + OSFramework.OSUI.Helper.Dom.Styles.AddClass(myMenu, 'menu--visible'); + OSFramework.OSUI.Helper.Dom.Styles.AddClass(myMenu, 'menu--animatable'); + SetMenuAttributes(); + } + else { + console.warn('The menu element is not present in the screen'); + } + }, + }); + return result; + } + Menu.MenuShow = MenuShow; + function RemoveMenuOnOrientationChange() { + if (_onOrientationChangeCallback !== undefined) { + OSFramework.OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.removeHandler(OSFramework.OSUI.Event.DOMEvents.Listeners.Type.OrientationChange, _onOrientationChangeCallbackHandler); + _onOrientationChangeCallback = undefined; + } + } + Menu.RemoveMenuOnOrientationChange = RemoveMenuOnOrientationChange; + function SetActiveMenuItems(WidgetId, ActiveItem, ActiveSubItem) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Utilities.FailSetActiveMenuItems, + callback: () => { + let widgetSelector = ''; + if (WidgetId !== '') { + widgetSelector = '#' + WidgetId + ' '; + } + const appMenuLinks = OSFramework.OSUI.Helper.Dom.TagSelector(document.body, widgetSelector + '.app-menu-links') || + OSFramework.OSUI.Helper.Dom.TagSelector(document.body, widgetSelector + '.app-sidemenu-links'); + if (appMenuLinks) { + const activeLinkBlock = appMenuLinks.children[ActiveItem]; + if (activeLinkBlock) { + OSFramework.OSUI.Helper.Dom.Styles.AddClass(activeLinkBlock, 'active'); + const activeSubMenu = OSFramework.OSUI.Helper.Dom.ClassSelector(activeLinkBlock, 'submenu') || + OSFramework.OSUI.Helper.Dom.ClassSelector(activeLinkBlock, 'osui-submenu'); + if (activeSubMenu) { + OSFramework.OSUI.Helper.Dom.Styles.AddClass(activeSubMenu, 'active'); + const subMenuItem = OSFramework.OSUI.Helper.Dom.ClassSelector(activeSubMenu, 'submenu-items') || + OSFramework.OSUI.Helper.Dom.ClassSelector(activeSubMenu, 'osui-submenu__items'); + const activeSubMenuItem = subMenuItem.children[ActiveSubItem]; + if (activeSubMenuItem) { + OSFramework.OSUI.Helper.Dom.Styles.AddClass(activeSubMenuItem, 'active'); + } + } + } + } + }, + }); + return result; + } + Menu.SetActiveMenuItems = SetActiveMenuItems; + function SetBottomBarActiveElement(ActiveItem = -1) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Utilities.FailSetBottomBarActiveElement, + callback: () => { + const bottomBar = OSFramework.OSUI.Helper.Dom.ClassSelector(document, 'bottom-bar'); + const bottomBarChild = (bottomBar ? bottomBar.children[ActiveItem] : undefined); + if (bottomBar && bottomBarChild) { + OSFramework.OSUI.Helper.Dom.Styles.AddClass(bottomBarChild, 'active'); + } + }, + }); + return result; + } + Menu.SetBottomBarActiveElement = SetBottomBarActiveElement; + function SetMenuAttributes() { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Utilities.FailSetMenuAttributes, + callback: () => { + const layout = OSFramework.OSUI.Helper.Dom.ClassSelector(document, 'layout'); + const menu = OSFramework.OSUI.Helper.Dom.ClassSelector(document, 'app-menu-content') || + OSFramework.OSUI.Helper.Dom.ClassSelector(document, 'app-menu-container'); + const isExpanded = OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(layout, 'menu-visible') || + OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(layout, 'menu--visible'); + if (menu) { + let focusableEls = menu.querySelectorAll(OSFramework.OSUI.Constants.FocusableElems); + focusableEls = [].slice.call(focusableEls); + if (isExpanded) { + menu.setAttribute('tabindex', '0'); + menu.setAttribute('aria-expanded', 'true'); + } + else { + menu.setAttribute('tabindex', '-1'); + menu.setAttribute('aria-expanded', 'false'); + } + if (isExpanded) { + focusableEls.forEach(function (item) { + item.setAttribute('tabindex', '0'); + }); + } + else { + focusableEls.forEach(function (item) { + item.setAttribute('tabindex', '-1'); + }); + } + } + }, + }); + return result; + } + Menu.SetMenuAttributes = SetMenuAttributes; + function SetMenuIcon(MenuAction) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Utilities.FailSetMenuIcon, + callback: () => { + if (MenuAction === 'Auto') { + const appMenu = Array.prototype.slice.call(OSFramework.OSUI.Helper.Dom.TagSelectorAll(document, '.bottom-bar a')); + const bottomBar = Array.prototype.slice.call(OSFramework.OSUI.Helper.Dom.TagSelectorAll(document, '.app-menu a')); + const links = appMenu.concat(bottomBar); + let showMenu = false; + for (let i = 0; i < links.length; i++) { + const timestampIndex = window.location.href.indexOf('_ts') - 1; + const currentPage = timestampIndex > 0 + ? window.location.href.substring(0, timestampIndex) + : window.location.href; + if (links[i].attributes['href']) { + if (currentPage.indexOf(links[i].attributes['href'].value) >= 0 || + currentPage[currentPage.length - 1] === '/') { + showMenu = window.history ? window.history.length > 0 : true; + } + } + } + const menuIcon = OSFramework.OSUI.Helper.Dom.ClassSelector(document, 'app-menu-icon'); + if (showMenu) { + OSFramework.OSUI.Helper.Dom.Styles.RemoveClass(menuIcon, 'back'); + } + else { + OSFramework.OSUI.Helper.Dom.Styles.AddClass(menuIcon, 'back'); + } + } + }, + }); + return result; + } + Menu.SetMenuIcon = SetMenuIcon; + function SetMenuIconListeners() { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Utilities.FailSetMenuIconListeners, + callback: () => { + const menuIcon = OSFramework.OSUI.Helper.Dom.ClassSelector(document, 'menu-icon'); + if (menuIcon) { + const menuIconOnKeypress = function (e) { + if (e.keyCode === '32' || e.keyCode === '13') { + e.preventDefault(); + e.stopPropagation(); + ToggleSideMenu(); + } + }; + menuIcon.addEventListener('keydown', menuIconOnKeypress); + } + }, + }); + return result; + } + Menu.SetMenuIconListeners = SetMenuIconListeners; + function SetMenuListeners(WidgetId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Utilities.FailSetMenuListeners, + callback: () => { + let widgetSelector = ''; + if (WidgetId !== '') { + widgetSelector = '#' + WidgetId; + } + const layout = OSFramework.OSUI.Helper.Dom.ClassSelector(document, 'layout'); + const menu = OSFramework.OSUI.Helper.Dom.TagSelector(document.body, widgetSelector + '.app-menu-content'); + if (layout && menu) { + let isTopMenuMobile; + let isVisibleMobile; + let isExpanded = OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(layout, 'menu-visible'); + const isOverlay = OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(layout, 'aside-overlay'); + const isExpandable = OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(layout, 'aside-expandable'); + const menuOnKeypress = function (e) { + const isTabPressed = e.key === 'Tab' || e.keyCode === 9; + const isEscapedPressed = e.key === 'Escape' || e.keyCode === 27; + const isShiftKey = e.shiftKey; + const focusableEls = OSFramework.OSUI.Helper.Dom.TagSelectorAll(menu, OSFramework.OSUI.Constants.FocusableElems); + const firstFocusableEl = focusableEls[0]; + const lastFocusableEl = focusableEls[focusableEls.length - 1]; + const isExpandableDesktop = OSFramework.OSUI.Helper.Dom.TagSelector(document.body, '.desktop .active-screen .layout-side.aside-expandable') || + OSFramework.OSUI.Helper.Dom.TagSelector(document.body, '.tablet.landscape .active-screen .layout-side.aside-expandable'); + if (!isTabPressed && !isEscapedPressed) { + return; + } + isExpanded = OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(layout, 'menu-visible'); + if (isExpanded && isEscapedPressed) { + e.preventDefault(); + e.stopPropagation(); + ToggleSideMenu(); + } + if (!isExpandableDesktop) { + if (isShiftKey) { + if (document.activeElement === firstFocusableEl) { + lastFocusableEl.focus(); + e.preventDefault(); + } + } + else if (document.activeElement === lastFocusableEl) { + firstFocusableEl.focus(); + e.preventDefault(); + } + } + }; + setTimeout(function () { + isTopMenuMobile = + OSFramework.OSUI.Helper.Dom.TagSelector(document.body, '.tablet .active-screen .layout-top') || + OSFramework.OSUI.Helper.Dom.TagSelector(document.body, '.phone .active-screen .layout-top'); + isVisibleMobile = + OSFramework.OSUI.Helper.Dom.TagSelector(document.body, '.tablet.portrait .active-screen .layout-side.aside-visible') || + OSFramework.OSUI.Helper.Dom.TagSelector(document.body, '.phone .active-screen .layout-side.aside-visible'); + if (isOverlay || isExpandable || isTopMenuMobile || isVisibleMobile) { + menu.addEventListener('keydown', menuOnKeypress); + SetMenuAttributes(); + } + }, 0); + const menuLinks = OSFramework.OSUI.Helper.Dom.ClassSelector(menu, 'app-menu-links'); + if (menuLinks) { + const menuLinksChildren = menuLinks.children; + for (let i = 0; i < menuLinksChildren.length; i++) { + if (!menuLinksChildren[i].hasAttribute('role') && menuLinksChildren[i].tagName === 'A') { + menuLinksChildren[i].setAttribute('role', 'menuitem'); + } + } + } + } + }, + }); + return result; + } + Menu.SetMenuListeners = SetMenuListeners; + function ToggleSideMenu() { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Utilities.FailToggleSideMenu, + callback: () => { + const layout = document.querySelector('.layout'); + const menu = document.querySelector('.app-menu-content'); + const menuIcon = document.querySelector('.menu-icon'); + if (layout && menu) { + let isExpanded = layout.classList.contains('menu-visible'); + if (isExpanded && menuIcon) { + layout.classList.remove('menu-visible'); + menuIcon.focus(); + isExpanded = false; + } + else { + layout.classList.add('menu-visible'); + menu.focus(); + isExpanded = true; + } + SetMenuAttributes(); + } + }, + }); + return result; + } + Menu.ToggleSideMenu = ToggleSideMenu; + })(Menu = Utils.Menu || (Utils.Menu = {})); + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + var Network; + (function (Network) { + function IsOnline() { + return navigator.onLine; + } + Network.IsOnline = IsOnline; + function Type() { + let typeofConnection = 'webbrowser'; + if (navigator.connection !== undefined && navigator.connection.type !== undefined) { + typeofConnection = navigator.connection.type; + } + return typeofConnection; + } + Network.Type = Type; + })(Network = Utils.Network || (Utils.Network = {})); + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + function AbstractNormalizeProviderConfigs(providerConfigs, htmlElementsProps) { + for (const keyName of Object.keys(providerConfigs)) { + let keyValue = providerConfigs[keyName]; + if (typeof keyValue !== 'string') { + continue; + } + if ((htmlElementsProps === null || htmlElementsProps === void 0 ? void 0 : htmlElementsProps.indexOf(keyName)) > -1) { + providerConfigs[keyName] = OSFramework.OSUI.Helper.Dom.GetElementById(keyValue); + } + else { + keyValue = keyValue.toLowerCase().trim(); + if (keyValue === 'true' || keyValue === 'false') { + providerConfigs[keyName] = keyValue === 'true'; + } + } + } + return providerConfigs; + } + Utils.AbstractNormalizeProviderConfigs = AbstractNormalizeProviderConfigs; + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + function ScrollToElement(ElementId, IsSmooth = true, OffSet = 0, ElementParentClass, ScrollDelay) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Utilities.FailScrollToElement, + callback: () => { + const elementToScrollTo = OSFramework.OSUI.Helper.Dom.GetElementById(ElementId); + setTimeout(() => { + if (elementToScrollTo) { + const isHeaderFixed = OSFramework.OSUI.Helper.Dom.ClassSelector(document, OSFramework.OSUI.GlobalEnum.CssClassElements.HeaderIsFixed) || + OSFramework.OSUI.Helper.Dom.ClassSelector(document, OSFramework.OSUI.GlobalEnum.CSSSelectors.LayoutNativeHeader); + const isIosBounce = OSFramework.OSUI.Helper.Dom.ClassSelector(document, OSFramework.OSUI.GlobalEnum.CSSSelectors.IosBounceScroll); + const scrollBehavior = IsSmooth + ? OSFramework.OSUI.GlobalEnum.ScrollBehavior.Smooth + : OSFramework.OSUI.GlobalEnum.ScrollBehavior.Auto; + let scrollableElement = OSFramework.OSUI.Helper.Dom.ClassSelector(document, OSFramework.OSUI.GlobalEnum.CssClassElements.ActiveScreen); + if (ElementParentClass !== OSFramework.OSUI.Constants.EmptyString) { + const isElementParentClass = elementToScrollTo.closest(OSFramework.OSUI.Constants.Dot + ElementParentClass); + if (isElementParentClass) { + scrollableElement = isElementParentClass; + } + else { + console.warn(`The element with class '${ElementParentClass}' doesn't exist on DOM.`); + } + } + else if (isIosBounce) { + scrollableElement = isIosBounce; + } + let top = scrollableElement.scrollTop + elementToScrollTo.getBoundingClientRect().top + OffSet; + if (isHeaderFixed) { + const header = OSFramework.OSUI.Helper.Dom.ClassSelector(document, OSFramework.OSUI.GlobalEnum.CssClassElements.Header); + top = -header.offsetHeight + top; + } + scrollableElement.scrollTo({ + top: top, + left: 0, + behavior: scrollBehavior, + }); + } + }, ScrollDelay); + }, + }); + return result; + } + Utils.ScrollToElement = ScrollToElement; + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + function ToggleClass(element, state, className) { + if (!state) { + setTimeout(function () { + if (!state) { + OSFramework.OSUI.Helper.Dom.Styles.RemoveClass(element, className); + } + }, 500); + } + else { + OSFramework.OSUI.Helper.Dom.Styles.AddClass(element, className); + element.offsetHeight; + } + } + Utils.ToggleClass = ToggleClass; + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + function AddFavicon(URL) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Utilities.FailAddFavicon, + callback: () => { + const existingFavicon = OSFramework.OSUI.Helper.Dom.TagSelector(document.head, "link[rel='shortcut icon']"); + if (existingFavicon) { + existingFavicon.href = URL; + } + else { + const link = document.createElement('link'); + link.type = 'image/x-icon'; + link.rel = 'shortcut icon'; + link.href = URL; + document.getElementsByTagName('head')[0].appendChild(link); + } + }, + }); + return result; + } + Utils.AddFavicon = AddFavicon; + function GetIsRTL() { + return OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(document.body, OSFramework.OSUI.Constants.IsRTLClass); + } + Utils.GetIsRTL = GetIsRTL; + function ListItemAnimate(ListId, HasLeftAction, HasRightAction, AnimationTime) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Utilities.FailListItemAnimate, + callback: () => { + let timeoutVar; + const timeAnimation = AnimationTime / 6; + const waitListRender = function () { + const listEl = OSFramework.OSUI.Helper.Dom.GetElementById(ListId); + if (OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(listEl, 'list-loading') === false) { + listAnimateItems(); + clearTimeout(timeoutVar); + } + else { + timeoutVar = setTimeout(waitListRender, 50); + } + }; + const listAnimateItems = function () { + setTimeout(function () { + const listElement = OSFramework.OSUI.Helper.Dom.GetElementById(ListId) + .childNodes[1]; + const listItemContentLeft = OSFramework.OSUI.Helper.Dom.TagSelector(listElement, '.active-screen .list-item-left-actions'); + const listItemContentRight = OSFramework.OSUI.Helper.Dom.TagSelector(listElement, '.active-screen .list-item-right-actions'); + listElement.style.pointerEvents = 'none'; + if (HasLeftAction) { + OSFramework.OSUI.Helper.Dom.Styles.AddClass(listItemContentLeft, 'has-content-animation'); + OSFramework.OSUI.Helper.Dom.Attribute.Set(listItemContentLeft, 'style', 'width:75px; transition: all ' + timeAnimation + 'ms !important;'); + setTimeout(function () { + listItemContentLeft.style.width = ''; + listItemContentLeft.addEventListener('transitionend', function () { + OSFramework.OSUI.Helper.Dom.Styles.RemoveClass(listItemContentLeft, 'has-content-animation'); + OSFramework.OSUI.Helper.Dom.Attribute.Remove(listItemContentLeft, 'style'); + listElement.style.pointerEvents = ''; + }, false); + }, timeAnimation * 3); + } + else if (HasRightAction) { + OSFramework.OSUI.Helper.Dom.Styles.AddClass(listItemContentRight, 'has-content-animation-right'); + OSFramework.OSUI.Helper.Dom.Attribute.Set(listItemContentRight, 'style', 'width:75px; transition: all ' + + timeAnimation + + 'ms !important; height: ' + + listElement.offsetHeight + + 'px;'); + setTimeout(function () { + listItemContentRight.style.width = ''; + listItemContentRight.addEventListener('transitionend', function () { + OSFramework.OSUI.Helper.Dom.Styles.RemoveClass(listItemContentRight, 'has-content-animation-right'); + OSFramework.OSUI.Helper.Dom.Attribute.Remove(listItemContentRight, 'style'); + listElement.style.pointerEvents = ''; + }, false); + }, timeAnimation * 3); + } + }, timeAnimation); + }; + waitListRender(); + }, + }); + return result; + } + Utils.ListItemAnimate = ListItemAnimate; + function MoveElement(ElementId, TargetSelector, TimeoutVal = 200) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Utilities.FailMoveElement, + callback: () => { + if (TargetSelector && ElementId) { + const elementToMove = OSFramework.OSUI.Helper.Dom.GetElementById(ElementId); + const targetElement = OSFramework.OSUI.Helper.Dom.TagSelector(document.body, TargetSelector); + if (elementToMove && targetElement) { + setTimeout(function () { + OSFramework.OSUI.Helper.Dom.Move(elementToMove, targetElement); + }, TimeoutVal); + } + } + }, + }); + return result; + } + Utils.MoveElement = MoveElement; + function SetActiveElement(ElementId, IsActive) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Utilities.FailSetActiveElement, + callback: () => { + const elem = OSFramework.OSUI.Helper.Dom.GetElementById(ElementId); + if (IsActive) { + OSFramework.OSUI.Helper.Dom.Styles.AddClass(elem, 'active-element'); + } + else { + OSFramework.OSUI.Helper.Dom.Styles.RemoveClass(elem, 'active-element'); + } + }, + }); + return result; + } + Utils.SetActiveElement = SetActiveElement; + function SetSelectedTableRow(TableId, RowNumber, IsSelected) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Utilities.FailSetSelectedRow, + callback: () => { + const tableRow = OSFramework.OSUI.Helper.Dom.TagSelectorAll(document, '#' + TableId + ' .table-row')[RowNumber]; + if (tableRow) { + if (IsSelected) { + OSFramework.OSUI.Helper.Dom.Styles.AddClass(tableRow, 'table-row-selected'); + } + else { + OSFramework.OSUI.Helper.Dom.Styles.RemoveClass(tableRow, 'table-row-selected'); + } + } + }, + }); + return result; + } + Utils.SetSelectedTableRow = SetSelectedTableRow; + function GetPlatformType() { + return OSFramework.OSUI.Constants.OSUIPlatform; + } + Utils.GetPlatformType = GetPlatformType; + function ShowPassword(WidgetId) { + const result = OutSystems.OSUI.Utils.CreateApiResponse({ + errorCode: OSUI.ErrorCodes.Utilities.FailShowPassword, + callback: () => { + if (WidgetId) { + const _inputPassword = OSFramework.OSUI.Helper.Dom.GetElementById(WidgetId); + if (_inputPassword.tagName.toLowerCase() !== OSFramework.OSUI.GlobalEnum.HTMLElement.Input || + (_inputPassword.type !== OSFramework.OSUI.GlobalEnum.InputTypeAttr.Text && + _inputPassword.type !== OSFramework.OSUI.GlobalEnum.InputTypeAttr.Password)) { + console.warn(`Object with WidgetId '${WidgetId}' should be an input element.`); + } + const _typeInputPassword = _inputPassword.type === OSFramework.OSUI.GlobalEnum.InputTypeAttr.Password + ? OSFramework.OSUI.GlobalEnum.InputTypeAttr.Text + : OSFramework.OSUI.GlobalEnum.InputTypeAttr.Password; + OSFramework.OSUI.Helper.Dom.Attribute.Set(_inputPassword, OSFramework.OSUI.GlobalEnum.HTMLAttributes.Type, _typeInputPassword); + } + else { + const _inputPassword = OSFramework.OSUI.Helper.Dom.ClassSelector(document, OSFramework.OSUI.GlobalEnum.CssClassElements.LoginPassword); + const _typeInputPassword = _inputPassword.type; + OSFramework.OSUI.Helper.Dom.Attribute.Set(_inputPassword, OSFramework.OSUI.GlobalEnum.HTMLAttributes.Type, _typeInputPassword === OSFramework.OSUI.GlobalEnum.InputTypeAttr.Password + ? OSFramework.OSUI.GlobalEnum.InputTypeAttr.Text + : OSFramework.OSUI.GlobalEnum.InputTypeAttr.Password); + } + }, + }); + return result; + } + Utils.ShowPassword = ShowPassword; + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var OutSystems; +(function (OutSystems) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + var PreviewInDevices; + (function (PreviewInDevices) { + class OnPostMessage { + static _addInPreviewCssClass() { + OnPostMessage._isInPreviewInDevices = true; + document.body.classList.add('PreviewInDevices'); + } + static _createPhonePreviewStyle(notchValue) { + if (!notchValue) { + return; + } + const style = document.createElement('style'); + style.textContent = ` + body * { + user-select: none !important + } + + body.is-phone.android.portrait { + --status-bar-height: ${notchValue}px; + } + + body.portrait.is-phone { + --os-safe-area-top: ${notchValue}px; + } + + body.landscape.is-phone { + --os-safe-area-right: ${notchValue}px; + --os-safe-area-left: ${notchValue}px; + } + + .is-phone .active-screen.screen-container::-webkit-scrollbar, html::-webkit-scrollbar, + .is-phone.ios .active-screen.screen-container .content::-webkit-scrollbar, html::-webkit-scrollbar { + display: none; + } + `; + document.body.classList.add('is-phone'); + document.body.setAttribute('data-status-bar-height', `${notchValue}px`); + document.head.appendChild(style); + } + static _createTabletPreviewStyle() { + const style = document.createElement('style'); + style.textContent = ` + body * { + user-select: none !important + } + + .tablet .active-screen.screen-container::-webkit-scrollbar, html::-webkit-scrollbar, + .tablet.ios .active-screen.screen-container .content::-webkit-scrollbar, html::-webkit-scrollbar { + display: none; + } + `; + document.head.appendChild(style); + } + static _message(evtName, evt) { + if (OSFramework.OSUI.GlobalEnum.HTMLEvent.Message === evtName && + (evt.origin.includes('outsystems.app') || evt.origin.includes('outsystems.dev'))) { + OnPostMessage._messageFromPreview(evt); + } + } + static _messageFromPreview(evt) { + OnPostMessage._addInPreviewCssClass(); + if (OSFramework.OSUI.Helper.DeviceInfo.IsPhone) { + OnPostMessage._createPhonePreviewStyle(evt.data.notchValue); + } + else if (OSFramework.OSUI.Helper.DeviceInfo.IsTablet) { + OnPostMessage._createTabletPreviewStyle(); + } + sessionStorage.setItem('previewDevicesUserAgent', evt.data.userAgent); + sessionStorage.setItem('previewDevicesPixelRatio', evt.data.pixelRatio); + OnPostMessage.Unset(); + evt.source.postMessage('received', { targetOrigin: evt.origin }); + OSFramework.OSUI.Helper.DeviceInfo.RefreshOperatingSystem(); + Utils.LayoutPrivate.SetDeviceClass(false); + } + static get IsInPreviewInDevices() { + return OnPostMessage._isInPreviewInDevices; + } + static Set() { + if (window.self !== window.top) { + OSFramework.OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.addHandler(OSFramework.OSUI.Event.DOMEvents.Listeners.Type.WindowMessage, OnPostMessage._message); + } + } + static Unset() { + OSFramework.OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.removeHandler(OSFramework.OSUI.Event.DOMEvents.Listeners.Type.WindowMessage, OnPostMessage._message); + } + } + OnPostMessage._isInPreviewInDevices = false; + OnPostMessage.Set(); + })(PreviewInDevices = Utils.PreviewInDevices || (Utils.PreviewInDevices = {})); + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = OutSystems.OSUI || (OutSystems.OSUI = {})); +})(OutSystems || (OutSystems = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var ErrorCodes; + (function (ErrorCodes) { + ErrorCodes.FloatingUI = { + FailCallProvider: 'OSUI-PVR-01001', + FailSetPosition: 'OSUI-PVR-01002', + }; + })(ErrorCodes = OSUI.ErrorCodes || (OSUI.ErrorCodes = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var Carousel; + (function (Carousel) { + var Splide; + (function (Splide) { + var Enum; + (function (Enum) { + let CssClass; + (function (CssClass) { + CssClass["SplideWrapper"] = "splide"; + CssClass["SplideTrack"] = "splide__track"; + CssClass["SplideList"] = "splide__list"; + CssClass["SplideSlide"] = "splide__slide"; + })(CssClass = Enum.CssClass || (Enum.CssClass = {})); + let Go; + (function (Go) { + Go["Next"] = ">"; + Go["Previous"] = "<"; + })(Go = Enum.Go || (Enum.Go = {})); + let KeyboardOptions; + (function (KeyboardOptions) { + KeyboardOptions["Focused"] = "focused"; + })(KeyboardOptions = Enum.KeyboardOptions || (Enum.KeyboardOptions = {})); + let SpliderEvents; + (function (SpliderEvents) { + SpliderEvents["Mounted"] = "mounted"; + SpliderEvents["Moved"] = "moved"; + })(SpliderEvents = Enum.SpliderEvents || (Enum.SpliderEvents = {})); + let ProviderInfo; + (function (ProviderInfo) { + ProviderInfo["Name"] = "Splide"; + ProviderInfo["Version"] = "4.1.3"; + })(ProviderInfo = Enum.ProviderInfo || (Enum.ProviderInfo = {})); + let TypeOptions; + (function (TypeOptions) { + TypeOptions["Loop"] = "loop"; + TypeOptions["Slide"] = "slide"; + })(TypeOptions = Enum.TypeOptions || (Enum.TypeOptions = {})); + })(Enum = Splide.Enum || (Splide.Enum = {})); + })(Splide = Carousel.Splide || (Carousel.Splide = {})); + })(Carousel = OSUI.Carousel || (OSUI.Carousel = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var Carousel; + (function (Carousel) { + var Splide; + (function (Splide) { + class OSUISplide extends OSFramework.OSUI.Patterns.Carousel.AbstractCarousel { + constructor(uniqueId, configs) { + super(uniqueId, new Splide.SplideConfig(configs)); + this._blockOnRender = false; + } + _checkListWidget() { + this._hasList = OutSystems.OSUI.Utils.GetHasListInside(this._carouselPlaceholderElem); + if (this._hasList) { + this._carouselListWidgetElem = this.selfElement.querySelector(OSFramework.OSUI.Constants.Dot + OSFramework.OSUI.GlobalEnum.CssClassElements.List); + this._carouselProviderElem = this._carouselTrackElem; + } + else { + this._carouselProviderElem = this.selfElement; + } + } + _initProvider() { + this.provider = new window.Splide(this._carouselProviderElem, this._splideOptions); + this.updateProviderEvents({ + name: Splide.Enum.ProviderInfo.Name, + version: Splide.Enum.ProviderInfo.Version, + events: this.provider, + }); + this._setOnInitializedEvent(); + this._setOnSlideMovedEvent(); + this._setCarouselWidth(); + this.provider.mount(); + this._togglePaginationClass(); + } + _prepareCarouselItems() { + const _targetList = this._hasList ? this._carouselListWidgetElem : this._carouselPlaceholderElem; + const _childrenList = _targetList.children; + if (_childrenList.length > 0) { + for (const item of _childrenList) { + if (!item.classList.contains(Splide.Enum.CssClass.SplideSlide)) { + item.classList.add(Splide.Enum.CssClass.SplideSlide); + } + } + } + } + _redefineCarouselWidth() { + OSFramework.OSUI.Helper.ApplySetTimeOut(() => { + this.provider.refresh(); + this._setCarouselWidth(); + if (this.selfElement.offsetWidth >= window.innerWidth) { + this.redraw(); + this._setCarouselWidth(); + } + }, 500); + } + _setCarouselWidth() { + OSFramework.OSUI.Helper.Dom.Styles.SetStyleAttribute(this._carouselTrackElem, OSFramework.OSUI.Patterns.Carousel.Enum.CssVariables.CarouselWidth, this.selfElement.offsetWidth + OSFramework.OSUI.GlobalEnum.Units.Pixel); + } + _setOnInitializedEvent() { + this.provider.on(Splide.Enum.SpliderEvents.Mounted, () => { + this.triggerPlatformInitializedEventCallback(); + }); + } + _setOnSlideMovedEvent() { + this.provider.on(Splide.Enum.SpliderEvents.Moved, (index) => { + if (index !== this._currentIndex) { + this.triggerPlatformEventCallback(this._platformEventOnSlideMoved, index); + this._currentIndex = index; + } + }); + } + _togglePaginationClass() { + if (this.configs.Navigation === OSFramework.OSUI.Patterns.Carousel.Enum.Navigation.Dots || + this.configs.Navigation === OSFramework.OSUI.Patterns.Carousel.Enum.Navigation.Both) { + OSFramework.OSUI.Helper.Dom.Styles.AddClass(this.selfElement, OSFramework.OSUI.Patterns.Carousel.Enum.CssClass.HasPagination); + } + else { + OSFramework.OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, OSFramework.OSUI.Patterns.Carousel.Enum.CssClass.HasPagination); + } + } + prepareConfigs() { + this._prepareCarouselItems(); + this._splideOptions = this.configs.getProviderConfig(); + this._initProvider(); + } + setA11YProperties() { + console.warn(OSFramework.OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + setCallbacks() { + this._eventOnResize = this._redefineCarouselWidth.bind(this); + OSFramework.OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.addHandler(OSFramework.OSUI.Event.DOMEvents.Listeners.Type.WindowResize, this._eventOnResize); + } + setHtmlElements() { + this._carouselPlaceholderElem = OSFramework.OSUI.Helper.Dom.ClassSelector(this.selfElement, OSFramework.OSUI.Patterns.Carousel.Enum.CssClass.Content); + this._carouselTrackElem = OSFramework.OSUI.Helper.Dom.ClassSelector(this.selfElement, OSFramework.OSUI.Patterns.Carousel.Enum.CssClass.Track); + } + setInitialCssClasses() { + if (this._hasList) { + OSFramework.OSUI.Helper.Dom.Styles.AddClass(this._carouselTrackElem, Splide.Enum.CssClass.SplideWrapper); + OSFramework.OSUI.Helper.Dom.Styles.AddClass(this._carouselPlaceholderElem, Splide.Enum.CssClass.SplideTrack); + OSFramework.OSUI.Helper.Dom.Styles.AddClass(this._carouselListWidgetElem, Splide.Enum.CssClass.SplideList); + } + else { + OSFramework.OSUI.Helper.Dom.Styles.AddClass(this.selfElement, Splide.Enum.CssClass.SplideWrapper); + OSFramework.OSUI.Helper.Dom.Styles.AddClass(this._carouselTrackElem, Splide.Enum.CssClass.SplideTrack); + OSFramework.OSUI.Helper.Dom.Styles.AddClass(this._carouselPlaceholderElem, Splide.Enum.CssClass.SplideList); + } + this._togglePaginationClass(); + } + unsetCallbacks() { + OSFramework.OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.removeHandler(OSFramework.OSUI.Event.DOMEvents.Listeners.Type.WindowResize, this._eventOnResize); + this._eventOnResize = undefined; + this._platformEventOnSlideMoved = undefined; + super.unsetCallbacks(); + } + unsetHtmlElements() { + this._carouselPlaceholderElem = undefined; + this._carouselTrackElem = undefined; + } + build() { + super.build(); + this.setHtmlElements(); + this.setCallbacks(); + this._checkListWidget(); + this.setInitialCssClasses(); + this.prepareConfigs(); + this.finishBuild(); + } + changeProperty(propertyName, propertyValue) { + super.changeProperty(propertyName, propertyValue); + if (this.isBuilt) { + this.toggleOnRender(true); + switch (propertyName) { + case OSFramework.OSUI.Patterns.Carousel.Enum.Properties.StartingPosition: + console.warn(`Carousel (${this.widgetId}): changes to ${OSFramework.OSUI.Patterns.Carousel.Enum.Properties.StartingPosition} parameter do not affect the carousel. Use the client action 'CarouselGoTo' to change the current item.`); + break; + case OSFramework.OSUI.Patterns.Carousel.Enum.Properties.Navigation: + case OSFramework.OSUI.Patterns.Carousel.Enum.Properties.AutoPlay: + case OSFramework.OSUI.Patterns.Carousel.Enum.Properties.Loop: + case OSFramework.OSUI.Patterns.Carousel.Enum.Properties.ItemsDesktop: + case OSFramework.OSUI.Patterns.Carousel.Enum.Properties.ItemsTablet: + case OSFramework.OSUI.Patterns.Carousel.Enum.Properties.ItemsPhone: + this.redraw(); + break; + case OSFramework.OSUI.Patterns.Carousel.Enum.Properties.Height: + this.provider.options = { height: propertyValue }; + break; + case OSFramework.OSUI.Patterns.Carousel.Enum.Properties.Padding: + this.provider.options = { padding: propertyValue }; + break; + case OSFramework.OSUI.Patterns.Carousel.Enum.Properties.ItemsGap: + this.provider.options = { gap: propertyValue }; + break; + } + } + OSFramework.OSUI.Helper.AsyncInvocation(this.toggleOnRender.bind(this), false); + } + dispose() { + if (this.isBuilt) { + this.provider.destroy(); + } + this.unsetCallbacks(); + this.unsetHtmlElements(); + super.dispose(); + } + goTo(index) { + this.provider.go(index); + } + next() { + this.provider.go(Splide.Enum.Go.Next); + } + previous() { + this.provider.go(Splide.Enum.Go.Previous); + } + registerCallback(eventName, callback) { + switch (eventName) { + case OSFramework.OSUI.Patterns.Carousel.Enum.CarouselEvents.OnSlideMoved: + this._platformEventOnSlideMoved = callback; + break; + default: + super.registerCallback(eventName, callback); + break; + } + } + setCarouselDirection(direction) { + if (direction === OSFramework.OSUI.Patterns.Carousel.Enum.Direction.None && + OutSystems.OSUI.Utils.GetIsRTL()) { + this.configs.Direction = OSFramework.OSUI.GlobalEnum.Direction.RTL; + } + else if (direction === OSFramework.OSUI.Patterns.Carousel.Enum.Direction.RightToLeft && + this.configs.AutoPlay) { + this.configs.Direction = OSFramework.OSUI.GlobalEnum.Direction.RTL; + } + else { + this.configs.Direction = OSFramework.OSUI.GlobalEnum.Direction.LTR; + } + this.redraw(); + } + setProviderConfigs(newConfigs) { + this.configs.setExtensibilityConfigs(newConfigs); + this.redraw(); + super.setProviderConfigs(newConfigs); + } + toggleDrag(hasDrag) { + this.provider.options = { drag: hasDrag }; + } + toggleOnRender(blockOnRender) { + this._blockOnRender = blockOnRender; + } + updateOnRender() { + if (this._blockOnRender === false) { + this.setInitialCssClasses(); + if (typeof this.provider === 'object') { + if (this._currentIndex !== undefined || this.configs.AutoPlay === true) { + this.configs.StartingPosition = this.provider.index; + } + this.redraw(); + } + } + } + } + Splide.OSUISplide = OSUISplide; + })(Splide = Carousel.Splide || (Carousel.Splide = {})); + })(Carousel = OSUI.Carousel || (OSUI.Carousel = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var Carousel; + (function (Carousel) { + var Splide; + (function (Splide) { + class SplideConfig extends OSFramework.OSUI.Patterns.Carousel.AbstractCarouselConfig { + _getArrowConfig() { + let arrows; + switch (this.Navigation) { + case OSFramework.OSUI.Patterns.Carousel.Enum.Navigation.None: + arrows = false; + break; + case OSFramework.OSUI.Patterns.Carousel.Enum.Navigation.Dots: + arrows = false; + break; + case OSFramework.OSUI.Patterns.Carousel.Enum.Navigation.Arrows: + arrows = true; + break; + case OSFramework.OSUI.Patterns.Carousel.Enum.Navigation.Both: + arrows = true; + break; + } + return arrows; + } + _getDirectionConfig() { + let direction; + if (this.Direction === undefined && OutSystems.OSUI.Utils.GetIsRTL()) { + direction = OSFramework.OSUI.GlobalEnum.Direction.RTL; + } + else { + direction = this.Direction || OSFramework.OSUI.GlobalEnum.Direction.LTR; + } + return direction; + } + _getPaginationConfig() { + let pagination; + switch (this.Navigation) { + case OSFramework.OSUI.Patterns.Carousel.Enum.Navigation.None: + pagination = false; + break; + case OSFramework.OSUI.Patterns.Carousel.Enum.Navigation.Dots: + pagination = true; + break; + case OSFramework.OSUI.Patterns.Carousel.Enum.Navigation.Arrows: + pagination = false; + break; + case OSFramework.OSUI.Patterns.Carousel.Enum.Navigation.Both: + pagination = true; + break; + } + return pagination; + } + getProviderConfig() { + this._providerOptions = { + arrows: this._getArrowConfig(), + breakpoints: { + 768: { + perPage: this.ItemsPhone, + }, + 1024: { + perPage: this.ItemsTablet, + }, + }, + keyboard: Splide.Enum.KeyboardOptions.Focused, + direction: this._getDirectionConfig(), + height: this.Height, + type: this.Loop ? Splide.Enum.TypeOptions.Loop : Splide.Enum.TypeOptions.Slide, + focus: 0, + perPage: this.ItemsDesktop, + autoplay: this.AutoPlay, + padding: this.Padding, + pagination: this._getPaginationConfig(), + gap: this.ItemsGap, + start: this.StartingPosition, + snap: true, + dragMinThreshold: 30, + }; + return this.mergeConfigs(this._providerOptions, undefined, this._providerExtendedOptions); + } + setExtensibilityConfigs(newConfigs) { + this._providerExtendedOptions = newConfigs; + } + } + Splide.SplideConfig = SplideConfig; + })(Splide = Carousel.Splide || (Carousel.Splide = {})); + })(Carousel = OSUI.Carousel || (OSUI.Carousel = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var Carousel; + (function (Carousel) { + var Splide; + (function (Splide) { + var Utils; + (function (Utils) { + function NormalizeSplideConfigs(splideConfigs) { + return OutSystems.OSUI.Utils.AbstractNormalizeProviderConfigs(splideConfigs); + } + Utils.NormalizeSplideConfigs = NormalizeSplideConfigs; + })(Utils = Splide.Utils || (Splide.Utils = {})); + })(Splide = Carousel.Splide || (Carousel.Splide = {})); + })(Carousel = OSUI.Carousel || (OSUI.Carousel = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var Datepicker; + (function (Datepicker) { + var Flatpickr; + (function (Flatpickr) { + class AbstractFlatpickr extends OSFramework.OSUI.Patterns.DatePicker.AbstractDatePicker { + constructor(uniqueId, configs) { + super(uniqueId, configs); + this.configs.OnChange = this.onDateSelectedEvent.bind(this); + } + _setAttributes() { + if (this.datePickerPlatformInputElem.nextSibling) { + this.flatpickrInputElem = this.datePickerPlatformInputElem.nextSibling; + OSFramework.OSUI.Helper.Dom.Attribute.Set(this.flatpickrInputElem, OSFramework.OSUI.GlobalEnum.HTMLAttributes.DataInput, ''); + if (this.flatpickrInputElem.disabled) { + OSFramework.OSUI.Helper.Dom.Attribute.Remove(this.flatpickrInputElem, OSFramework.OSUI.GlobalEnum.HTMLAttributes.Disabled); + } + } + } + _setCalendarCssClasses() { + OSFramework.OSUI.Helper.Dom.Styles.AddClass(this.provider.calendarContainer, OSFramework.OSUI.Patterns.DatePicker.Enum.CssClass.Calendar); + if (this.configs.ExtendedClass !== '') { + OSFramework.OSUI.Helper.Dom.Styles.ExtendedClass(this.provider.calendarContainer, '', this.configs.ExtendedClass); + } + } + _setParentMinHeight() { + OSFramework.OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, OSFramework.OSUI.GlobalEnum.InlineStyle.Height, this.selfElement.clientHeight + OSFramework.OSUI.GlobalEnum.Units.Pixel); + } + _todayButtonKeydown(e) { + switch (e.key) { + case OSFramework.OSUI.GlobalEnum.Keycodes.Tab: + return; + case OSFramework.OSUI.GlobalEnum.Keycodes.Enter: + case OSFramework.OSUI.GlobalEnum.Keycodes.Space: + e.preventDefault(); + this.provider.setDate(this.provider.now, true); + this.jumpIntoToday(); + break; + } + } + _unsetParentMinHeight() { + OSFramework.OSUI.Helper.Dom.Styles.RemoveStyleAttribute(this.selfElement, OSFramework.OSUI.GlobalEnum.InlineStyle.Height); + } + addTodayBtn() { + this._todayButtonElem = document.createElement(OSFramework.OSUI.GlobalEnum.HTMLElement.Div); + this._todayButtonElem.classList.add(Flatpickr.Enum.CssClasses.TodayBtn); + const todayBtn = document.createElement(OSFramework.OSUI.GlobalEnum.HTMLElement.Link); + OSFramework.OSUI.Helper.A11Y.TabIndexTrue(todayBtn); + const langCode = Flatpickr.l10ns.TodayBtn[this.configs.Lang] !== undefined ? this.configs.Lang : 'en'; + todayBtn.innerHTML = Flatpickr.l10ns.TodayBtn[langCode].title; + OSFramework.OSUI.Helper.A11Y.AriaLabel(todayBtn, Flatpickr.l10ns.TodayBtn[langCode].ariaLabel); + todayBtn.addEventListener(OSFramework.OSUI.GlobalEnum.HTMLEvent.Click, this.todayBtnClick.bind(this)); + todayBtn.addEventListener(OSFramework.OSUI.GlobalEnum.HTMLEvent.keyDown, this._todayButtonKeydown.bind(this)); + this._todayButtonElem.appendChild(todayBtn); + this._providerFocusSpanTarget = this.provider.calendarContainer.querySelector('.focus-trap-bottom-element'); + if (this._providerFocusSpanTarget) { + this.provider.calendarContainer.insertBefore(this._todayButtonElem, this._providerFocusSpanTarget); + } + else { + this.provider.calendarContainer.appendChild(this._todayButtonElem); + } + } + createProviderInstance() { + this.provider = window.flatpickr(this.datePickerPlatformInputElem, this.flatpickrOpts); + this.updateProviderEvents({ + name: OSUI.SharedProviderResources.Flatpickr.Enum.ProviderInfo.Name, + version: OSUI.SharedProviderResources.Flatpickr.Enum.ProviderInfo.Version, + events: this.provider.config, + }); + this._setAttributes(); + this.updatePlatformInputAttrs(); + this.setA11YProperties(); + if (this.provider.calendarContainer !== undefined) { + if (this.configs.DisableMobile === true || + OSFramework.OSUI.Helper.DeviceInfo.IsDesktop || + this.configs.CalendarMode === OSFramework.OSUI.Patterns.DatePicker.Enum.Mode.Range) { + if (this.configs.ShowTodayButton) { + this.addTodayBtn(); + } + this._setCalendarCssClasses(); + this._bodyScrollCommonBehaviour = new OSUI.SharedProviderResources.Flatpickr.UpdatePositionOnScroll(this); + this._zindexCommonBehavior = new OSUI.SharedProviderResources.Flatpickr.UpdateZindex(this); + } + } + if (this.flatpickrInputElem !== undefined && this.isBuilt) { + OSFramework.OSUI.Helper.Dom.Styles.RemoveClass(this.flatpickrInputElem, OSFramework.OSUI.GlobalEnum.CssClassElements.InputNotValid); + } + this._unsetParentMinHeight(); + this.triggerPlatformInitializedEventCallback(); + } + jumpIntoToday() { + this.provider.jumpToDate(this.provider.now); + } + prepareConfigs() { + this.flatpickrOpts = this.configs.getProviderConfig(); + this.createProviderInstance(); + } + prepareToAndRedraw() { + this._setParentMinHeight(); + this.redraw(); + } + setA11YProperties() { + if (this.provider.calendarContainer !== undefined && this.flatpickrInputElem !== undefined) { + OSFramework.OSUI.Helper.Dom.Attribute.Set(this.datePickerPlatformInputElem, OSFramework.OSUI.Constants.A11YAttributes.TabIndex, OSFramework.OSUI.Constants.A11YAttributes.States.TabIndexHidden); + OSFramework.OSUI.Helper.Dom.Attribute.Set(this.datePickerPlatformInputElem, OSFramework.OSUI.Constants.A11YAttributes.Aria.Hidden, OSFramework.OSUI.Constants.A11YAttributes.States.True); + OSFramework.OSUI.Helper.Dom.Attribute.Set(this._a11yInfoContainerElem, OSFramework.OSUI.Constants.A11YAttributes.Aria.Hidden, OSFramework.OSUI.Constants.A11YAttributes.States.True); + OSFramework.OSUI.Helper.Dom.Attribute.Set(this.flatpickrInputElem, OSFramework.OSUI.Constants.A11YAttributes.TabIndex, OSFramework.OSUI.Constants.A11YAttributes.States.TabIndexShow); + let ariaLabelValue = Flatpickr.Enum.Attribute.DefaultAriaLabel; + if (this.datePickerPlatformInputElem.hasAttribute(OSFramework.OSUI.Constants.A11YAttributes.Aria.Label)) { + ariaLabelValue = this.datePickerPlatformInputElem.getAttribute(OSFramework.OSUI.Constants.A11YAttributes.Aria.Label); + } + OSFramework.OSUI.Helper.A11Y.AriaLabel(this.flatpickrInputElem, ariaLabelValue); + if (OSFramework.OSUI.Helper.DeviceInfo.IsDesktop) + OSFramework.OSUI.Helper.A11Y.AriaDescribedBy(this.flatpickrInputElem, this._a11yInfoContainerElem.id); + if (this.configs.Lang !== OSFramework.OSUI.Constants.Language.short) { + this._a11yInfoContainerElem.innerHTML = + Datepicker.Flatpickr.l10ns.A11yContainerInfo[this.configs.Lang] !== undefined + ? Datepicker.Flatpickr.l10ns.A11yContainerInfo[this.configs.Lang].htmlTex + : Datepicker.Flatpickr.l10ns.A11yContainerInfo.en.htmlTex; + } + } + } + setCallbacks() { + console.log(OSFramework.OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + setHtmlElements() { + this.datePickerPlatformInputElem = this.selfElement.querySelector('input.form-control'); + this._a11yInfoContainerElem = OSFramework.OSUI.Helper.Dom.TagSelector(this.selfElement.parentElement, OSFramework.OSUI.Constants.Dot + Flatpickr.Enum.CssClasses.AccessibilityContainerInfo); + if (!this.datePickerPlatformInputElem) { + throw new Error(`The datepicker input at DatepickerId '${this.widgetId}' is missing`); + } + } + unsetCallbacks() { + this.configs.OnChange = undefined; + this.onSelectedCallbackEvent = undefined; + super.unsetCallbacks(); + } + unsetHtmlElements() { + this._a11yInfoContainerElem = undefined; + this.datePickerPlatformInputElem = undefined; + } + build() { + super.build(); + this.setHtmlElements(); + } + changeProperty(propertyName, propertyValue) { + const oldExtendedClass = this.configs.ExtendedClass; + super.changeProperty(propertyName, propertyValue); + if (this.isBuilt) { + switch (propertyName) { + case OSFramework.OSUI.Patterns.DatePicker.Enum.Properties.FirstWeekDay: + case OSFramework.OSUI.Patterns.DatePicker.Enum.Properties.MaxDate: + case OSFramework.OSUI.Patterns.DatePicker.Enum.Properties.MinDate: + case OSFramework.OSUI.Patterns.DatePicker.Enum.Properties.ShowTodayButton: + case OSFramework.OSUI.Patterns.DatePicker.Enum.Properties.ShowWeekNumbers: + this.prepareToAndRedraw(); + break; + case OSFramework.OSUI.GlobalEnum.CommonPatternsProperties.ExtendedClass: + OSFramework.OSUI.Helper.Dom.Styles.ExtendedClass(this.provider.calendarContainer, oldExtendedClass, propertyValue); + break; + } + } + } + clear() { + const isInputDisable = this.datePickerPlatformInputElem.disabled; + if (isInputDisable === false) { + this.provider.clear(); + } + } + close() { + if (this.provider.isOpen) { + this.provider.close(); + if (this.configs.ShowTodayButton) { + OSFramework.OSUI.Helper.A11Y.TabIndexFalse(this._todayButtonElem); + } + } + } + disableDays(disableDays) { + this.configs.DisabledDays = disableDays; + this.prepareToAndRedraw(); + } + disableWeekDays(disableWeekDays) { + this.configs.DisabledWeekDays = disableWeekDays; + this.prepareToAndRedraw(); + } + dispose() { + if (this.isBuilt) { + this.unsetCallbacks(); + this.unsetHtmlElements(); + if (this._bodyScrollCommonBehaviour !== undefined) { + this._bodyScrollCommonBehaviour.dispose(); + this._bodyScrollCommonBehaviour = undefined; + } + OSFramework.OSUI.Helper.AsyncInvocation(this.provider.destroy); + } + super.dispose(); + } + open() { + const isInputDisable = this.datePickerPlatformInputElem.disabled; + if (this.provider.isOpen === false && isInputDisable === false) { + this.provider.open(); + if (this.flatpickrInputElem) { + this.flatpickrInputElem.focus(); + } + if (this.configs.ShowTodayButton) { + OSFramework.OSUI.Helper.A11Y.TabIndexTrue(this._todayButtonElem); + } + } + } + registerCallback(eventName, callback) { + switch (eventName) { + case OSFramework.OSUI.Patterns.DatePicker.Enum.DatePickerEvents.OnChange: + this.onSelectedCallbackEvent = callback; + break; + default: + super.registerCallback(eventName, callback); + break; + } + } + setEditableInput(isEditable) { + if (this.configs.AllowInput !== isEditable) { + this.configs.AllowInput = isEditable; + this.prepareToAndRedraw(); + } + } + setLanguage(value) { + this.configs.Lang = value.toLowerCase(); + if (this.provider !== undefined) { + this.prepareToAndRedraw(); + } + } + setProviderConfigs(newConfigs) { + this.configs.setExtensibilityConfigs(newConfigs); + this.prepareToAndRedraw(); + super.setProviderConfigs(newConfigs); + } + toggleNativeBehavior(isNative) { + if (this.configs.DisableMobile !== !isNative) { + this.configs.DisableMobile = !isNative; + this.prepareToAndRedraw(); + } + } + updatePrompt(promptMessage) { + this.flatpickrInputElem.placeholder = promptMessage; + } + } + Flatpickr.AbstractFlatpickr = AbstractFlatpickr; + })(Flatpickr = Datepicker.Flatpickr || (Datepicker.Flatpickr = {})); + })(Datepicker = OSUI.Datepicker || (OSUI.Datepicker = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var Datepicker; + (function (Datepicker) { + var Flatpickr; + (function (Flatpickr) { + class AbstractFlatpickrConfig extends OSFramework.OSUI.Patterns.DatePicker + .AbstractDatePickerConfig { + constructor(config) { + super(config); + this._disabledDays = []; + this._disabledWeekDays = []; + this.AllowInput = false; + this.Disable = []; + this.DisableMobile = false; + this._lang = OSFramework.OSUI.Helper.Language.ShortLang; + } + _checkAltFormat() { + let _altFormat = this.DateFormat !== '' ? this._mapProviderDateFormat() : this.ServerDateFormat; + if (this.TimeFormat === OSFramework.OSUI.Patterns.DatePicker.Enum.TimeFormatMode.Time12hFormat) { + _altFormat = _altFormat + ' - h:i K'; + } + else if (this.TimeFormat === OSFramework.OSUI.Patterns.DatePicker.Enum.TimeFormatMode.Time24hFormat) { + _altFormat = _altFormat + ' - H:i'; + } + return _altFormat; + } + _checkDisableWeeksDay(date) { + return this._disabledWeekDays.indexOf(date.getDay()) > -1; + } + _checkLocale() { + let _locale = window.flatpickr.l10ns.en; + try { + _locale = window.flatpickr.l10ns[this._lang]; + _locale.firstDayOfWeek = this.FirstWeekDay; + } + catch (error) { + console.error(`${Flatpickr.ErrorCodes.FailSetLocale}: Locale '${this._lang}' not found!`); + } + return _locale; + } + _mapProviderDateFormat() { + const _dateFormat = this.DateFormat.replace(/[^a-zA-Z]/g, ' ').split(' '); + for (const format of _dateFormat) { + switch (format) { + case OSFramework.OSUI.GlobalEnum.DateFormat.YYYY: + this.DateFormat = this.DateFormat.replace(OSFramework.OSUI.GlobalEnum.DateFormat.YYYY, OSFramework.OSUI.GlobalEnum.DateFormat.Y); + break; + case OSFramework.OSUI.GlobalEnum.DateFormat.YY: + this.DateFormat = this.DateFormat.replace(OSFramework.OSUI.GlobalEnum.DateFormat.YY, OSFramework.OSUI.GlobalEnum.DateFormat.y); + break; + case OSFramework.OSUI.GlobalEnum.DateFormat.MMM: + this.DateFormat = this.DateFormat.replace(OSFramework.OSUI.GlobalEnum.DateFormat.MMM, OSFramework.OSUI.GlobalEnum.DateFormat.M); + break; + case OSFramework.OSUI.GlobalEnum.DateFormat.MM: + this.DateFormat = this.DateFormat.replace(OSFramework.OSUI.GlobalEnum.DateFormat.MM, OSFramework.OSUI.GlobalEnum.DateFormat.m); + break; + case OSFramework.OSUI.GlobalEnum.DateFormat.DDD: + this.DateFormat = this.DateFormat.replace(OSFramework.OSUI.GlobalEnum.DateFormat.DDD, OSFramework.OSUI.GlobalEnum.DateFormat.D); + break; + case OSFramework.OSUI.GlobalEnum.DateFormat.DD: + this.DateFormat = this.DateFormat.replace(OSFramework.OSUI.GlobalEnum.DateFormat.DD, OSFramework.OSUI.GlobalEnum.DateFormat.d); + break; + } + } + return this.DateFormat; + } + _setDisable() { + this.Disable = []; + if (this._disabledWeekDays.length > 0) { + this.Disable.push((date) => { + return this._checkDisableWeeksDay(date); + }); + } + if (this._disabledDays.length > 0) { + for (const date of this._disabledDays) { + this.Disable.push(date); + } + } + } + _validateDate(date) { + const _finalDate = date; + if (OSFramework.OSUI.Helper.Dates.IsNull(_finalDate)) { + return undefined; + } + else if (this._isUsingDateTime) { + return _finalDate; + } + else { + return OSFramework.OSUI.Helper.Dates.NormalizeDateTime(_finalDate, date === this.MaxDate); + } + } + getProviderConfig() { + this._isUsingDateTime = + this.TimeFormat !== OSFramework.OSUI.Patterns.DatePicker.Enum.TimeFormatMode.Disable; + this._setDisable(); + this._providerOptions = { + altFormat: this._checkAltFormat(), + altInput: true, + allowInput: this.AllowInput, + disable: this.Disable.length === 0 ? undefined : this.Disable, + disableMobile: this.DisableMobile, + dateFormat: this._isUsingDateTime + ? this.ServerDateFormat + ' H:i:S' + : this.ServerDateFormat, + maxDate: this._validateDate(this.MaxDate), + minDate: this._validateDate(this.MinDate), + onChange: this.OnChange, + time_24hr: this.TimeFormat === OSFramework.OSUI.Patterns.DatePicker.Enum.TimeFormatMode.Time24hFormat, + updateInputVal: false, + weekNumbers: this.ShowWeekNumbers, + }; + if (this._providerOptions.locale === undefined) { + this._providerOptions.locale = this._checkLocale(); + } + return this._providerOptions; + } + setExtensibilityConfigs(newConfigs) { + this.providerExtendedOptions = newConfigs; + } + get Lang() { + return this._lang; + } + set Lang(value) { + this._lang = value.substring(0, 2); + } + get ServerDateFormat() { + return OSFramework.OSUI.Helper.Dates.ServerFormat.replace(OSFramework.OSUI.GlobalEnum.DateFormat.YYYY, OSFramework.OSUI.GlobalEnum.DateFormat.Y) + .replace(OSFramework.OSUI.GlobalEnum.DateFormat.MM, OSFramework.OSUI.GlobalEnum.DateFormat.m) + .replace(OSFramework.OSUI.GlobalEnum.DateFormat.DD, OSFramework.OSUI.GlobalEnum.DateFormat.d); + } + set DisabledDays(value) { + this._disabledDays = value; + } + set DisabledWeekDays(value) { + this._disabledWeekDays = value; + } + } + Flatpickr.AbstractFlatpickrConfig = AbstractFlatpickrConfig; + })(Flatpickr = Datepicker.Flatpickr || (Datepicker.Flatpickr = {})); + })(Datepicker = OSUI.Datepicker || (OSUI.Datepicker = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var Datepicker; + (function (Datepicker) { + var Flatpickr; + (function (Flatpickr) { + Flatpickr.ErrorCodes = { + FailSetLocale: 'OSUI-PRO-02001', + }; + })(Flatpickr = Datepicker.Flatpickr || (Datepicker.Flatpickr = {})); + })(Datepicker = OSUI.Datepicker || (OSUI.Datepicker = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var Datepicker; + (function (Datepicker) { + var Flatpickr; + (function (Flatpickr) { + var Enum; + (function (Enum) { + let Attribute; + (function (Attribute) { + Attribute["DefaultAriaLabel"] = "Select a date."; + })(Attribute = Enum.Attribute || (Enum.Attribute = {})); + let CssClasses; + (function (CssClasses) { + CssClasses["AccessibilityContainerInfo"] = "osui-datepicker-a11y"; + CssClasses["TodayBtn"] = "flatpickr-today-button"; + })(CssClasses = Enum.CssClasses || (Enum.CssClasses = {})); + let CSSSelectors; + (function (CSSSelectors) { + CSSSelectors["DatepickerNotValid"] = "osui-datepicker .not-valid + .input"; + })(CSSSelectors = Enum.CSSSelectors || (Enum.CSSSelectors = {})); + let DisableDate; + (function (DisableDate) { + DisableDate["Weekdays"] = "Weekdays"; + })(DisableDate = Enum.DisableDate || (Enum.DisableDate = {})); + })(Enum = Flatpickr.Enum || (Flatpickr.Enum = {})); + })(Flatpickr = Datepicker.Flatpickr || (Datepicker.Flatpickr = {})); + })(Datepicker = OSUI.Datepicker || (OSUI.Datepicker = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var Datepicker; + (function (Datepicker) { + var Flatpickr; + (function (Flatpickr) { + var Factory; + (function (Factory) { + function NewFlatpickr(datePickerId, mode, configs) { + let _flatpickrItem = null; + switch (mode) { + case OSFramework.OSUI.Patterns.DatePicker.Enum.Mode.Single: + _flatpickrItem = new Providers.OSUI.Datepicker.Flatpickr.SingleDate.OSUIFlatpickrSingleDate(datePickerId, JSON.parse(configs)); + break; + case OSFramework.OSUI.Patterns.DatePicker.Enum.Mode.Range: + _flatpickrItem = new Providers.OSUI.Datepicker.Flatpickr.RangeDate.OSUIFlatpickrRangeDate(datePickerId, JSON.parse(configs)); + break; + default: + throw new Error(`There is no Flatpickr of ${mode} type`); + } + return _flatpickrItem; + } + Factory.NewFlatpickr = NewFlatpickr; + })(Factory = Flatpickr.Factory || (Flatpickr.Factory = {})); + })(Flatpickr = Datepicker.Flatpickr || (Datepicker.Flatpickr = {})); + })(Datepicker = OSUI.Datepicker || (OSUI.Datepicker = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var Datepicker; + (function (Datepicker) { + var Flatpickr; + (function (Flatpickr) { + var RangeDate; + (function (RangeDate) { + var Enum; + (function (Enum) { + let Properties; + (function (Properties) { + Properties["InitialEndDate"] = "InitialEndDate"; + Properties["InitialStartDate"] = "InitialStartDate"; + })(Properties = Enum.Properties || (Enum.Properties = {})); + })(Enum = RangeDate.Enum || (RangeDate.Enum = {})); + })(RangeDate = Flatpickr.RangeDate || (Flatpickr.RangeDate = {})); + })(Flatpickr = Datepicker.Flatpickr || (Datepicker.Flatpickr = {})); + })(Datepicker = OSUI.Datepicker || (OSUI.Datepicker = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var Datepicker; + (function (Datepicker) { + var Flatpickr; + (function (Flatpickr) { + var RangeDate; + (function (RangeDate) { + class OSUIFlatpickrRangeDate extends Flatpickr.AbstractFlatpickr { + constructor(uniqueId, configs) { + super(uniqueId, new RangeDate.FlatpickrRangeDateConfig(configs)); + } + _onUpdateDateFormat() { + if (this.provider.selectedDates.length > 0) { + this.configs.InitialStartDate = this.provider.formatDate(this.provider.selectedDates[0], this.flatpickrOpts.dateFormat); + if (this.provider.selectedDates[1]) { + this.configs.InitialEndDate = this.provider.formatDate(this.provider.selectedDates[1], this.flatpickrOpts.dateFormat); + } + } + this.prepareToAndRedraw(); + } + _updateInitialStartAndEndDates() { + if (this.configs.InitialStartDate !== undefined && + this.configs.InitialEndDate !== undefined && + OSFramework.OSUI.Helper.Dates.IsBeforeThan(this.configs.InitialStartDate, this.configs.InitialEndDate) === false) { + console.error(`Given StartDate:'${this.provider.formatDate(this.configs.InitialStartDate, this.configs.ServerDateFormat)}' can not be greater than given EndDate:'${this.provider.formatDate(this.configs.InitialEndDate, this.configs.ServerDateFormat)}'.`); + } + else { + this.prepareToAndRedraw(); + } + } + onDateSelectedEvent(selectedDates) { + const _selectedDate = []; + if (selectedDates.length > 0) { + _selectedDate[0] = this.provider.formatDate(selectedDates[0], this.flatpickrOpts.dateFormat); + if (selectedDates[1]) { + _selectedDate[1] = this.provider.formatDate(selectedDates[1], this.flatpickrOpts.dateFormat); + } + } + if (selectedDates.length === 0 || selectedDates.length === 2) { + OSFramework.OSUI.Helper.Dom.SetInputValue(this.datePickerPlatformInputElem, this.flatpickrInputElem.value); + this.triggerPlatformEventCallback(this.onSelectedCallbackEvent, _selectedDate[0], _selectedDate[1]); + } + } + todayBtnClick(event) { + event.preventDefault(); + this.jumpIntoToday(); + } + updatePlatformInputAttrs() { + OSFramework.OSUI.Helper.Dom.Attribute.Set(this.datePickerPlatformInputElem, OSFramework.OSUI.GlobalEnum.HTMLAttributes.Type, OSFramework.OSUI.GlobalEnum.InputTypeAttr.Text); + } + build() { + super.build(); + this.prepareConfigs(); + this.finishBuild(); + } + changeProperty(propertyName, propertyValue) { + super.changeProperty(propertyName, propertyValue); + if (this.isBuilt) { + switch (propertyName) { + case OSFramework.OSUI.Patterns.DatePicker.Enum.Properties.DateFormat: + this._onUpdateDateFormat(); + break; + case RangeDate.Enum.Properties.InitialEndDate: + case RangeDate.Enum.Properties.InitialStartDate: + this._updateInitialStartAndEndDates(); + break; + } + } + } + updateInitialDate(startDate, endDate) { + if (OSFramework.OSUI.Helper.Dates.IsNull(startDate) === false && + OSFramework.OSUI.Helper.Dates.IsNull(endDate) === false && + this.datePickerPlatformInputElem.disabled === false) { + this.configs.InitialStartDate = startDate; + this.configs.InitialEndDate = endDate; + if (OSFramework.OSUI.Helper.Dates.IsBeforeThan(startDate, endDate)) { + this.prepareToAndRedraw(); + } + else { + console.error(`Given StartDate:'${this.provider.formatDate(this.configs.InitialStartDate, this.configs.ServerDateFormat)}' can not be greater than given EndDate:'${this.provider.formatDate(this.configs.InitialEndDate, this.configs.ServerDateFormat)}'.`); + } + } + } + } + RangeDate.OSUIFlatpickrRangeDate = OSUIFlatpickrRangeDate; + })(RangeDate = Flatpickr.RangeDate || (Flatpickr.RangeDate = {})); + })(Flatpickr = Datepicker.Flatpickr || (Datepicker.Flatpickr = {})); + })(Datepicker = OSUI.Datepicker || (OSUI.Datepicker = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var Datepicker; + (function (Datepicker) { + var Flatpickr; + (function (Flatpickr) { + var RangeDate; + (function (RangeDate) { + class FlatpickrRangeDateConfig extends Flatpickr.AbstractFlatpickrConfig { + constructor(config) { + super(config); + this.CalendarMode = OSFramework.OSUI.Patterns.DatePicker.Enum.Mode.Range; + } + _setDefaultDate() { + if (OSFramework.OSUI.Helper.Dates.IsNull(this.InitialStartDate)) { + this.InitialStartDate = undefined; + } + if (OSFramework.OSUI.Helper.Dates.IsNull(this.InitialEndDate)) { + this.InitialEndDate = undefined; + } + if (this.InitialEndDate !== undefined && + this.InitialStartDate !== undefined && + OSFramework.OSUI.Helper.Dates.IsBeforeThan(this.InitialStartDate, this.InitialEndDate) === false) { + throw new Error(`StartDate '${this.InitialStartDate}' can't be after EndDate '${this.InitialEndDate}'`); + } + return [this.InitialStartDate, this.InitialEndDate]; + } + getProviderConfig() { + const flatpickrRangeDateOpts = { + defaultDate: this._setDefaultDate(), + mode: OSFramework.OSUI.Patterns.DatePicker.Enum.Mode.Range, + }; + return this.mergeConfigs(super.getProviderConfig(), flatpickrRangeDateOpts, this.providerExtendedOptions); + } + } + RangeDate.FlatpickrRangeDateConfig = FlatpickrRangeDateConfig; + })(RangeDate = Flatpickr.RangeDate || (Flatpickr.RangeDate = {})); + })(Flatpickr = Datepicker.Flatpickr || (Datepicker.Flatpickr = {})); + })(Datepicker = OSUI.Datepicker || (OSUI.Datepicker = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var Datepicker; + (function (Datepicker) { + var Flatpickr; + (function (Flatpickr) { + var SingleDate; + (function (SingleDate) { + var Enum; + (function (Enum) { + let Properties; + (function (Properties) { + Properties["InitialDate"] = "InitialDate"; + })(Properties = Enum.Properties || (Enum.Properties = {})); + })(Enum = SingleDate.Enum || (SingleDate.Enum = {})); + })(SingleDate = Flatpickr.SingleDate || (Flatpickr.SingleDate = {})); + })(Flatpickr = Datepicker.Flatpickr || (Datepicker.Flatpickr = {})); + })(Datepicker = OSUI.Datepicker || (OSUI.Datepicker = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var Datepicker; + (function (Datepicker) { + var Flatpickr; + (function (Flatpickr) { + var SingleDate; + (function (SingleDate) { + class OSUIFlatpickrSingleDate extends Flatpickr.AbstractFlatpickr { + constructor(uniqueId, configs) { + super(uniqueId, new SingleDate.FlatpickrSingleDateConfig(configs)); + this._isUpdatedInitialDateByClientAction = false; + } + _checkInitialDate() { + let clearPlatformInput = false; + if (OSFramework.OSUI.Helper.Dates.IsNull(this.configs.InitialDate)) { + if (this.datePickerPlatformInputElem.value !== OSFramework.OSUI.Constants.EmptyString && + OSFramework.OSUI.Helper.Dates.IsValid(this.datePickerPlatformInputElem.value)) { + this.configs.InitialDate = new Date(this.datePickerPlatformInputElem.value); + } + else { + clearPlatformInput = true; + } + } + else if (this.datePickerPlatformInputElem.value !== OSFramework.OSUI.Constants.EmptyString) { + clearPlatformInput = true; + } + if (clearPlatformInput) { + OSFramework.OSUI.Helper.Dom.Attribute.Set(this.datePickerPlatformInputElem, OSFramework.OSUI.GlobalEnum.HTMLAttributes.Value, OSFramework.OSUI.Constants.EmptyString); + } + this.prepareConfigs(); + } + onDateSelectedEvent(selectedDates) { + let _selectedDate = ''; + if (selectedDates.length > 0) { + _selectedDate = this.provider.formatDate(selectedDates[0], this.provider.config.enableTime ? 'Y-m-d H:i:S' : 'Y-m-d'); + } + OSFramework.OSUI.Helper.Dom.SetInputValue(this.datePickerPlatformInputElem, _selectedDate); + if (this._isUpdatedInitialDateByClientAction === false) { + this.triggerPlatformEventCallback(this.onSelectedCallbackEvent, _selectedDate); + } + this._isUpdatedInitialDateByClientAction = false; + } + prepareToAndRedraw() { + this._isUpdatedInitialDateByClientAction = false; + super.prepareToAndRedraw(); + } + todayBtnClick(event) { + event.preventDefault(); + this.provider.setDate(this.provider.now, true); + this.jumpIntoToday(); + } + updatePlatformInputAttrs() { + const dateType = this.configs.TimeFormat === OSFramework.OSUI.Patterns.DatePicker.Enum.TimeFormatMode.Disable + ? OSFramework.OSUI.GlobalEnum.InputTypeAttr.Date + : OSFramework.OSUI.GlobalEnum.InputTypeAttr.DateTime; + OSFramework.OSUI.Helper.Dom.Attribute.Set(this.datePickerPlatformInputElem, OSFramework.OSUI.GlobalEnum.HTMLAttributes.Type, dateType); + } + build() { + super.build(); + this._checkInitialDate(); + this.finishBuild(); + } + changeProperty(propertyName, propertyValue) { + var _a; + let redrawAtInitialDateChange = false; + if (propertyName === SingleDate.Enum.Properties.InitialDate) { + const newDateValue = propertyValue; + const providerSelectedDate = ((_a = this.provider) === null || _a === void 0 ? void 0 : _a.selectedDates.length) > 0 + ? new Date(this.provider.selectedDates[0]) + : undefined; + if ((providerSelectedDate === undefined && + OSFramework.OSUI.Helper.Dates.IsNull(newDateValue) === false) || + providerSelectedDate.getTime() !== newDateValue.getTime()) { + redrawAtInitialDateChange = true; + } + } + super.changeProperty(propertyName, propertyValue); + if (this.isBuilt) { + switch (propertyName) { + case OSFramework.OSUI.Patterns.DatePicker.Enum.Properties.DateFormat: + if (this.provider.selectedDates.length > 0) { + this.configs.InitialDate = this.provider.formatDate(this.provider.selectedDates[0], this.flatpickrOpts.dateFormat); + } + this.prepareToAndRedraw(); + break; + case SingleDate.Enum.Properties.InitialDate: + if (redrawAtInitialDateChange) { + this.prepareToAndRedraw(); + } + break; + case OSFramework.OSUI.Patterns.DatePicker.Enum.Properties.TimeFormat: + this.prepareToAndRedraw(); + break; + } + } + } + updateInitialDate(value) { + if (this.datePickerPlatformInputElem.disabled === false) { + this._isUpdatedInitialDateByClientAction = true; + this.configs.InitialDate = value; + OSFramework.OSUI.Helper.Dom.SetInputValue(this.datePickerPlatformInputElem, this.provider.formatDate(value, this.flatpickrOpts.dateFormat)); + this.prepareToAndRedraw(); + } + } + } + SingleDate.OSUIFlatpickrSingleDate = OSUIFlatpickrSingleDate; + })(SingleDate = Flatpickr.SingleDate || (Flatpickr.SingleDate = {})); + })(Flatpickr = Datepicker.Flatpickr || (Datepicker.Flatpickr = {})); + })(Datepicker = OSUI.Datepicker || (OSUI.Datepicker = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var Datepicker; + (function (Datepicker) { + var Flatpickr; + (function (Flatpickr) { + var SingleDate; + (function (SingleDate) { + class FlatpickrSingleDateConfig extends Flatpickr.AbstractFlatpickrConfig { + constructor(config) { + super(config); + this.CalendarMode = OSFramework.OSUI.Patterns.DatePicker.Enum.Mode.Single; + } + getProviderConfig() { + const flatpickrSingleDateOpts = { + defaultDate: OSFramework.OSUI.Helper.Dates.IsNull(this.InitialDate) ? undefined : this.InitialDate, + mode: OSFramework.OSUI.Patterns.DatePicker.Enum.Mode.Single, + enableTime: this.TimeFormat !== OSFramework.OSUI.Patterns.DatePicker.Enum.TimeFormatMode.Disable, + onChange: this.OnChange, + }; + return this.mergeConfigs(super.getProviderConfig(), flatpickrSingleDateOpts, this.providerExtendedOptions); + } + } + SingleDate.FlatpickrSingleDateConfig = FlatpickrSingleDateConfig; + })(SingleDate = Flatpickr.SingleDate || (Flatpickr.SingleDate = {})); + })(Flatpickr = Datepicker.Flatpickr || (Datepicker.Flatpickr = {})); + })(Datepicker = OSUI.Datepicker || (OSUI.Datepicker = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var Datepicker; + (function (Datepicker) { + var Flatpickr; + (function (Flatpickr) { + var l10ns; + (function (l10ns) { + l10ns.A11yContainerInfo = { + ar: { + htmlTex: 'استخدم مفتاح السهم للأسفل لفتح التقويم؛ استخدم مفاتيح الأسهم للتنقل في أيام التقويم؛ استخدم مفتاح Ctrl أو Cmd + الأسهم اليمين أو اليسار للتنقل بين الشهور؛ استخدم مفتاح Ctrl أو Cmd + الأسهم للأعلى أو للأسفل للتنقل بين السنوات؛', + }, + at: { + htmlTex: 'Verwenden Sie die Pfeiltaste nach unten, um den Kalender zu öffnen; Verwenden Sie die Pfeiltasten, um sich durch die Kalendertage zu bewegen; Verwenden Sie die Strg- oder Cmd-Taste + die rechte oder linke Pfeiltaste, um sich durch die Monate zu bewegen; Verwenden Sie die Strg- oder Cmd-Taste + die Pfeiltasten nach oben oder unten, um sich durch die Jahre zu bewegen;', + }, + az: { + htmlTex: 'Təqvim açmaq üçün aşağı ox düyməsindən istifadə edin; Təqvim gününü gəzmək üçün aşağı və ya yuxarı ox düymələrindən istifadə edin; Aylar arasında gəzmək üçün Ctrl və ya Cmd + sağ və ya sol ox düymələrindən istifadə edin; İllər arasında gəzmək üçün Ctrl və ya Cmd + yuxarı və ya aşağı ox düymələrindən istifadə edin;', + }, + be: { + htmlTex: 'Выкарыстоўвайце клавішу стрэлкі ўніз, каб адкрыць каляндар; Выкарыстоўвайце стрэлкі для навігацыі па днях каляндара; Выкарыстоўвайце клавішу Ctrl або Cmd + стрэлкі ўправа або ўлева для навігацыі па месяцах; Выкарыстоўвайце клавішу Ctrl або Cmd + стрэлкі ўверх або ўніз для навігацыі па гадах;', + }, + bg: { + htmlTex: 'Използвайте клавиша със стрелка надолу, за да отворите календара; Използвайте стрелките за да навигирате през дните в календара; Използвайте Ctrl или Cmd + стрелка надясно или наляво, за да навигирате през месеците; Използвайте Ctrl или Cmd + стрелка нагоре или надолу, за да навигирате през годините;', + }, + bn: { + htmlTex: 'ক্যালেন্ডার খোলার জন্য ডাউন অ্যারো কি ব্যবহার করুন; ক্যালেন্ডারের দিনগুলি নেভিগেট করতে এরো কি ব্যবহার করুন; মাসের মধ্যে নেভিগেট করতে Ctrl বা Cmd + ডান বা বাম অ্যারো কি ব্যবহার করুন; বছরের মধ্যে নেভিগেট করতে Ctrl বা Cmd + উপর বা নিচে অ্যারো কি ব্যবহার করুন;', + }, + bs: { + htmlTex: 'Koristite strelicu prema dolje za otvaranje kalendara; Koristite strelice za navigaciju kroz dane u kalendaru; Koristite Ctrl ili Cmd + desnu ili lijevu strelicu za navigaciju kroz mjesece; Koristite Ctrl ili Cmd + strelicu prema gore ili prema dolje za navigaciju kroz godine;', + }, + ca: { + htmlTex: 'Utilitzeu la tecla de la fletxa cap avall per obrir el calendari; Utilitzeu les fletxes per navegar pels dies del calendari; Utilitzeu Ctrl o Cmd + la fletxa de dreta o esquerra per navegar pels mesos; Utilitzeu Ctrl o Cmd + la fletxa cap amunt o cap avall per navegar pels anys;', + }, + cat: { + htmlTex: 'Utilitzeu la tecla de la fletxa cap avall per obrir el calendari; Utilitzeu les tecles de la fletxa per navegar pels dies del calendari; Utilitzeu cmd o ctrl + tecla de la fletxa dreta o esquerra per navegar pels mesos; Utilitzeu cmd o ctrl + tecla de la fletxa cap amunt o cap avall per navegar pels anys;', + }, + ckb: { + htmlTex: 'ئەم توندوتان بەکاربهێنە بۆ کردنەوەی ڕۆژنامە; توندوتانی تیر بۆ ناوی ڕۆژەکانی ڕۆژنامە بکەن; دوگمەی cmd یان ctrl + توندوی ئەستوو یان چەپ بۆ ناوی مانگەکان بکەن; دوگمەی cmd یان ctrl + توندوی سەرەوە یان خوار بۆ ناوی ساڵەکان بکەن;', + }, + cs: { + htmlTex: 'Použijte klávesu šipka dolů k otevření kalendáře; Použijte šipky k navigaci mezi dny v kalendáři; Použijte klávesu Ctrl nebo Cmd + šipky vpravo nebo vlevo k navigaci mezi měsíci; Použijte klávesu Ctrl nebo Cmd + šipky nahoru nebo dolů k navigaci mezi roky;', + }, + cy: { + htmlTex: 'Defnyddiwch y botwm saeth i lawr i agor y calendr; Defnyddiwch y bysellau i lywio drwy ddyddiau calendr; Defnyddiwch Ctrl neu Cmd + y bysellau de neu lafur i lywio drwy fisoedd; Defnyddiwch Ctrl neu Cmd + y bysellau i fyny neu i lawr i lywio drwy flynyddoedd;', + }, + da: { + htmlTex: 'Brug pil ned for at åbne kalenderen; Brug piletasterne til at navigere gennem kalenderens dage; Brug Ctrl eller Cmd + højre eller venstre pil for at navigere gennem månederne; Brug Ctrl eller Cmd + op eller ned pilene for at navigere gennem årene;', + }, + de: { + htmlTex: 'Verwenden Sie die Pfeiltaste nach unten, um den Kalender zu öffnen; Verwenden Sie die Pfeiltasten, um durch die Kalendertage zu navigieren; Verwenden Sie die Befehlstaste oder Strg + Pfeiltaste rechts oder links, um durch die Monate zu navigieren; Verwenden Sie die Befehlstaste oder Strg + Pfeiltaste nach oben oder unten, um durch die Jahre zu navigieren;', + }, + en: { + htmlTex: 'Use arrow down key to open the calendar; Use arrow keys to navigate through calendar days; Use cmd or ctrl + right or left arrow keys to navigate through months; Use cmd or ctrl + up or down arrow keys to navigate through years;', + }, + eo: { + htmlTex: 'Uzu la malsupran sago-butonon por malfermi la kalendaron; Uzu sago-butonojn por navigi tra kalendaraj tagoj; Uzu cmd aŭ ctrl + dekstren aŭ maldekstren sago-butonojn por navigi tra monatoj; Uzu cmd aŭ ctrl + supren aŭ malsupren sago-butonojn por navigi tra jaroj;', + }, + es: { + htmlTex: 'Utiliza la tecla de flecha hacia abajo para abrir el calendario; Utiliza las teclas de flecha para navegar por los días del calendario; Utiliza cmd o ctrl + teclas de flecha derecha o izquierda para navegar por los meses; Utiliza cmd o ctrl + teclas de flecha arriba o abajo para navegar por los años;', + }, + et: { + htmlTex: 'Kasutage allanoolt, et avada kalender; Kasutage nooleklahve kalendripäevade sirvimiseks; Kasutage käsku või ctrl + parema või vasaku nooleklahvi, et sirvida kuude vahel; Kasutage käsku või ctrl + üles või alla nooleklahvi, et sirvida aastate vahel;', + }, + fa: { + htmlTex: 'از کلید پایین فشار دهید تا تقویم باز شود؛ از کلید‌های پایین برای ناوبری در ایام تقویم استفاده کنید؛ از کلیدهای cmd یا ctrl + راست یا چپ برای ناوبری در ماه‌ها استفاده کنید؛ از کلیدهای cmd یا ctrl + پایین یا بالا برای ناوبری در سال‌ها استفاده کنید؛', + }, + fi: { + htmlTex: 'Käytä nuolinäppäintä alentaaksesi kalenterin; Käytä nuolinäppäimiä navigoidaksesi kalenterin päivien läpi; Käytä cmd- tai ctrl-näppäintä ja nuolinäppäimiä oikealle tai vasemmalle navigoidaksesi kuukausien läpi; Käytä cmd- tai ctrl-näppäintä ja nuolinäppäimiä ylös tai alas navigoidaksesi vuosien läpi;', + }, + fo: { + htmlTex: 'Brúk niður píl til at opna kalendara; Brúk niður pílar til at navigera ímillum kalenderdagar; Brúk cmd ella ctrl + høgri ella vinstri niður pílar til at navigera ímillum mánaðir; Brúk cmd ella ctrl + upp ella niður pílar til at navigera ímillum ár;', + }, + fr: { + htmlTex: 'Utilisez la touche flèche vers le bas pour ouvrir le calendrier ; Utilisez les touches flèches pour naviguer à travers les jours du calendrier ; Utilisez la touche cmd ou ctrl + flèche droite ou gauche pour naviguer à travers les mois ; Utilisez la touche cmd ou ctrl + flèche vers le haut ou vers le bas pour naviguer à travers les années ;', + }, + ga: { + htmlTex: 'Úsáid an gcnaipe síos freisin chun an féilire a oscailt; Úsáid na siorafí siar chun bealach a aimsiú trí laethanta na féilire; Úsáid an cmd nó an cnaipe ctrl + saigheada ar dheis nó ar chlé chun aistriú trí mhíonna; Úsáid an cmd nó an cnaipe ctrl + saigheada suas nó síos chun aistriú trí blianta;', + }, + gr: { + htmlTex: 'Χρησιμοποιήστε το πλήκτρο κάτω βέλους για να ανοίξετε το ημερολόγιο. Χρησιμοποιήστε τα πλήκτρα βέλους για να περιηγηθείτε στις ημέρες του ημερολογίου. Χρησιμοποιήστε το πλήκτρο cmd ή ctrl + δεξιά ή αριστερά βέλη για να περιηγηθείτε στους μήνες. Χρησιμοποιήστε το πλήκτρο cmd ή ctrl + πάνω ή κάτω βέλος για να περιηγηθείτε στα έτη.', + }, + he: { + htmlTex: 'השתמש במקש חץ למטה כדי לפתוח את הלוח שנה; השתמש במקשי החץ לניווט בימי לוח השנה; השתמש במקש cmd או ctrl + מקשי החץ ימינה או שמאלה לניווט בין חודשים; השתמש במקש cmd או ctrl + מקשי החץ למעלה או למטה לניווט בין שנים;', + }, + hi: { + htmlTex: 'कैलेंडर खोलने के लिए नीचे तीर का उपयोग करें; कैलेंडर के दिनों में नेविगेट करने के लिए तीर का उपयोग करें; महीनों में नेविगेट करने के लिए cmd या ctrl + दायां या बाएं तीर का उपयोग करें; वर्षों में नेविगेट करने के लिए cmd या ctrl + ऊपर या नीचे तीर का उपयोग करें;', + }, + hr: { + htmlTex: 'Koristite tipku za strelicu prema dolje da biste otvorili kalendar; Koristite tipke sa strelicama za navigaciju kroz dane kalendara; Koristite tipke cmd ili ctrl + desno ili lijevo za navigaciju kroz mjesece; Koristite tipke cmd ili ctrl + gore ili dolje za navigaciju kroz godine;', + }, + hu: { + htmlTex: 'Használja az "Arrow Down" gombot a naptár megnyitásához; Használja az "Arrow" gombokat a naptári napok közötti navigáláshoz; Használja a cmd vagy ctrl + jobb vagy bal nyilakat a hónapok közötti navigáláshoz; Használja a cmd vagy ctrl + fel vagy le nyilakat az évek közötti navigáláshoz;', + }, + hy: { + htmlTex: 'Օգտագործեք "Ներքև" սլաքը թողնելու համար՝ օգտագործեք սլաքերը օրվանին նավահանելու համար։ օգտագործեք cmd կամ ctrl + աջ կամ ձախ սլաքերը ամսերի մեջ հանելու համար։ օգտագործեք cmd կամ ctrl + վերև կամ ներքև սլաքերը տասնամյա մեջ հանելու համար։', + }, + id: { + htmlTex: 'Gunakan tombol panah bawah untuk membuka kalender; Gunakan tombol panah untuk menavigasi melalui hari-hari kalender; Gunakan cmd atau ctrl + tombol panah kanan atau kiri untuk menavigasi melalui bulan-bulan; Gunakan cmd atau ctrl + tombol panah atas atau bawah untuk menavigasi melalui tahun-tahun;', + }, + is: { + htmlTex: 'Notaðu niður örvarna til að opna dagatalið; Notaðu örvarnar til að sigla í gegnum daga dagatalið; Notaðu cmd eða ctrl + hægri eða vinstri örvarnar til að sigla í gegnum mánaði; Notaðu cmd eða ctrl + upp eða niður örvarnar til að sigla í gegnum árin;', + }, + it: { + htmlTex: 'Usa il tasto freccia giù per aprire il calendario; Usa le frecce per navigare attraverso i giorni del calendario; Usa cmd o ctrl + freccia destra o sinistra per navigare attraverso i mesi; Usa cmd o ctrl + freccia su o giù per navigare attraverso gli anni;', + }, + ja: { + htmlTex: 'カレンダーを開くには矢印キーを下に使用してください;カレンダーの日付を移動するには矢印キーを使用してください;月を移動するにはcmdまたはctrlキーと右矢印キーまたは左矢印キーを使用してください;年を移動するにはcmdまたはctrlキーと上矢印キーまたは下矢印キーを使用してください;', + }, + ka: { + htmlTex: 'გამოიყენეთ ქვევით მდგომარე ღილაკი კალენდრის გახსნისათვის; გამოიყენეთ კლავიში კალენდრის დღეებზე ნავიგაციისთვის; გამოიყენეთ cmd ან ctrl + მარჯვნაის ან მარცხნაის ღილაკები თვეების შესამოწმებლად; გამოიყენეთ cmd ან ctrl + ზემოთ ან ქვემოთ მდგარე ღილაკები წლების შესამოწმებლად;', + }, + km: { + htmlTex: 'ប្រើព្រួញក្រាហ្វាសក្រាហ្វាសដើម្បីបើកប្រតិទិន; ប្រើព្រួញក្រាហ្វាសដើម្បីរុករុករបស់ថ្ងៃកូនក្នុងប្រតិទិន; ប្រើព្រួញ cmd ឬ ctrl + ព្រួញស្ដាំឬស្តាំខ្លីដើម្បីរុករុករបស់ខែ; ប្រើព្រួញ cmd ឬ ctrl + ព្រួញឡើងឬឡើងដើម្បីរុករុករបស់ឆ្នាំ;', + }, + ko: { + htmlTex: '달력을 열려면 아래쪽 화살표 키를 사용하십시오. 달력 날짜를 탐색하려면 화살표 키를 사용하십시오. 월을 탐색하려면 cmd 또는 ctrl + 오른쪽 또는 왼쪽 화살표 키를 사용하십시오. 년도를 탐색하려면 cmd 또는 ctrl + 위쪽 또는 아래쪽 화살표 키를 사용하십시오.', + }, + kz: { + htmlTex: 'Қалендарды ашу үшін жоғары жақ көрсеткінді пайдаланыңыз; Календардың күндері арасында навигациялау үшін көрсеткінді пайдаланыңыз; Айдарды навигациялау үшін cmd немесе ctrl + оң немесе сол көрсеткінді пайдаланыңыз; Жылдарды навигациялау үшін cmd немесе ctrl + жоғары немесе төмен көрсеткінді пайдаланыңыз;', + }, + lt: { + htmlTex: 'Naudokite rodyklės žemyn klavišą, kad atidarytumėte kalendorių; Naudokite rodykles, kad naršytumėte kalendoriaus dienas; Naudokite cmd arba ctrl + dešinįjį arba kairįjį rodyklę, kad naršytumėte mėnesius; Naudokite cmd arba ctrl + aukštyn arba žemyn rodyklę, kad naršytumėte metus;', + }, + lv: { + htmlTex: 'Izmantojiet bultiņu uz leju taustiņu, lai atvērtu kalendāru; Izmantojiet bultiņas, lai navigētu caur kalendāra dienām; Izmantojiet cmd vai ctrl + pa labi vai pa kreisi bultiņas, lai navigētu mēnešos; Izmantojiet cmd vai ctrl + uz augšu vai uz leju bultiņas, lai navigētu gados;', + }, + mk: { + htmlTex: 'Користете го копчето со стрелка надолу за да отворите календар; Користете стрелките за да навигирате низ деновите во календарот; Користете го копчето cmd или ctrl + стрелка десно или лево за да навигирате низ месеци; Користете го копчето cmd или ctrl + стрелка горе или долу за да навигирате низ годините;', + }, + mn: { + htmlTex: 'Календарыг нээхийн тулд доошилтуур товчлуурыг ашиглана уу; Календарын өдөрүүдэд хүрэхийн тулд доошилтуур товчлуурыг ашиглана уу; Саруудад нэвтрүүлгэн тохируулахын тулд cmd эсвэл ctrl + баруун эсвэл зүүн доошилтуур товчлуурыг ашиглана уу; Жилийг нэвтрүүлгэн тохируулахын тулд cmd эсвэл ctrl + доошилтуур товчлуурыг дээш эсвэл доошилтуур ашиглана уу;', + }, + ms: { + htmlTex: 'Guna pakai ke bawah panah untuk membuka kalendar; Guna ke bawah panah untuk melayari hari-hari kalendar; Guna cmd atau ctrl + panah ke kanan atau kiri untuk melayari bulan; Guna cmd atau ctrl + panah ke atas atau bawah untuk melayari tahun;', + }, + my: { + htmlTex: 'ကော်နာနှင့် ရွှေတိုးကို ဖွင့်ပါ။ ကိုက်ဘ်လက်များကို ရှာဖွေရန်အသုံးပြုပါ။ ကိုနှင့် ctrl သို့မဟုတ်အမြင်ကို ညာဘက်သို့မဟုတ် ညာမြက်သို့မှစားရင်းသားကို ရှာဖွေရန်အသုံးပြုပါ။', + }, + nl: { + htmlTex: 'Gebruik de pijl-omlaag-toets om de kalender te openen; Gebruik de pijltoetsen om door kalenderdagen te navigeren; Gebruik cmd of ctrl + rechter- of linkerpijltoetsen om door maanden te navigeren; Gebruik cmd of ctrl + omhoog- of omlaagpijltoetsen om door jaren te navigeren;', + }, + nb: { + htmlTex: 'Bruk piltasten ned for å åpne kalenderen; Bruk piltastene for å navigere gjennom kalenderens dager; Bruk cmd eller ctrl + høyre eller venstre piltast for å navigere gjennom månedene; Bruk cmd eller ctrl + opp eller ned piltast for å navigere gjennom årene;', + }, + nn: { + htmlTex: 'Bruk piltasten ned for å opne kalenderen; Bruk piltastane for å navigere gjennom kalenderdagar; Bruk cmd eller ctrl + høgre eller venstre piltast for å navigere gjennom månader; Bruk cmd eller ctrl + opp eller ned piltast for å navigere gjennom år;', + }, + no: { + htmlTex: 'Bruk piltasten ned for å åpne kalenderen; Bruk piltastene for å navigere gjennom kalenderdager; Bruk cmd eller ctrl + høyre eller venstre piltast for å navigere gjennom månedene; Bruk cmd eller ctrl + opp eller ned piltast for å navigere gjennom år;', + }, + pa: { + htmlTex: 'ਕੈਲੰਡਰ ਖੋਲਣ ਲਈ ਹੇਠਾਂ ਆਰੋ ਕੁੱਝ ਕਰੋ; ਕੈਲੰਡਰ ਦਿਨਾਂ ਵਿੱਚ ਸਿਰਣ ਲਈ ਆਰੋ ਕੁੱਝ ਕਰੋ; ਮਹੀਨਿਆਂ ਵਿੱਚ ਸਿਰਣ ਲਈ cmd ਜਾਂ ctrl + ਸੱਜੇ ਜਾਂ ਖੱਬੇ ਆਰੋ ਕੁੱਝ ਕਰੋ; ਸਾਲਾਂ ਵਿੱਚ ਸਿਰਣ ਲਈ cmd ਜਾਂ ctrl + ਉੱਤੇ ਜਾਂ ਹੇਠੇ ਆਰੋ ਕੁੱਝ ਕਰੋ;', + }, + pl: { + htmlTex: 'Użyj klawisza strzałki w dół, aby otworzyć kalendarz; Użyj strzałek, aby nawigować przez dni kalendarza; Użyj klawiszy cmd lub ctrl + strzałka w prawo lub lewo, aby nawigować między miesiącami; Użyj klawiszy cmd lub ctrl + strzałka w górę lub w dół, aby nawigować między latami;', + }, + pt: { + htmlTex: 'Use a tecla de seta para baixo para abrir o calendário; Use as teclas de seta para navegar pelos dias do calendário; Use cmd ou ctrl + seta para a direita ou esquerda para navegar pelos meses; Use cmd ou ctrl + seta para cima ou para baixo para navegar pelos anos;', + }, + ro: { + htmlTex: 'Utilizați tasta săgeată în jos pentru a deschide calendarul; Utilizați tastele săgeată pentru a naviga prin zilele calendarului; Utilizați cmd sau ctrl + săgeată dreapta sau stânga pentru a naviga prin lunile calendarului; Utilizați cmd sau ctrl + săgeată sus sau jos pentru a naviga prin ani;', + }, + ru: { + htmlTex: 'Используйте клавишу стрелки вниз, чтобы открыть календарь; Используйте стрелки для навигации по дням календаря; Используйте клавиши cmd или ctrl + стрелка вправо или влево для навигации между месяцами; Используйте клавиши cmd или ctrl + стрелка вверх или вниз для навигации по годам;', + }, + si: { + htmlTex: 'දිවය විවෘත කිරීමට දවස කිරීම සඳහා ඊරාව් මෝල භාරතීය කරන්න; දින සඳහා ඊරා කිරීම සඳහා ඊරා මෝල භාරතීය කරන්න; මාමාන සඳහා cmd හෝ ctrl + වමට හෝ දකුණු ඊරා කිරීම සඳහා; වරාය සඳහා cmd හෝ ctrl + ඉහළ හෝ අසල ඊරා කිරීම සඳහා ඊරා කිරීමට භාරතීය කරන්න;', + }, + sk: { + htmlTex: 'Použite kláves smerom nadol na otvorenie kalendára; Použite šípky smerom hore a dole na navigáciu medzi dňami v kalendári; Použite klávesy cmd alebo ctrl + vpravo alebo vľavo na navigáciu medzi mesiacmi; Použite klávesy cmd alebo ctrl + smerom hore alebo dolu na navigáciu medzi rokmi;', + }, + sl: { + htmlTex: 'Uporabite tipko s puščico dol za odpiranje koledarja; Uporabite puščične tipke za krmarjenje med dnevi v koledarju; Uporabite tipki cmd ali ctrl + desno ali levo puščico za krmarjenje med meseci; Uporabite tipki cmd ali ctrl + puščico gor ali dol za krmarjenje med leti;', + }, + sq: { + htmlTex: 'Përdorni tastierën me shigjetën poshtë për të hapur kalendarin; Përdorni tastierën me shigjetën lart dhe poshtë për të lëvizur nëpër ditët e kalendarit; Përdorni tastierën cmd ose ctrl + majtas ose djathtas për të lëvizur nëpër muajt; Përdorni tastierën cmd ose ctrl + shigjetën lart ose poshtë për të lëvizur nëpër vitet;', + }, + sr: { + htmlTex: 'Koristite taster strelica nadole da biste otvorili kalendar; Koristite tasteri strelica za navigaciju kroz dane kalendara; Koristite cmd ili ctrl + strelice desno ili levo za navigaciju kroz mesece; Koristite cmd ili ctrl + strelice gore ili dole za navigaciju kroz godine;', + }, + sv: { + htmlTex: 'Använd piltangenten nedåt för att öppna kalendern; Använd piltangenterna för att navigera genom kalenderdagar; Använd cmd eller ctrl + höger eller vänster piltangent för att navigera genom månader; Använd cmd eller ctrl + upp eller ner piltangent för att navigera genom år;', + }, + th: { + htmlTex: 'ใช้ปุ่มลูกศรลงเพื่อเปิดปฏิทิน; ใช้ปุ่มลูกศรเพื่อนำทางผ่านวันที่ในปฏิทิน; ใช้ cmd หรือ ctrl + ปุ่มลูกศรขวาหรือซ้ายเพื่อนำทางผ่านเดือน; ใช้ cmd หรือ ctrl + ปุ่มลูกศรขึ้นหรือลงเพื่อนำทางผ่านปี;', + }, + tr: { + htmlTex: 'Takvimi açmak için aşağı ok tuşunu kullanın; Takvim günleri arasında gezinmek için ok tuşlarını kullanın; Aylar arasında gezinmek için cmd veya ctrl + sağ veya sol ok tuşlarını kullanın; Yıllar arasında gezinmek için cmd veya ctrl + yukarı veya aşağı ok tuşlarını kullanın;', + }, + uk: { + htmlTex: 'Використовуйте клавішу стрілка вниз, щоб відкрити календар; Використовуйте клавіші зі стрілкою, щоб переміщатися між днями календаря; Використовуйте клавіші cmd або ctrl + вправо або вліво, щоб переміщатися між місяцями; Використовуйте клавіші cmd або ctrl + стрілка вгору або вниз, щоб переміщатися між роками;', + }, + uz: { + htmlTex: "Kalendar ochish uchun pastga yo'naltirish tugmasidan foydalaning; Kalendar kunlaridan o'tish uchun pastga va tepaga yo'naltirish tugmalari qo'llaniladi; Oy o'rtasida o'tish uchun cmd yoki ctrl + chap yoki o'ng oyoq tugmalaridan foydalaning; Yil o'rtasida o'tish uchun cmd yoki ctrl + tepaga yoki pastga yo'naltirish tugmalari qo'llaniladi;", + }, + vn: { + htmlTex: 'Sử dụng phím mũi tên xuống để mở lịch; Sử dụng các phím mũi tên để điều hướng qua các ngày trong lịch; Sử dụng cmd hoặc ctrl + phím mũi tên phải hoặc trái để điều hướng qua các tháng; Sử dụng cmd hoặc ctrl + phím mũi tên lên hoặc xuống để điều hướng qua các năm;', + }, + zh: { + htmlTex: '使用下箭头键打开日历; 使用箭头键在日历天数之间导航; 使用cmd或ctrl +右或左箭头键导航月份; 使用cmd或ctrl +上或下箭头键导航年份;', + }, + zh_tw: { + htmlTex: '使用下箭頭鍵打開日曆; 使用箭頭鍵在日曆天數之間導航; 使用cmd或ctrl +右或左箭頭鍵導航月份; 使用cmd或ctrl +上或下箭頭鍵導航年份;', + }, + }; + })(l10ns = Flatpickr.l10ns || (Flatpickr.l10ns = {})); + })(Flatpickr = Datepicker.Flatpickr || (Datepicker.Flatpickr = {})); + })(Datepicker = OSUI.Datepicker || (OSUI.Datepicker = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var Datepicker; + (function (Datepicker) { + var Flatpickr; + (function (Flatpickr) { + var l10ns; + (function (l10ns) { + l10ns.TodayBtn = { + ar: { + ariaLabel: 'انقر للانتقال إلى تاريخ اليوم', + title: 'اليوم', + }, + at: { + ariaLabel: 'Klicken Sie hier, um zum heutigen Datum zu springen', + title: 'Heute', + }, + az: { + ariaLabel: 'Bugünkü tarixə keçmək üçün bura klikləyin', + title: 'Bu gün', + }, + be: { + ariaLabel: 'Націсніце тут, каб перайсці да сённяшняй даты', + title: 'сёння', + }, + bg: { + ariaLabel: 'Щракнете тук, за да преминете към днешната дата', + title: 'Днес', + }, + bn: { + ariaLabel: 'আজকের তারিখে যেতে এখানে ক্লিক করুন', + title: 'আজ', + }, + bs: { + ariaLabel: 'Kliknite ovdje da skočite na današnji datum', + title: 'Danas', + }, + ca: { + ariaLabel: "Feu clic aquí per saltar a la data d'avui", + title: 'Avui', + }, + cat: { + ariaLabel: "Feu clic aquí per saltar a la data d'avui", + title: 'Avui', + }, + ckb: { + ariaLabel: 'Li vir bikirtînin da ku hûn biçin roja îro', + title: 'Îro', + }, + cs: { + ariaLabel: 'Kliknutím sem přejdete na dnešní datum', + title: 'Dnes', + }, + cy: { + ariaLabel: "Cliciwch yma i neidio i'r dyddiad heddiw", + title: 'Heddiw', + }, + da: { + ariaLabel: 'Klik her for at springe til dagens dato', + title: 'I dag', + }, + de: { + ariaLabel: 'Klicken Sie hier, um zum heutigen Datum zu springen', + title: 'Heute', + }, + eo: { + ariaLabel: 'Klaku ĉi tie por salti al la hodiaŭa dato', + title: 'Hodiaŭ', + }, + es: { + ariaLabel: 'Haga clic para saltar a la fecha de hoy', + title: 'Hoy', + }, + en: { + ariaLabel: 'Click to jump into today date', + title: 'Today', + }, + et: { + ariaLabel: 'Tänasele kuupäevale liikumiseks klõpsake siin', + title: 'Täna', + }, + fa: { + ariaLabel: 'برای رفتن به تاریخ امروز اینجا را کلیک کنید', + title: 'امروز', + }, + fi: { + ariaLabel: 'Napsauta tästä siirtyäksesi tämän päivän päivämäärään', + title: 'Tänään', + }, + fo: { + ariaLabel: 'Klicken Sie hier, um zum heutigen Datum zu springen', + title: 'Heute', + }, + fr: { + ariaLabel: "Cliquez ici pour passer à la date d'aujourd'hui", + title: "Aujourd'hui", + }, + ga: { + ariaLabel: 'Cliceáil anseo chun léim chuig dáta an lae inniu', + title: 'Inniu', + }, + gr: { + ariaLabel: 'Κάντε κλικ εδώ για να μεταβείτε στη σημερινή ημερομηνία', + title: 'Σήμερα', + }, + he: { + ariaLabel: 'לחץ כאן כדי לדלג לתאריך של היום', + title: 'היום', + }, + hi: { + ariaLabel: 'आज की तारीख पर जाने के लिए यहां क्लिक करें', + title: 'आज', + }, + hr: { + ariaLabel: 'Kliknite ovdje za skok na današnji datum', + title: 'Danas', + }, + hu: { + ariaLabel: 'Kattintson ide, hogy a mai dátumra ugorjon', + title: 'Ma', + }, + hy: { + ariaLabel: 'Սեղմեք այստեղ՝ այսօրվա օրվան անցնելու համար', + title: 'Այսօր', + }, + id: { + ariaLabel: 'Klik di sini untuk melompat ke tanggal hari ini', + title: 'Hari ini', + }, + is: { + ariaLabel: 'Smelltu hér til að fara á dagsetningu dagsins', + title: 'Í dag', + }, + it: { + ariaLabel: 'Clicca per saltare alla data odierna', + title: 'Oggi', + }, + ja: { + ariaLabel: '今日の日付にジャンプするには、ここをクリックしてください', + title: '今日', + }, + ka: { + ariaLabel: 'დააწკაპუნეთ აქ დღევანდელ თარიღზე გადასასვლელად', + title: 'დღეს', + }, + km: { + ariaLabel: 'សូមចុចទីនេះដើម្បីចូលទៅកាន់កាលបរិច្ឆេទថ្ងៃនេះ', + title: 'ថ្ងៃនេះ', + }, + ko: { + ariaLabel: '오늘 날짜로 이동하려면 여기를 클릭하세요.', + title: '오늘', + }, + kz: { + ariaLabel: 'Бүгінгі күнге өту үшін осы жерді басыңыз', + title: 'Бүгін', + }, + lt: { + ariaLabel: 'Spustelėkite čia, kad pereitumėte prie šiandienos datos', + title: 'Šiandien', + }, + lv: { + ariaLabel: 'Noklikšķiniet šeit, lai pārietu uz šodienas datumu', + title: 'Šodien', + }, + mk: { + ariaLabel: 'Кликнете овде за да скокнете до денешниот датум', + title: 'Денес', + }, + mn: { + ariaLabel: 'Өнөөдрийн огноо руу шилжихийн тулд энд дарна уу', + title: 'Өнөөдөр', + }, + ms: { + ariaLabel: 'Klik di sini untuk melompat ke tarikh hari ini', + title: 'Hari ini', + }, + my: { + ariaLabel: 'ယနေ့ရက်စွဲသို့ခုန်ရန် ဤနေရာကိုနှိပ်ပါ။', + title: 'ဒီနေ့', + }, + nl: { + ariaLabel: 'Klik hier om naar de datum van vandaag te gaan', + title: 'Vandaag', + }, + nb: { + ariaLabel: 'Klikk her for å hoppe til dagens dato', + title: 'I dag', + }, + nn: { + ariaLabel: 'Klikk her for å hoppe til dagens dato', + title: 'I dag', + }, + no: { + ariaLabel: 'Klikk her for å hoppe til dagens dato', + title: 'I dag', + }, + pa: { + ariaLabel: "ਅੱਜ ਦੀ ਤਾਰੀਖ 'ਤੇ ਜਾਣ ਲਈ ਇੱਥੇ ਕਲਿੱਕ ਕਰੋ", + title: 'ਅੱਜ', + }, + pl: { + ariaLabel: 'Kliknij tutaj, aby przejść do dzisiejszej daty', + title: 'Dziś', + }, + pt: { + ariaLabel: 'Clique aqui para seleccionar a data de hoje.', + title: 'Hoje', + }, + ro: { + ariaLabel: 'Faceți clic aici pentru a trece la data de astăzi', + title: 'Astăzi', + }, + ru: { + ariaLabel: 'Нажмите здесь, чтобы перейти к сегодняшней дате', + title: 'Сегодня', + }, + si: { + ariaLabel: 'අද දිනයට යාමට මෙතැන ක්ලික් කරන්න', + title: 'අද', + }, + sk: { + ariaLabel: 'Kliknutím sem prejdete na dnešný dátum', + title: 'Dnes', + }, + sl: { + ariaLabel: 'Kliknite tukaj za skok na današnji datum', + title: 'Danes', + }, + sq: { + ariaLabel: 'Kliko këtu për të kaluar në datën e sotme', + title: 'Sot', + }, + sr: { + ariaLabel: 'Кликните овде да бисте прешли на данашњи датум', + title: 'Данас', + }, + sv: { + ariaLabel: 'Klicka här för att gå till dagens datum', + title: 'I dag', + }, + th: { + ariaLabel: 'คลิกที่นี่เพื่อข้ามไปยังวันที่ของวันนี้', + title: 'ทุกวันนี้', + }, + tr: { + ariaLabel: 'Bugünün tarihine atlamak için buraya tıklayın', + title: 'Bugün', + }, + uk: { + ariaLabel: 'Натисніть тут, щоб перейти до сьогоднішньої дати', + title: 'Сьогодні', + }, + uz: { + ariaLabel: "Bugungi sanaga o'tish uchun shu yerni bosing", + title: 'Bugun', + }, + vn: { + ariaLabel: 'Bấm vào đây để chuyển sang ngày hôm nay', + title: 'Hôm nay', + }, + zh: { + ariaLabel: '点击这里跳转到今天的日期', + title: '今天', + }, + zh_tw: { + ariaLabel: '點擊這裡跳轉到今天的日期', + title: '今天', + }, + }; + })(l10ns = Flatpickr.l10ns || (Flatpickr.l10ns = {})); + })(Flatpickr = Datepicker.Flatpickr || (Datepicker.Flatpickr = {})); + })(Datepicker = OSUI.Datepicker || (OSUI.Datepicker = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var Dropdown; + (function (Dropdown) { + var VirtualSelect; + (function (VirtualSelect) { + class AbstractVirtualSelect extends OSFramework.OSUI.Patterns.Dropdown.AbstractDropdown { + constructor(uniqueId, configs) { + super(uniqueId, configs); + } + _addErrorMessage(text) { + const errorMessageElement = OSFramework.OSUI.Helper.Dom.ClassSelector(this.selfElement.parentElement, VirtualSelect.Enum.CssClass.ErrorMessage); + if (errorMessageElement === undefined) { + const textContainer = document.createElement(OSFramework.OSUI.GlobalEnum.HTMLElement.Div); + textContainer.classList.add(VirtualSelect.Enum.CssClass.ErrorMessage); + textContainer.innerHTML = text; + this.selfElement.parentElement.appendChild(textContainer); + } + } + _manageAttributes() { + this.setA11YProperties(); + } + _manageDisableStatus() { + if (this.configs.IsDisabled) { + this.provider.$ele.disable(); + } + else { + this.provider.$ele.enable(); + } + } + _onMouseUp(event) { + event.preventDefault(); + } + _onSelectedOption() { + this.triggerPlatformEventCallback(this._platformEventSelectedOptCallback, this.getSelectedValues()); + } + _onWindowResize() { + if (this.provider.isOpened()) { + this.virtualselectConfigs.close(); + } + } + _setElementId() { + this.configs.ElementId = '#' + this.selfElement.id; + } + _setUpEvents() { + this.selfElement.addEventListener(VirtualSelect.Enum.Events.Change, this._onSelectedOptionEvent); + if (OSFramework.OSUI.Helper.DeviceInfo.GetBrowser() === OSFramework.OSUI.GlobalEnum.Browser.edge) { + this.selfElement.addEventListener(OSFramework.OSUI.GlobalEnum.HTMLEvent.MouseUp, this._onMouseUpEvent); + } + if (OSFramework.OSUI.Helper.DeviceInfo.IsDesktop) { + OSFramework.OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.addHandler(OSFramework.OSUI.Event.DOMEvents.Listeners.Type.WindowResize, this._eventOnWindowResize); + } + } + _unsetEvents() { + this.selfElement.removeEventListener(VirtualSelect.Enum.Events.Change, this._onSelectedOptionEvent); + this.selfElement.removeEventListener(OSFramework.OSUI.GlobalEnum.HTMLEvent.MouseUp, this._onMouseUpEvent); + OSFramework.OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.removeHandler(OSFramework.OSUI.Event.DOMEvents.Listeners.Type.WindowResize, this._eventOnWindowResize); + } + createProviderInstance() { + this.provider = window.VirtualSelect.init(this.virtualselectOpts); + this.provider = Array.isArray(this.provider) ? this.provider[0] : this.provider; + this.virtualselectConfigs = this.provider.$ele; + this.provider.$dropboxContainer.setAttribute(OSFramework.OSUI.GlobalEnum.HTMLAttributes.Name, this.uniqueId); + this.updateProviderEvents({ + name: VirtualSelect.Enum.ProviderInfo.Name, + version: VirtualSelect.Enum.ProviderInfo.Version, + events: this.virtualselectConfigs, + }); + this._manageAttributes(); + const _bodyEvent = OSFramework.OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.events.get(OSFramework.OSUI.Event.DOMEvents.Listeners.Type.BodyOnClick); + if (_bodyEvent) { + this.selfElement.addEventListener(VirtualSelect.Enum.Events.BeforeOpen, () => { + _bodyEvent.disableBodyClickEvent(); + }); + this.selfElement.addEventListener(VirtualSelect.Enum.Events.BeforeClose, () => { + _bodyEvent.enableBodyClickEvent(); + }); + } + this.triggerPlatformInitializedEventCallback(); + } + setA11YProperties() { + this.setHiddenInputWrapperAriaLabelVal(); + } + setCallbacks() { + this._eventOnWindowResize = this._onWindowResize.bind(this); + this._onMouseUpEvent = this._onMouseUp.bind(this); + this._onSelectedOptionEvent = this._onSelectedOption.bind(this); + } + setHtmlElements() { + console.log(OSFramework.OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + unsetCallbacks() { + this._eventOnWindowResize = undefined; + this._onSelectedOptionEvent = undefined; + this.virtualselectConfigs = undefined; + this.virtualselectOpts = undefined; + this.provider = undefined; + super.unsetCallbacks(); + } + unsetHtmlElements() { + console.log(OSFramework.OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + build() { + super.build(); + this._setElementId(); + this.setCallbacks(); + this._setUpEvents(); + this.prepareConfigs(); + this.finishBuild(); + } + changeProperty(propertyName, propertyValue) { + this.virtualselectConfigs.close(); + if ((propertyName === VirtualSelect.Enum.Properties.OptionsList || propertyName === VirtualSelect.Enum.Properties.StartingSelection) && + typeof propertyValue === 'string') { + propertyValue = JSON.parse(propertyValue); + } + super.changeProperty(propertyName, propertyValue); + if (this.isBuilt) { + switch (propertyName) { + case OSFramework.OSUI.Patterns.Dropdown.Enum.Properties.IsDisabled: + this._manageDisableStatus(); + break; + case VirtualSelect.Enum.Properties.NoOptionsText: + case VirtualSelect.Enum.Properties.NoResultsText: + case VirtualSelect.Enum.Properties.OptionsList: + case VirtualSelect.Enum.Properties.Prompt: + case VirtualSelect.Enum.Properties.SearchPrompt: + this.redraw(); + break; + case VirtualSelect.Enum.Properties.StartingSelection: + this.setValue(propertyValue); + console.warn(`${OSFramework.OSUI.GlobalEnum.PatternName.Dropdown}: (${this.widgetId}): We recommend using the StartingSelection parameter exclusively for the initial selection and avoid changing it after initialization. To dynamically change the selected options, you should ideally use the DropdownSetValue Client Action.`); + break; + } + } + } + clear() { + this.virtualselectConfigs.reset(); + } + close() { + OSFramework.OSUI.Helper.AsyncInvocation(this.virtualselectConfigs.close.bind(this.virtualselectConfigs)); + } + disable() { + if (this.configs.IsDisabled === false && this.provider !== undefined) { + this.configs.IsDisabled = true; + this.provider.$ele.disable(); + } + } + dispose() { + if (this.isBuilt) { + if (Array.isArray(this.provider)) { + for (const element of this.provider) { + element.destroy(); + } + } + else { + this.provider.destroy(); + } + } + this._unsetEvents(); + this.unsetCallbacks(); + super.dispose(); + } + enable() { + if (this.configs.IsDisabled && this.provider !== undefined) { + this.configs.IsDisabled = false; + this.provider.$ele.enable(); + } + } + getSelectedValues() { + let optionsSelected = this.getSelectedOptionsStructure(); + if (optionsSelected !== undefined && optionsSelected.length > 0) { + optionsSelected = optionsSelected.map(function (option) { + return Object.assign({ group_name: option.customData && option.customData.group_name ? option.customData.group_name : '', description: option.customData && option.customData.description ? option.customData.description : '' }, option); + }); + return JSON.stringify(optionsSelected); + } + return ''; + } + open() { + OSFramework.OSUI.Helper.AsyncInvocation(this.virtualselectConfigs.open.bind(this.virtualselectConfigs)); + } + registerCallback(eventName, callback) { + switch (eventName) { + case VirtualSelect.Enum.Events.OnSelected: + if (this._platformEventSelectedOptCallback === undefined) { + this._platformEventSelectedOptCallback = callback; + } + break; + default: + super.registerCallback(eventName, callback); + break; + } + } + setHiddenInputWrapperAriaLabelVal(value) { + this.hiddenInputWrapperAriaLabelVal = value === undefined ? this.hiddenInputWrapperAriaLabelVal : value; + OSFramework.OSUI.Helper.A11Y.AriaLabel(this.provider.$wrapper, this.hiddenInputWrapperAriaLabelVal); + } + setProviderConfigs(newConfigs) { + this.configs.setExtensibilityConfigs(newConfigs); + this.redraw(); + super.setProviderConfigs(newConfigs); + } + setValue(optionsToSelect, silentOnChangedEvent = true) { + const selectedValues = this.getSelectedOptionsStructure().map((value) => value.value) || []; + let valuesToSelect = []; + if (optionsToSelect.length > 0) { + if (this.virtualselectOpts.multiple) + valuesToSelect = optionsToSelect.map((option) => option.value); + else + valuesToSelect = [optionsToSelect[0].value]; + } + if (valuesToSelect.sort().join(' ') !== selectedValues.sort().join(' ')) + this.virtualselectConfigs.setValue(valuesToSelect, silentOnChangedEvent); + } + togglePopup(isEnabled) { + if (this.configs.ShowDropboxAsPopup !== isEnabled) { + this.configs.ShowDropboxAsPopup = isEnabled; + this.redraw(); + } + } + validation(isValid, validationMessage) { + if (isValid === false) { + OSFramework.OSUI.Helper.Dom.Styles.AddClass(this.selfElement, VirtualSelect.Enum.CssClass.NotValid); + this._addErrorMessage(validationMessage); + } + else { + OSFramework.OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, VirtualSelect.Enum.CssClass.NotValid); + const errorMessageElement = OSFramework.OSUI.Helper.Dom.ClassSelector(this.selfElement.parentElement, VirtualSelect.Enum.CssClass.ErrorMessage); + if (errorMessageElement) { + errorMessageElement.remove(); + } + } + } + } + VirtualSelect.AbstractVirtualSelect = AbstractVirtualSelect; + })(VirtualSelect = Dropdown.VirtualSelect || (Dropdown.VirtualSelect = {})); + })(Dropdown = OSUI.Dropdown || (OSUI.Dropdown = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var Dropdown; + (function (Dropdown) { + var VirtualSelect; + (function (VirtualSelect) { + class AbstractVirtualSelectConfig extends OSFramework.OSUI.Patterns.Dropdown + .AbstractDropdownConfig { + constructor() { + super(...arguments); + this.ShowDropboxAsPopup = true; + } + _checkForFigType(option) { + let hasImage = VirtualSelect.Enum.FigureType.None; + if (!!option && !!option.image_url_or_class) { + hasImage = OSFramework.OSUI.Helper.URL.IsImage(option.image_url_or_class) + ? VirtualSelect.Enum.FigureType.Image + : VirtualSelect.Enum.FigureType.Icon; + } + return hasImage; + } + _getGroupedOptionsList() { + const options = []; + let previousKey = undefined; + const [hasDescription, groupedOptions] = this._groupOptions(); + for (const key in groupedOptions) { + options.push({ + label: key, + options: groupedOptions[key], + index: groupedOptions[previousKey] + ? options[options.length - 1].index + groupedOptions[previousKey].length + 1 + : 0, + }); + previousKey = key; + } + return [hasDescription, options]; + } + _getOptionIconPrefix(option) { + return ``; + } + _getOptionImagePrefix(option) { + const sanitizedUrl = OSFramework.OSUI.Helper.Sanitize(option.image_url_or_class); + return ``; + } + _getOptionInfo(data) { + let prefix = ''; + let index; + let groupIndex; + if (!data.isGroupTitle) { + if (data.isGroupOption) { + groupIndex = this._groupedOptionsList.findIndex((group) => group.index === data.groupIndex); + index = data.index - (data.groupIndex + 1); + } + else { + groupIndex = 0; + index = data.index; + } + const hasFigureType = this._checkForFigType(this._groupedOptionsList[groupIndex].options[index]); + switch (hasFigureType) { + case VirtualSelect.Enum.FigureType.Image: + prefix = this._getOptionImagePrefix(this._groupedOptionsList[groupIndex].options[index]); + break; + case VirtualSelect.Enum.FigureType.Icon: + prefix = this._getOptionIconPrefix(this._groupedOptionsList[groupIndex].options[index]); + break; + } + } + return `${prefix}${data.label}`; + } + _getOptionsList() { + if (this._groupedOptionsList.length === 1 && !!!this._groupedOptionsList[0].label) { + return this._groupedOptionsList[0].options; + } + else { + return this._groupedOptionsList; + } + } + _groupOptions() { + let hasDescription = false; + const groupOptionsObject = this.OptionsList.reduce(function (previousValue, option) { + const group_name = option.group_name || ''; + const description = option.description || ''; + option.customData = {}; + if (description !== '') { + option.customData = { description: description }; + hasDescription = true; + } + if (group_name !== '') { + option.customData = Object.assign(Object.assign({}, option.customData), { group_name: group_name }); + } + previousValue[group_name] = previousValue[group_name] || []; + previousValue[group_name].push(option); + return previousValue; + }, {}); + return [hasDescription, groupOptionsObject]; + } + getProviderConfig() { + for (const option of this.OptionsList) { + option.label = OSFramework.OSUI.Helper.Sanitize(option.label); + } + const [hasDescription, groupedOptionsList] = this._getGroupedOptionsList(); + this._groupedOptionsList = groupedOptionsList; + this._providerOptions = { + ele: this.ElementId, + disabled: this.IsDisabled, + dropboxWrapper: OSFramework.OSUI.GlobalEnum.HTMLElement.Body, + hasOptionDescription: hasDescription, + hideClearButton: false, + labelRenderer: this._getOptionInfo.bind(this), + noOptionsText: this.NoOptionsText, + noSearchResultsText: this.NoResultsText, + options: this._getOptionsList(), + placeholder: this.Prompt, + search: true, + searchNormalize: true, + searchPlaceholderText: this.SearchPrompt, + selectAllOnlyVisible: true, + selectedValue: this.getSelectedValues(), + showDropboxAsPopup: this.ShowDropboxAsPopup, + silentInitialValueSet: true, + textDirection: OutSystems.OSUI.Utils.GetIsRTL() + ? OSFramework.OSUI.GlobalEnum.Direction.RTL + : OSFramework.OSUI.GlobalEnum.Direction.LTR, + updatePositionThrottle: 0, + useGroupValue: true, + zIndex: 251, + }; + return this._providerOptions; + } + setExtensibilityConfigs(newConfigs) { + if (newConfigs[VirtualSelect.Enum.ExtendedConfigs.hasOptionDescription] !== undefined) + console.warn(`The option description may be affected when modifying the property ${VirtualSelect.Enum.ExtendedConfigs.hasOptionDescription}.`); + this.providerExtendedOptions = newConfigs; + } + validateDefault(key, value) { + let validatedValue = undefined; + switch (key) { + case VirtualSelect.Enum.Properties.OptionsList: + validatedValue = value; + break; + case VirtualSelect.Enum.Properties.StartingSelection: + validatedValue = value; + break; + default: + validatedValue = super.validateDefault(key, value); + break; + } + return validatedValue; + } + } + VirtualSelect.AbstractVirtualSelectConfig = AbstractVirtualSelectConfig; + })(VirtualSelect = Dropdown.VirtualSelect || (Dropdown.VirtualSelect = {})); + })(Dropdown = OSUI.Dropdown || (OSUI.Dropdown = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var Dropdown; + (function (Dropdown) { + var VirtualSelect; + (function (VirtualSelect) { + var Enum; + (function (Enum) { + let ProviderInfo; + (function (ProviderInfo) { + ProviderInfo["Name"] = "VirtualSelect"; + ProviderInfo["Version"] = "1.0.40"; + })(ProviderInfo = Enum.ProviderInfo || (Enum.ProviderInfo = {})); + let CssClass; + (function (CssClass) { + CssClass["ErrorMessage"] = "osui-dropdown-error-message"; + CssClass["NotValid"] = "osui-dropdown--not-valid"; + CssClass["OptionItemIcon"] = "osui-dropdown-option-icon"; + CssClass["OptionItemImage"] = "osui-dropdown-option-image"; + })(CssClass = Enum.CssClass || (Enum.CssClass = {})); + let Events; + (function (Events) { + Events["BeforeClose"] = "beforeClose"; + Events["BeforeOpen"] = "beforeOpen"; + Events["Change"] = "change"; + Events["OnSelected"] = "OnSelected"; + })(Events = Enum.Events || (Enum.Events = {})); + let Properties; + (function (Properties) { + Properties["NoOptionsText"] = "NoOptionsText"; + Properties["NoResultsText"] = "NoResultsText"; + Properties["OptionsList"] = "OptionsList"; + Properties["Prompt"] = "Prompt"; + Properties["SearchPrompt"] = "SearchPrompt"; + Properties["StartingSelection"] = "StartingSelection"; + })(Properties = Enum.Properties || (Enum.Properties = {})); + let PropertiesValues; + (function (PropertiesValues) { + PropertiesValues["AriaLabelMultipleValue"] = "Select one or more options"; + PropertiesValues["AriaLabelSingleValue"] = "Select an option"; + })(PropertiesValues = Enum.PropertiesValues || (Enum.PropertiesValues = {})); + let FigureType; + (function (FigureType) { + FigureType["Icon"] = "Icon"; + FigureType["Image"] = "Image"; + FigureType["None"] = "None"; + })(FigureType = Enum.FigureType || (Enum.FigureType = {})); + let ExtendedConfigs; + (function (ExtendedConfigs) { + ExtendedConfigs["hasOptionDescription"] = "hasOptionDescription"; + })(ExtendedConfigs = Enum.ExtendedConfigs || (Enum.ExtendedConfigs = {})); + })(Enum = VirtualSelect.Enum || (VirtualSelect.Enum = {})); + })(VirtualSelect = Dropdown.VirtualSelect || (Dropdown.VirtualSelect = {})); + })(Dropdown = OSUI.Dropdown || (OSUI.Dropdown = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var Dropdown; + (function (Dropdown) { + var VirtualSelect; + (function (VirtualSelect) { + var Utils; + (function (Utils) { + function NormalizeVirtualSelectConfigs(virtualSelectConfigs) { + return OutSystems.OSUI.Utils.AbstractNormalizeProviderConfigs(virtualSelectConfigs); + } + Utils.NormalizeVirtualSelectConfigs = NormalizeVirtualSelectConfigs; + })(Utils = VirtualSelect.Utils || (VirtualSelect.Utils = {})); + })(VirtualSelect = Dropdown.VirtualSelect || (Dropdown.VirtualSelect = {})); + })(Dropdown = OSUI.Dropdown || (OSUI.Dropdown = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var Dropdown; + (function (Dropdown) { + var VirtualSelect; + (function (VirtualSelect) { + var Factory; + (function (Factory) { + function NewVirtualSelect(dropdownId, mode, configs) { + let _virtualSelectItem = null; + switch (mode) { + case OSFramework.OSUI.Patterns.Dropdown.Enum.Mode.Search: + _virtualSelectItem = new Providers.OSUI.Dropdown.VirtualSelect.Search.OSUIVirtualSelectSearch(dropdownId, configs); + break; + case OSFramework.OSUI.Patterns.Dropdown.Enum.Mode.Tags: + _virtualSelectItem = new Providers.OSUI.Dropdown.VirtualSelect.Tags.OSUIVirtualSelectTags(dropdownId, configs); + break; + default: + throw new Error(`There is no Dropdown of ${mode} mode type`); + } + return _virtualSelectItem; + } + Factory.NewVirtualSelect = NewVirtualSelect; + })(Factory = VirtualSelect.Factory || (VirtualSelect.Factory = {})); + })(VirtualSelect = Dropdown.VirtualSelect || (Dropdown.VirtualSelect = {})); + })(Dropdown = OSUI.Dropdown || (OSUI.Dropdown = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var Dropdown; + (function (Dropdown) { + var VirtualSelect; + (function (VirtualSelect) { + var Search; + (function (Search) { + var Enum; + (function (Enum) { + let Properties; + (function (Properties) { + Properties["AllowMultipleSelection"] = "AllowMultipleSelection"; + })(Properties = Enum.Properties || (Enum.Properties = {})); + })(Enum = Search.Enum || (Search.Enum = {})); + })(Search = VirtualSelect.Search || (VirtualSelect.Search = {})); + })(VirtualSelect = Dropdown.VirtualSelect || (Dropdown.VirtualSelect = {})); + })(Dropdown = OSUI.Dropdown || (OSUI.Dropdown = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var Dropdown; + (function (Dropdown) { + var VirtualSelect; + (function (VirtualSelect) { + var Search; + (function (Search) { + class OSUIVirtualSelectSearch extends VirtualSelect.AbstractVirtualSelect { + constructor(uniqueId, configs) { + super(uniqueId, new Search.VirtualSelectSearchConfig(configs)); + this.hiddenInputWrapperAriaLabelVal = this.configs.AllowMultipleSelection + ? Dropdown.VirtualSelect.Enum.PropertiesValues.AriaLabelMultipleValue + : Dropdown.VirtualSelect.Enum.PropertiesValues.AriaLabelSingleValue; + } + getSelectedOptionsStructure() { + let optionsSelected = []; + if (this.configs.AllowMultipleSelection) { + optionsSelected = this.virtualselectConfigs.getSelectedOptions(); + } + else { + if (this.virtualselectConfigs.getSelectedOptions()) { + optionsSelected.push(this.virtualselectConfigs.getSelectedOptions()); + } + } + return optionsSelected; + } + prepareConfigs() { + this.virtualselectOpts = this.configs.getProviderConfig(); + this.createProviderInstance(); + } + changeProperty(propertyName, propertyValue) { + super.changeProperty(propertyName, propertyValue); + if (this.isBuilt) { + switch (propertyName) { + case Search.Enum.Properties.AllowMultipleSelection: + this.redraw(); + break; + } + } + } + } + Search.OSUIVirtualSelectSearch = OSUIVirtualSelectSearch; + })(Search = VirtualSelect.Search || (VirtualSelect.Search = {})); + })(VirtualSelect = Dropdown.VirtualSelect || (Dropdown.VirtualSelect = {})); + })(Dropdown = OSUI.Dropdown || (OSUI.Dropdown = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var Dropdown; + (function (Dropdown) { + var VirtualSelect; + (function (VirtualSelect) { + var Search; + (function (Search) { + class VirtualSelectSearchConfig extends VirtualSelect.AbstractVirtualSelectConfig { + getSelectedValues() { + var _a; + const selectedKeyvalues = []; + if (((_a = this.StartingSelection) === null || _a === void 0 ? void 0 : _a.length) > 0) { + if (this.AllowMultipleSelection) { + for (const option of this.StartingSelection) { + if (option.value !== OSFramework.OSUI.Constants.EmptyString) { + selectedKeyvalues.push(option.value); + } + } + } + else { + if (this.StartingSelection[0].value !== OSFramework.OSUI.Constants.EmptyString) { + selectedKeyvalues.push(this.StartingSelection[0].value); + } + } + } + return selectedKeyvalues; + } + getProviderConfig() { + const virtualSelectSearchOpts = { + multiple: this.AllowMultipleSelection, + }; + return this.mergeConfigs(super.getProviderConfig(), virtualSelectSearchOpts, this.providerExtendedOptions); + } + validateDefault(key, value) { + let validatedValue = undefined; + switch (key) { + case Search.Enum.Properties.AllowMultipleSelection: + validatedValue = this.validateBoolean(value, false); + break; + default: + validatedValue = super.validateDefault(key, value); + break; + } + return validatedValue; + } + } + Search.VirtualSelectSearchConfig = VirtualSelectSearchConfig; + })(Search = VirtualSelect.Search || (VirtualSelect.Search = {})); + })(VirtualSelect = Dropdown.VirtualSelect || (Dropdown.VirtualSelect = {})); + })(Dropdown = OSUI.Dropdown || (OSUI.Dropdown = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var Dropdown; + (function (Dropdown) { + var VirtualSelect; + (function (VirtualSelect) { + var Tags; + (function (Tags) { + class OSUIVirtualSelectTags extends VirtualSelect.AbstractVirtualSelect { + constructor(uniqueId, configs) { + super(uniqueId, new Tags.VirtualSelectTagsConfig(configs)); + this.hiddenInputWrapperAriaLabelVal = Dropdown.VirtualSelect.Enum.PropertiesValues.AriaLabelMultipleValue; + } + getSelectedOptionsStructure() { + const optionsSelected = this.virtualselectConfigs.getSelectedOptions(); + return optionsSelected; + } + prepareConfigs() { + this.virtualselectOpts = this.configs.getProviderConfig(); + this.createProviderInstance(); + } + } + Tags.OSUIVirtualSelectTags = OSUIVirtualSelectTags; + })(Tags = VirtualSelect.Tags || (VirtualSelect.Tags = {})); + })(VirtualSelect = Dropdown.VirtualSelect || (Dropdown.VirtualSelect = {})); + })(Dropdown = OSUI.Dropdown || (OSUI.Dropdown = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var Dropdown; + (function (Dropdown) { + var VirtualSelect; + (function (VirtualSelect) { + var Tags; + (function (Tags) { + class VirtualSelectTagsConfig extends VirtualSelect.AbstractVirtualSelectConfig { + getSelectedValues() { + const selectedKeyvalues = []; + if (this.StartingSelection.length > 0) { + for (const option of this.StartingSelection) { + if (option.value !== OSFramework.OSUI.Constants.EmptyString) { + selectedKeyvalues.push(option.value); + } + } + } + return selectedKeyvalues; + } + getProviderConfig() { + const virtualSelectTagsOpts = { + multiple: true, + showValueAsTags: true, + }; + return this.mergeConfigs(super.getProviderConfig(), virtualSelectTagsOpts, this.providerExtendedOptions); + } + } + Tags.VirtualSelectTagsConfig = VirtualSelectTagsConfig; + })(Tags = VirtualSelect.Tags || (VirtualSelect.Tags = {})); + })(VirtualSelect = Dropdown.VirtualSelect || (Dropdown.VirtualSelect = {})); + })(Dropdown = OSUI.Dropdown || (OSUI.Dropdown = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var MonthPicker; + (function (MonthPicker) { + var Flatpickr; + (function (Flatpickr) { + var Enum; + (function (Enum) { + let Attribute; + (function (Attribute) { + Attribute["DefaultAriaLabel"] = "Select a month"; + })(Attribute = Enum.Attribute || (Enum.Attribute = {})); + let CssClasses; + (function (CssClasses) { + CssClasses["AccessibilityContainerInfo"] = "osui-monthpicker-a11y"; + })(CssClasses = Enum.CssClasses || (Enum.CssClasses = {})); + })(Enum = Flatpickr.Enum || (Flatpickr.Enum = {})); + })(Flatpickr = MonthPicker.Flatpickr || (MonthPicker.Flatpickr = {})); + })(MonthPicker = OSUI.MonthPicker || (OSUI.MonthPicker = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var MonthPicker; + (function (MonthPicker) { + var Flatpickr; + (function (Flatpickr) { + Flatpickr.ErrorCodes = { + FailSetLocale: 'OSUI-PRO-01001', + }; + })(Flatpickr = MonthPicker.Flatpickr || (MonthPicker.Flatpickr = {})); + })(MonthPicker = OSUI.MonthPicker || (OSUI.MonthPicker = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var MonthPicker; + (function (MonthPicker) { + var Flatpickr; + (function (Flatpickr) { + class OSUIFlatpickrMonth extends OSFramework.OSUI.Patterns.MonthPicker.AbstractMonthPicker { + constructor(uniqueId, configs) { + super(uniqueId, new Flatpickr.FlatpickrMonthConfig(configs)); + this.configs.OnChangeEventCallback = this.onMonthSelectedEvent.bind(this); + this.configs.OnCloseEventCallback = this.onClose.bind(this); + this.configs.OnOpenEventCallback = this.onOpen.bind(this); + } + _getBodyOnClickGlobalEvent() { + this._bodyOnClickGlobalEvent = + OSFramework.OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.events.get(OSFramework.OSUI.Event.DOMEvents.Listeners.Type.BodyOnClick); + } + _setAttributes() { + this.flatpickrInputElem = this.monthPickerPlatformInputElem.nextSibling; + OSFramework.OSUI.Helper.Dom.Attribute.Set(this.flatpickrInputElem, OSFramework.OSUI.GlobalEnum.HTMLAttributes.DataInput, OSFramework.OSUI.Constants.EmptyString); + if (this.flatpickrInputElem.disabled) { + OSFramework.OSUI.Helper.Dom.Attribute.Remove(this.flatpickrInputElem, OSFramework.OSUI.GlobalEnum.HTMLAttributes.Disabled); + } + } + _setCalendarCssClasses() { + OSFramework.OSUI.Helper.Dom.Styles.AddClass(this.provider.calendarContainer, OSFramework.OSUI.Patterns.MonthPicker.Enum.CssClass.Dropdown); + if (OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(this.flatpickrInputElem, OSFramework.OSUI.GlobalEnum.InputClassTypes.InputLarge)) { + OSFramework.OSUI.Helper.Dom.Styles.AddClass(this.provider.calendarContainer, OSFramework.OSUI.Patterns.Dropdown.Enum.CssClass.DropdownLarge); + } + else if (OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(this.flatpickrInputElem, OSFramework.OSUI.GlobalEnum.InputClassTypes.InputSmall)) { + OSFramework.OSUI.Helper.Dom.Styles.AddClass(this.provider.calendarContainer, OSFramework.OSUI.Patterns.Dropdown.Enum.CssClass.DropdownSmall); + } + if (this.configs.ExtendedClass !== '') { + OSFramework.OSUI.Helper.Dom.Styles.ExtendedClass(this.provider.calendarContainer, '', this.configs.ExtendedClass); + } + } + createProviderInstance() { + if (this.monthPickerPlatformInputElem && this._flatpickrOpts.defaultDate === undefined) { + this.monthPickerPlatformInputElem.value = OSFramework.OSUI.Constants.EmptyString; + } + this.provider = window.flatpickr(this.monthPickerPlatformInputElem, this._flatpickrOpts); + this._setAttributes(); + if (this.provider.calendarContainer !== undefined) { + this._setCalendarCssClasses(); + this._bodyScrollCommonBehaviour = new OSUI.SharedProviderResources.Flatpickr.UpdatePositionOnScroll(this); + this._zindexCommonBehavior = new OSUI.SharedProviderResources.Flatpickr.UpdateZindex(this); + OSFramework.OSUI.Helper.Dom.SetInputValue(this.monthPickerPlatformInputElem, this.monthPickerPlatformInputElem.nextSibling.value); + } + this.updatePlatformInputAttrs(); + this.setA11YProperties(); + this.updateProviderEvents({ + name: OSUI.SharedProviderResources.Flatpickr.Enum.ProviderInfo.Name, + version: OSUI.SharedProviderResources.Flatpickr.Enum.ProviderInfo.Version, + events: this.provider.config, + }); + this.triggerPlatformInitializedEventCallback(); + } + onClose() { + if (this._bodyOnClickGlobalEvent !== undefined) { + this._bodyOnClickGlobalEvent.enableBodyClickEvent(); + } + } + onMonthSelectedEvent(selectedMonthYear) { + const _selectedMonthYear = { + month: OSFramework.OSUI.Constants.EmptyString, + monthOrder: OSFramework.OSUI.Constants.InvalidNumber, + year: OSFramework.OSUI.Constants.InvalidNumber, + }; + if (selectedMonthYear.length > 0) { + const _selectedDate = selectedMonthYear[0]; + const _selectedMonthIndex = _selectedDate.getMonth(); + _selectedMonthYear.month = OSFramework.OSUI.Constants.Months[_selectedMonthIndex]; + _selectedMonthYear.monthOrder = _selectedMonthIndex + 1; + _selectedMonthYear.year = _selectedDate.getFullYear(); + } + else { + OSFramework.OSUI.Helper.Dom.SetInputValue(this.monthPickerPlatformInputElem, ' '); + } + OSFramework.OSUI.Helper.Dom.SetInputValue(this.monthPickerPlatformInputElem, this.flatpickrInputElem.value); + this.triggerPlatformEventCallback(this.onSelectedCallbackEvent, _selectedMonthYear.month, _selectedMonthYear.monthOrder, _selectedMonthYear.year); + } + onOpen() { + if (this._bodyOnClickGlobalEvent !== undefined) { + this._bodyOnClickGlobalEvent.disableBodyClickEvent(); + } + } + prepareConfigs() { + this._flatpickrOpts = this.configs.getProviderConfig(); + this.createProviderInstance(); + } + setA11YProperties() { + OSFramework.OSUI.Helper.Dom.Attribute.Set(this.monthPickerPlatformInputElem, OSFramework.OSUI.Constants.A11YAttributes.TabIndex, OSFramework.OSUI.Constants.A11YAttributes.States.TabIndexHidden); + OSFramework.OSUI.Helper.Dom.Attribute.Set(this.monthPickerPlatformInputElem, OSFramework.OSUI.Constants.A11YAttributes.Aria.Hidden, OSFramework.OSUI.Constants.A11YAttributes.States.True); + OSFramework.OSUI.Helper.Dom.Attribute.Set(this._a11yInfoContainerElem, OSFramework.OSUI.Constants.A11YAttributes.Aria.Hidden, OSFramework.OSUI.Constants.A11YAttributes.States.True); + OSFramework.OSUI.Helper.Dom.Attribute.Set(this.flatpickrInputElem, OSFramework.OSUI.Constants.A11YAttributes.TabIndex, OSFramework.OSUI.Constants.A11YAttributes.States.TabIndexShow); + let ariaLabelValue = Flatpickr.Enum.Attribute.DefaultAriaLabel; + if (this.monthPickerPlatformInputElem.hasAttribute(OSFramework.OSUI.Constants.A11YAttributes.Aria.Label)) { + ariaLabelValue = this.monthPickerPlatformInputElem.getAttribute(OSFramework.OSUI.Constants.A11YAttributes.Aria.Label); + } + OSFramework.OSUI.Helper.A11Y.AriaLabel(this.flatpickrInputElem, ariaLabelValue); + OSFramework.OSUI.Helper.A11Y.AriaDescribedBy(this.flatpickrInputElem, this._a11yInfoContainerElem.id); + if (this.configs.Lang !== OSFramework.OSUI.Constants.Language.short) { + this._a11yInfoContainerElem.innerHTML = + MonthPicker.Flatpickr.l10ns.A11yContainerInfo[this.configs.Lang] !== undefined + ? MonthPicker.Flatpickr.l10ns.A11yContainerInfo[this.configs.Lang].htmlTex + : MonthPicker.Flatpickr.l10ns.A11yContainerInfo.en.htmlTex; + } + } + setCallbacks() { + console.log(OSFramework.OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + setHtmlElements() { + this.monthPickerPlatformInputElem = this.selfElement.querySelector(OSFramework.OSUI.GlobalEnum.CSSSelectors.InputFormControl); + this._a11yInfoContainerElem = OSFramework.OSUI.Helper.Dom.TagSelector(this.selfElement.parentElement, OSFramework.OSUI.Constants.Dot + Flatpickr.Enum.CssClasses.AccessibilityContainerInfo); + if (!this.monthPickerPlatformInputElem) { + throw new Error(`The monthpicker input at MonthpickerId '${this.widgetId}' is missing`); + } + } + unsetCallbacks() { + this.configs.OnChangeEventCallback = undefined; + this.configs.OnCloseEventCallback = undefined; + this.configs.OnOpenEventCallback = undefined; + this.onSelectedCallbackEvent = undefined; + super.unsetCallbacks(); + } + unsetHtmlElements() { + this.monthPickerPlatformInputElem = undefined; + } + updatePlatformInputAttrs() { + OSFramework.OSUI.Helper.Dom.Attribute.Set(this.monthPickerPlatformInputElem, OSFramework.OSUI.GlobalEnum.HTMLAttributes.Type, OSFramework.OSUI.GlobalEnum.InputTypeAttr.Text); + } + build() { + super.build(); + this._getBodyOnClickGlobalEvent(); + this.setHtmlElements(); + this.prepareConfigs(); + this.finishBuild(); + } + changeProperty(propertyName, propertyValue) { + const oldExtendedClass = this.configs.ExtendedClass; + super.changeProperty(propertyName, propertyValue); + if (this.isBuilt) { + switch (propertyName) { + case OSFramework.OSUI.Patterns.MonthPicker.Enum.Properties.InitialMonth: + case OSFramework.OSUI.Patterns.MonthPicker.Enum.Properties.DateFormat: + case OSFramework.OSUI.Patterns.MonthPicker.Enum.Properties.MaxMonth: + case OSFramework.OSUI.Patterns.MonthPicker.Enum.Properties.MinMonth: + this.redraw(); + break; + case OSFramework.OSUI.GlobalEnum.CommonPatternsProperties.ExtendedClass: + OSFramework.OSUI.Helper.Dom.Styles.ExtendedClass(this.provider.calendarContainer, oldExtendedClass, propertyValue); + break; + } + } + } + clear() { + const isInputDisable = this.monthPickerPlatformInputElem.disabled; + if (isInputDisable === false) { + this.provider.clear(); + } + } + close() { + if (this.provider.isOpen) { + this.provider.close(); + } + } + dispose() { + if (this.isBuilt) { + this.unsetCallbacks(); + this.unsetHtmlElements(); + if (this._bodyScrollCommonBehaviour !== undefined) { + this._bodyScrollCommonBehaviour.dispose(); + this._bodyScrollCommonBehaviour = undefined; + } + OSFramework.OSUI.Helper.AsyncInvocation(this.provider.destroy); + } + super.dispose(); + } + open() { + const isInputDisable = this.monthPickerPlatformInputElem.disabled; + if (this.provider.isOpen === false && isInputDisable === false) { + this.provider.open(); + } + } + registerCallback(eventName, callback) { + switch (eventName) { + case OSFramework.OSUI.Patterns.MonthPicker.Enum.Events.OnSelected: + this.onSelectedCallbackEvent = callback; + break; + default: + super.registerCallback(eventName, callback); + break; + } + } + setEditableInput(isEditable) { + if (this.configs.AllowInput !== isEditable) { + this.configs.AllowInput = isEditable; + this.redraw(); + } + } + setLanguage(value) { + this.configs.Lang = value.toLowerCase(); + if (this.provider !== undefined) { + this.redraw(); + } + } + setProviderConfigs(newConfigs) { + this.configs.setExtensibilityConfigs(newConfigs); + this.redraw(); + super.setProviderConfigs(newConfigs); + } + updateInitialMonth(monthYear) { + if (this.monthPickerPlatformInputElem.disabled === false) { + this.configs.InitialMonth = monthYear; + this.redraw(); + } + } + updatePrompt(promptMessage) { + this.flatpickrInputElem.placeholder = promptMessage; + } + } + Flatpickr.OSUIFlatpickrMonth = OSUIFlatpickrMonth; + })(Flatpickr = MonthPicker.Flatpickr || (MonthPicker.Flatpickr = {})); + })(MonthPicker = OSUI.MonthPicker || (OSUI.MonthPicker = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var MonthPicker; + (function (MonthPicker) { + var Flatpickr; + (function (Flatpickr) { + class FlatpickrMonthConfig extends OSFramework.OSUI.Patterns.MonthPicker.AbstractMonthPickerConfig { + constructor(config) { + super(config); + this.AllowInput = false; + this.DisableMobile = true; + this._lang = OSFramework.OSUI.Helper.Language.ShortLang; + } + _checkDateFormat() { + return this.DateFormat !== '' ? this._mapProviderDateFormat() : this.ServerDateFormat; + } + _checkLocale() { + let _locale; + try { + _locale = window.flatpickr.l10ns[this._lang]; + } + catch (error) { + throw new Error(`${Flatpickr.ErrorCodes.FailSetLocale}: Locale '${this._lang}' not found!`); + } + return _locale; + } + _checkServerDateFormat() { + this.ServerDateFormat = OSFramework.OSUI.Helper.Dates.ServerFormat.replace(OSFramework.OSUI.GlobalEnum.DateFormat.YYYY, OSFramework.OSUI.GlobalEnum.DateFormat.Y) + .replace(OSFramework.OSUI.GlobalEnum.DateFormat.MM, OSFramework.OSUI.GlobalEnum.DateFormat.m) + .replace(OSFramework.OSUI.GlobalEnum.DateFormat.DD, OSFramework.OSUI.Constants.EmptyString); + } + _getDateFromMonthYear(monthYear) { + const _monthIndex = OSFramework.OSUI.Constants.Months.indexOf(monthYear.Month); + const _validatedYear = monthYear.Year < 1900 ? null : monthYear.Year; + let _newDate = undefined; + if (_monthIndex !== -1 && _validatedYear !== null) { + _newDate = new Date(_validatedYear, _monthIndex, 1); + } + return _newDate; + } + _mapProviderDateFormat() { + const _dateFormat = this.DateFormat.replace(/[^a-zA-Z]/g, ' ').split(' '); + for (const format of _dateFormat) { + switch (format) { + case OSFramework.OSUI.GlobalEnum.DateFormat.YYYY: + this.DateFormat = this.DateFormat.replace(OSFramework.OSUI.GlobalEnum.DateFormat.YYYY, OSFramework.OSUI.GlobalEnum.DateFormat.Y); + break; + case 'YY': + this.DateFormat = this.DateFormat.replace(OSFramework.OSUI.GlobalEnum.DateFormat.YY, OSFramework.OSUI.GlobalEnum.DateFormat.y); + break; + case 'MMM': + this.DateFormat = this.DateFormat.replace(OSFramework.OSUI.GlobalEnum.DateFormat.MMM, OSFramework.OSUI.GlobalEnum.DateFormat.M); + break; + case 'MM': + this.DateFormat = this.DateFormat.replace(OSFramework.OSUI.GlobalEnum.DateFormat.MM, OSFramework.OSUI.GlobalEnum.DateFormat.m); + break; + } + } + return this.DateFormat; + } + getProviderConfig() { + this._checkServerDateFormat(); + this._checkDateFormat(); + this._providerOptions = { + altInput: true, + allowInput: this.AllowInput, + dateFormat: this.ServerDateFormat, + defaultDate: this._getDateFromMonthYear(this.InitialMonth), + disableMobile: this.DisableMobile, + maxDate: this._getDateFromMonthYear(this.MaxMonth), + minDate: this._getDateFromMonthYear(this.MinMonth), + onChange: this.OnChangeEventCallback, + onClose: this.OnCloseEventCallback, + onOpen: this.OnOpenEventCallback, + plugins: [ + new monthSelectPlugin({ + shorthand: true, + dateFormat: this.ServerDateFormat, + altFormat: this.DateFormat, + }), + ], + }; + if (this._providerOptions.locale === undefined) { + this._providerOptions.locale = this._checkLocale(); + } + return this.mergeConfigs(this._providerOptions, undefined, this.providerExtendedOptions); + } + setExtensibilityConfigs(newConfigs) { + this.providerExtendedOptions = newConfigs; + } + get Lang() { + return this._lang; + } + set Lang(value) { + this._lang = value.substring(0, 2); + } + } + Flatpickr.FlatpickrMonthConfig = FlatpickrMonthConfig; + })(Flatpickr = MonthPicker.Flatpickr || (MonthPicker.Flatpickr = {})); + })(MonthPicker = OSUI.MonthPicker || (OSUI.MonthPicker = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var MonthPicker; + (function (MonthPicker) { + var Flatpickr; + (function (Flatpickr) { + var l10ns; + (function (l10ns) { + l10ns.A11yContainerInfo = { + ar: { + htmlTex: 'من أجل أن تكون قادرًا على التنقل من خلال التقويم باستخدام مفتاح لوحة المفاتيح: استخدم مفاتيح السهم اليمنى أو CTRL + CTRL + للتنقل عبر أشهر ؛ استخدم مفاتيح الأسهم CMD أو CTRL + لأعلى أو لأسفل للتنقل عبر سنوات ؛', + }, + at: { + htmlTex: 'Um mit Tastaturschlüssel durch den Kalender navigieren zu können: Verwenden Sie CMD oder Strg + rechte oder linke Pfeiltasten, um Monate zu navigieren; Verwenden Sie CMD oder Strg + Up- oder Down -Pfeiltasten, um durch Jahre zu navigieren.', + }, + az: { + htmlTex: 'Klaviatura açarı ilə təqvimlə naviqasiya etmək üçün: aylarla gəzmək üçün CMD və ya CTRL + sağ və ya sol ox düymələrindən istifadə edin; İllərlə gəzmək üçün CMD və ya CTRL + yuxarı və ya aşağı ox düymələrindən istifadə edin;', + }, + be: { + htmlTex: 'Для таго, каб мець магчымасць перамяшчацца па календары з клавішнай клавішай: Выкарыстоўвайце CMD або Ctrl + правай або левай клавішы са стрэлкамі для навігацыі праз месяцы; Выкарыстоўвайце CMD або CTRL + клавішы са стрэлкамі ўверх ці ўніз, каб перамяшчацца праз гады;', + }, + bg: { + htmlTex: 'За да можете да се движите през календара с клавиатура на клавиатурата: използвайте CMD или CTRL + десни или леви клавиши със стрелки, за да се движите през месеци; Използвайте CMD или Ctrl + нагоре или надолу клавиши със стрелки, за да навигирате през години;', + }, + bn: { + htmlTex: 'কীবোর্ড কী দিয়ে ক্যালেন্ডারের মাধ্যমে নেভিগেট করতে সক্ষম হওয়ার জন্য: কয়েক মাস ধরে নেভিগেট করতে সিএমডি বা সিটিআরএল + ডান বা বাম তীর কী ব্যবহার করুন; কয়েক বছর ধরে নেভিগেট করতে সিএমডি বা সিটিআরএল + উপরে বা ডাউন তীর কী ব্যবহার করুন;', + }, + bs: { + htmlTex: 'Da biste mogli kretati se kroz kalendar s tipkovnicom tipkovnicom: koristite CMD ili Ctrl + desno ili lijeve tipke sa strelicama za navigaciju kroz mjesece; Upotrijebite CMD ili Ctrl + gore ili dolje tipke sa strelicama za navigaciju kroz godine;', + }, + ca: { + htmlTex: 'Per poder navegar pel calendari amb tecla del teclat: utilitzeu les tecles de fletxa CMD o CTRL + dreta o esquerra per navegar durant mesos; Utilitzeu les tecles de fletxa CMD o Ctrl + amunt o avall per navegar durant anys;', + }, + cat: { + htmlTex: 'Per poder navegar pel calendari amb tecla del teclat: utilitzeu les tecles de fletxa CMD o CTRL + dreta o esquerra per navegar durant mesos; Utilitzeu les tecles de fletxa CMD o Ctrl + amunt o avall per navegar durant anys;', + }, + ckb: { + htmlTex: 'Ji bo ku bikaribin bi kalîfar bi klavyeyê bi klavyeyê veguhezînin: Bişkojkên CMD an CTRL + Rast an çep an çepê bikar bînin da ku bi mehan rêve bibin; Bişkojkên CMD an CTRL + UP an Down bikar bînin da ku bi salan navigirin;', + }, + cs: { + htmlTex: 'Aby bylo možné procházet kalendářem pomocí klávesnice: Použijte KMU CMD nebo CTRL + PRÁVO nebo levé šipky pro navigaci v měsících; Pro navigaci v letech použijte CMD nebo CTRL + nahoru nebo dolů klíče se šipkami;', + }, + cy: { + htmlTex: "Er mwyn gallu llywio trwy'r calendr gydag allwedd bysellfwrdd: defnyddiwch allweddi saeth CMD neu Ctrl + dde neu chwith i lywio trwy fisoedd; Defnyddio CMD neu Ctrl + i fyny neu i lawr allweddi saeth i lywio trwy flynyddoedd;", + }, + da: { + htmlTex: 'For at kunne navigere gennem kalender med tastaturnøgle: Brug CMD eller Ctrl + højre eller venstre piletaster til at navigere gennem måneder; Brug CMD eller CTRL + op eller ned på piletasterne til at navigere gennem år;', + }, + de: { + htmlTex: 'Um mit Tastaturschlüssel durch den Kalender navigieren zu können: Verwenden Sie CMD oder Strg + rechte oder linke Pfeiltasten, um Monate zu navigieren; Verwenden Sie CMD oder Strg + Up- oder Down -Pfeiltasten, um durch Jahre zu navigieren.', + }, + en: { + htmlTex: 'In order to be able to navigate through calendar with keyboard key: Use cmd or ctrl + right or left arrow keys to navigate through months; Use cmd or ctrl + up or down arrow keys to navigate through years;', + }, + eo: { + htmlTex: 'Por povi navigi tra kalendaro per klavara ŝlosilo: Uzu CMD aŭ CTRL + dekstran aŭ maldekstran sagon por navigi tra monatoj; Uzu CMD aŭ Ctrl + supren aŭ malsupren sago -ŝlosilojn por navigi tra jaroj;', + }, + es: { + htmlTex: 'Para poder navegar a través del calendario con la tecla de teclado: use las teclas CMD o CTRL + de flecha derecha o izquierda para navegar durante meses; Use CMD o CTRL + las teclas de flecha hacia arriba o hacia abajo para navegar durante años;', + }, + et: { + htmlTex: 'Klaviatuuri klahviga kalendris navigeerimiseks: kasutage kuude jooksul navigeerimiseks CMD või CTRL + paremat või vasakut nooleklahvi; Kasutage aastate jooksul navigeerimiseks CMD või Ctrl + üles või alla nooleklahve;', + }, + fa: { + htmlTex: 'برای اینکه بتوانید از طریق تقویم با کلید صفحه کلید حرکت کنید: از کلیدهای پیکان CMD یا CTRL + راست یا چپ برای حرکت در طی ماه ها استفاده کنید. برای حرکت در طی سالها از کلیدهای Arrow CMD یا Ctrl + بالا یا پایین استفاده کنید.', + }, + fi: { + htmlTex: 'Kalenterin läpi näppäimistön näppäimellä voi kulkea CMD: n tai Ctrl +: n oikean tai vasemman nuolinäppäimen avulla kulkeaksesi kuukausia; Käytä CMD: tä tai Ctrl + ylös tai alas nuolinäppäimiä navigoidaksesi vuosien ajan;', + }, + fo: { + htmlTex: 'Um mit Tastaturschlüssel durch den Kalender navigieren zu können: Verwenden Sie CMD oder Strg + rechte oder linke Pfeiltasten, um Monate zu navigieren; Verwenden Sie CMD oder Strg + Up- oder Down -Pfeiltasten, um durch Jahre zu navigieren.', + }, + fr: { + htmlTex: 'Afin de pouvoir naviguer dans le calendrier avec la clé du clavier: utilisez les touches CMD ou CTRL + droite ou gauche pour naviguer dans des mois; Utilisez CMD ou CTRL + les clés de flèches vers le haut ou vers le bas pour naviguer dans des années;', + }, + ga: { + htmlTex: "D'fhonn a bheith in ann nascleanúint a dhéanamh trí fhéilire le heochair mhéarchláir: Úsáid Eochracha saighead CMD nó CTRL + ar chlé nó ar chlé chun nascleanúint a dhéanamh trí mhí; Bain úsáid as eochracha CMD nó Ctrl + suas nó síos saighead le nascleanúint a dhéanamh trí bhlianta;", + }, + gr: { + htmlTex: 'Προκειμένου να μπορείτε να περιηγηθείτε στο ημερολόγιο με το πλήκτρο πληκτρολογίου: Χρησιμοποιήστε CMD ή CTRL + δεξιά ή αριστερά πλήκτρα βέλους για να περιηγηθείτε σε μήνες. Χρησιμοποιήστε CMD ή CTRL + πάνω ή κάτω πλήκτρα βέλους για να περιηγηθείτε σε χρόνια.', + }, + he: { + htmlTex: 'על מנת להיות מסוגל לנווט בלוח השנה עם מקש המקלדת: השתמש במקשי CMD או Ctrl + ימין או שמאל כדי לנווט בחודשים; השתמש במקשי CMD או Ctrl + למעלה או במורד חצים כדי לנווט בשנים;', + }, + hi: { + htmlTex: 'कीबोर्ड कुंजी के साथ कैलेंडर के माध्यम से नेविगेट करने में सक्षम होने के लिए: महीनों के माध्यम से नेविगेट करने के लिए सीएमडी या सीटीआरएल + दाएं या बाएं तीर कुंजियों का उपयोग करें; वर्षों के माध्यम से नेविगेट करने के लिए CMD या CTRL + अप या डाउन तीर कुंजियों का उपयोग करें;', + }, + hr: { + htmlTex: 'Da biste mogli kretati se kroz kalendar s tipkovnicom tipki: Upotrijebite CMD ili CTRL + desne ili lijeve tipke sa strelicama za kretanje kroz mjesece; Koristite CMD ili Ctrl + tipke sa strelicama gore ili dolje za kretanje kroz godine;', + }, + hu: { + htmlTex: 'Annak érdekében, hogy a naptárban navigálhassunk a billentyűzet billentyűvel: használja a CMD vagy a CTRL + jobb vagy a bal nyíl billentyűket a hónapok navigálásához; Használja a CMD -t vagy a Ctrl + felfelé vagy lefelé nyíl kulcsokat az évek során;', + }, + hy: { + htmlTex: 'Որպեսզի կարողանաք նավարկվել ստեղնաշարի ստեղնաշարի միջոցով. Օգտագործեք CMD կամ CTRL + աջ կամ ձախ սլաքի ստեղներ `ամիսների միջոցով նավարկելու համար; Տարիներ շարունակ նավարկելու համար օգտագործեք CMD կամ CTRL + Up կամ Down Arrow ստեղներ.', + }, + id: { + htmlTex: 'Agar dapat menavigasi melalui kalender dengan kunci keyboard: Gunakan cmd atau ctrl + tombol panah kanan atau kiri untuk menavigasi selama berbulan -bulan; Gunakan CMD atau Ctrl + Kunci Panah Atas atau Bawah untuk menavigasi selama bertahun -tahun;', + }, + is: { + htmlTex: 'Til þess að geta flett í gegnum dagatal með lyklaborðslykli: Notaðu CMD eða Ctrl + hægri eða vinstri örvatakkana til að sigla í gegnum mánuði; Notaðu CMD eða Ctrl + upp eða niður örvatakkana til að sigla í gegnum ár;', + }, + it: { + htmlTex: 'Per poter navigare attraverso il calendario con il tasto tastiera: utilizzare i tasti freccia CMD o CTRL + destra o sinistra per navigare nei mesi; Utilizzare CMD o CTRL + SU o Down Freccia per navigare per anni;', + }, + ja: { + htmlTex: 'キーボードキーを使用してカレンダーをナビゲートできるようにするCMDまたはCtrl +上または下の矢印キーを使用して、年を操作します。', + }, + ka: { + htmlTex: 'იმისათვის, რომ შეძლოთ კალენდარი კლავიშის გასაღებით კალენდარში: გამოიყენეთ CMD ან CTRL + მარჯვენა ან მარცხენა ისრის გასაღებები, რომ მოხდეს თვეების განმავლობაში ნავიგაცია; გამოიყენეთ CMD ან CTRL + ზემოთ ან ქვემოთ ისრის გასაღებები, რომლითაც წლების განმავლობაში ნავიგაციაა;', + }, + km: { + htmlTex: 'ដើម្បីអាចរុករកតាមប្រតិទិនដោយប្រើគ្រាប់ចុចក្តារចុច: ប្រើ cmd ឬបញ្ជា (Ctrl) + គ្រាប់ចុចព្រួញស្ដាំឬឆ្វេងដើម្បីរុករកពេញមួយខែ។ ប្រើ CMD ឬបញ្ជា (Ctrl) + គ្រាប់ចុចព្រួញចុះក្រោមឬចុះក្រោមដើម្បីរុករកពេញមួយឆ្នាំ;', + }, + ko: { + htmlTex: '키보드 키로 캘린더를 탐색 할 수 있도록 : CMD 또는 CTRL + 오른쪽 또는 왼쪽 화살표 키를 사용하여 몇 달 동안 탐색하십시오. CMD 또는 Ctrl + Up 또는 Down Arrow 키를 사용하여 수년 동안 탐색하십시오.', + }, + kz: { + htmlTex: 'Пернетақта пернесімен күнтізбе арқылы шарлау үшін: бірнеше айлармен шарлау үшін CMD немесе CTRL + оң немесе сол жақ көрсеткі пернелерін пайдаланыңыз; Жылдар бойына шарлау үшін CMD немесе CTRL + UP немесе төмен көрсеткілерді қолданыңыз;', + }, + lt: { + htmlTex: 'Norėdami naršyti po kalendorių su klaviatūros klavišu: naudokite CMD arba CTRL + dešinę arba kairę rodyklės klavišus, kad galėtumėte naršyti po mėnesių; Norėdami naršyti po metus, naudokite CMD arba CTRL + aukštyn arba žemyn rodyklių klavišus;', + }, + lv: { + htmlTex: 'Lai varētu pārvietoties pa kalendāru ar tastatūras atslēgu: izmantojiet CMD vai CTRL + labās vai kreisās bultiņas taustiņus, lai pārvietotos mēnešos; Izmantojiet cmd vai ctrl + uz augšu vai uz leju bultiņu taustiņiem, lai pārvietotos pa gadiem;', + }, + mk: { + htmlTex: 'За да можете да се движите низ календарот со копчето за тастатура: Користете CMD или CTRL + десно или лево стрела со стрелки за да се движите низ месеци; Користете CMD или CTRL + UPAR или DOWN ARROW ARROW за да се движите низ години;', + }, + mn: { + htmlTex: 'Гарны түлхүүрээр хуанлигаар дамжуулан явах боломжтой байхын тулд: CMD эсвэл CTD эсвэл CTRL + CRD эсвэл CTRL + RUPER эсвэл LOUT эсвэл LOW эсвэл Зүүн сум ашиглана уу; CMD эсвэл CTRL + UP эсвэл AP A эсвэл DOWN ARCE товчийг ашиглан олон жилийн турш дамжин өнгөрөх;', + }, + ms: { + htmlTex: 'Untuk dapat menavigasi kalendar dengan kekunci papan kekunci: Gunakan kekunci anak panah kanan atau kiri CTRL + untuk menavigasi bulan; Gunakan kekunci anak panah CMD atau Ctrl + Up atau Down untuk menavigasi selama bertahun -tahun;', + }, + my: { + htmlTex: 'ကီးဘုတ်ကီးနှင့်အတူပြက္ခဒိန်မှတဆင့်ဖြတ်သန်းသွားနိုင်ရန်အတွက်လများကိုသွားရန် CMD သို့မဟုတ် Ctrl + လက်ဝဲသို့မဟုတ်လက်ဝဲ lerow keys များကိုသုံးပါ။ နှစ်ပေါင်းသွားရန် CMD သို့မဟုတ် Ctrl + Up သို့မဟုတ် Up arrow သော့များကိုသုံးပါ။', + }, + nl: { + htmlTex: 'Om door de kalender met toetsenbordsleutel te kunnen navigeren: gebruik CMD of CTRL + rechter- of linker pijltoetsen om maanden door te navigeren; Gebruik CMD of Ctrl + omhoog of omlaag pijltoetsen om jaren door te navigeren;', + }, + nb: { + htmlTex: 'For å kunne navigere gjennom kalender med tastaturnøkkel: Bruk CMD eller CTRL + høyre eller venstre piltaster for å navigere gjennom måneder; Bruk CMD eller CTRL + opp eller ned piltastene for å navigere gjennom år;', + }, + nn: { + htmlTex: 'For å kunne navigere gjennom kalender med tastaturnøkkel: Bruk CMD eller CTRL + høyre eller venstre piltaster for å navigere gjennom måneder; Bruk CMD eller CTRL + opp eller ned piltastene for å navigere gjennom år;', + }, + no: { + htmlTex: 'For å kunne navigere gjennom kalender med tastaturnøkkel: Bruk CMD eller CTRL + høyre eller venstre piltaster for å navigere gjennom måneder; Bruk CMD eller CTRL + opp eller ned piltastene for å navigere gjennom år;', + }, + pa: { + htmlTex: 'ਕੀਬੋਰਡ ਕੁੰਜੀ ਨਾਲ ਕੈਲੰਡਰ ਨੂੰ ਨੈਵੀਗੇਟ ਕਰਨ ਦੇ ਯੋਗ ਹੋਣ ਲਈ: ਮਹੀਨਿਆਂ ਦੇ ਜ਼ਰੀਏ ਨੈਵੀਗੇਟ ਕਰਨ ਲਈ ਸੀ.ਐੱਮ.ਡੀ. ਜਾਂ Ctrl + ਸੱਜੇ ਜਾਂ ਖੱਬੇ ਐਰੋ ਬਟਨ ਦੀ ਵਰਤੋਂ ਕਰੋ; ਸਾਲਾਂ ਦੁਆਰਾ ਨੇਵੀਗੇਟ ਕਰਨ ਲਈ ਸੀ.ਐੱਮ.ਡੀ. ਜਾਂ Ctrl + U ਉੱਪਰ ਜਾਂ ਹੇਠਾਂ ਐਰੋ ਬਟਨ ਦੀ ਵਰਤੋਂ ਕਰੋ;', + }, + pl: { + htmlTex: 'Aby móc poruszać się po kalendarzu z klawiszem klawiatury: Użyj CMD lub CTRL + prawej lub lewej strzałki, aby nawigować przez miesiące; Użyj CMD lub CTRL + w górę lub w dół klawiszy strzałek, aby poruszać się przez lata;', + }, + pt: { + htmlTex: 'Para poder navegar pelo calendário com a tecla do teclado: use as teclas de seta CMD ou Ctrl + direita ou esquerda para navegar por meses; Use as teclas de seta CMD ou Ctrl + para cima ou para baixo para navegar por anos;', + }, + ro: { + htmlTex: 'Pentru a putea naviga prin calendarul cu tasta tastatură: utilizați tastele săgeată CMD sau CTRL + dreapta sau stânga pentru a naviga prin luni; Utilizați tastele săgeată CMD sau Ctrl + în sus sau în jos pentru a naviga de -a lungul anilor;', + }, + ru: { + htmlTex: 'Чтобы иметь возможность ориентироваться в календаре с клавишной клавиш: используйте CMD или Ctrl + правый или левый клавиш стрелка, чтобы перемещаться в течение нескольких месяцев; Используйте CMD или CTRL + клавиши стрелки вверх или вниз, чтобы перемещаться по годам;', + }, + si: { + htmlTex: 'යතුරුපුවරු යතුර සමඟ දින දර්ශනය හරහා සැරිසැරීමට හැකි වීම සඳහා: මාස ගණනක් තුළ සැරිසැරීමට CMD හෝ CTRL + දකුණ හෝ වම් ඊතල යතුරු භාවිතා කරන්න; අවුරුදු ගණනාව තුළ සැරිසැරීමට CMD හෝ CTRL + ඉහළට හෝ පහළට ඊතල යතුරු භාවිතා කරන්න;', + }, + sk: { + htmlTex: 'Aby ste mohli prejsť v kalendári s klávesom Keyboard: Pomocou klávesov CMD alebo CTRL + vpravo alebo ľavej šípky navigujte v priebehu mesiacov; Na previgovanie rokov použite kľúče od CMD alebo CTRL + hore alebo dole;', + }, + sl: { + htmlTex: 'Da bi se lahko pomaknili po koledarju s tipkovnico tipkovnice: uporabite CMD ali Ctrl + desno ali levo puščico za krmarjenje po mesecih; Za krmarjenje skozi leta uporabite tipke CMD ali CTRL + UP ali Down;', + }, + sq: { + htmlTex: 'Në mënyrë që të jeni në gjendje të lundroni nëpër kalendar me çelësin e tastierës: Përdorni çelësat e shigjetës CMD ose CTRL + të djathtë ose të majtë për të lundruar me muaj; Përdorni çelësat e shigjetës CMD ose CTRL + lart ose poshtë për të lundruar me vite;', + }, + sr: { + htmlTex: 'Да бисте могли да се крећете кроз календар са кључем тастатуре: Користите ЦМД или ЦТРЛ + десно или леве тастере са стрелицом да се крећете кроз месецима; Користите ЦМД или ЦТРЛ + горе или доле стрелице са стрелицама да бисте се кретали кроз године;', + }, + sv: { + htmlTex: 'För att kunna navigera genom kalendern med tangentbordsknapp: Använd CMD eller CTRL + höger eller vänster pilnycklar för att navigera genom månader; Använd CMD eller CTRL + upp eller ned pilnycklar för att navigera genom år;', + }, + th: { + htmlTex: 'เพื่อให้สามารถนำทางผ่านปฏิทินด้วยคีย์บอร์ดคีย์บอร์ด: ใช้ปุ่มลูกศร CMD หรือ CTRL + ขวาหรือซ้ายเพื่อนำทางผ่านเดือน ใช้ปุ่มลูกศร CMD หรือ CTRL + ขึ้นหรือลงเพื่อนำทางผ่านปี', + }, + tr: { + htmlTex: 'Klavye anahtarıyla takvimde gezinebilmek için: aylar boyunca gezinmek için CMD veya CTRL + sağ veya sol ok tuşlarını kullanın; Yıllar boyunca gezinmek için CMD veya CTRL + yukarı veya aşağı ok tuşlarını kullanın;', + }, + uk: { + htmlTex: 'Для того, щоб мати можливість орієнтуватися по календарі за допомогою клавіатури клавіатури: Використовуйте клавіші стрілки CMD або CTRL +, щоб перейти до місяців; Використовуйте клавіші стрілки CMD або CTRL + вгору або вниз, щоб орієнтуватися на роки;', + }, + uz: { + htmlTex: "Klaviatura kaliti bilan taqvimga o'tish imkoniyatiga ega bo'lish uchun: CMD yoki CTRL + o'ng yoki chap o'q tugmalaridan oylar davomida harakatlanish uchun foydalaning; CMD yoki CTRL + yuqoriga yoki pastga o'qishni yillar davomida o'tish uchun foydalaning;", + }, + vn: { + htmlTex: 'Để có thể điều hướng qua lịch bằng phím bàn phím: Sử dụng các phím CMD hoặc CTRL + bên phải hoặc bên trái để điều hướng qua tháng; Sử dụng các phím mũi tên CMD hoặc Ctrl + lên hoặc xuống để điều hướng qua nhiều năm;', + }, + zh: { + htmlTex: '為了能夠使用鍵盤鍵瀏覽日曆:使用CMD或CTRL +右或左箭頭密鑰在幾個月中導航;使用CMD或CTRL +向上或向下箭頭鍵在多年中導航;', + }, + zh_tw: { + htmlTex: '为了能够使用键盘键浏览日历:使用CMD或CTRL +右或左箭头密钥在几个月中导航;使用CMD或CTRL +向上或向下箭头键在多年中导航;', + }, + }; + })(l10ns = Flatpickr.l10ns || (Flatpickr.l10ns = {})); + })(Flatpickr = MonthPicker.Flatpickr || (MonthPicker.Flatpickr = {})); + })(MonthPicker = OSUI.MonthPicker || (OSUI.MonthPicker = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var RangeSlider; + (function (RangeSlider) { + var NoUISlider; + (function (NoUISlider) { + class AbstractNoUiSlider extends OSFramework.OSUI.Patterns.RangeSlider.AbstractRangeSlider { + constructor(uniqueId, configs) { + super(uniqueId, configs); + this.throttleTimeValue = 200; + this.throttleTimer = undefined; + this._isInterval = + this.configs.rangeSliderMode === OSFramework.OSUI.Patterns.RangeSlider.Enum.Mode.Interval; + } + _setIsDisabled(isDisabled) { + isDisabled ? this.provider.disable() : this.provider.enable(); + } + _setOnValueChangeEvent(changeEvent) { + this.provider.on(changeEvent, this.eventProviderValueChanged); + } + _setSize() { + if (this.configs.Size.includes('%') && parseFloat(this.configs.Size) > 100) { + this.configs.Size = OSFramework.OSUI.Patterns.RangeSlider.Enum.DefaultValues.PercentualSize; + console.warn(`The value of the Size property on the '${this.widgetId}' ${OSFramework.OSUI.GlobalEnum.PatternName.RangeSlider} can't be smaller than '${OSFramework.OSUI.Patterns.RangeSlider.Enum.DefaultValues.PercentualSize}'.`); + } + OSFramework.OSUI.Helper.Dom.Styles.SetStyleAttribute(this.selfElement, OSFramework.OSUI.Patterns.RangeSlider.Enum.CssProperties.Size, this.configs.Size); + } + _updateRangeValues() { + this.provider.updateOptions({ + range: this.configs.getRangeConfig(), + }); + if (this.configs.ShowTickMarks) { + this.provider.updateOptions({ pips: this.configs.getPipsConfig() }); + } + } + createProviderInstance() { + this.provider = window.noUiSlider.create(this._rangeSliderProviderElem, this.noUiSliderOpts); + this.setInitialStates(); + this.updateProviderEvents({ + name: RangeSlider.NoUiSlider.Enum.ProviderInfo.Name, + version: RangeSlider.NoUiSlider.Enum.ProviderInfo.Version, + events: this.provider, + }); + this.setInitialCSSClasses(); + this._setOnValueChangeEvent(RangeSlider.NoUiSlider.Enum.NoUISliderEvents.Slide); + this.triggerPlatformInitializedEventCallback(); + } + setHtmlElements() { + this._rangeSliderProviderElem = OSFramework.OSUI.Helper.Dom.ClassSelector(this.selfElement, OSFramework.OSUI.Patterns.RangeSlider.Enum.CssClass.RangeSliderProviderElem); + } + setInitialCSSClasses() { + if (this.configs.Orientation === OSFramework.OSUI.GlobalEnum.Orientation.Vertical) { + OSFramework.OSUI.Helper.Dom.Styles.AddClass(this.selfElement, OSFramework.OSUI.Patterns.RangeSlider.Enum.CssClass.ClassModifier + + OSFramework.OSUI.GlobalEnum.Orientation.Vertical); + } + else if (OSFramework.OSUI.GlobalEnum.Orientation.Horizontal) { + OSFramework.OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, OSFramework.OSUI.Patterns.RangeSlider.Enum.CssClass.ClassModifier + + OSFramework.OSUI.GlobalEnum.Orientation.Vertical); + } + if (this.configs.ShowTickMarks) { + OSFramework.OSUI.Helper.Dom.Styles.AddClass(this.selfElement, OSFramework.OSUI.Patterns.RangeSlider.Enum.CssClass.HasTicks); + } + else { + OSFramework.OSUI.Helper.Dom.Styles.RemoveClass(this.selfElement, OSFramework.OSUI.Patterns.RangeSlider.Enum.CssClass.HasTicks); + } + } + setInitialStates() { + this._setSize(); + this._setIsDisabled(this.configs.IsDisabled); + } + unsetCallbacks() { + this.eventProviderValueChanged = undefined; + super.unsetCallbacks(); + } + unsetHtmlElements() { + this._rangeSliderProviderElem = undefined; + } + build() { + super.build(); + this.setHtmlElements(); + } + changeProperty(propertyName, propertyValue) { + super.changeProperty(propertyName, propertyValue); + if (this.isBuilt) { + switch (propertyName) { + case OSFramework.OSUI.Patterns.RangeSlider.Enum.Properties.MinValue: + case OSFramework.OSUI.Patterns.RangeSlider.Enum.Properties.MaxValue: + this._updateRangeValues(); + break; + case OSFramework.OSUI.Patterns.RangeSlider.Enum.Properties.Orientation: + this.redraw(); + break; + case OSFramework.OSUI.Patterns.RangeSlider.Enum.Properties.IsDisabled: + this._setIsDisabled(this.configs.IsDisabled); + break; + case OSFramework.OSUI.Patterns.RangeSlider.Enum.Properties.TickMarksInterval: + this.provider.updateOptions({ pips: this.configs.getPipsConfig() }); + break; + case OSFramework.OSUI.Patterns.RangeSlider.Enum.Properties.Step: + this.provider.updateOptions({ step: this.configs.Step }); + break; + case OSFramework.OSUI.Patterns.RangeSlider.Enum.Properties.Size: + this._setSize(); + break; + case OSFramework.OSUI.Patterns.RangeSlider.Enum.Properties.ShowFloatingLabel: + this.provider.updateOptions({ tooltips: this.configs.getTooltipFormat() }); + break; + } + } + } + disable() { + this._setIsDisabled(true); + } + dispose() { + if (this.isBuilt) { + this.unsetCallbacks(); + this.unsetHtmlElements(); + this.provider.destroy(); + } + super.dispose(); + } + enable() { + this._setIsDisabled(false); + } + getValue() { + return this.provider.get(); + } + registerCallback(eventName, callback) { + switch (eventName) { + case OSFramework.OSUI.Patterns.RangeSlider.Enum.RangeSliderEvents.OnValueChange: + if (this.platformEventValueChange === undefined) { + this.platformEventValueChange = callback; + } + break; + default: + super.registerCallback(eventName, callback); + break; + } + } + setProviderConfigs(newConfigs) { + this.configs.setExtensibilityConfigs(newConfigs); + this.redraw(); + super.setProviderConfigs(newConfigs); + } + setRangeIntervalChangeOnDragEnd() { + this.provider.off(RangeSlider.NoUiSlider.Enum.NoUISliderEvents.Slide, this.eventProviderValueChanged); + this._setOnValueChangeEvent(RangeSlider.NoUiSlider.Enum.NoUISliderEvents.Change); + } + } + NoUISlider.AbstractNoUiSlider = AbstractNoUiSlider; + })(NoUISlider = RangeSlider.NoUISlider || (RangeSlider.NoUISlider = {})); + })(RangeSlider = OSUI.RangeSlider || (OSUI.RangeSlider = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var RangeSlider; + (function (RangeSlider) { + var NoUiSlider; + (function (NoUiSlider) { + class AbstractNoUiSliderConfig extends OSFramework.OSUI.Patterns.RangeSlider + .AbstractRangeSliderConfig { + getPipsConfig() { + let tickMarksValues = Math.floor(this.TickMarksInterval); + if (tickMarksValues > this.MaxValue) { + tickMarksValues = this.MaxValue; + } + if (tickMarksValues < 1) { + console.warn('The interval between tick marks, when they exist, can not be smaller than one or a decimal number (library restraint). If you do not want TickMarks to show, set the ShowTickMarks parameter to false.'); + this.ShowTickMarks = true; + return null; + } + const ticksDensity = tickMarksValues * 100; + const list = []; + let tick = this.MinValue; + while (tick <= this.MaxValue) { + list.push(tick); + tick += tickMarksValues; + } + if (tick !== this.MaxValue) { + list.push(this.MaxValue); + } + return { + values: list, + density: ticksDensity, + mode: RangeSlider.NoUiSlider.Enum.NoUiSliderModeOptions.Values, + }; + } + getProviderConfig() { + this._providerOptions = { + direction: OutSystems.OSUI.Utils.GetIsRTL() + ? OSFramework.OSUI.GlobalEnum.Direction.RTL + : OSFramework.OSUI.GlobalEnum.Direction.LTR, + step: this.Step, + orientation: this.Orientation, + pips: this.ShowTickMarks ? this.getPipsConfig() : null, + range: this.getRangeConfig(), + tooltips: this.getTooltipFormat(), + }; + return this.mergeConfigs(this._providerOptions, this.providerExtendedOptions); + } + getRangeConfig() { + return { + min: this.MinValue, + max: this.MaxValue === this.MinValue ? 100 : this.MaxValue, + }; + } + getTooltipFormat() { + const tooltipValue = this.ShowFloatingLabel ? window.wNumb({ decimals: 0 }) : false; + let tooltipsFormat; + if (this.rangeSliderMode === OSFramework.OSUI.Patterns.RangeSlider.Enum.Mode.Interval) { + tooltipsFormat = [tooltipValue, tooltipValue]; + } + else { + tooltipsFormat = [tooltipValue]; + } + return tooltipsFormat; + } + setExtensibilityConfigs(newConfigs) { + this.providerExtendedOptions = newConfigs; + } + } + NoUiSlider.AbstractNoUiSliderConfig = AbstractNoUiSliderConfig; + })(NoUiSlider = RangeSlider.NoUiSlider || (RangeSlider.NoUiSlider = {})); + })(RangeSlider = OSUI.RangeSlider || (OSUI.RangeSlider = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var RangeSlider; + (function (RangeSlider) { + var NoUiSlider; + (function (NoUiSlider) { + var Enum; + (function (Enum) { + let ProviderInfo; + (function (ProviderInfo) { + ProviderInfo["Name"] = "noUISlider"; + ProviderInfo["Version"] = "15.7.0"; + })(ProviderInfo = Enum.ProviderInfo || (Enum.ProviderInfo = {})); + let NoUISliderLabels; + (function (NoUISliderLabels) { + NoUISliderLabels["Handle"] = "handler"; + NoUISliderLabels["Lower"] = "lower-handle"; + NoUISliderLabels["Single"] = "handle"; + NoUISliderLabels["Upper"] = "upper-handle"; + })(NoUISliderLabels = Enum.NoUISliderLabels || (Enum.NoUISliderLabels = {})); + let NoUISliderEvents; + (function (NoUISliderEvents) { + NoUISliderEvents["Change"] = "change"; + NoUISliderEvents["End"] = "end"; + NoUISliderEvents["Start"] = "start"; + NoUISliderEvents["Slide"] = "slide"; + })(NoUISliderEvents = Enum.NoUISliderEvents || (Enum.NoUISliderEvents = {})); + let NoUiSliderConnectOptions; + (function (NoUiSliderConnectOptions) { + NoUiSliderConnectOptions["Lower"] = "lower"; + })(NoUiSliderConnectOptions = Enum.NoUiSliderConnectOptions || (Enum.NoUiSliderConnectOptions = {})); + let NoUiSliderModeOptions; + (function (NoUiSliderModeOptions) { + NoUiSliderModeOptions["Values"] = "values"; + })(NoUiSliderModeOptions = Enum.NoUiSliderModeOptions || (Enum.NoUiSliderModeOptions = {})); + })(Enum = NoUiSlider.Enum || (NoUiSlider.Enum = {})); + })(NoUiSlider = RangeSlider.NoUiSlider || (RangeSlider.NoUiSlider = {})); + })(RangeSlider = OSUI.RangeSlider || (OSUI.RangeSlider = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var RangeSlider; + (function (RangeSlider) { + var NoUiSlider; + (function (NoUiSlider) { + var Factory; + (function (Factory) { + function NewNoUiSlider(rangeSliderId, configs, mode) { + let _rangeSliderItem = null; + switch (mode) { + case OSFramework.OSUI.Patterns.RangeSlider.Enum.Mode.Single: + _rangeSliderItem = new Providers.OSUI.RangeSlider.NoUISlider.SingleSlider.OSUINoUiSliderSingle(rangeSliderId, JSON.parse(configs)); + break; + case OSFramework.OSUI.Patterns.RangeSlider.Enum.Mode.Interval: + _rangeSliderItem = new Providers.OSUI.RangeSlider.NoUISlider.IntervalSlider.OSUINoUiSliderInterval(rangeSliderId, JSON.parse(configs)); + break; + default: + throw new Error(`There is no RangeSlider of ${mode} type`); + } + return _rangeSliderItem; + } + Factory.NewNoUiSlider = NewNoUiSlider; + })(Factory = NoUiSlider.Factory || (NoUiSlider.Factory = {})); + })(NoUiSlider = RangeSlider.NoUiSlider || (RangeSlider.NoUiSlider = {})); + })(RangeSlider = OSUI.RangeSlider || (OSUI.RangeSlider = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var RangeSlider; + (function (RangeSlider) { + var NoUISlider; + (function (NoUISlider) { + var Utils; + (function (Utils) { + function _setRangeValues(providerConfigs) { + const _noUiSliderConfigs = providerConfigs; + if (_noUiSliderConfigs.range.length <= 0) { + delete _noUiSliderConfigs.range; + } + else { + const _rangeValues = {}; + for (const element of _noUiSliderConfigs.range) { + _rangeValues[element.key] = element.value === undefined ? 0 : element.value; + } + _noUiSliderConfigs.range = _rangeValues; + } + return _noUiSliderConfigs; + } + function NormalizeNoUISliderConfigs(noUiSliderConfigs) { + const finalConfigs = _setRangeValues(noUiSliderConfigs); + return OutSystems.OSUI.Utils.AbstractNormalizeProviderConfigs(finalConfigs); + } + Utils.NormalizeNoUISliderConfigs = NormalizeNoUISliderConfigs; + })(Utils = NoUISlider.Utils || (NoUISlider.Utils = {})); + })(NoUISlider = RangeSlider.NoUISlider || (RangeSlider.NoUISlider = {})); + })(RangeSlider = OSUI.RangeSlider || (OSUI.RangeSlider = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var RangeSlider; + (function (RangeSlider) { + var NoUISlider; + (function (NoUISlider) { + var IntervalSlider; + (function (IntervalSlider) { + class OSUINoUiSliderInterval extends NoUISlider.AbstractNoUiSlider { + constructor(uniqueId, configs) { + super(uniqueId, new NoUISlider.SliderInterval.NoUiSliderIntervalConfig(configs)); + } + _valueChangeCallback(value) { + if (value !== undefined) { + this.configs.StartingValueFrom = value[0]; + this.configs.StartingValueTo = value[1]; + } + if (this.throttleTimer === undefined) { + this.throttleTimer = setTimeout(() => { + this.platformEventValueChange(this.widgetId, this.configs.StartingValueFrom, this.configs.StartingValueTo); + this.throttleTimer = undefined; + }, this.throttleTimeValue); + } + } + prepareConfigs() { + this.noUiSliderOpts = this.configs.getProviderConfig(); + this.createProviderInstance(); + } + redraw() { + const value = this.getValue(); + this.configs.StartingValueFrom = value[0]; + this.configs.StartingValueTo = value[1]; + super.redraw(); + } + setA11YProperties() { + this.noUiSliderOpts.handleAttributes = [ + { 'aria-label': RangeSlider.NoUiSlider.Enum.NoUISliderLabels.Lower }, + { 'aria-label': RangeSlider.NoUiSlider.Enum.NoUISliderLabels.Upper }, + ]; + } + setCallbacks() { + this.eventProviderValueChanged = this._valueChangeCallback.bind(this); + } + build() { + super.build(); + this.setCallbacks(); + this.prepareConfigs(); + this.setA11YProperties(); + this.finishBuild(); + } + changeProperty(propertyName, propertyValue) { + super.changeProperty(propertyName, propertyValue); + if (this.isBuilt) { + switch (propertyName) { + case OSFramework.OSUI.Patterns.RangeSlider.Enum.Properties.StartingValueFrom: + this.setValue(propertyValue, this.configs.StartingValueTo); + console.warn(`${OSFramework.OSUI.GlobalEnum.PatternName.RangeSliderInterval}: (${this.widgetId}): You should use a distinct variable to assign on the OnValueChange event. Any updates to ${OSFramework.OSUI.Patterns.RangeSlider.Enum.Properties.InitialValueFrom} parameter should ideally be made using the SetRangeSliderIntervalValue Client Action.`); + break; + case OSFramework.OSUI.Patterns.RangeSlider.Enum.Properties.StartingValueTo: + this.setValue(this.configs.StartingValueFrom, propertyValue); + console.warn(`${OSFramework.OSUI.GlobalEnum.PatternName.RangeSliderInterval}: (${this.widgetId}): You should use a distinct variable to assign on the OnValueChange event. Any updates to ${OSFramework.OSUI.Patterns.RangeSlider.Enum.Properties.InitialValueTo} parameter should ideally be made using the SetRangeSliderIntervalValue Client Action.`); + break; + case OSFramework.OSUI.Patterns.RangeSlider.Enum.Properties.ShowTickMarks: + this.redraw(); + break; + } + } + } + resetValue() { + this.configs.StartingValueFrom = this.configs.InitialValueFrom; + this.configs.StartingValueTo = this.configs.InitialValueTo; + this.provider.set([this.configs.InitialValueFrom, this.configs.InitialValueTo]); + } + setValue(intervalStart, intervalEnd) { + if (intervalStart < intervalEnd) { + this.configs.StartingValueFrom = intervalStart; + this.configs.StartingValueTo = intervalEnd; + this.provider.set([intervalStart, intervalEnd]); + } + else if (intervalStart > this.configs.MinValue && intervalEnd < this.configs.MaxValue) { + throw new Error(`${OSFramework.OSUI.ErrorCodes.RangeSlider.FailSetValue}: The values must be within the specified range.`); + } + else { + throw new Error(`${OSFramework.OSUI.ErrorCodes.RangeSlider.FailSetValue}: The start value cannot be bigger than the end value.`); + } + } + } + IntervalSlider.OSUINoUiSliderInterval = OSUINoUiSliderInterval; + })(IntervalSlider = NoUISlider.IntervalSlider || (NoUISlider.IntervalSlider = {})); + })(NoUISlider = RangeSlider.NoUISlider || (RangeSlider.NoUISlider = {})); + })(RangeSlider = OSUI.RangeSlider || (OSUI.RangeSlider = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var RangeSlider; + (function (RangeSlider) { + var NoUISlider; + (function (NoUISlider) { + var SliderInterval; + (function (SliderInterval) { + class NoUiSliderIntervalConfig extends Providers.OSUI.RangeSlider.NoUiSlider.AbstractNoUiSliderConfig { + constructor(config) { + super(config); + this.rangeSliderMode = OSFramework.OSUI.Patterns.RangeSlider.Enum.Mode.Interval; + } + getProviderConfig() { + let rangeSliderOptions = { + handleAttributes: [ + { 'aria-label': RangeSlider.NoUiSlider.Enum.NoUISliderLabels.Handle }, + { 'aria-label': RangeSlider.NoUiSlider.Enum.NoUISliderLabels.Handle }, + ], + start: [this.StartingValueFrom, this.StartingValueTo], + connect: true, + }; + return this.mergeConfigs(super.getProviderConfig(), rangeSliderOptions, this.providerExtendedOptions); + } + } + SliderInterval.NoUiSliderIntervalConfig = NoUiSliderIntervalConfig; + })(SliderInterval = NoUISlider.SliderInterval || (NoUISlider.SliderInterval = {})); + })(NoUISlider = RangeSlider.NoUISlider || (RangeSlider.NoUISlider = {})); + })(RangeSlider = OSUI.RangeSlider || (OSUI.RangeSlider = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var RangeSlider; + (function (RangeSlider) { + var NoUISlider; + (function (NoUISlider) { + var SingleSlider; + (function (SingleSlider) { + class OSUINoUiSliderSingle extends NoUISlider.AbstractNoUiSlider { + constructor(uniqueId, configs) { + super(uniqueId, new NoUISlider.SliderSingle.NoUiSliderSingleConfig(configs)); + } + _valueChangeCallback(value) { + if (value !== undefined) { + this.configs.StartingValueFrom = value[0]; + } + if (this.throttleTimer === undefined) { + this.throttleTimer = setTimeout(() => { + this.platformEventValueChange(this.widgetId, this.configs.StartingValueFrom, undefined); + this.throttleTimer = undefined; + }, this.throttleTimeValue); + } + } + prepareConfigs() { + this.noUiSliderOpts = this.configs.getProviderConfig(); + this.createProviderInstance(); + } + redraw() { + const value = this.getValue(); + this.configs.StartingValueFrom = value; + super.redraw(); + } + setA11YProperties() { + this.noUiSliderOpts.handleAttributes = [ + { 'aria-label': RangeSlider.NoUiSlider.Enum.NoUISliderLabels.Single }, + ]; + } + setCallbacks() { + this.eventProviderValueChanged = this._valueChangeCallback.bind(this); + } + build() { + super.build(); + this.setCallbacks(); + this.prepareConfigs(); + this.setA11YProperties(); + this.finishBuild(); + } + changeProperty(propertyName, propertyValue) { + super.changeProperty(propertyName, propertyValue); + if (this.isBuilt) { + switch (propertyName) { + case OSFramework.OSUI.Patterns.RangeSlider.Enum.Properties.StartingValueFrom: + this.setValue(propertyValue); + console.warn(`${OSFramework.OSUI.GlobalEnum.PatternName.RangeSlider}: (${this.widgetId}): You should use a distinct variable to assign on the OnValueChange event. Any updates to ${OSFramework.OSUI.Patterns.RangeSlider.Enum.Properties.InitialValueFrom} parameter should ideally be made using the SetRangeSliderValue Client Action.`); + break; + case OSFramework.OSUI.Patterns.RangeSlider.Enum.Properties.ShowTickMarks: + this.redraw(); + break; + } + } + } + resetValue() { + this.configs.StartingValueFrom = this.configs.InitialValueFrom; + this.provider.set(this.configs.InitialValueFrom); + } + setValue(value) { + if (value >= this.configs.MinValue && value <= this.configs.MaxValue) { + this.configs.StartingValueFrom = value; + this.provider.set(value); + } + else { + throw new Error(`${OSFramework.OSUI.ErrorCodes.RangeSlider.FailSetValue}: The value must be between the minimum value and maximum value set.`); + } + } + } + SingleSlider.OSUINoUiSliderSingle = OSUINoUiSliderSingle; + })(SingleSlider = NoUISlider.SingleSlider || (NoUISlider.SingleSlider = {})); + })(NoUISlider = RangeSlider.NoUISlider || (RangeSlider.NoUISlider = {})); + })(RangeSlider = OSUI.RangeSlider || (OSUI.RangeSlider = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var RangeSlider; + (function (RangeSlider) { + var NoUISlider; + (function (NoUISlider) { + var SliderSingle; + (function (SliderSingle) { + class NoUiSliderSingleConfig extends Providers.OSUI.RangeSlider.NoUiSlider.AbstractNoUiSliderConfig { + constructor(config) { + super(config); + this.rangeSliderMode = OSFramework.OSUI.Patterns.RangeSlider.Enum.Mode.Single; + } + getProviderConfig() { + let singleSliderOptions = { + handleAttributes: [{ 'aria-label': RangeSlider.NoUiSlider.Enum.NoUISliderLabels.Handle }], + start: [this.StartingValueFrom], + connect: RangeSlider.NoUiSlider.Enum.NoUiSliderConnectOptions.Lower, + }; + return this.mergeConfigs(super.getProviderConfig(), singleSliderOptions, this.providerExtendedOptions); + } + } + SliderSingle.NoUiSliderSingleConfig = NoUiSliderSingleConfig; + })(SliderSingle = NoUISlider.SliderSingle || (NoUISlider.SliderSingle = {})); + })(NoUISlider = RangeSlider.NoUISlider || (RangeSlider.NoUISlider = {})); + })(RangeSlider = OSUI.RangeSlider || (OSUI.RangeSlider = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var SharedProviderResources; + (function (SharedProviderResources) { + var Flatpickr; + (function (Flatpickr) { + var Enum; + (function (Enum) { + let ProviderInfo; + (function (ProviderInfo) { + ProviderInfo["Name"] = "Flatpickr"; + ProviderInfo["Version"] = "4.6.13"; + })(ProviderInfo = Enum.ProviderInfo || (Enum.ProviderInfo = {})); + })(Enum = Flatpickr.Enum || (Flatpickr.Enum = {})); + })(Flatpickr = SharedProviderResources.Flatpickr || (SharedProviderResources.Flatpickr = {})); + })(SharedProviderResources = OSUI.SharedProviderResources || (OSUI.SharedProviderResources = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var SharedProviderResources; + (function (SharedProviderResources) { + var Flatpickr; + (function (Flatpickr) { + class UpdatePositionOnScroll { + constructor(picker) { + this._picker = picker; + this._setCallbacks(); + this._setUpEvents(); + } + _onScreenScroll() { + if (this._picker.isBuilt) { + if (this._picker.provider.isOpen) { + this._picker.provider._positionCalendar(); + this._requestAnimationOnBodyScroll = requestAnimationFrame(this._onScreenScrollEvent); + } + else { + cancelAnimationFrame(this._requestAnimationOnBodyScroll); + } + } + } + _setCallbacks() { + this._onScreenScrollEvent = this._onScreenScroll.bind(this); + } + _setUpEvents() { + OSFramework.OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.addHandler(OSFramework.OSUI.Event.DOMEvents.Listeners.Type.ScreenOnScroll, this._onScreenScrollEvent); + } + _unsetCallbacks() { + this._onScreenScrollEvent = undefined; + } + _unsetEvents() { + OSFramework.OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.removeHandler(OSFramework.OSUI.Event.DOMEvents.Listeners.Type.ScreenOnScroll, this._onScreenScrollEvent); + } + dispose() { + this._unsetEvents(); + this._unsetCallbacks(); + this._onScreenScrollEvent = undefined; + this._requestAnimationOnBodyScroll = undefined; + } + } + Flatpickr.UpdatePositionOnScroll = UpdatePositionOnScroll; + })(Flatpickr = SharedProviderResources.Flatpickr || (SharedProviderResources.Flatpickr = {})); + })(SharedProviderResources = OSUI.SharedProviderResources || (OSUI.SharedProviderResources = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var SharedProviderResources; + (function (SharedProviderResources) { + var Flatpickr; + (function (Flatpickr) { + class UpdateZindex { + constructor(picker) { + this._patternExceptions = [ + { name: 'BottomSheet', class: { get: 'osui-bottom-sheet', set: 'inside-bottom-sheet' } }, + { name: 'Notification', class: { get: 'osui-notification', set: 'inside-notification' } }, + { name: 'Popup', class: { get: 'popup-backdrop', set: 'inside-popup' } }, + { name: 'Sidebar', class: { get: 'osui-sidebar', set: 'inside-sidebar' } }, + ]; + this._picker = picker; + this._updateZindex(); + } + _updateZindex() { + for (const pattern of this._patternExceptions) { + if (this._picker.selfElement.closest(OSFramework.OSUI.Constants.Dot + pattern.class.get)) { + OSFramework.OSUI.Helper.Dom.Styles.AddClass(this._picker.selfElement, pattern.class.set); + OSFramework.OSUI.Helper.Dom.Styles.AddClass(this._picker.provider.calendarContainer, pattern.class.set); + break; + } + } + } + } + Flatpickr.UpdateZindex = UpdateZindex; + })(Flatpickr = SharedProviderResources.Flatpickr || (SharedProviderResources.Flatpickr = {})); + })(SharedProviderResources = OSUI.SharedProviderResources || (OSUI.SharedProviderResources = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var SharedProviderResources; + (function (SharedProviderResources) { + var Flatpickr; + (function (Flatpickr) { + function NormalizeFlatpickrConfigs(flatpickrConfigs) { + const _htmlElementsProps = ['positionElement', 'appendTo']; + return OutSystems.OSUI.Utils.AbstractNormalizeProviderConfigs(flatpickrConfigs, _htmlElementsProps); + } + Flatpickr.NormalizeFlatpickrConfigs = NormalizeFlatpickrConfigs; + })(Flatpickr = SharedProviderResources.Flatpickr || (SharedProviderResources.Flatpickr = {})); + })(SharedProviderResources = OSUI.SharedProviderResources || (OSUI.SharedProviderResources = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var TimePicker; + (function (TimePicker) { + var Flatpickr; + (function (Flatpickr) { + var Enum; + (function (Enum) { + let Properties; + (function (Properties) { + Properties["InitialTime"] = "InitialTime"; + })(Properties = Enum.Properties || (Enum.Properties = {})); + let InputFormats; + (function (InputFormats) { + InputFormats["Format12h"] = "h:i K"; + InputFormats["Format24h"] = "H:i"; + })(InputFormats = Enum.InputFormats || (Enum.InputFormats = {})); + })(Enum = Flatpickr.Enum || (Flatpickr.Enum = {})); + })(Flatpickr = TimePicker.Flatpickr || (TimePicker.Flatpickr = {})); + })(TimePicker = OSUI.TimePicker || (OSUI.TimePicker = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var TimePicker; + (function (TimePicker) { + var Flatpickr; + (function (Flatpickr) { + Flatpickr.ErrorCodes = { + FailSetLocale: 'OSUI-PRO-02001', + }; + })(Flatpickr = TimePicker.Flatpickr || (TimePicker.Flatpickr = {})); + })(TimePicker = OSUI.TimePicker || (OSUI.TimePicker = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var TimePicker; + (function (TimePicker) { + var Flatpickr; + (function (Flatpickr) { + class OSUIFlatpickrTime extends OSFramework.OSUI.Patterns.TimePicker.AbstractTimePicker { + constructor(uniqueId, configs) { + super(uniqueId, new Flatpickr.FlatpickrTimeConfig(configs)); + this.configs.OnChangeEventCallback = this.onTimeSelectedEvent.bind(this); + this.configs.OnCloseEventCallback = this.onClose.bind(this); + this.configs.OnOpenEventCallback = this.onOpen.bind(this); + } + _getBodyOnClickGlobalEvent() { + this._bodyOnClickGlobalEvent = + OSFramework.OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.events.get(OSFramework.OSUI.Event.DOMEvents.Listeners.Type.BodyOnClick); + } + _setAttributes() { + this.flatpickrInputElem = this.timePickerPlatformInputElem.nextSibling; + OSFramework.OSUI.Helper.Dom.Attribute.Set(this.flatpickrInputElem, OSFramework.OSUI.GlobalEnum.HTMLAttributes.DataInput, OSFramework.OSUI.Constants.EmptyString); + if (this.flatpickrInputElem.disabled) { + OSFramework.OSUI.Helper.Dom.Attribute.Remove(this.flatpickrInputElem, OSFramework.OSUI.GlobalEnum.HTMLAttributes.Disabled); + } + } + _setCalendarCssClasses() { + OSFramework.OSUI.Helper.Dom.Styles.AddClass(this.provider.calendarContainer, OSFramework.OSUI.Patterns.TimePicker.Enum.CssClass.Dropdown); + if (OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(this.flatpickrInputElem, OSFramework.OSUI.GlobalEnum.InputClassTypes.InputLarge)) { + OSFramework.OSUI.Helper.Dom.Styles.AddClass(this.provider.calendarContainer, OSFramework.OSUI.Patterns.Dropdown.Enum.CssClass.DropdownLarge); + } + else if (OSFramework.OSUI.Helper.Dom.Styles.ContainsClass(this.flatpickrInputElem, OSFramework.OSUI.GlobalEnum.InputClassTypes.InputSmall)) { + OSFramework.OSUI.Helper.Dom.Styles.AddClass(this.provider.calendarContainer, OSFramework.OSUI.Patterns.Dropdown.Enum.CssClass.DropdownSmall); + } + if (this.configs.ExtendedClass !== '') { + OSFramework.OSUI.Helper.Dom.Styles.ExtendedClass(this.provider.calendarContainer, '', this.configs.ExtendedClass); + } + } + createProviderInstance() { + if (this.timePickerPlatformInputElem && this._flatpickrOpts.defaultDate === undefined) { + this.timePickerPlatformInputElem.value = OSFramework.OSUI.Constants.EmptyString; + } + this.provider = window.flatpickr(this.timePickerPlatformInputElem, this._flatpickrOpts); + this._setAttributes(); + if (this.provider.calendarContainer !== undefined) { + this._setCalendarCssClasses(); + this._bodyScrollCommonBehaviour = new OSUI.SharedProviderResources.Flatpickr.UpdatePositionOnScroll(this); + this._zindexCommonBehavior = new OSUI.SharedProviderResources.Flatpickr.UpdateZindex(this); + if (this.configs.InitialTime !== undefined) { + OSFramework.OSUI.Helper.Dom.SetInputValue(this.timePickerPlatformInputElem, this.configs.InitialTime); + } + } + this.updatePlatformInputAttrs(); + this.setA11YProperties(); + this.updateProviderEvents({ + name: OSUI.SharedProviderResources.Flatpickr.Enum.ProviderInfo.Name, + version: OSUI.SharedProviderResources.Flatpickr.Enum.ProviderInfo.Version, + events: this.provider.config, + }); + this.triggerPlatformInitializedEventCallback(); + } + onClose() { + if (this._bodyOnClickGlobalEvent !== undefined) { + this._bodyOnClickGlobalEvent.enableBodyClickEvent(); + } + } + onOpen() { + if (this._bodyOnClickGlobalEvent !== undefined) { + this._bodyOnClickGlobalEvent.disableBodyClickEvent(); + } + } + onTimeSelectedEvent(selectedTime) { + const _selectedTime = selectedTime.length > 0 ? OSFramework.OSUI.Helper.Dates.GetTimeFromDate(selectedTime[0]) : ''; + OSFramework.OSUI.Helper.Dom.SetInputValue(this.timePickerPlatformInputElem, _selectedTime); + this.triggerPlatformEventCallback(this.onChangeCallbackEvent, _selectedTime); + } + prepareConfigs() { + this._flatpickrOpts = this.configs.getProviderConfig(); + this.createProviderInstance(); + } + setA11YProperties() { + if (this.provider.calendarContainer !== undefined) { + OSFramework.OSUI.Helper.Dom.Attribute.Set(this.timePickerPlatformInputElem, OSFramework.OSUI.Constants.A11YAttributes.TabIndex, OSFramework.OSUI.Constants.A11YAttributes.States.TabIndexHidden); + OSFramework.OSUI.Helper.Dom.Attribute.Set(this.timePickerPlatformInputElem, OSFramework.OSUI.Constants.A11YAttributes.Aria.Hidden, OSFramework.OSUI.Constants.A11YAttributes.States.True); + OSFramework.OSUI.Helper.Dom.Attribute.Set(this.flatpickrInputElem, OSFramework.OSUI.Constants.A11YAttributes.TabIndex, OSFramework.OSUI.Constants.A11YAttributes.States.TabIndexShow); + } + } + setCallbacks() { + console.log(OSFramework.OSUI.GlobalEnum.WarningMessages.MethodNotImplemented); + } + setHtmlElements() { + this.timePickerPlatformInputElem = this.selfElement.querySelector(OSFramework.OSUI.GlobalEnum.CSSSelectors.InputFormControl); + if (!this.timePickerPlatformInputElem) { + throw new Error(`The timepicker input at TimepickerId '${this.widgetId}' is missing`); + } + } + unsetCallbacks() { + this.configs.OnChangeEventCallback = undefined; + this.configs.OnCloseEventCallback = undefined; + this.configs.OnOpenEventCallback = undefined; + this.onChangeCallbackEvent = undefined; + super.unsetCallbacks(); + } + unsetHtmlElements() { + this.timePickerPlatformInputElem = undefined; + } + updatePlatformInputAttrs() { + OSFramework.OSUI.Helper.Dom.Attribute.Set(this.timePickerPlatformInputElem, OSFramework.OSUI.GlobalEnum.HTMLAttributes.Type, OSFramework.OSUI.GlobalEnum.InputTypeAttr.Time); + } + build() { + super.build(); + this._getBodyOnClickGlobalEvent(); + this.setHtmlElements(); + this.prepareConfigs(); + this.finishBuild(); + } + changeProperty(propertyName, propertyValue) { + const oldExtendedClass = this.configs.ExtendedClass; + super.changeProperty(propertyName, propertyValue); + if (this.isBuilt) { + switch (propertyName) { + case OSFramework.OSUI.Patterns.TimePicker.Enum.Properties.InitialTime: + case OSFramework.OSUI.Patterns.TimePicker.Enum.Properties.Is24Hours: + case OSFramework.OSUI.Patterns.TimePicker.Enum.Properties.MaxTime: + case OSFramework.OSUI.Patterns.TimePicker.Enum.Properties.MinTime: + case OSFramework.OSUI.Patterns.TimePicker.Enum.Properties.TimeFormat: + this.redraw(); + break; + case OSFramework.OSUI.GlobalEnum.CommonPatternsProperties.ExtendedClass: + OSFramework.OSUI.Helper.Dom.Styles.ExtendedClass(this.provider.calendarContainer, oldExtendedClass, propertyValue); + break; + } + } + } + clear() { + const isInputDisable = this.timePickerPlatformInputElem.disabled; + if (isInputDisable === false) { + this.provider.clear(); + } + } + close() { + if (this.provider.isOpen) { + this.provider.close(); + } + } + dispose() { + if (this.isBuilt) { + this.unsetCallbacks(); + this.unsetHtmlElements(); + if (this._bodyScrollCommonBehaviour !== undefined) { + this._bodyScrollCommonBehaviour.dispose(); + this._bodyScrollCommonBehaviour = undefined; + } + OSFramework.OSUI.Helper.AsyncInvocation(this.provider.destroy); + } + super.dispose(); + } + open() { + const isInputDisable = this.timePickerPlatformInputElem.disabled; + if (this.provider.isOpen === false && isInputDisable === false) { + this.provider.open(); + } + } + registerCallback(eventName, callback) { + switch (eventName) { + case OSFramework.OSUI.Patterns.TimePicker.Enum.TimePickerEvents.OnChange: + this.onChangeCallbackEvent = callback; + break; + default: + super.registerCallback(eventName, callback); + break; + } + } + setEditableInput(isEditable) { + if (this.configs.AllowInput !== isEditable) { + this.configs.AllowInput = isEditable; + this.redraw(); + } + } + setLanguage(value) { + this.configs.Lang = value.toLowerCase(); + if (this.provider !== undefined) { + this.redraw(); + } + } + setProviderConfigs(newConfigs) { + this.configs.setExtensibilityConfigs(newConfigs); + this.redraw(); + super.setProviderConfigs(newConfigs); + } + toggleNativeBehavior(isNative) { + if (this.configs.DisableMobile !== !isNative) { + this.configs.DisableMobile = !isNative; + this.redraw(); + } + } + updateInitialTime(value) { + if (this.timePickerPlatformInputElem.disabled === false) { + this.configs.InitialTime = value; + this.redraw(); + } + } + updatePrompt(promptMessage) { + this.flatpickrInputElem.placeholder = promptMessage; + } + } + Flatpickr.OSUIFlatpickrTime = OSUIFlatpickrTime; + })(Flatpickr = TimePicker.Flatpickr || (TimePicker.Flatpickr = {})); + })(TimePicker = OSUI.TimePicker || (OSUI.TimePicker = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var TimePicker; + (function (TimePicker) { + var Flatpickr; + (function (Flatpickr) { + class FlatpickrTimeConfig extends OSFramework.OSUI.Patterns.TimePicker.AbstractTimePickerConfig { + constructor(config) { + super(config); + this.AllowInput = false; + this.DisableMobile = false; + this._lang = OSFramework.OSUI.Helper.Language.ShortLang; + } + _checkAltFormat() { + let _altFormat; + if (this.Is24Hours) { + _altFormat = Flatpickr.Enum.InputFormats.Format24h; + } + else { + _altFormat = Flatpickr.Enum.InputFormats.Format12h; + } + return _altFormat; + } + _checkLocale() { + let _locale; + try { + _locale = window.flatpickr.l10ns[this._lang]; + _locale.firstDayOfWeek = this.FirstWeekDay; + } + catch (error) { + throw new Error(`${Flatpickr.ErrorCodes.FailSetLocale}: Locale '${this._lang}' not found!`); + } + return _locale; + } + getProviderConfig() { + this._providerOptions = { + altFormat: this.TimeFormat ? this.TimeFormat : this._checkAltFormat(), + altInput: true, + allowInput: this.AllowInput, + defaultDate: OSFramework.OSUI.Helper.Times.IsNull(this.InitialTime) ? undefined : this.InitialTime, + disableMobile: this.DisableMobile, + enableTime: true, + noCalendar: true, + maxTime: OSFramework.OSUI.Helper.Times.IsNull(this.MaxTime) ? undefined : this.MaxTime, + minTime: OSFramework.OSUI.Helper.Times.IsNull(this.MinTime) ? undefined : this.MinTime, + dateFormat: Flatpickr.Enum.InputFormats.Format24h, + onChange: this.OnChangeEventCallback, + onClose: this.OnCloseEventCallback, + onOpen: this.OnOpenEventCallback, + time_24hr: this.Is24Hours, + }; + if (this._providerOptions.locale === undefined) { + this._providerOptions.locale = this._checkLocale(); + } + return this.mergeConfigs(this._providerOptions, undefined, this.providerExtendedOptions); + } + setExtensibilityConfigs(newConfigs) { + this.providerExtendedOptions = newConfigs; + } + get Lang() { + return this._lang; + } + set Lang(value) { + this._lang = value.substring(0, 2); + } + } + Flatpickr.FlatpickrTimeConfig = FlatpickrTimeConfig; + })(Flatpickr = TimePicker.Flatpickr || (TimePicker.Flatpickr = {})); + })(TimePicker = OSUI.TimePicker || (OSUI.TimePicker = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + var Enum; + (function (Enum) { + let ProviderInfo; + (function (ProviderInfo) { + ProviderInfo["Name"] = "FloatingUI"; + ProviderInfo["Version"] = "1.2.8"; + })(ProviderInfo = Enum.ProviderInfo || (Enum.ProviderInfo = {})); + })(Enum = Utils.Enum || (Utils.Enum = {})); + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + class FloatingUI extends OSFramework.OSUI.Utils.FloatingPosition.FloatingPosition { + constructor(options) { + super(options); + } + dispose() { + if (this.floatingConfigs.UpdatePosition) { + this.eventOnUpdateCallback(); + } + super.dispose(); + } + setFloatingPosition() { + const _middlewareArray = []; + if (this.floatingConfigs.AutoPlacement) { + if (this.floatingConfigs.AutoPlacementOptions.alignment === OSFramework.OSUI.Constants.EmptyString) { + this.floatingConfigs.AutoPlacementOptions.alignment = null; + } + if (this.floatingConfigs.AutoPlacementOptions.allowedPlacements.length <= 0) { + this.floatingConfigs.AutoPlacementOptions.allowedPlacements.push(OSFramework.OSUI.GlobalEnum.FloatingPosition.BottomStart); + } + _middlewareArray.push(window.FloatingUIDOM.autoPlacement(this.floatingConfigs.AutoPlacementOptions)); + _middlewareArray.push(window.FloatingUIDOM.shift()); + } + if (this.floatingConfigs.Position !== OSFramework.OSUI.GlobalEnum.FloatingPosition.Center) { + _middlewareArray.push(window.FloatingUIDOM.offset(this.getOffsetValue())); + } + const _eventOnUpdatePosition = () => { + window.FloatingUIDOM.computePosition(this.floatingConfigs.AnchorElem, this.floatingConfigs.FloatingElem, { + placement: this.floatingConfigs.Position, + middleware: _middlewareArray, + }).then(({ x, y }) => { + OSFramework.OSUI.Helper.Dom.Styles.SetStyleAttribute(this.floatingConfigs.FloatingElem, OSFramework.OSUI.Utils.FloatingPosition.Enum.CssCustomProperties.YPosition, y + OSFramework.OSUI.GlobalEnum.Units.Pixel); + OSFramework.OSUI.Helper.Dom.Styles.SetStyleAttribute(this.floatingConfigs.FloatingElem, OSFramework.OSUI.Utils.FloatingPosition.Enum.CssCustomProperties.XPosition, x + OSFramework.OSUI.GlobalEnum.Units.Pixel); + }); + }; + _eventOnUpdatePosition(); + if (this.floatingConfigs.UpdatePosition) { + this.eventOnUpdateCallback = window.FloatingUIDOM.autoUpdate(this.floatingConfigs.AnchorElem, this.floatingConfigs.FloatingElem, _eventOnUpdatePosition.bind(this)); + } + } + unsetFloatingPosition() { + this.eventOnUpdateCallback(); + OSFramework.OSUI.Helper.ApplySetTimeOut(() => { + OSFramework.OSUI.Helper.Dom.Styles.SetStyleAttribute(this.floatingConfigs.FloatingElem, OSFramework.OSUI.Utils.FloatingPosition.Enum.CssCustomProperties.YPosition, 0); + OSFramework.OSUI.Helper.Dom.Styles.SetStyleAttribute(this.floatingConfigs.FloatingElem, OSFramework.OSUI.Utils.FloatingPosition.Enum.CssCustomProperties.XPosition, 0); + }, 50); + } + } + Utils.FloatingUI = FloatingUI; + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); +var Providers; +(function (Providers) { + var OSUI; + (function (OSUI) { + var Utils; + (function (Utils) { + class FloatingUIConfig extends OSFramework.OSUI.Utils.FloatingPosition.FloatingPositionConfig { + } + Utils.FloatingUIConfig = FloatingUIConfig; + })(Utils = OSUI.Utils || (OSUI.Utils = {})); + })(OSUI = Providers.OSUI || (Providers.OSUI = {})); +})(Providers || (Providers = {})); diff --git a/gulp/ProjectSpecs/DefaultSpecs.js b/gulp/ProjectSpecs/DefaultSpecs.js index dfb6a2775d..fab8d47ffd 100644 --- a/gulp/ProjectSpecs/DefaultSpecs.js +++ b/gulp/ProjectSpecs/DefaultSpecs.js @@ -1,3 +1,24 @@ +/* +* Global constants info +**/ +const constants = { + envType: { + development: 'dev', + production: 'prod' + }, + // list of files to be excluded from a specific platform + excludeFromTsTranspile: { + O11: [ + './src/scripts/OutSystems/OSUI/Utils/PreviewInDevices/**/*' + ] + }, + // list of platforms to compile and create scss files. + platformTarget: { + o11: 'O11', + odc: 'ODC', + } +}; + // Store the default project specifications const specs = { "version": "2.18.2", @@ -7,4 +28,6 @@ const specs = { "gitHub": "GitHub:\n • https://github.com/OutSystems/outsystems-ui", } -exports.info = specs; \ No newline at end of file +// Expose sections info! +exports.info = specs; +exports.globalConsts = constants; \ No newline at end of file diff --git a/gulp/ProjectSpecs/ScssStructure/PatternsUtilities.js b/gulp/ProjectSpecs/ScssStructure/PatternsUtilities.js index 7e02785daf..009819e788 100644 --- a/gulp/ProjectSpecs/ScssStructure/PatternsUtilities.js +++ b/gulp/ProjectSpecs/ScssStructure/PatternsUtilities.js @@ -1,3 +1,5 @@ +const project = require('../DefaultSpecs'); + /* * Section Info **/ @@ -33,6 +35,12 @@ const sectionInfo = { "name": "List Updating", "path": "04-patterns/06-utilities/list-updating" } + , + { + "name": "Provider Login Button", + "path": "04-patterns/06-utilities/provider-login-button", + "platform": project.globalConsts.platformTarget.odc, + } ] }; diff --git a/gulp/Tasks/CreateScss/GetPartialsList.js b/gulp/Tasks/CreateScss/GetPartialsList.js index cd7695cc48..ce449e5edd 100644 --- a/gulp/Tasks/CreateScss/GetPartialsList.js +++ b/gulp/Tasks/CreateScss/GetPartialsList.js @@ -1,17 +1,18 @@ const patterns = require('../../ProjectSpecs/Patterns/#All'); +const project = require('../../ProjectSpecs/DefaultSpecs'); const scssStructure = require('../../ProjectSpecs/ScssStructure/#All'); -const envType = {'development':'dev', 'production':'prod'} - // Store the text to be exposed! -let partialsListText = ''; +let partialsListText; -function createPartialsListDev() { - return createPartialsList(envType.development); +function createPartialsListDev(platformType) { + partialsListText = ''; + return createPartialsList(project.globalConsts.envType.development, platformType); } -function createPartialsListProd() { - return createPartialsList(envType.production); +function createPartialsListProd(platformType) { + partialsListText = ''; + return createPartialsList(project.globalConsts.envType.production, platformType); } // Method used to create the import text @@ -48,7 +49,7 @@ function createSectionCommentTitle(text, type) { } // Method that will create the text for the SectionIndex section dynamically -function createPartialsList(env) { +function createPartialsList(env, platformType) { // Section iteractor let sectionIndex = 0; @@ -88,8 +89,9 @@ function createPartialsList(env) { // 2. Go through each section assets for (const subAsset of asset.assets) { - // Check if 'key' is an attribute of the current asset, if so it means it's a pattern! - if (subAsset.key === undefined) { + if(subAsset.platform !== undefined && subAsset.platform !== platformType) { + continue; + } else if (subAsset.key === undefined) { partialsListText += createSectionCommentTitle(`${sectionIndex}.${assetIndex}.${subAssetIndex}. ${subAsset.name}`, 2); partialsListText += getImportLineText(subAsset.path); @@ -99,11 +101,11 @@ function createPartialsList(env) { const assetInfo = patterns.all[subAsset.key]; if ( - env === envType.development || + env === project.globalConsts.envType.development || assetInfo.inDevelopment === undefined | false || assetInfo.inDevelopment === false || ( - env = envType.production && + env = project.globalConsts.envType.production && assetInfo.inDevelopment && assetInfo.inDevelopment === false ) @@ -128,7 +130,7 @@ function createPartialsList(env) { for (const assetItem of assetInfo.assets) { if ( - env === envType.development || assetItem.inDevelopment === false + env === project.globalConsts.envType.development || assetItem.inDevelopment === false ) { if (assetItem.scss) { partialsListText += createSectionCommentTitle(`${sectionIndex}.${assetIndex}.${subAssetIndex}.${assetInfoItemIndex} ${assetItem.name}`, 2); diff --git a/gulp/Tasks/CreateScss/SectionIndex.js b/gulp/Tasks/CreateScss/SectionIndex.js index c88a913df1..089c4fd96c 100644 --- a/gulp/Tasks/CreateScss/SectionIndex.js +++ b/gulp/Tasks/CreateScss/SectionIndex.js @@ -2,17 +2,17 @@ const project = require('../../ProjectSpecs/DefaultSpecs'); const patterns = require('../../ProjectSpecs/Patterns/#All'); const scssStructure = require('../../ProjectSpecs/ScssStructure/#All'); -const envType = {'development':'dev', 'production':'prod'} - // Store text that will be added as SectionIndex -let indexSection = ''; +let indexSection; -function createIndexSectionDev() { - return createIndexSection(envType.development); +function createIndexSectionDev(platformType) { + indexSection = ''; + return createIndexSection(project.globalConsts.envType.development, platformType); } -function createIndexSectionProd() { - return createIndexSection(envType.production); +function createIndexSectionProd(platformType) { + indexSection = ''; + return createIndexSection(project.globalConsts.envType.production, platformType); } // Used to define the initialization text of each line @@ -40,14 +40,14 @@ function getLineText(text, level = 0) { // Method that will create the text for the SectionIndex section dynamically -function createIndexSection(env) { +function createIndexSection(env, platformType) { // Section iteractor let sectionIndex = 0; // Start Index Section indexSection += ``; indexSection += `/*!\n`; - indexSection += `${project.info.name} ${project.info.version}\n`; + indexSection += `${project.info.name} ${project.info.version} • ${platformType} Platform\n`; if (project.info.description !== '') { indexSection += `${project.info.description}\n`; } @@ -84,8 +84,11 @@ function createIndexSection(env) { // 2. Go through each section assets for (const subAsset of asset.assets) { + if(subAsset.platform !== undefined && subAsset.platform !== platformType) { + continue; + } // Check if 'key' is an attribute of the current asset, if so it means it's a pattern! - if (subAsset.key === undefined) { + else if (subAsset.key === undefined) { indexSection += getLineText(`${sectionIndex}.${assetIndex}.${subAssetIndex}. ${subAsset.name}`, 2); } else { @@ -93,11 +96,11 @@ function createIndexSection(env) { const assetInfo = patterns.all[subAsset.key]; if ( - env === envType.development || + env === project.globalConsts.envType.development || assetInfo.inDevelopment === undefined | false || assetInfo.inDevelopment === false || ( - env = envType.production && + env = project.globalConsts.envType.production && assetInfo.inDevelopment && assetInfo.inDevelopment === false ) @@ -118,7 +121,7 @@ function createIndexSection(env) { for (const assetItem of assetInfo.assets) { if ( - env === envType.development || assetItem.inDevelopment === false + env === project.globalConsts.envType.development || assetItem.inDevelopment === false ) { if (assetItem.scss) { indexSection += getLineText(`${sectionIndex}.${assetIndex}.${subAssetIndex}.${assetInfoItemIndex} ${assetItem.name}`, 3); diff --git a/gulp/Tasks/CreateScssFile.js b/gulp/Tasks/CreateScssFile.js index 7e5f79782b..c7e9f3499c 100644 --- a/gulp/Tasks/CreateScssFile.js +++ b/gulp/Tasks/CreateScssFile.js @@ -1,19 +1,15 @@ const fs = require('fs'); -const getSectionIndexText = require('./CreateScss/SectionIndex'); const getPartialsList = require('./CreateScss/GetPartialsList'); - -const envType = {'development':'dev', 'production':'prod'} -let env = ''; +const getSectionIndexText = require('./CreateScss/SectionIndex'); +const project = require('../ProjectSpecs/DefaultSpecs'); function setDevEnvironment (cb) { - env = envType.development; - createScssFile(cb); + createScssFile(cb, project.globalConsts.envType.development); } function setProdEnvironment (cb) { - env = envType.production; - createScssFile(cb); + createScssFile(cb, project.globalConsts.envType.production); } // Create a file note to give important context! @@ -36,25 +32,28 @@ function getNotesText () { notes += `• In order to proper manage this file, use:\n`; notes += `└── './gulp/ProjectSpecs/ScssStructure/#All.js' \n`; notes += `\n`; - notes += `PS: This comment will not be visible at the compiled version!\n`; + notes += `PS: This comment block will not be visible in the compiled version!\n`; notes += "=============================================================================== */\n"; return notes; } -// Method used to Create SCSS file structure dynamically -function createScssFile(cb) { +// Memthod that will create the file content text and return it depending on platform type +function getFileText(platformType, envType) { // Store the Section Index generated text - const sectionIndexText = env === envType.production ? getSectionIndexText.textProd() : getSectionIndexText.textDev(); + const sectionIndexText = envType === project.globalConsts.envType.production ? getSectionIndexText.textProd(platformType) : getSectionIndexText.textDev(platformType); // Store the Partials List generated text - const partialsText = env === envType.production ? getPartialsList.textProd() : getPartialsList.textDev(); - + const partialsText = envType === project.globalConsts.envType.production ? getPartialsList.textProd(platformType) : getPartialsList.textDev(platformType); // Combine text to create the hole file - const newScssText = `${getNotesText()}\n${sectionIndexText}\n${partialsText}`; - - // Update the SCSS file with the generated code! - fs.writeFileSync(`./src/scss/OutSystemsUI.scss`, newScssText, 'utf8'); + return `${getNotesText()}\n${sectionIndexText}\n${partialsText}`; +} +// Method used to Create SCSS file structure dynamically +function createScssFile(cb, envType) { + const pts = project.globalConsts.platformTarget; + for(const pt in pts) { + fs.writeFileSync(`./src/scss/${pts[pt]}.OutSystemsUI.scss`, getFileText(pts[pt], envType), 'utf8'); + } cb(); } diff --git a/gulp/Tasks/ScssTanspile.js b/gulp/Tasks/ScssTanspile.js index 8d9ee822e3..778bb83d9d 100644 --- a/gulp/Tasks/ScssTanspile.js +++ b/gulp/Tasks/ScssTanspile.js @@ -9,27 +9,34 @@ const rename = require("gulp-rename"); const sass = require('gulp-sass')(require('sass')); const sourcemaps = require('gulp-sourcemaps'); -const envType = {'development':'dev.', 'production':''} +const project = require('../ProjectSpecs/DefaultSpecs'); const distFolder = './dist'; -const watchScssThemes = 'src/scss/*.scss'; +let watchScssThemes = 'src/scss/*.scss'; -// Set as Development Mode -function scssTranspileDev() { - return scssTranspile(envType.development); -} +// Check if a platformType has been defined through npm script, if so, compile it's own SCSS theme only, otherwise it will compile all. +function checkForScssThemeToBeCompiled() { + const result = { + hasError: false, + errorMessage: '' + } -// Set as Production Mode -function scssTranspileProd() { - return scssTranspile(envType.production); + if(process.env.npm_config_target !== undefined) { + if(project.globalConsts.platformTarget[process.env.npm_config_target] === undefined) { + result.hasError = true; + result.errorMessage = `Given platform '${process.env.npm_config_target}' does not exist. Plaforms availabe:\n • ${Object.keys(project.globalConsts.platformTarget).join("\n • ")}` + console.log(`\n⛔️ ERROR: ${result.errorMessage}\n`); + } else { + watchScssThemes = `src/scss/${project.globalConsts.platformTarget[process.env.npm_config_target]}.OutSystemsUI.scss`; + } + } + + return result; } // Compile SCSS -function scssTranspile(envMode) { - let cssResult; - - if(envMode === envType.development) { - cssResult = gulp - .src(watchScssThemes) +function scssTranspile(cb, envMode) { + if(envMode === project.globalConsts.envType.development) { + gulp.src(watchScssThemes) .pipe(sourcemaps.init()) .pipe(sass().on('error', sass.logError)) .pipe(postcss([postcssdc, postcssdd])) @@ -40,26 +47,37 @@ function scssTranspile(envMode) { ) .pipe( rename({ - prefix: envMode, + prefix: `${project.globalConsts.envType.development}.`, }) ) .pipe(sourcemaps.write('.')) .pipe(gulp.dest(distFolder)); } else { - cssResult = gulp.src(watchScssThemes) + gulp.src(watchScssThemes) .pipe(sass().on('error', sass.logError)) .pipe(postcss([postcssdc, postcssdd])) .pipe(autoprefixer({ overrideBrowserslist: ['last 10 versions'] })) .pipe(removeEmptyLines()) - .pipe(rename({ - prefix: envMode, - })) .pipe(gulp.dest(distFolder)); } - return cssResult; + cb(); +} + +// Set as Development Mode +function scssTranspileDev(cb) { + if(checkForScssThemeToBeCompiled().hasError === false) { + scssTranspile(cb, project.globalConsts.envType.development); + } +} + +// Set as Production Mode +function scssTranspileProd(cb) { + if(checkForScssThemeToBeCompiled().hasError === false) { + scssTranspile(cb, project.globalConsts.envType.production); + } } // SCSS Transpile Tasks diff --git a/gulp/Tasks/TsTanspile.js b/gulp/Tasks/TsTanspile.js index 3231447dd5..7cebc75964 100644 --- a/gulp/Tasks/TsTanspile.js +++ b/gulp/Tasks/TsTanspile.js @@ -1,79 +1,168 @@ const gulp = require('gulp'); const {series} = require('gulp'); - -const sourcemaps = require('gulp-sourcemaps'); const fs = require('fs'); +const sourcemaps = require('gulp-sourcemaps'); const ts = require('gulp-typescript'); +const distFolder = './dist'; const project = require('../ProjectSpecs/DefaultSpecs'); -const envType = {'development':'dev.', 'production':''}; -const distFolder = './dist'; +let defaultTsConfigText = ''; +let filesPath = {}; -let filePath = ''; +// Method that will check if platformType has been defined through npm inline variable. If yes, that's the one to be tackled +function getDefaultPlatformType(platformType) { + const pt = { + error: false, + shouldCreateAll: true, + type: '', + } -// Set as Development Mode -function tsTranspileDev() { - return tsTranspile(envType.development); + // Check if a platformType has been passed as an npm inline script value + if(process.env.npm_config_target !== undefined) { + if(project.globalConsts.platformTarget[process.env.npm_config_target] === undefined) { + pt.error = true; + pt.errorMessage = `Given platform '${process.env.npm_config_target}' does not exist. Plaforms availabe:\n • ${Object.keys(project.globalConsts.platformTarget).join("\n • ")}` + } else { + pt.type = process.env.npm_config_target; + pt.shouldCreateAll = false; + } + } else { + pt.type = platformType !== undefined ? platformType : Object.keys(project.globalConsts.platformTarget)[0]; + } + + return pt; } -// Set as Production Mode -function tsTranspileProd() { - return tsTranspile(envType.production); +// Method that will handle the end of tsCompilation +function onTsCompileFinish(platformType, cb, shouldCreateAll) { + const pts = project.globalConsts.platformTarget; + if(shouldCreateAll === false || platformType === pts[Object.keys(pts)[Object.keys(pts).length-1]]) { + cb(); + } +} + +// Update tsConfig after the compilation in order to ensure it will not be changed dynamically +function rollBackTsConfigFile() { + // Update file with the default text! + fs.writeFileSync('tsconfig.json', defaultTsConfigText, 'utf8'); + defaultTsConfigText = ''; } // Compile TypeScript -function tsTranspile(envMode) { - let tsResult; +function tsTranspile(cb, envMode, platformType) { + // Store the default platformType + const pt = getDefaultPlatformType(platformType); + // Check if platformTye exist and it's valid + if(pt.error) { + console.log(`\n⛔️ ERROR: ${pt.errorMessage}\n`); + return; + } + // Set filesPath accordingly as well + filesPath[pt.type] = `${distFolder}/${envMode === project.globalConsts.envType.production ? '' : envMode + "."}${project.globalConsts.platformTarget[pt.type]}.OutSystemsUI.js`; + // Update tsConfig file and do the Ts compilation accordingly + updateTsConfigFile(cb, envMode, project.globalConsts.platformTarget[pt.type], pt.shouldCreateAll); + // Check if there is still any pending platform to tackle + if(pt.shouldCreateAll && pt.type !== Object.keys(project.globalConsts.platformTarget)[Object.keys(project.globalConsts.platformTarget).length-1]) { + tsTranspile(cb, envMode, Object.keys(project.globalConsts.platformTarget)[(Object.keys(project.globalConsts.platformTarget).indexOf(pt.type)+1)]); + } +} + +// Method that will trigger the transpile of Ts according if it's development or production mode and platform type (O11 or ODC) +async function tsTranspileBasedOnPlatform(cb, envMode, platformType, shouldCreateAll) { let tsProject = ts.createProject('tsconfig.json', { outDir: distFolder, - declaration: envMode === envType.production ? true : false, - outFile: envMode + 'OutSystemsUI.js', - }); + declaration: envMode === project.globalConsts.envType.production ? true : false, + outFile: `${envMode === project.globalConsts.envType.production ? '' : envMode + "."}${platformType}.OutSystemsUI.js`, + }); - filePath = distFolder + "/" + envMode + 'OutSystemsUI.js'; - - if(envMode === envType.development) { - tsResult = tsProject + if(envMode === project.globalConsts.envType.development) { + tsProject .src() .pipe(sourcemaps.init()) .pipe(tsProject()).js .pipe(sourcemaps.write(".")) - .pipe(gulp.dest(distFolder)); + .pipe(gulp.dest(distFolder)) + .on('finish', () => { + onTsCompileFinish(platformType, cb, shouldCreateAll); + }); } else { - tsResult = tsProject + tsProject .src() .pipe(tsProject()) - .pipe(gulp.dest(distFolder)); + .pipe(gulp.dest(distFolder)) + .on('finish', () => { + onTsCompileFinish(platformType, cb, shouldCreateAll); + }); } - return tsResult + // Rollback tsconfig file to the default state + if(defaultTsConfigText !== '') { + rollBackTsConfigFile(); + } } -// -function updateFwkInfo(cb) { - // Set the Specifications text info - let specsInfo = ''; +// Set as Development Mode +function tsTranspileDev(cb) { + tsTranspile(cb, project.globalConsts.envType.development); +} - specsInfo += `/*!\n`; - specsInfo += `${project.info.name} ${project.info.version}\n`; - if (project.info.description !== '') { - specsInfo += `${project.info.description}\n`; - } - specsInfo += `${project.info.url}\n`; - specsInfo += `${project.info.gitHub}\n`; - specsInfo += `*/ \n`; +// Set as Production Mode +function tsTranspileProd(cb) { + tsTranspile(cb, project.globalConsts.envType.production); +} + +// Add section info to the compiled files. +function updateFwkAndPlatformInfo(cb) { + for(const pt in filesPath) { + // Set the Specifications text info + let specsInfo = ''; - // Read file code - let code = fs.readFileSync(filePath, 'utf8'); - // Update code - let updatedCode = specsInfo + code; - // Update the existing file info with the new one! - fs.writeFileSync(filePath, updatedCode, 'utf8'); + specsInfo += `/*!\n`; + specsInfo += `${project.info.name} ${project.info.version} • ${project.globalConsts.platformTarget[pt]} Platform\n`; + if (project.info.description !== '') { + specsInfo += `${project.info.description}\n`; + } + specsInfo += `${project.info.url}\n`; + specsInfo += `${project.info.gitHub}\n`; + specsInfo += `*/ \n`; + + // Read file code + let code = fs.readFileSync(filesPath[pt], 'utf8'); + // Set platformType to the OSFramework.OSUI.Constants + code = code.replace("<•>platformType<•>", project.globalConsts.platformTarget[pt]); + // Update code + let updatedCode = specsInfo + code; + // Ensure code will be set properly before set the update. + setTimeout(() => { + // Update the existing file info with the new one! + fs.writeFileSync(filesPath[pt], updatedCode, 'utf8'); + }, 0); + } cb(); } +// Method that will update the tsConfig file in order to set the exclude files under given platformType +function updateTsConfigFile(cb, envMode, platformType, shouldCreateAll) { + // Check if there are anything that should be ignored + if(project.globalConsts.excludeFromTsTranspile[platformType] !== undefined) { + // Get the text from tsConfig file + let code = fs.readFileSync('tsconfig.json', 'utf8'); + // Store tsConfig text before updating it! + defaultTsConfigText = code; + + // Create the new exclude text block + const replaceInto = `"exclude": ${JSON.stringify(project.globalConsts.excludeFromTsTranspile[platformType])},`; + // Replace the text from the default one into the updated one! + code = code.replace('"exclude": [],', replaceInto); + // Update file! + fs.writeFileSync('tsconfig.json', code, 'utf8'); + } + + tsTranspileBasedOnPlatform(cb, envMode, platformType, shouldCreateAll); +} + // TypeScript Transpile Task -exports.transpileDev = series(tsTranspileDev, updateFwkInfo); -exports.transpileProd = series(tsTranspileProd, updateFwkInfo); \ No newline at end of file +exports.transpileDev = series(tsTranspileDev, updateFwkAndPlatformInfo); +exports.transpileProd = series(tsTranspileProd, updateFwkAndPlatformInfo); \ No newline at end of file diff --git a/gulp/Tasks/UpdateVersion.js b/gulp/Tasks/UpdateVersion.js index a98b3cd287..49a71d4e55 100644 --- a/gulp/Tasks/UpdateVersion.js +++ b/gulp/Tasks/UpdateVersion.js @@ -1,12 +1,9 @@ -const parseArgs = require('minimist'); const prompts = require('prompts'); const fs = require('fs'); // Get the default specs const defaultSpecs = require("./../ProjectSpecs/DefaultSpecs"); -const gtaScriptOpts = parseArgs(process.argv.slice(3), { from: process.env.NODE_ENV || '' }); - // Store the new version let newVersionToBeSet = ''; @@ -86,12 +83,15 @@ function getFilesList(cb) { cb(); } -// Set the new version script triggered by the GitHub Action! +// Set the new version script triggered by the GitHub Action, where the new verion will be passed by script variable --newVersion function gtaSetNewVersion(cb) { - let newVersion = gtaScriptOpts.from.replace("v", "").split("."); - // Increase into a new version - newVersionToBeSet = `${parseInt(newVersion[0])}.${parseInt(newVersion[1])+1}.${parseInt(newVersion[2])}`; - + // Check if version exist + if(process.env.npm_config_newversion === undefined) { + console.log(`\n⛔️ ERROR: --newVersion is missing at the script!\n`); + return; + } + // Store the version to be set + newVersionToBeSet = process.env.npm_config_newversion.replace("v", ""); getFilesList(cb); } diff --git a/gulp/Template/index.html b/gulp/Template/index.html index 0f41c390f7..5d50f7239c 100644 --- a/gulp/Template/index.html +++ b/gulp/Template/index.html @@ -80,7 +80,7 @@

-

OutSystems UI

+

OutSystems UI • --platform--

Development mode...

@@ -92,13 +92,20 @@

Development mode...

Below are the links to the generated files:

  • -

    OutSystemsUI.js - Javascript file - generated by the TypeScript compilation.

    +

    Javascript file generated by the TypeScript compilation

    +
      + +
    • jsListItemToBeReplaced
    • +
  • +
  • -

    OutSystemsUI.css - CSS file generated by - SCSS - compilation that contains styles for all patterns available in production.

    +

    CSS file generated by SCSS compilation that contains styles for all patterns available in + production

    +
      + +
    • scssListItemToBeReplaced
    • +

More info about the repository, { + browser.init({server: distFolder, port: serverPort, cors: true}); + }, 0); +} + +// Method to update development template code +function updateIndexTemplateFile() { // Get the index.html base file let code = fs.readFileSync('./gulp/Template/index.html', 'utf8'); + + let jsLinks = ''; + let scssLinks = ''; + if(process.env.npm_config_target !== undefined && project.globalConsts.platformTarget[process.env.npm_config_target] !== undefined) { + code = code.replace(" • --platform--", " • " + project.globalConsts.platformTarget[process.env.npm_config_target]); + jsLinks = `

  • ${project.globalConsts.platformTarget[process.env.npm_config_target]}.OutSystemsUI.js

  • `; + scssLinks = `
  • ${project.globalConsts.platformTarget[process.env.npm_config_target]}.OutSystemsUI.css

  • `; + } else { + code = code.replace(" • --platform--", ""); + const pts = project.globalConsts.platformTarget; + for(const pt in pts) { + jsLinks += `
  • ${pts[pt]}.OutSystemsUI.js

  • \n`; + scssLinks += `
  • ${pts[pt]}.OutSystemsUI.css

  • \n`; + } + } + code = code.replace("
  • jsListItemToBeReplaced
  • ", jsLinks); + code = code.replace("
  • scssListItemToBeReplaced
  • ", scssLinks); + // Create the new index.html at the dist folder! fs.writeFileSync(`${distFolder}/index.html`, code, 'utf8'); - - browser.init({server: distFolder, port: serverPort, cors: true}); } // Watch files changed @@ -50,8 +74,7 @@ exports.startDevelopment = series( exports.createProduction = series( cleanOldFiles, createScssFile.update_osui_scss_file_prod, - cssTranspile.transpileProd, - tsTranspile.transpileProd + parallel(cssTranspile.transpileProd, tsTranspile.transpileProd), ); exports.updateScssFile = createScssFile.update_osui_scss_file_dev; diff --git a/package.json b/package.json index a4c95e60e7..cb626c5abb 100644 --- a/package.json +++ b/package.json @@ -4,16 +4,16 @@ "description": "OutSystems UI Framework", "license": "BSD-3-Clause", "scripts": { - "build": "gulp createProduction && npm run lintfix && npm run lint", + "build": "gulp createProduction --target && npm run lintfix && npm run lint", "create-osui-scss": "gulp updateScssFile", - "dev": "gulp startDevelopment", + "dev": "gulp startDevelopment --target", "docs": "npx typedoc", "lint": "eslint . --ext .ts", "lintfix": "eslint . --fix --ext .ts", "prettier": "prettier --config ./.prettierrc.json --write \"**/*.+(js|ts|css)\"", "setup": "npm i && npm run dev", "update-version": "gulp updateVersion", - "gta-update-version": "gulp gtaSetVersion --from" + "gta-update-version": "gulp gtaSetVersion --newVersion" }, "repository": { "type": "git", @@ -67,4 +67,4 @@ "typescript": "^4.5.0", "virtual-select-plugin": "1.0.40" } -} \ No newline at end of file +} diff --git a/src/scripts/OSFramework/OSUI/Constants.ts b/src/scripts/OSFramework/OSUI/Constants.ts index b652a126fd..44e42da247 100644 --- a/src/scripts/OSFramework/OSUI/Constants.ts +++ b/src/scripts/OSFramework/OSUI/Constants.ts @@ -54,28 +54,40 @@ namespace OSFramework.OSUI.Constants { }, }; + /* cssClass to be added to elements that must visible yet hidded for accessibility purposes */ + export const AccessibilityHideElementClass = 'wcag-hide-text'; + /* Attribute used to allow propagation on containers with event */ export const AllowPropagationAttr = '[data-allow-event-propagation]'; - /* Used to concatenate when querySelector for a class */ - export const Dot = '.'; - /* Used to concatenate when querySelectorAll for a list of classes */ export const Comma = ','; - /* Manage if the log messages are visible or not */ - export const EnableLogMessages = false; + /* Used to concatenate when querySelector for a class */ + export const Dot = '.'; /* Used to typify the empty string value*/ export const EmptyString = ''; - /* Attribute used to flag some elements to be ignored by the Focus Trap behaviour */ - export const FocusTrapIgnoreAttr = 'ignore-focus-trap'; + /* Manage if the log messages are visible or not */ + export const EnableLogMessages = false; /* Store focusable elements when doing a focus trap inside an element*/ export const FocusableElems = 'a[href]:not([disabled]),[tabindex="0"], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled])'; + /* Attribute used to flag some elements to be ignored by the Focus Trap behaviour */ + export const FocusTrapIgnoreAttr = 'ignore-focus-trap'; + + /* cssClass to be checked if the Accessibility Feature is enabled */ + export const HasAccessibilityClass = 'has-accessible-features'; + + /* Used to typify noon-valid expected number values */ + export const InvalidNumber = -1; + + /* cssClass to be checked if the RTL Feature is enabled */ + export const IsRTLClass = 'is-rtl'; + /* Store JavaScript types*/ export const JavaScriptTypes = { Undefined: 'undefined', @@ -91,11 +103,11 @@ namespace OSFramework.OSUI.Constants { export const JustInputs = 'input:not([type=button]):not([type=checkbox]):not([type=color]):not([type=file]):not([type=hidden]):not([type=image]):not([type=image]):not([type=radio]):not([type=range]):not([type=reset]):not([type=submit]), textarea'; - /* cssClass to be checked if the Accessibility Feature is enabled */ - export const HasAccessibilityClass = 'has-accessible-features'; - - /* Used to typify noon-valid expected number values */ - export const InvalidNumber = -1; + /* Store the default app lang */ + export const Language = { + code: 'en-US', + short: 'en', + }; /* Store months list */ export const Months = [ @@ -113,24 +125,19 @@ namespace OSFramework.OSUI.Constants { 'December', ]; - /* Store the default app lang */ - export const Language = { - code: 'en-US', - short: 'en', - }; - - /* cssClass to be added to elements that must visible yet hidded for accessibility purposes */ - export const AccessibilityHideElementClass = 'wcag-hide-text'; - - /* cssClass to be checked if the RTL Feature is enabled */ - export const IsRTLClass = 'is-rtl'; - /* cssClass to be remove transitions on element */ export const NoTransition = 'no-transition'; + /** + * OSUI Set platform in use. + * - This value will be set dynamically at the compilation momment! + * - Do not change default string value! + */ + export const OSPlatform = '<•>platformType<•>'; + /* OSUI Version */ export const OSUIVersion = '2.18.2'; - /*Constant to be used across project as the zero value*/ + /* Constant to be used across project as the zero value*/ export const ZeroValue = 0; } diff --git a/src/scripts/OSFramework/OSUI/Event/DOMEvents/Listeners/ListenerEnum.ts b/src/scripts/OSFramework/OSUI/Event/DOMEvents/Listeners/ListenerEnum.ts index 003bc16e94..cae3dded17 100644 --- a/src/scripts/OSFramework/OSUI/Event/DOMEvents/Listeners/ListenerEnum.ts +++ b/src/scripts/OSFramework/OSUI/Event/DOMEvents/Listeners/ListenerEnum.ts @@ -10,5 +10,6 @@ namespace OSFramework.OSUI.Event.DOMEvents.Listeners { OrientationChange = 'window.onorientationchange', ScreenOnScroll = 'screen.onscroll', WindowResize = 'window.onresize', + WindowMessage = 'window.message', } } diff --git a/src/scripts/OSFramework/OSUI/Event/DOMEvents/Listeners/ListenerManager.ts b/src/scripts/OSFramework/OSUI/Event/DOMEvents/Listeners/ListenerManager.ts index a43651bc31..5cd7640c07 100644 --- a/src/scripts/OSFramework/OSUI/Event/DOMEvents/Listeners/ListenerManager.ts +++ b/src/scripts/OSFramework/OSUI/Event/DOMEvents/Listeners/ListenerManager.ts @@ -22,6 +22,8 @@ namespace OSFramework.OSUI.Event.DOMEvents.Listeners { return new OrientationChange(); case Type.ScreenOnScroll: return new ScreenOnScroll(); + case Type.WindowMessage: + return new WindowMessage(); default: throw new Error(`The listener ${listenerType} is not supported.`); } diff --git a/src/scripts/OSFramework/OSUI/Event/DOMEvents/Listeners/WindowOnMessage.ts b/src/scripts/OSFramework/OSUI/Event/DOMEvents/Listeners/WindowOnMessage.ts new file mode 100644 index 0000000000..da490f49f4 --- /dev/null +++ b/src/scripts/OSFramework/OSUI/Event/DOMEvents/Listeners/WindowOnMessage.ts @@ -0,0 +1,20 @@ +// eslint-disable-next-line @typescript-eslint/no-unused-vars +namespace OSFramework.OSUI.Event.DOMEvents.Listeners { + /** + * Class that represents the Post Message on the Window. + * + * @export + * @class WindowMessage + * @extends {Event.AbstractEvent} + */ + export class WindowMessage extends AbstractListener { + constructor() { + super(window, GlobalEnum.HTMLEvent.Message); + this.eventCallback = this._windowTrigger.bind(this); + } + + private _windowTrigger(evt: MessageEvent): void { + this.trigger(GlobalEnum.HTMLEvent.Message, evt); + } + } +} diff --git a/src/scripts/OSFramework/OSUI/GlobalEnum.ts b/src/scripts/OSFramework/OSUI/GlobalEnum.ts index 54eb6f91d7..76e2a40535 100644 --- a/src/scripts/OSFramework/OSUI/GlobalEnum.ts +++ b/src/scripts/OSFramework/OSUI/GlobalEnum.ts @@ -212,6 +212,7 @@ namespace OSFramework.OSUI.GlobalEnum { TouchMove = 'touchmove', TouchStart = 'touchstart', TransitionEnd = 'transitionend', + Message = 'message', } /** diff --git a/src/scripts/OSFramework/OSUI/Helper/Device.ts b/src/scripts/OSFramework/OSUI/Helper/Device.ts index 2c5603ab62..afe949df85 100644 --- a/src/scripts/OSFramework/OSUI/Helper/Device.ts +++ b/src/scripts/OSFramework/OSUI/Helper/Device.ts @@ -140,9 +140,17 @@ namespace OSFramework.OSUI.Helper { * @memberof OSFramework.Helper.DeviceInfo */ private static _getUserAgent(userAgent = ''): string { - return userAgent.replace(' ', '') === '' - ? window.navigator.userAgent.toLowerCase() - : userAgent.toLowerCase(); + let localUserAgent = userAgent; + + if (userAgent.replace(' ', '') === '') { + if (sessionStorage.previewDevicesUserAgent) { + localUserAgent = sessionStorage.previewDevicesUserAgent; + } else { + localUserAgent = window.navigator.userAgent; + } + } + + return localUserAgent.toLowerCase(); } /** @@ -348,10 +356,13 @@ namespace OSFramework.OSUI.Helper { public static get IsIphoneWithNotch(): boolean { if (DeviceInfo._isIphoneWithNotch === undefined) { // get the device pixel ratio - const ratio = window.devicePixelRatio || 1; + const ratio = + (sessionStorage.previewDevicesPixelRatio + ? sessionStorage.previewDevicesPixelRatio + : window.devicePixelRatio) || 1; const currScreen: iphoneDetails = { - width: window.screen.width * ratio, - height: window.screen.height * ratio, + width: (window.visualViewport ? window.visualViewport.width : window.innerWidth) * ratio, + height: (window.visualViewport ? window.visualViewport.height : window.innerHeight) * ratio, description: '', }; @@ -592,5 +603,15 @@ namespace OSFramework.OSUI.Helper { return localOs; } + + /** + * Refresh the operating system information + * + * @static + * @memberof DeviceInfo + */ + public static RefreshOperatingSystem(): void { + DeviceInfo._operatingSystem = DeviceInfo.GetOperatingSystem(DeviceInfo._getUserAgent()); + } } } diff --git a/src/scripts/OutSystems/OSUI/Utils/PreviewInDevices/IMessageEventPiD.ts b/src/scripts/OutSystems/OSUI/Utils/PreviewInDevices/IMessageEventPiD.ts new file mode 100644 index 0000000000..a38e03f998 --- /dev/null +++ b/src/scripts/OutSystems/OSUI/Utils/PreviewInDevices/IMessageEventPiD.ts @@ -0,0 +1,32 @@ +// eslint-disable-next-line @typescript-eslint/no-unused-vars +namespace OutSystems.OSUI.Utils.PreviewInDevices { + /** + * Defines the interface of data being received by the Preview In Devices, console. + * + * @export + * @interface IDataPreviewInDevice + */ + export interface IDataPreviewInDevice { + /** + * Pixels to be considered for the top notch for the specific device. + * + * @type {number} + * @memberof IDataPreviewInDevice + */ + notchValue?: number; + /** + * Pixel Ratio do be used within the application being emulated. + * + * @type {string} + * @memberof IDataPreviewInDevice + */ + pixelRatio?: string; + /** + * User agent of the device to be emulated. + * + * @type {string} + * @memberof IDataPreviewInDevice + */ + userAgent?: string; + } +} diff --git a/src/scripts/OutSystems/OSUI/Utils/PreviewInDevices/OnPostMessage.ts b/src/scripts/OutSystems/OSUI/Utils/PreviewInDevices/OnPostMessage.ts new file mode 100644 index 0000000000..6a5fc32184 --- /dev/null +++ b/src/scripts/OutSystems/OSUI/Utils/PreviewInDevices/OnPostMessage.ts @@ -0,0 +1,155 @@ +// eslint-disable-next-line @typescript-eslint/no-unused-vars +namespace OutSystems.OSUI.Utils.PreviewInDevices { + /** + * Responsible for handling the Preview In Device behavior. + * + * @abstract + * @class OnPostMessage + */ + abstract class OnPostMessage { + /** + * Holds the knowledge if the app is running within the Preview In Devices. + * + * @private + * @static + * @memberof OnPostMessage + */ + private static _isInPreviewInDevices = false; + + /** + * Adds a css class to the body, to make it easily style accordingly. + * + * @private + * @static + * @memberof OnPostMessage + */ + private static _addInPreviewCssClass(): void { + OnPostMessage._isInPreviewInDevices = true; + document.body.classList.add('PreviewInDevices'); + } + + private static _createPhonePreviewStyle(notchValue: number) { + if (!notchValue) { + return; + } + + const style = document.createElement('style'); + + style.textContent = ` + body * { + user-select: none !important + } + + body.is-phone.android.portrait { + --status-bar-height: ${notchValue}px; + } + + body.portrait.is-phone { + --os-safe-area-top: ${notchValue}px; + } + + body.landscape.is-phone { + --os-safe-area-right: ${notchValue}px; + --os-safe-area-left: ${notchValue}px; + } + + .is-phone .active-screen.screen-container::-webkit-scrollbar, html::-webkit-scrollbar, + .is-phone.ios .active-screen.screen-container .content::-webkit-scrollbar, html::-webkit-scrollbar { + display: none; + } + `; + + // Adds the is phone class to apply the correct styling + // because platform is replacing phone with tablet when we rotate the phone device + document.body.classList.add('is-phone'); + document.body.setAttribute('data-status-bar-height', `${notchValue}px`); + document.head.appendChild(style); + } + + private static _createTabletPreviewStyle() { + const style = document.createElement('style'); + style.textContent = ` + body * { + user-select: none !important + } + + .tablet .active-screen.screen-container::-webkit-scrollbar, html::-webkit-scrollbar, + .tablet.ios .active-screen.screen-container .content::-webkit-scrollbar, html::-webkit-scrollbar { + display: none; + } + `; + + document.head.appendChild(style); + } + + private static _message(evtName: string, evt: MessageEvent): void { + if ( + OSFramework.OSUI.GlobalEnum.HTMLEvent.Message === evtName && + (evt.origin.includes('outsystems.app') || evt.origin.includes('outsystems.dev')) + ) { + OnPostMessage._messageFromPreview(evt); + } + } + + /** + * Adds the required CSS classes, and CSS overrides so that the application adapts correctly + * to the device selected in the preview devices. + * + * @private + * @static + * @param {*} evt + * @memberof OnPostMessage + */ + private static _messageFromPreview(evt: MessageEvent): void { + OnPostMessage._addInPreviewCssClass(); + if (OSFramework.OSUI.Helper.DeviceInfo.IsPhone) { + OnPostMessage._createPhonePreviewStyle(evt.data.notchValue); + } else if (OSFramework.OSUI.Helper.DeviceInfo.IsTablet) { + OnPostMessage._createTabletPreviewStyle(); + } + sessionStorage.setItem('previewDevicesUserAgent', evt.data.userAgent); + sessionStorage.setItem('previewDevicesPixelRatio', evt.data.pixelRatio); + OnPostMessage.Unset(); + evt.source.postMessage('received', { targetOrigin: evt.origin }); + OSFramework.OSUI.Helper.DeviceInfo.RefreshOperatingSystem(); + LayoutPrivate.SetDeviceClass(false); + } + + /** + * Indicates if the APP is running within the Preview In Devices frame. + * + * @readonly + * @static + * @type {boolean} + * @memberof OnPostMessage + */ + public static get IsInPreviewInDevices(): boolean { + return OnPostMessage._isInPreviewInDevices; + } + + /** + * Function used to set the message event + */ + public static Set(): void { + if (window.self !== window.top) { + OSFramework.OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.addHandler( + OSFramework.OSUI.Event.DOMEvents.Listeners.Type.WindowMessage, + OnPostMessage._message + ); + } + } + + /** + * Function used to unset the message event + */ + public static Unset(): void { + OSFramework.OSUI.Event.DOMEvents.Listeners.GlobalListenerManager.Instance.removeHandler( + OSFramework.OSUI.Event.DOMEvents.Listeners.Type.WindowMessage, + OnPostMessage._message + ); + } + } + + // Invoke the event register + OnPostMessage.Set(); +} diff --git a/src/scripts/OutSystems/OSUI/Utils/Utilities.ts b/src/scripts/OutSystems/OSUI/Utils/Utilities.ts index 0dc7be6bd1..cc86947c99 100644 --- a/src/scripts/OutSystems/OSUI/Utils/Utilities.ts +++ b/src/scripts/OutSystems/OSUI/Utils/Utilities.ts @@ -228,6 +228,16 @@ namespace OutSystems.OSUI.Utils { return result; } + /** + * Method that will return the platformType in use. + * + * @export + * @return {*} {string} + */ + export function GetPlatformType(): string { + return OSFramework.OSUI.Constants.OSPlatform; + } + /** * Shows and hides the value of an Input of type password, allowing users to view their entered password temporarily for verification or editing purposes. * If WidgetId does not exist or is left empty, the action affects the first password Input on the screen. diff --git a/src/scss/04-patterns/06-utilities/_provider-login-button.scss b/src/scss/04-patterns/06-utilities/_provider-login-button.scss new file mode 100644 index 0000000000..9bfa8d49c0 --- /dev/null +++ b/src/scss/04-patterns/06-utilities/_provider-login-button.scss @@ -0,0 +1,77 @@ +/*! Patterns - Utilities - Provider Login Button */ +//// +/// @group Utilities-Provider_Login_Button +/// Patterns - Utilities - Provider Login Button + +.btn.btn-provider-login { + background: var(--color-neutral-0); + border-color: var(--color-neutral-6); + border-radius: 0; + &-logo { + &-only { + padding: 10px; + .btn-provider-login-text { + display: none; + -servicestudio-display: none !important; + } + } + svg { + height: 100%; + width: 100%; + } + } + &.btn- { + &small { + padding: 0 16px; + &.btn-provider-login-logo-only { + padding: 5px; + } + } + &large { + padding: 10px 15px; + } + } + &.soft { + border-radius: var(--border-radius-soft); + } + &.rounded { + border-radius: var(--border-radius-rounded); + } + .btn-provider-login { + &-logo { + border-radius: 50%; + height: 20px; + width: 20px; + } + &-text { + color: var(--color-neutral-7); + margin-left: 10px; + white-space: nowrap; + } + } +} + +.phone .layout { + .btn.btn-provider-login { + &.btn-provider-login-logo-only { + width: 50px; + &.btn- { + &small { + width: 40px; + } + &large { + width: 55px; + } + } + } + .btn-provider-login-text-name { + text-align: left; + width: 70px; + -servicestudio-display: inline-block; + } + + &.btn-small .btn-provider-login-text-name { + width: 53px; + } + } +} diff --git a/src/scss/OutSystemsUI.scss b/src/scss/O11.OutSystemsUI.scss similarity index 99% rename from src/scss/OutSystemsUI.scss rename to src/scss/O11.OutSystemsUI.scss index 11ce6b2a01..593d0cbaa3 100644 --- a/src/scss/OutSystemsUI.scss +++ b/src/scss/O11.OutSystemsUI.scss @@ -13,11 +13,11 @@ IMPORTANT NOTE: • In order to proper manage this file, use: └── './gulp/ProjectSpecs/ScssStructure/#All.js' -PS: This comment will not be visible at the compiled version! +PS: This comment block will not be visible at the compiled version! =============================================================================== */ /*! -OutSystems UI 2.18.2 +OutSystems UI 2.18.2 • O11 Platform Website: • https://www.outsystems.com/outsystems-ui GitHub: diff --git a/src/scss/ODC.OutSystemsUI.scss b/src/scss/ODC.OutSystemsUI.scss new file mode 100644 index 0000000000..7ad3592a72 --- /dev/null +++ b/src/scss/ODC.OutSystemsUI.scss @@ -0,0 +1,600 @@ +/* =============================================================================== +IMPORTANT NOTE: +• This file is generated automatically through npm scripts: +├── npm run create-osui-scss +| └── Which will recreate this file as a Dev mode. +| +├── npm run build +| └── When Prod mode is being start, it will be recreated before it's compilation. +| +└── npm run dev + └── When Dev mode is being start, it will be recreated, than the compilation will occurs as usually. + +• In order to proper manage this file, use: +└── './gulp/ProjectSpecs/ScssStructure/#All.js' + +PS: This comment block will not be visible at the compiled version! +=============================================================================== */ + +/*! +OutSystems UI 2.18.2 • ODC Platform +Website: + • https://www.outsystems.com/outsystems-ui +GitHub: + • https://github.com/OutSystems/outsystems-ui +*/ +/*! +Section Index: +0. Root - CSS Variables +1. Resets +2. HTML Elements + 2.1. Links + 2.2. Images + 2.3. Headings +3. Page Layout + 3.1. Layout + 3.2. Header + 3.3. Layout Native - Header + 3.4. Layout Side - Header + 3.5. Menu + 3.6. Layout Native - Menu + 3.7. Layout Side - Menu + 3.8. Menu - Header Logo + 3.9. Menu - App Menu Link + 3.10. Menu - App Login Info + 3.11. Content + 3.12. ThemeGrid_Container + 3.13. Section + 3.14. Login + 3.15. iOS Scroll Bounce +4. Widgets + 4.1. Inputs and TextAreas + 4.2. Switch + 4.3. Checkbox + 4.4. Dropdown + 4.5. Button + 4.6. List + 4.7. List Item + 4.8. Table + 4.9. Table - Sortable Icon + 4.10. Table - Bulk Actions + 4.11. Form + 4.12. Upload + 4.13. Button Group + 4.14. Popover + 4.15. Popup + 4.16. Feedback Message + 4.17. Radio Button +5. Providers + 5.1. Flatpickr + 5.2. NoUiSlider + 5.3. Splide + 5.4. VirtualSelect +6. Patterns + 6.1. Adaptive + 6.1.1. Columns + 6.1.2. Gallery + 6.1.3. Master Detail + 6.2. Content + 6.2.1. Accordion + 6.2.2. Accordion Item + 6.2.3. Alert + 6.2.4. Blank Slate + 6.2.5. Card + 6.2.6. Card Background + 6.2.7. Card Item + 6.2.8. Card Sectioned + 6.2.9. Chat Message + 6.2.10. Flip Content + 6.2.11. Floating Content + 6.2.12. List Item Content + 6.2.13. Section + 6.2.14. Tag + 6.2.15. Tooltip + 6.2.16. User Avatar + 6.3. Interaction + 6.3.1. Action Sheet + 6.3.2. Animate + 6.3.3. Animated Label + 6.3.4. Balloon + 6.3.5. Bottom Sheet + 6.3.6. Carousel + 6.3.7. DatePicker + 6.3.8. Dropdown + 6.3.8.1 Dropdown Search + 6.3.8.2 Dropdown Tags + 6.3.9. Floating Actions + 6.3.10. Input With Icon + 6.3.11. Lightbox Image + 6.3.12. MonthPicker + 6.3.13. Notification + 6.3.14. RangeSlider + 6.3.15. Scrollable Area + 6.3.16. Sidebar + 6.3.17. Search + 6.3.18. Stacked Cards + 6.3.19. TimePicker + 6.3.20. Video + 6.4. Navigation + 6.4.1. Bottom Bar Item + 6.4.2. Breadcrumbs + 6.4.3. OverflowMenu + 6.4.4. Pagination + 6.4.5. Section Index + 6.4.6. Submenu + 6.4.7. Tabs + 6.4.8. Timeline + 6.4.9. Wizard + 6.5. Numbers + 6.5.1. Badge + 6.5.2. Counter + 6.5.3. Icon Badge + 6.5.4. Progress + 6.5.4.1 Progress Bar + 6.5.4.2 Progress Circle + 6.5.5. Rating + 6.6. Utilities + 6.6.1. Align Center + 6.6.2. Button Loading + 6.6.3. Center Content + 6.6.4. Margin Container + 6.6.5. Separator + 6.6.6. Pull to Refresh + 6.6.7. List Updating + 6.6.8. Provider Login Button + 6.7. Advanced + 6.7.1. Dropdown ServerSide + 6.7.2. Dropdown ServerSide Item + 6.8. Deprecated Patterns + 6.8.1. Accordion + 6.8.2. Button Loading + 6.8.3. Carousel + 6.8.4. Datepicker + 6.8.5. Dropdown Search an Tags (Common) + 6.8.6. Dropdown Search + 6.8.7. Dropdown Tags + 6.8.8. Flip Content + 6.8.9. Gallery + 6.8.10. Horizontal Scroll + 6.8.11. Notification + 6.8.12. Progress Bar + 6.8.13. Progress Circle + 6.8.14. Progress Circle Fraction + 6.8.15. Section Index + 6.8.16. Sidebar + 6.8.17. Search + 6.8.18. Submenu + 6.8.19. Tabs + 6.8.20. Tooltip + 6.8.21. Video +7. Usefull Classes + 7.1. a11y (Accessibility) + 7.2. Colors - Brand + 7.3. Colors - Neutral + 7.4. Colors - Palette + 7.5. Colors - Semantic + 7.6. Colors - Others + 7.7. Text + 7.8. Typography + 7.9. Border Size + 7.10. Border Radius + 7.11. Space - Margin + 7.12. Space - Padding + 7.13. Shadow + 7.14. Box Width + 7.15. Box Height + 7.16. Display + 7.17. Display - Flex + 7.18. Display - Align + 7.19. Images + 7.20. Overflow + 7.21. Visibility + 7.22. Position + 7.23. Position - Absolute + 7.24. Miscellaneous +8. Screen Transitions +9. Keyframes - Animations + 9.1. Animate + 9.2. Button Loading + 9.3. List Item + 9.4. Feedback Message + 9.5. Pull To Refresh + 9.6. Miscellaneous +10. Service Studio Preview +*/ + +/* =============================================================================== +SCSS Setup variables +=============================================================================== */ +@import '00-abstract/setup-global-vars'; +@import '00-abstract/setup-global-typography-vars'; +@import '00-abstract/setup-color-vars'; +@import '00-abstract/setup-border-vars'; + +/* =============================================================================== +Functions & Mixins +=============================================================================== */ +@import '00-abstract/functions'; +@import '00-abstract/mixins'; + +/*! ============================================================================== +0. Root - CSS Variables +=============================================================================== */ +@import '01-foundations/root'; + +/*! ============================================================================== +1. Resets +=============================================================================== */ +@import '01-foundations/resets'; + +/*! ============================================================================== +2. HTML Elements +=============================================================================== */ +/*! 2.1. Links */ +@import '01-foundations/html-elements-link'; +/*! 2.2. Images */ +@import '01-foundations/html-elements-img'; +/*! 2.3. Headings */ +@import '01-foundations/html-elements-headings'; + +/*! ============================================================================== +3. Page Layout +=============================================================================== */ +/*! 3.1. Layout */ +@import '02-layout/layout'; +/*! 3.2. Header */ +@import '02-layout/header'; +/*! 3.3. Layout Native - Header */ +@import '02-layout/header-layout-native'; +/*! 3.4. Layout Side - Header */ +@import '02-layout/header-layout-side'; +/*! 3.5. Menu */ +@import '02-layout/menu'; +/*! 3.6. Layout Native - Menu */ +@import '02-layout/menu-layout-native'; +/*! 3.7. Layout Side - Menu */ +@import '02-layout/menu-layout-side'; +/*! 3.8. Menu - Header Logo */ +@import '02-layout/menu-header-logo'; +/*! 3.9. Menu - App Menu Link */ +@import '02-layout/menu-app-menu-links'; +/*! 3.10. Menu - App Login Info */ +@import '02-layout/menu-app-login-info'; +/*! 3.11. Content */ +@import '02-layout/content'; +/*! 3.12. ThemeGrid_Container */ +@import '02-layout/themegrid-container'; +/*! 3.13. Section */ +@import '02-layout/section'; +/*! 3.14. Login */ +@import '02-layout/login'; +/*! 3.15. iOS Scroll Bounce */ +@import '02-layout/ios-bounce'; + +/*! ============================================================================== +4. Widgets +=============================================================================== */ +/*! 4.1. Inputs and TextAreas */ +@import '03-widgets/inputs-and-textareas'; +/*! 4.2. Switch */ +@import '03-widgets/switch'; +/*! 4.3. Checkbox */ +@import '03-widgets/checkbox'; +/*! 4.4. Dropdown */ +@import '03-widgets/dropdown'; +/*! 4.5. Button */ +@import '03-widgets/btn'; +/*! 4.6. List */ +@import '03-widgets/list'; +/*! 4.7. List Item */ +@import '03-widgets/list-item'; +/*! 4.8. Table */ +@import '03-widgets/table'; +/*! 4.9. Table - Sortable Icon */ +@import '03-widgets/table-sortable-icon'; +/*! 4.10. Table - Bulk Actions */ +@import '03-widgets/bulk-actions'; +/*! 4.11. Form */ +@import '03-widgets/form'; +/*! 4.12. Upload */ +@import '03-widgets/upload'; +/*! 4.13. Button Group */ +@import '03-widgets/button-group'; +/*! 4.14. Popover */ +@import '03-widgets/popover'; +/*! 4.15. Popup */ +@import '03-widgets/popup'; +/*! 4.16. Feedback Message */ +@import '03-widgets/feedback-message'; +/*! 4.17. Radio Button */ +@import '03-widgets/radio-button'; + +/*! ============================================================================== +5. Providers +=============================================================================== */ +/*! 5.1. Flatpickr */ +@import '../scripts/Providers/OSUI/SharedProviderResources/Flatpickr/scss/_flatpickr_lib.scss'; +/*! 5.2. NoUiSlider */ +@import '../scripts/Providers/OSUI/RangeSlider/NoUISlider/scss/_noUiSlider.scss'; +/*! 5.3. Splide */ +@import '../scripts/Providers/OSUI/Carousel/Splide/scss/splide-core.scss'; +/*! 5.4. VirtualSelect */ +@import '../scripts/Providers/OSUI/Dropdown/VirtualSelect/scss/_virtualselect_lib.scss'; + +/*! ============================================================================== +6. Patterns +=============================================================================== */ +/*! 6.1. Adaptive */ +/*! 6.1.1. Columns */ +@import '04-patterns/01-adaptive/columns'; +/*! 6.1.2. Gallery */ +@import '../scripts/OSFramework/OSUI/Pattern/Gallery/scss/gallery'; +/*! 6.1.3. Master Detail */ +@import '04-patterns/01-adaptive/master-detail'; + +/*! 6.2. Content */ +/*! 6.2.1. Accordion */ +@import '../scripts/OSFramework/OSUI/Pattern/Accordion/scss/accordion'; +/*! 6.2.2. Accordion Item */ +@import '../scripts/OSFramework/OSUI/Pattern/AccordionItem/scss/accordion-item'; +/*! 6.2.3. Alert */ +@import '04-patterns/02-content/alert'; +/*! 6.2.4. Blank Slate */ +@import '04-patterns/02-content/blank-slate'; +/*! 6.2.5. Card */ +@import '04-patterns/02-content/card'; +/*! 6.2.6. Card Background */ +@import '04-patterns/02-content/card-background'; +/*! 6.2.7. Card Item */ +@import '04-patterns/02-content/card-item'; +/*! 6.2.8. Card Sectioned */ +@import '04-patterns/02-content/card-sectioned'; +/*! 6.2.9. Chat Message */ +@import '04-patterns/02-content/chat-message'; +/*! 6.2.10. Flip Content */ +@import '../scripts/OSFramework/OSUI/Pattern/FlipContent/scss/flipcontent'; +/*! 6.2.11. Floating Content */ +@import '04-patterns/02-content/floating-content'; +/*! 6.2.12. List Item Content */ +@import '04-patterns/02-content/list-item-content'; +/*! 6.2.13. Section */ +@import '04-patterns/02-content/section'; +/*! 6.2.14. Tag */ +@import '04-patterns/02-content/tag'; +/*! 6.2.15. Tooltip */ +@import '../scripts/OSFramework/OSUI/Pattern/Tooltip/scss/tooltip'; +/*! 6.2.16. User Avatar */ +@import '04-patterns/02-content/user-avatar'; + +/*! 6.3. Interaction */ +/*! 6.3.1. Action Sheet */ +@import '04-patterns/03-interaction/action-sheet'; +/*! 6.3.2. Animate */ +@import '04-patterns/03-interaction/animate'; +/*! 6.3.3. Animated Label */ +@import '../scripts/OSFramework/OSUI/Pattern/AnimatedLabel/scss/animated-label'; +/*! 6.3.4. Balloon */ +@import '../scripts/OSFramework/OSUI/Feature/Balloon/scss/balloon'; +/*! 6.3.5. Bottom Sheet */ +@import '../scripts/OSFramework/OSUI/Pattern/BottomSheet/scss/bottomsheet'; +/*! 6.3.6. Carousel */ +@import '../scripts/OSFramework/OSUI/Pattern/Carousel/scss/carousel'; +/*! 6.3.7. DatePicker */ +@import '../scripts/OSFramework/OSUI/Pattern/DatePicker/scss/datepicker'; +/*! 6.3.8. Dropdown */ +@import '../scripts/OSFramework/OSUI/Pattern/Dropdown/scss/dropdown'; +/*! 6.3.8.1 Dropdown Search */ +@import '../scripts/OSFramework/OSUI/Pattern/Dropdown/scss/dropdown-search'; +/*! 6.3.8.2 Dropdown Tags */ +@import '../scripts/OSFramework/OSUI/Pattern/Dropdown/scss/dropdown-tags'; +/*! 6.3.9. Floating Actions */ +@import '04-patterns/03-interaction/floating-actions'; +/*! 6.3.10. Input With Icon */ +@import '04-patterns/03-interaction/input-with-icon'; +/*! 6.3.11. Lightbox Image */ +@import '04-patterns/03-interaction/lightbox-image'; +/*! 6.3.12. MonthPicker */ +@import '../scripts/OSFramework/OSUI/Pattern/MonthPicker/scss/monthpicker'; +/*! 6.3.13. Notification */ +@import '../scripts/OSFramework/OSUI/Pattern/Notification/scss/notification'; +/*! 6.3.14. RangeSlider */ +@import '../scripts/OSFramework/OSUI/Pattern/RangeSlider/scss/rangeslider'; +/*! 6.3.15. Scrollable Area */ +@import '04-patterns/03-interaction/scrollable-area'; +/*! 6.3.16. Sidebar */ +@import '../scripts/OSFramework/OSUI/Pattern/Sidebar/scss/sidebar'; +/*! 6.3.17. Search */ +@import '../scripts/OSFramework/OSUI/Pattern/Search/scss/search'; +/*! 6.3.18. Stacked Cards */ +@import '04-patterns/03-interaction/stacked-cards'; +/*! 6.3.19. TimePicker */ +@import '../scripts/OSFramework/OSUI/Pattern/TimePicker/scss/timepicker'; +/*! 6.3.20. Video */ +@import '../scripts/OSFramework/OSUI/Pattern/Video/scss/video'; + +/*! 6.4. Navigation */ +/*! 6.4.1. Bottom Bar Item */ +@import '04-patterns/04-navigation/bottom-bar-item'; +/*! 6.4.2. Breadcrumbs */ +@import '04-patterns/04-navigation/breadcrumbs'; +/*! 6.4.3. OverflowMenu */ +@import '../scripts/OSFramework/OSUI/Pattern/OverflowMenu/scss/overflowmenu'; +/*! 6.4.4. Pagination */ +@import '04-patterns/04-navigation/pagination'; +/*! 6.4.5. Section Index */ +@import '../scripts/OSFramework/OSUI/Pattern/SectionIndex/scss/sectionindex'; +/*! 6.4.6. Submenu */ +@import '../scripts/OSFramework/OSUI/Pattern/Submenu/scss/submenu'; +/*! 6.4.7. Tabs */ +@import '../scripts/OSFramework/OSUI/Pattern/Tabs/scss/tabs'; +/*! 6.4.8. Timeline */ +@import '04-patterns/04-navigation/timeline'; +/*! 6.4.9. Wizard */ +@import '04-patterns/04-navigation/wizard'; + +/*! 6.5. Numbers */ +/*! 6.5.1. Badge */ +@import '04-patterns/05-numbers/badge'; +/*! 6.5.2. Counter */ +@import '04-patterns/05-numbers/counter'; +/*! 6.5.3. Icon Badge */ +@import '04-patterns/05-numbers/icon-badge'; +/*! 6.5.4. Progress */ +/*! 6.5.4.1 Progress Bar */ +@import '../scripts/OSFramework/OSUI/Pattern/Progress/Bar/scss/progressbar'; +/*! 6.5.4.2 Progress Circle */ +@import '../scripts/OSFramework/OSUI/Pattern/Progress/Circle/scss/progresscircle'; +/*! 6.5.5. Rating */ +@import '../scripts/OSFramework/OSUI/Pattern/Rating/scss/rating'; + +/*! 6.6. Utilities */ +/*! 6.6.1. Align Center */ +@import '04-patterns/06-utilities/align-center'; +/*! 6.6.2. Button Loading */ +@import '../scripts/OSFramework/OSUI/Pattern/ButtonLoading/scss/button-loading'; +/*! 6.6.3. Center Content */ +@import '04-patterns/06-utilities/center-content'; +/*! 6.6.4. Margin Container */ +@import '04-patterns/06-utilities/margin-container'; +/*! 6.6.5. Separator */ +@import '04-patterns/06-utilities/separator'; +/*! 6.6.6. Pull to Refresh */ +@import '04-patterns/06-utilities/pull-to-refresh'; +/*! 6.6.7. List Updating */ +@import '04-patterns/06-utilities/list-updating'; +/*! 6.6.8. Provider Login Button */ +@import '04-patterns/06-utilities/provider-login-button'; + +/*! 6.7. Advanced */ +/*! 6.7.1. Dropdown ServerSide */ +@import '../scripts/OSFramework/OSUI/Pattern/Dropdown/ServerSide/scss/_dropdown-serverside'; +/*! 6.7.2. Dropdown ServerSide Item */ +@import '../scripts/OSFramework/OSUI/Pattern/DropdownServerSideItem/scss/dropdownserversideitem'; +/*! 6.8. Deprecated Patterns */ +/*! 6.8.1. Accordion */ +@import '10-deprecated/accordion-deprecated'; +/*! 6.8.2. Button Loading */ +@import '10-deprecated/button-loading-deprecated'; +/*! 6.8.3. Carousel */ +@import '10-deprecated/carousel-deprecated'; +/*! 6.8.4. Datepicker */ +@import '10-deprecated/date-picker-deprecated'; +/*! 6.8.5. Dropdown Search an Tags (Common) */ +@import '10-deprecated/dropdown-search-and-tags-deprecated'; +/*! 6.8.6. Dropdown Search */ +@import '10-deprecated/dropdown-search-deprecated'; +/*! 6.8.7. Dropdown Tags */ +@import '10-deprecated/dropdown-tags-deprecated'; +/*! 6.8.8. Flip Content */ +@import '10-deprecated/flip-content-deprecated'; +/*! 6.8.9. Gallery */ +@import '10-deprecated/gallery-deprecated'; +/*! 6.8.10. Horizontal Scroll */ +@import '10-deprecated/horizontal-scroll-deprecated'; +/*! 6.8.11. Notification */ +@import '10-deprecated/notification-deprecated'; +/*! 6.8.12. Progress Bar */ +@import '10-deprecated/progress-bar-deprecated'; +/*! 6.8.13. Progress Circle */ +@import '10-deprecated/progress-circle-deprecated'; +/*! 6.8.14. Progress Circle Fraction */ +@import '10-deprecated/progress-circle-fraction-deprecated'; +/*! 6.8.15. Section Index */ +@import '10-deprecated/section-index-deprecated'; +/*! 6.8.16. Sidebar */ +@import '10-deprecated/sidebar-deprecated'; +/*! 6.8.17. Search */ +@import '10-deprecated/search-deprecated'; +/*! 6.8.18. Submenu */ +@import '10-deprecated/submenu-deprecated'; +/*! 6.8.19. Tabs */ +@import '10-deprecated/tabs-deprecated'; +/*! 6.8.20. Tooltip */ +@import '10-deprecated/tooltip-deprecated'; +/*! 6.8.21. Video */ +@import '10-deprecated/video-deprecated'; + +/*! ============================================================================== +7. Usefull Classes +=============================================================================== */ +/*! 7.1. a11y (Accessibility) */ +@import '05-useful/a11y'; +/*! 7.2. Colors - Brand */ +@import '05-useful/colors-brand'; +/*! 7.3. Colors - Neutral */ +@import '05-useful/colors-neutral'; +/*! 7.4. Colors - Palette */ +@import '05-useful/colors-palette'; +/*! 7.5. Colors - Semantic */ +@import '05-useful/colors-semantic'; +/*! 7.6. Colors - Others */ +@import '05-useful/colors-others'; +/*! 7.7. Text */ +@import '05-useful/text'; +/*! 7.8. Typography */ +@import '05-useful/typography'; +/*! 7.9. Border Size */ +@import '05-useful/border-size'; +/*! 7.10. Border Radius */ +@import '05-useful/border-radius'; +/*! 7.11. Space - Margin */ +@import '05-useful/space-margin'; +/*! 7.12. Space - Padding */ +@import '05-useful/space-padding'; +/*! 7.13. Shadow */ +@import '05-useful/shadow'; +/*! 7.14. Box Width */ +@import '05-useful/box-width'; +/*! 7.15. Box Height */ +@import '05-useful/box-height'; +/*! 7.16. Display */ +@import '05-useful/display'; +/*! 7.17. Display - Flex */ +@import '05-useful/display-flex'; +/*! 7.18. Display - Align */ +@import '05-useful/display-align'; +/*! 7.19. Images */ +@import '05-useful/images'; +/*! 7.20. Overflow */ +@import '05-useful/overflow'; +/*! 7.21. Visibility */ +@import '05-useful/visibility'; +/*! 7.22. Position */ +@import '05-useful/positioning'; +/*! 7.23. Position - Absolute */ +@import '05-useful/positioning-absolute'; +/*! 7.24. Miscellaneous */ +@import '05-useful/miscellaneous'; + +/*! ============================================================================== +8. Screen Transitions +=============================================================================== */ +@import '06-screen-transitions/screen-transitions'; + +/*! ============================================================================== +9. Keyframes - Animations +=============================================================================== */ +/*! 9.1. Animate */ +@import '07-keyframes/animate'; +/*! 9.2. Button Loading */ +@import '07-keyframes/btn-loading'; +/*! 9.3. List Item */ +@import '07-keyframes/list-item'; +/*! 9.4. Feedback Message */ +@import '07-keyframes/feedback-message'; +/*! 9.5. Pull To Refresh */ +@import '07-keyframes/pull-to-refresh'; +/*! 9.6. Miscellaneous */ +@import '07-keyframes/miscellaneous'; + +/*! ============================================================================== +10. Service Studio Preview +=============================================================================== */ +@import '08-servicestudio-preview/servicestudiopreview'; +@import '08-servicestudio-preview/deprecated-preview'; + +/* =============================================================================== +Excluders +=============================================================================== */ +@import '09-excluders/excluders'; + diff --git a/tsconfig.json b/tsconfig.json index 760a8a595b..bc45a45ad2 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -57,6 +57,7 @@ "skipLibCheck": true, /* Skip type checking of declaration files. */ "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ }, + "exclude": [], "include": [ "./src/scripts" ]