@aquera/nile-elements 1.5.5 → 1.5.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +569 -263
- package/dist/nile-auto-complete/nile-auto-complete.cjs.js +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.cjs.js.map +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.css.cjs.js +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.css.cjs.js.map +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.css.esm.js +15 -2
- package/dist/nile-auto-complete/nile-auto-complete.esm.js +1 -1
- package/dist/nile-button/nile-button.cjs.js +1 -1
- package/dist/nile-button/nile-button.cjs.js.map +1 -1
- package/dist/nile-button/nile-button.css.cjs.js +1 -1
- package/dist/nile-button/nile-button.css.cjs.js.map +1 -1
- package/dist/nile-button/nile-button.css.esm.js +96 -36
- package/dist/nile-button/nile-button.esm.js +2 -2
- package/dist/nile-calendar/nile-calendar.cjs.js +1 -1
- package/dist/nile-calendar/nile-calendar.cjs.js.map +1 -1
- package/dist/nile-calendar/nile-calendar.css.cjs.js +1 -1
- package/dist/nile-calendar/nile-calendar.css.cjs.js.map +1 -1
- package/dist/nile-calendar/nile-calendar.css.esm.js +66 -2
- package/dist/nile-calendar/nile-calendar.esm.js +22 -15
- package/dist/nile-checkbox/nile-checkbox.css.cjs.js +1 -1
- package/dist/nile-checkbox/nile-checkbox.css.cjs.js.map +1 -1
- package/dist/nile-checkbox/nile-checkbox.css.esm.js +4 -5
- package/dist/nile-chip/nile-chip.css.cjs.js +1 -1
- package/dist/nile-chip/nile-chip.css.cjs.js.map +1 -1
- package/dist/nile-chip/nile-chip.css.esm.js +38 -23
- package/dist/nile-code-editor/nile-code-editor.cjs.js +1 -1
- package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
- package/dist/nile-code-editor/nile-code-editor.css.cjs.js +1 -1
- package/dist/nile-code-editor/nile-code-editor.css.cjs.js.map +1 -1
- package/dist/nile-code-editor/nile-code-editor.css.esm.js +10 -6
- package/dist/nile-code-editor/nile-code-editor.esm.js +2 -1
- package/dist/nile-date-picker/nile-date-picker.cjs.js +1 -1
- package/dist/nile-date-picker/nile-date-picker.cjs.js.map +1 -1
- package/dist/nile-date-picker/nile-date-picker.esm.js +4 -4
- package/dist/nile-dropdown/nile-dropdown.cjs.js +1 -1
- package/dist/nile-dropdown/nile-dropdown.cjs.js.map +1 -1
- package/dist/nile-dropdown/nile-dropdown.esm.js +1 -1
- package/dist/nile-file-upload/utils/file-validation.util.cjs.js +2 -2
- package/dist/nile-file-upload/utils/file-validation.util.cjs.js.map +1 -1
- package/dist/nile-file-upload/utils/file-validation.util.esm.js +1 -1
- package/dist/nile-filter-chip/nile-filter-chip.cjs.js +1 -1
- package/dist/nile-filter-chip/nile-filter-chip.cjs.js.map +1 -1
- package/dist/nile-filter-chip/nile-filter-chip.css.cjs.js +1 -1
- package/dist/nile-filter-chip/nile-filter-chip.css.cjs.js.map +1 -1
- package/dist/nile-filter-chip/nile-filter-chip.css.esm.js +28 -0
- package/dist/nile-filter-chip/nile-filter-chip.esm.js +2 -2
- package/dist/nile-icon/icons/svg/close.cjs.js +1 -1
- package/dist/nile-icon/icons/svg/close.cjs.js.map +1 -1
- package/dist/nile-icon/icons/svg/close.esm.js +1 -1
- package/dist/nile-inline-edit/nile-inline-edit.cjs.js +1 -1
- package/dist/nile-inline-edit/nile-inline-edit.cjs.js.map +1 -1
- package/dist/nile-inline-edit/nile-inline-edit.css.cjs.js +1 -1
- package/dist/nile-inline-edit/nile-inline-edit.css.cjs.js.map +1 -1
- package/dist/nile-inline-edit/nile-inline-edit.css.esm.js +15 -6
- package/dist/nile-inline-edit/nile-inline-edit.esm.js +2 -2
- package/dist/nile-input/nile-input.cjs.js +1 -1
- package/dist/nile-input/nile-input.cjs.js.map +1 -1
- package/dist/nile-input/nile-input.css.cjs.js +1 -1
- package/dist/nile-input/nile-input.css.cjs.js.map +1 -1
- package/dist/nile-input/nile-input.css.esm.js +15 -5
- package/dist/nile-input/nile-input.esm.js +2 -0
- package/dist/nile-link/nile-link.cjs.js +1 -1
- package/dist/nile-link/nile-link.cjs.js.map +1 -1
- package/dist/nile-link/nile-link.css.cjs.js +1 -1
- package/dist/nile-link/nile-link.css.cjs.js.map +1 -1
- package/dist/nile-link/nile-link.css.esm.js +3 -2
- package/dist/nile-link/nile-link.esm.js +2 -2
- package/dist/nile-qr-code/index.cjs.js +2 -0
- package/dist/nile-qr-code/index.cjs.js.map +1 -0
- package/dist/nile-qr-code/index.esm.js +1 -0
- package/dist/nile-qr-code/nile-qr-code-utils.cjs.js +2 -0
- package/dist/nile-qr-code/nile-qr-code-utils.cjs.js.map +1 -0
- package/dist/nile-qr-code/nile-qr-code-utils.esm.js +1 -0
- package/dist/nile-qr-code/nile-qr-code.cjs.js +2 -0
- package/dist/nile-qr-code/nile-qr-code.cjs.js.map +1 -0
- package/dist/nile-qr-code/nile-qr-code.css.cjs.js +2 -0
- package/dist/nile-qr-code/nile-qr-code.css.cjs.js.map +1 -0
- package/dist/nile-qr-code/nile-qr-code.css.esm.js +12 -0
- package/dist/nile-qr-code/nile-qr-code.esm.js +9 -0
- package/dist/nile-radio/nile-radio.cjs.js +1 -1
- package/dist/nile-radio/nile-radio.cjs.js.map +1 -1
- package/dist/nile-radio/nile-radio.css.cjs.js +1 -1
- package/dist/nile-radio/nile-radio.css.cjs.js.map +1 -1
- package/dist/nile-radio/nile-radio.css.esm.js +3 -3
- package/dist/nile-radio/nile-radio.esm.js +2 -2
- package/dist/nile-radio-group/nile-radio-group.cjs.js +1 -1
- package/dist/nile-radio-group/nile-radio-group.cjs.js.map +1 -1
- package/dist/nile-radio-group/nile-radio-group.esm.js +1 -1
- package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js +1 -1
- package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js.map +1 -1
- package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js +1 -1
- package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js.map +1 -1
- package/dist/nile-rich-text-editor/nile-rich-text-editor.css.esm.js +31 -6
- package/dist/nile-rich-text-editor/nile-rich-text-editor.esm.js +1 -1
- package/dist/nile-rich-text-editor/nile-rte-select.cjs.js +1 -1
- package/dist/nile-rich-text-editor/nile-rte-select.cjs.js.map +1 -1
- package/dist/nile-rich-text-editor/nile-rte-select.esm.js +4 -3
- package/dist/nile-select/nile-select.cjs.js +1 -1
- package/dist/nile-select/nile-select.cjs.js.map +1 -1
- package/dist/nile-select/nile-select.css.cjs.js +1 -1
- package/dist/nile-select/nile-select.css.cjs.js.map +1 -1
- package/dist/nile-select/nile-select.css.esm.js +27 -8
- package/dist/nile-select/nile-select.esm.js +6 -6
- package/dist/nile-slide-toggle/nile-slide-toggle.cjs.js +1 -1
- package/dist/nile-slide-toggle/nile-slide-toggle.cjs.js.map +1 -1
- package/dist/nile-slide-toggle/nile-slide-toggle.css.cjs.js +1 -1
- package/dist/nile-slide-toggle/nile-slide-toggle.css.cjs.js.map +1 -1
- package/dist/nile-slide-toggle/nile-slide-toggle.css.esm.js +5 -1
- package/dist/nile-slide-toggle/nile-slide-toggle.esm.js +4 -3
- package/dist/nile-textarea/nile-textarea.css.cjs.js +1 -1
- package/dist/nile-textarea/nile-textarea.css.cjs.js.map +1 -1
- package/dist/nile-textarea/nile-textarea.css.esm.js +18 -6
- package/dist/nile-virtual-select/nile-virtual-select.cjs.js +3 -3
- package/dist/nile-virtual-select/nile-virtual-select.cjs.js.map +1 -1
- package/dist/nile-virtual-select/nile-virtual-select.css.cjs.js +1 -1
- package/dist/nile-virtual-select/nile-virtual-select.css.cjs.js.map +1 -1
- package/dist/nile-virtual-select/nile-virtual-select.css.esm.js +17 -5
- package/dist/nile-virtual-select/nile-virtual-select.esm.js +5 -5
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/nile-auto-complete/nile-auto-complete.css.js +13 -0
- package/dist/src/nile-auto-complete/nile-auto-complete.css.js.map +1 -1
- package/dist/src/nile-auto-complete/nile-auto-complete.js +1 -1
- package/dist/src/nile-auto-complete/nile-auto-complete.js.map +1 -1
- package/dist/src/nile-button/nile-button.css.js +96 -36
- package/dist/src/nile-button/nile-button.css.js.map +1 -1
- package/dist/src/nile-button/nile-button.js +5 -5
- package/dist/src/nile-button/nile-button.js.map +1 -1
- package/dist/src/nile-calendar/nile-calendar.css.js +64 -0
- package/dist/src/nile-calendar/nile-calendar.css.js.map +1 -1
- package/dist/src/nile-calendar/nile-calendar.d.ts +1 -0
- package/dist/src/nile-calendar/nile-calendar.js +30 -11
- package/dist/src/nile-calendar/nile-calendar.js.map +1 -1
- package/dist/src/nile-checkbox/nile-checkbox.css.js +4 -5
- package/dist/src/nile-checkbox/nile-checkbox.css.js.map +1 -1
- package/dist/src/nile-chip/nile-chip.css.js +36 -21
- package/dist/src/nile-chip/nile-chip.css.js.map +1 -1
- package/dist/src/nile-code-editor/nile-code-editor.css.js +10 -6
- package/dist/src/nile-code-editor/nile-code-editor.css.js.map +1 -1
- package/dist/src/nile-code-editor/nile-code-editor.d.ts +1 -1
- package/dist/src/nile-code-editor/nile-code-editor.js +8 -1
- package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
- package/dist/src/nile-date-picker/nile-date-picker.d.ts +3 -0
- package/dist/src/nile-date-picker/nile-date-picker.js +22 -2
- package/dist/src/nile-date-picker/nile-date-picker.js.map +1 -1
- package/dist/src/nile-detail/nile-detail.test.js +6 -6
- package/dist/src/nile-detail/nile-detail.test.js.map +1 -1
- package/dist/src/nile-dropdown/nile-dropdown.d.ts +1 -0
- package/dist/src/nile-dropdown/nile-dropdown.js +11 -0
- package/dist/src/nile-dropdown/nile-dropdown.js.map +1 -1
- package/dist/src/nile-file-upload/utils/file-validation.util.js +11 -6
- package/dist/src/nile-file-upload/utils/file-validation.util.js.map +1 -1
- package/dist/src/nile-filter-chip/nile-filter-chip.css.js +28 -0
- package/dist/src/nile-filter-chip/nile-filter-chip.css.js.map +1 -1
- package/dist/src/nile-filter-chip/nile-filter-chip.d.ts +1 -0
- package/dist/src/nile-filter-chip/nile-filter-chip.js +6 -0
- package/dist/src/nile-filter-chip/nile-filter-chip.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/close.d.ts +1 -1
- package/dist/src/nile-icon/icons/svg/close.js +1 -1
- package/dist/src/nile-icon/icons/svg/close.js.map +1 -1
- package/dist/src/nile-inline-edit/nile-inline-edit.css.js +15 -6
- package/dist/src/nile-inline-edit/nile-inline-edit.css.js.map +1 -1
- package/dist/src/nile-inline-edit/nile-inline-edit.d.ts +2 -0
- package/dist/src/nile-inline-edit/nile-inline-edit.js +7 -0
- package/dist/src/nile-inline-edit/nile-inline-edit.js.map +1 -1
- package/dist/src/nile-inline-sidebar-group/nile-inline-sidebar-group.test.js +1 -1
- package/dist/src/nile-inline-sidebar-group/nile-inline-sidebar-group.test.js.map +1 -1
- package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.test.js +5 -5
- package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.test.js.map +1 -1
- package/dist/src/nile-input/nile-input.css.js +15 -5
- package/dist/src/nile-input/nile-input.css.js.map +1 -1
- package/dist/src/nile-input/nile-input.js +2 -0
- package/dist/src/nile-input/nile-input.js.map +1 -1
- package/dist/src/nile-link/nile-link.css.js +3 -2
- package/dist/src/nile-link/nile-link.css.js.map +1 -1
- package/dist/src/nile-link/nile-link.js +1 -0
- package/dist/src/nile-link/nile-link.js.map +1 -1
- package/dist/src/nile-qr-code/index.d.ts +1 -0
- package/dist/src/nile-qr-code/index.js +2 -0
- package/dist/src/nile-qr-code/index.js.map +1 -0
- package/dist/src/nile-qr-code/nile-qr-code-utils.d.ts +15 -0
- package/dist/src/nile-qr-code/nile-qr-code-utils.js +678 -0
- package/dist/src/nile-qr-code/nile-qr-code-utils.js.map +1 -0
- package/dist/src/nile-qr-code/nile-qr-code.css.d.ts +12 -0
- package/dist/src/nile-qr-code/nile-qr-code.css.js +24 -0
- package/dist/src/nile-qr-code/nile-qr-code.css.js.map +1 -0
- package/dist/src/nile-qr-code/nile-qr-code.d.ts +127 -0
- package/dist/src/nile-qr-code/nile-qr-code.js +381 -0
- package/dist/src/nile-qr-code/nile-qr-code.js.map +1 -0
- package/dist/src/nile-qr-code/nile-qr-code.test.d.ts +1 -0
- package/dist/src/nile-qr-code/nile-qr-code.test.js +719 -0
- package/dist/src/nile-qr-code/nile-qr-code.test.js.map +1 -0
- package/dist/src/nile-radio/nile-radio.css.js +3 -3
- package/dist/src/nile-radio/nile-radio.css.js.map +1 -1
- package/dist/src/nile-radio/nile-radio.js +15 -1
- package/dist/src/nile-radio/nile-radio.js.map +1 -1
- package/dist/src/nile-radio-group/nile-radio-group.js +8 -0
- package/dist/src/nile-radio-group/nile-radio-group.js.map +1 -1
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js +31 -6
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js.map +1 -1
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.d.ts +1 -0
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js +23 -7
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js.map +1 -1
- package/dist/src/nile-rich-text-editor/nile-rte-select.d.ts +1 -0
- package/dist/src/nile-rich-text-editor/nile-rte-select.js +7 -2
- package/dist/src/nile-rich-text-editor/nile-rte-select.js.map +1 -1
- package/dist/src/nile-select/nile-select.css.js +27 -8
- package/dist/src/nile-select/nile-select.css.js.map +1 -1
- package/dist/src/nile-select/nile-select.js +2 -2
- package/dist/src/nile-select/nile-select.js.map +1 -1
- package/dist/src/nile-slide-toggle/nile-slide-toggle.css.js +5 -1
- package/dist/src/nile-slide-toggle/nile-slide-toggle.css.js.map +1 -1
- package/dist/src/nile-slide-toggle/nile-slide-toggle.js +1 -0
- package/dist/src/nile-slide-toggle/nile-slide-toggle.js.map +1 -1
- package/dist/src/nile-textarea/nile-textarea.css.js +18 -6
- package/dist/src/nile-textarea/nile-textarea.css.js.map +1 -1
- package/dist/src/nile-virtual-select/nile-virtual-select.css.js +17 -5
- package/dist/src/nile-virtual-select/nile-virtual-select.css.js.map +1 -1
- package/dist/src/nile-virtual-select/nile-virtual-select.js +2 -2
- package/dist/src/nile-virtual-select/nile-virtual-select.js.map +1 -1
- package/dist/src/version.js +2 -2
- package/dist/src/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -2
- package/src/index.ts +2 -1
- package/src/nile-auto-complete/nile-auto-complete.css.ts +13 -0
- package/src/nile-auto-complete/nile-auto-complete.ts +1 -1
- package/src/nile-button/nile-button.css.ts +96 -36
- package/src/nile-button/nile-button.ts +6 -5
- package/src/nile-calendar/nile-calendar.css.ts +64 -0
- package/src/nile-calendar/nile-calendar.ts +23 -11
- package/src/nile-checkbox/nile-checkbox.css.ts +4 -5
- package/src/nile-chip/nile-chip.css.ts +36 -21
- package/src/nile-code-editor/nile-code-editor.css.ts +10 -6
- package/src/nile-code-editor/nile-code-editor.ts +8 -1
- package/src/nile-date-picker/nile-date-picker.ts +22 -2
- package/src/nile-detail/nile-detail.test.ts +6 -6
- package/src/nile-dropdown/nile-dropdown.ts +11 -0
- package/src/nile-file-upload/utils/file-validation.util.ts +10 -5
- package/src/nile-filter-chip/nile-filter-chip.css.ts +28 -0
- package/src/nile-filter-chip/nile-filter-chip.ts +2 -0
- package/src/nile-icon/icons/svg/close.ts +1 -1
- package/src/nile-inline-edit/nile-inline-edit.css.ts +15 -6
- package/src/nile-inline-edit/nile-inline-edit.ts +4 -0
- package/src/nile-inline-sidebar-group/nile-inline-sidebar-group.test.ts +1 -1
- package/src/nile-inline-sidebar-item/nile-inline-sidebar-item.test.ts +5 -5
- package/src/nile-input/nile-input.css.ts +15 -5
- package/src/nile-input/nile-input.ts +2 -0
- package/src/nile-link/nile-link.css.ts +3 -2
- package/src/nile-link/nile-link.ts +1 -0
- package/src/nile-qr-code/index.ts +1 -0
- package/src/nile-qr-code/nile-qr-code-utils.ts +733 -0
- package/src/nile-qr-code/nile-qr-code.css.ts +26 -0
- package/src/nile-qr-code/nile-qr-code.test.ts +879 -0
- package/src/nile-qr-code/nile-qr-code.ts +431 -0
- package/src/nile-radio/nile-radio.css.ts +3 -3
- package/src/nile-radio/nile-radio.ts +17 -3
- package/src/nile-radio-group/nile-radio-group.ts +6 -0
- package/src/nile-rich-text-editor/nile-rich-text-editor.css.ts +31 -6
- package/src/nile-rich-text-editor/nile-rich-text-editor.ts +20 -7
- package/src/nile-rich-text-editor/nile-rte-select.ts +5 -2
- package/src/nile-select/nile-select.css.ts +27 -8
- package/src/nile-select/nile-select.ts +2 -2
- package/src/nile-slide-toggle/nile-slide-toggle.css.ts +5 -1
- package/src/nile-slide-toggle/nile-slide-toggle.ts +1 -0
- package/src/nile-textarea/nile-textarea.css.ts +18 -6
- package/src/nile-virtual-select/nile-virtual-select.css.ts +17 -5
- package/src/nile-virtual-select/nile-virtual-select.ts +2 -2
- package/vscode-html-custom-data.json +108 -6
- package/web-test-runner.config.mjs +7 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nile-qr-code.test.js","sourceRoot":"","sources":["../../../src/nile-qr-code/nile-qr-code.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,gBAAgB,CAAC;AACxB,OAAO,UAAU,MAAM,gBAAgB,CAAC;AAExC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,oBAAoB;IAEpB,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,CAAC,MAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtD,MAAM,CAAC,MAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,CAAC,EAAE,CAAC,UAAW,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,kCAAkC;IAElC,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,2BAA2B;IAE3B,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,2DAA2D,CAAC,CAAC;QACtG,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,0CAA0C,CAAC,CAAC;QACrF,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,0CAA0C,CAAC,CAAC;QACrF,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,iDAAiD,CAAC,CAAC;QAC5F,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,4CAA4C,CAAC,CAAC;QACvF,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,oDAAoD,CAAC,CAAC;QAC/F,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+CAA+C,CAAC,CAAC;QAC1F,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,+BAA+B;IAE/B,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,4CAA4C,CAAC,CAAC;QACvF,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,yCAAyC,CAAC,CAAC;QACpF,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,4CAA4C,CAAC,CAAC;QACvF,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,mDAAmD,CAAC,CAAC;QAC9F,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,4CAA4C,CAAC,CAAC;QACvF,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,oDAAoD,CAAC,CAAC;QAC/F,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,6CAA6C,CAAC,CAAC;QACxF,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,wBAAwB;IAExB,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,CAAC,MAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+EAA+E,CAAC,CAAC;QAC1H,MAAM,MAAM,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,CAAC,MAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,wDAAwD,CAAC,CAAC;QACnG,MAAM,MAAM,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,CAAC,MAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;QAC1F,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,CAAC,MAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,oBAAoB;IAEpB,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,uBAAuB;IAEvB,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,yCAAyC,CAAC,CAAC;QACpF,MAAM,MAAM,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,CAAC,MAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,0CAA0C,CAAC,CAAC;QACrF,MAAM,MAAM,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,CAAC,MAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,uDAAuD,CAAC,CAAC;QAClG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC;QACb,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,MAAM,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,CAAC,MAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,wBAAwB;IAExB,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,6CAA6C,CAAC,CAAC;QACxF,MAAM,MAAM,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QACxB,wCAAwC;QACxC,MAAM,GAAG,GAAG,MAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,6CAA6C,CAAC,CAAC;QACxF,EAAE,CAAC,KAAK,GAAG,QAAQ,CAAC;QACpB,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,wCAAwC,CAAC,CAAC;QACnF,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QACpB,MAAM,CAAC,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,OAAO,GAAG,sBAAsB,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,uBAAuB,OAAO,kBAAkB,CAAC,CAAC;QAC3F,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QACpB,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,kCAAkC;IAElC,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,iEAAiE,CAAC,CAAC;QAC5G,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,iEAAiE,CAAC,CAAC;QAC5G,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,iEAAiE,CAAC,CAAC;QAC5G,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,iEAAiE,CAAC,CAAC;QAC5G,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,iBAAiB;IAEjB,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,0CAA0C,CAAC,CAAC;QACrF,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,4CAA4C,CAAC,CAAC;QACvF,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,6CAA6C,CAAC,CAAC;QACxF,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,2BAA2B;IAE3B,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,8CAA8C,CAAC,CAAC;QACzF,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,mDAAmD,CAAC,CAAC;QAC9F,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,wDAAwD,CAAC,CAAC;QACnG,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,oDAAoD,CAAC,CAAC;QAC/F,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,mBAAmB;IAEnB,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,wBAAwB;IAExB,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QACxB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QACjC,MAAM,CAAE,MAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,wBAAwB;IAExB,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,2BAA2B;IAE3B,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,cAAc,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,4CAA4C,CAAC,CAAC;QACvF,MAAM,EAAE,CAAC,aAAa,EAAE,CAAC;QACzB,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,MAAM,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,4CAA4C,CAAC,CAAC;QACvF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,EAAE,CAAC,aAAa,EAAE,CAAC;YACzB,MAAM,EAAE,CAAC,cAAc,CAAC;QAC1B,CAAC;QACD,MAAM,MAAM,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,wBAAwB;IAExB,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,QAAQ,GAAG,EAAE,CAAC,UAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC3D,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,KAAK,GAAG,EAAE,CAAC,UAAW,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,EAAE,CAAC,UAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,OAAO,GAAG,EAAE,CAAC,UAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC1D,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,2BAA2B;IAE3B,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,IAAI,CAAA,aAAa,CAAC,CAAC;QACnD,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAe,CAAC;QAChE,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC1B,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,IAAI,CAAA,aAAa,CAAC,CAAC;QACnD,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAe,CAAC;QAChE,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC1B,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC1B,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC1B,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,EAAE,GAAG,IAAI,UAAU,EAAE,CAAC;QAC5B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC9B,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QACxD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAe,CAAC;QAChE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC9B,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAClC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,EAAE,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,6BAA6B;IAE7B,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,IAAI,CAAA,4EAA4E,CAAC,CAAC;QAClH,MAAM,EAAE,GAAG,SAAS,CAAC,aAAa,CAAC,cAAc,CAAE,CAAC;QACpD,MAAM,CAAE,EAAiB,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,IAAI,CAAA,4EAA4E,CAAC,CAAC;QAClH,MAAM,EAAE,GAAG,SAAS,CAAC,aAAa,CAAC,cAAc,CAAE,CAAC;QACpD,MAAM,CAAE,EAAiB,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,oDAAoD,CAAC,CAAC;QAC/F,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,0CAA0C,CAAC,CAAC;QACrF,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,mDAAmD,CAAC,CAAC;QAC9F,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,sCAAsC,CAAC,CAAC;QACjF,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,6BAA6B;IAE7B,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,IAAI,CAAA;;;;;;KAMnC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,SAAS,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;QAC3D,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,IAAI,CAAA;;;;;KAKnC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,SAAS,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;QAC3D,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,IAAI,CAAA;;;;;KAKnC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,SAAS,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;QAC3D,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YACnB,MAAM,CAAE,EAAiB,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC1E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,wCAAwC;IAExC,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,yDAAyD,CAAC,CAAC;QACpG,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC;QAChB,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+DAA+D,CAAC,CAAC;QAC1G,EAAE,CAAC,UAAU,GAAG,aAAa,CAAC;QAC9B,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,uDAAuD,CAAC,CAAC;QAClG,EAAE,CAAC,MAAM,GAAG,GAAG,CAAC;QAChB,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QAC/E,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,iEAAiE,CAAC,CAAC;QAC5G,EAAE,CAAC,eAAe,GAAG,GAAG,CAAC;QACzB,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,qBAAqB;IAErB,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,IAAI,CAAA,aAAa,CAAgB,CAAC;QACnE,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,IAAI,CAAA,aAAa,CAAgB,CAAC;QACnE,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAe,CAAC;QAChE,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC3B,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC3B,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,IAAI,CAAA,aAAa,CAAgB,CAAC;QAClE,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAe,CAAC;QAChE,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC1B,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC1B,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC1B,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,CAAC,EAAE,CAAC,UAAW,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,iDAAiD,CAAC,CAAC;QAC5F,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,kDAAkD,CAAC,CAAC;QAC7F,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,4BAA4B;IAE5B,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,0CAA0C,CAAC,CAAC;QACrF,MAAM,MAAM,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,CAAC,MAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,0CAA0C,CAAC,CAAC;QACrF,MAAM,MAAM,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,CAAC,MAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,CAAC,MAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,CAAC,MAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,CAAC,MAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,0BAA0B;IAE1B,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,IAAI,CAAA,yDAAyD,CAAgB,CAAC;QAC9G,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC1D,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA;;;;;;;;;;KAUxC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACjD,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QACxB,MAAM,CAAC,MAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,iCAAiC;IAEjC,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,yCAAyC;IAEzC,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,oEAAoE,CAAC,CAAC;QAC/G,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,gDAAgD,CAAC,CAAC;QAC3F,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,iDAAiD,CAAC,CAAC;QAC5F,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,iDAAiD,CAAC,CAAC;QAC5F,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,6CAA6C;IAE7C,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,gDAAgD,CAAC,CAAC;QAC3F,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,iDAAiD,CAAC,CAAC;QAC5F,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,iDAAiD,CAAC,CAAC;QAC5F,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,iDAAiD,CAAC,CAAC;QAC5F,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,kCAAkC;IAElC,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,iFAAiF,CAAC,CAAC;QAC5H,MAAM,CAAC,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,oEAAoE,CAAC,CAAC;QAC/G,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QACpB,MAAM,CAAC,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,4CAA4C,CAAC,CAAC;QACvF,EAAE,CAAC,KAAK,GAAG,8BAA8B,CAAC;QAC1C,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,iFAAiF,CAAC,CAAC;QAC5H,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC;QACd,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,iCAAiC;IAEjC,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAC1E,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,yCAAyC;IAEzC,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,qEAAqE,CAAC,CAAC;QAChH,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,6DAA6D,CAAC,CAAC;QACxG,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,2EAA2E,CAAC,CAAC;QACtH,MAAM,CAAC,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,oEAAoE,CAAC,CAAC;QAC/G,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QACpB,MAAM,CAAC,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,4FAA4F,CAAC,CAAC;QACvI,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,4CAA4C,CAAC,CAAC;QACvF,EAAE,CAAC,YAAY,GAAG,gBAAgB,CAAC;QACnC,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,0BAA0B;IAE1B,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,4CAA4C,CAAC,CAAC;QACvF,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,4CAA4C,CAAC,CAAC;QACvF,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,4CAA4C,CAAC,CAAC;QACvF,MAAM,OAAO,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;QAC/B,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAClC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,4CAA4C,CAAC,CAAC;QACvF,MAAM,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA,4CAA4C,CAAC,CAAC;QACvF,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,4BAA4B;IAE5B,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA;;;;;;KAMxC,CAAC,CAAC;QACH,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAa,IAAI,CAAA;;;;;;;;;;;;;;;KAexC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACjD,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC1D,MAAM,CAAC,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { expect, fixture, html } from '@open-wc/testing';\nimport './nile-qr-code';\nimport NileQrCode from './nile-qr-code';\n\ndescribe('NileQrCode', () => {\n // === RENDERING ===\n\n it('1. should render without errors', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el).to.exist;\n });\n\n it('2. should have a shadow root', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.shadowRoot).to.not.be.null;\n });\n\n it('3. should render a canvas element', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas).to.exist;\n });\n\n it('4. should have a canvas with correct default size', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas!.getAttribute('width')).to.equal('128');\n expect(canvas!.getAttribute('height')).to.equal('128');\n });\n\n it('5. shadow root should be open mode', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.shadowRoot!.mode).to.equal('open');\n });\n\n // === DEFAULT PROPERTY VALUES ===\n\n it('6. should have default value of empty string', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.value).to.equal('');\n });\n\n it('7. should have default size of 128', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.size).to.equal(128);\n });\n\n it('8. should have default fill of black', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.fill).to.equal('black');\n });\n\n it('9. should have default background of white', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.background).to.equal('white');\n });\n\n it('10. should have default radius of 0', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.radius).to.equal(0);\n });\n\n it('11. should have default errorCorrection of H', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.errorCorrection).to.equal('H');\n });\n\n it('12. should have default label of empty string', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.label).to.equal('');\n });\n\n // === PROPERTY SETTING ===\n\n it('13. should accept value property', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"https://example.com\"></nile-qr-code>`);\n expect(el.value).to.equal('https://example.com');\n });\n\n it('14. should accept size property', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code size=\"256\"></nile-qr-code>`);\n expect(el.size).to.equal(256);\n });\n\n it('15. should accept fill property', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code fill=\"red\"></nile-qr-code>`);\n expect(el.fill).to.equal('red');\n });\n\n it('16. should accept background property', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code background=\"blue\"></nile-qr-code>`);\n expect(el.background).to.equal('blue');\n });\n\n it('17. should accept radius property', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code radius=\"0.5\"></nile-qr-code>`);\n expect(el.radius).to.equal(0.5);\n });\n\n it('18. should accept error-correction property', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code error-correction=\"L\"></nile-qr-code>`);\n expect(el.errorCorrection).to.equal('L');\n });\n\n it('19. should accept label property', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code label=\"Scan me\"></nile-qr-code>`);\n expect(el.label).to.equal('Scan me');\n });\n\n // === ATTRIBUTE REFLECTION ===\n\n it('20. should reflect value to attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\"></nile-qr-code>`);\n expect(el.getAttribute('value')).to.equal('test');\n });\n\n it('21. should reflect size to attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code size=\"64\"></nile-qr-code>`);\n expect(el.getAttribute('size')).to.equal('64');\n });\n\n it('22. should reflect fill to attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code fill=\"green\"></nile-qr-code>`);\n expect(el.getAttribute('fill')).to.equal('green');\n });\n\n it('23. should reflect background to attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code background=\"yellow\"></nile-qr-code>`);\n expect(el.getAttribute('background')).to.equal('yellow');\n });\n\n it('24. should reflect radius to attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code radius=\"0.3\"></nile-qr-code>`);\n expect(el.getAttribute('radius')).to.equal('0.3');\n });\n\n it('25. should reflect error-correction to attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code error-correction=\"M\"></nile-qr-code>`);\n expect(el.getAttribute('error-correction')).to.equal('M');\n });\n\n it('26. should reflect label to attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code label=\"My QR\"></nile-qr-code>`);\n expect(el.getAttribute('label')).to.equal('My QR');\n });\n\n // === ACCESSIBILITY ===\n\n it('27. should have role=img on canvas', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas!.getAttribute('role')).to.equal('img');\n });\n\n it('28. should use label for aria-label when provided', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"https://test.com\" label=\"Scan this code\"></nile-qr-code>`);\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas!.getAttribute('aria-label')).to.equal('Scan this code');\n });\n\n it('29. should fallback to value for aria-label when no label', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"https://test.com\"></nile-qr-code>`);\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas!.getAttribute('aria-label')).to.equal('https://test.com');\n });\n\n it('30. should fallback to \"QR Code\" for aria-label when no label and no value', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas!.getAttribute('aria-label')).to.equal('QR Code');\n });\n\n // === CSS PARTS ===\n\n it('31. should have base part on canvas', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n const canvas = el.shadowRoot!.querySelector('[part=\"base\"]');\n expect(canvas).to.exist;\n });\n\n it('32. base part should be the canvas element', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n const canvas = el.shadowRoot!.querySelector('[part=\"base\"]');\n expect(canvas!.tagName.toLowerCase()).to.equal('canvas');\n });\n\n // === SIZE CHANGES ===\n\n it('33. should update canvas width when size changes', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code size=\"64\"></nile-qr-code>`);\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas!.getAttribute('width')).to.equal('64');\n });\n\n it('34. should update canvas height when size changes', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code size=\"256\"></nile-qr-code>`);\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas!.getAttribute('height')).to.equal('256');\n });\n\n it('35. should redraw when size property is changed programmatically', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\" size=\"128\"></nile-qr-code>`);\n el.size = 64;\n await el.updateComplete;\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas!.getAttribute('width')).to.equal('64');\n });\n\n // === VALUE CHANGES ===\n\n it('36. should render QR code when value is set', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"Hello\"></nile-qr-code>`);\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas).to.exist;\n // Canvas should have some drawn content\n const ctx = canvas!.getContext('2d');\n expect(ctx).to.exist;\n });\n\n it('37. should redraw when value changes programmatically', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"First\"></nile-qr-code>`);\n el.value = 'Second';\n await el.updateComplete;\n expect(el.value).to.equal('Second');\n });\n\n it('38. should handle empty value gracefully', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"\"></nile-qr-code>`);\n expect(el).to.exist;\n expect(el.shadowRoot!.querySelector('canvas')).to.exist;\n });\n\n it('39. should handle long URLs', async () => {\n const longUrl = 'https://example.com/' + 'a'.repeat(200);\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=${longUrl}></nile-qr-code>`);\n expect(el).to.exist;\n expect(el.value).to.equal(longUrl);\n });\n\n // === ERROR CORRECTION LEVELS ===\n\n it('40. should accept error-correction L', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\" error-correction=\"L\"></nile-qr-code>`);\n expect(el.errorCorrection).to.equal('L');\n });\n\n it('41. should accept error-correction M', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\" error-correction=\"M\"></nile-qr-code>`);\n expect(el.errorCorrection).to.equal('M');\n });\n\n it('42. should accept error-correction Q', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\" error-correction=\"Q\"></nile-qr-code>`);\n expect(el.errorCorrection).to.equal('Q');\n });\n\n it('43. should accept error-correction H', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\" error-correction=\"H\"></nile-qr-code>`);\n expect(el.errorCorrection).to.equal('H');\n });\n\n // === RADIUS ===\n\n it('44. should accept radius 0', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code radius=\"0\"></nile-qr-code>`);\n expect(el.radius).to.equal(0);\n });\n\n it('45. should accept radius 0.5', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code radius=\"0.5\"></nile-qr-code>`);\n expect(el.radius).to.equal(0.5);\n });\n\n it('46. should accept fractional radius values', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code radius=\"0.25\"></nile-qr-code>`);\n expect(el.radius).to.equal(0.25);\n });\n\n // === COLOR PROPERTIES ===\n\n it('47. should accept hex fill color', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code fill=\"#FF0000\"></nile-qr-code>`);\n expect(el.fill).to.equal('#FF0000');\n });\n\n it('48. should accept rgb fill color', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code fill=\"rgb(255,0,0)\"></nile-qr-code>`);\n expect(el.fill).to.equal('rgb(255,0,0)');\n });\n\n it('49. should accept transparent background', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code background=\"transparent\"></nile-qr-code>`);\n expect(el.background).to.equal('transparent');\n });\n\n it('50. should accept hex background color', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code background=\"#0000FF\"></nile-qr-code>`);\n expect(el.background).to.equal('#0000FF');\n });\n\n // === INSTANCE ===\n\n it('51. should be instance of NileQrCode', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el).to.be.instanceOf(NileQrCode);\n });\n\n it('52. should have correct tag name', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.tagName.toLowerCase()).to.equal('nile-qr-code');\n });\n\n it('53. should be a defined custom element', async () => {\n expect(customElements.get('nile-qr-code')).to.exist;\n });\n\n it('54. should be registered as NileQrCode', async () => {\n expect(customElements.get('nile-qr-code')).to.equal(NileQrCode);\n });\n\n // === STATIC STYLES ===\n\n it('55. should have static styles', async () => {\n const styles = NileQrCode.styles;\n expect(styles).to.exist;\n expect(Array.isArray(styles)).to.be.true;\n });\n\n it('56. styles array should have at least one entry', async () => {\n const styles = NileQrCode.styles;\n expect((styles as any[]).length).to.be.greaterThan(0);\n });\n\n // === RENDER METHOD ===\n\n it('57. should have render method', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.render).to.be.a('function');\n });\n\n it('58. render should return a TemplateResult', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n const result = el.render();\n expect(result).to.exist;\n });\n\n it('59. should not throw when render is called', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(() => el.render()).to.not.throw();\n });\n\n // === UPDATE LIFECYCLE ===\n\n it('60. should have updateComplete promise', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.updateComplete).to.be.a('promise');\n });\n\n it('61. updateComplete should resolve', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n const result = await el.updateComplete;\n expect(result).to.not.be.undefined;\n });\n\n it('62. should render consistently after re-render', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\"></nile-qr-code>`);\n await el.requestUpdate();\n await el.updateComplete;\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas).to.exist;\n });\n\n it('63. should maintain canvas after multiple updates', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\"></nile-qr-code>`);\n for (let i = 0; i < 5; i++) {\n await el.requestUpdate();\n await el.updateComplete;\n }\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas).to.exist;\n });\n\n // === DOM STRUCTURE ===\n\n it('64. canvas should be the only child in shadow root template', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n const canvases = el.shadowRoot!.querySelectorAll('canvas');\n expect(canvases.length).to.equal(1);\n });\n\n it('65. should not have any slot elements', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n const slots = el.shadowRoot!.querySelectorAll('slot');\n expect(slots.length).to.equal(0);\n });\n\n it('66. should not have any input elements', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n const inputs = el.shadowRoot!.querySelectorAll('input');\n expect(inputs.length).to.equal(0);\n });\n\n it('67. should not have any button elements', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n const buttons = el.shadowRoot!.querySelectorAll('button');\n expect(buttons.length).to.equal(0);\n });\n\n it('68. should not have any SVG elements', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n const svgs = el.shadowRoot!.querySelectorAll('svg');\n expect(svgs.length).to.equal(0);\n });\n\n it('69. should not have light DOM content', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.childNodes.length).to.equal(0);\n });\n\n // === DOM MANIPULATION ===\n\n it('70. should render after being added to DOM programmatically', async () => {\n const container = await fixture(html`<div></div>`);\n const el = document.createElement('nile-qr-code') as NileQrCode;\n container.appendChild(el);\n await el.updateComplete;\n expect(el.shadowRoot!.querySelector('canvas')).to.exist;\n });\n\n it('71. should handle removal and re-addition', async () => {\n const container = await fixture(html`<div></div>`);\n const el = document.createElement('nile-qr-code') as NileQrCode;\n container.appendChild(el);\n await el.updateComplete;\n container.removeChild(el);\n container.appendChild(el);\n await el.updateComplete;\n expect(el.shadowRoot!.querySelector('canvas')).to.exist;\n });\n\n it('72. should work when created via new', async () => {\n const el = new NileQrCode();\n document.body.appendChild(el);\n await el.updateComplete;\n expect(el.shadowRoot!.querySelector('canvas')).to.exist;\n document.body.removeChild(el);\n });\n\n it('73. should be connectedCallback-compatible', async () => {\n const el = document.createElement('nile-qr-code') as NileQrCode;\n document.body.appendChild(el);\n await el.updateComplete;\n expect(el.isConnected).to.be.true;\n document.body.removeChild(el);\n });\n\n it('74. should handle disconnectedCallback', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n el.remove();\n expect(el.isConnected).to.be.false;\n });\n\n // === RENDERING CONTEXTS ===\n\n it('75. should render correctly inside a flex container', async () => {\n const container = await fixture(html`<div style=\"display:flex\"><nile-qr-code value=\"test\"></nile-qr-code></div>`);\n const qr = container.querySelector('nile-qr-code')!;\n expect((qr as NileQrCode).shadowRoot!.querySelector('canvas')).to.exist;\n });\n\n it('76. should render correctly inside a grid container', async () => {\n const container = await fixture(html`<div style=\"display:grid\"><nile-qr-code value=\"test\"></nile-qr-code></div>`);\n const qr = container.querySelector('nile-qr-code')!;\n expect((qr as NileQrCode).shadowRoot!.querySelector('canvas')).to.exist;\n });\n\n it('77. should render correctly with class attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code class=\"custom-class\"></nile-qr-code>`);\n expect(el.classList.contains('custom-class')).to.be.true;\n });\n\n it('78. should render correctly with id attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code id=\"my-qr\"></nile-qr-code>`);\n expect(el.id).to.equal('my-qr');\n });\n\n it('79. should render correctly with style attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code style=\"margin:10px\"></nile-qr-code>`);\n expect(el.style.margin).to.equal('10px');\n });\n\n it('80. should render correctly with hidden attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code hidden></nile-qr-code>`);\n expect(el.hidden).to.be.true;\n });\n\n // === MULTIPLE INSTANCES ===\n\n it('81. should render multiple QR codes independently', async () => {\n const container = await fixture(html`\n <div>\n <nile-qr-code value=\"One\"></nile-qr-code>\n <nile-qr-code value=\"Two\"></nile-qr-code>\n <nile-qr-code value=\"Three\"></nile-qr-code>\n </div>\n `);\n const qrCodes = container.querySelectorAll('nile-qr-code');\n expect(qrCodes.length).to.equal(3);\n });\n\n it('82. each QR code should have its own shadow root', async () => {\n const container = await fixture(html`\n <div>\n <nile-qr-code value=\"A\"></nile-qr-code>\n <nile-qr-code value=\"B\"></nile-qr-code>\n </div>\n `);\n const qrCodes = container.querySelectorAll('nile-qr-code');\n expect(qrCodes[0].shadowRoot).to.not.equal(qrCodes[1].shadowRoot);\n });\n\n it('83. multiple instances should each have a canvas', async () => {\n const container = await fixture(html`\n <div>\n <nile-qr-code value=\"X\"></nile-qr-code>\n <nile-qr-code value=\"Y\"></nile-qr-code>\n </div>\n `);\n const qrCodes = container.querySelectorAll('nile-qr-code');\n qrCodes.forEach(qr => {\n expect((qr as NileQrCode).shadowRoot!.querySelector('canvas')).to.exist;\n });\n });\n\n // === PROGRAMMATIC PROPERTY CHANGES ===\n\n it('84. should redraw when fill changes programmatically', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\" fill=\"black\"></nile-qr-code>`);\n el.fill = 'red';\n await el.updateComplete;\n expect(el.fill).to.equal('red');\n });\n\n it('85. should redraw when background changes programmatically', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\" background=\"white\"></nile-qr-code>`);\n el.background = 'transparent';\n await el.updateComplete;\n expect(el.background).to.equal('transparent');\n });\n\n it('86. should redraw when radius changes programmatically', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\" radius=\"0\"></nile-qr-code>`);\n el.radius = 0.3;\n await el.updateComplete;\n expect(el.radius).to.equal(0.3);\n });\n\n it('87. should redraw when errorCorrection changes programmatically', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\" error-correction=\"H\"></nile-qr-code>`);\n el.errorCorrection = 'L';\n await el.updateComplete;\n expect(el.errorCorrection).to.equal('L');\n });\n\n // === EDGE CASES ===\n\n it('88. should handle being moved between containers', async () => {\n const container1 = await fixture(html`<div></div>`) as HTMLElement;\n const container2 = await fixture(html`<div></div>`) as HTMLElement;\n const el = document.createElement('nile-qr-code') as NileQrCode;\n container1.appendChild(el);\n await el.updateComplete;\n container2.appendChild(el);\n await el.updateComplete;\n expect(el.shadowRoot!.querySelector('canvas')).to.exist;\n });\n\n it('89. should handle rapid add/remove', async () => {\n const container = await fixture(html`<div></div>`) as HTMLElement;\n const el = document.createElement('nile-qr-code') as NileQrCode;\n container.appendChild(el);\n container.removeChild(el);\n container.appendChild(el);\n await el.updateComplete;\n expect(el.shadowRoot!.querySelector('canvas')).to.exist;\n });\n\n it('90. shadowRoot host should reference the element', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.shadowRoot!.host).to.equal(el);\n });\n\n it('91. should handle data-* attributes gracefully', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code data-testid=\"qr1\"></nile-qr-code>`);\n expect(el.getAttribute('data-testid')).to.equal('qr1');\n });\n\n it('92. should handle setting custom aria attributes', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code aria-hidden=\"true\"></nile-qr-code>`);\n expect(el.getAttribute('aria-hidden')).to.equal('true');\n });\n\n // === CANVAS ATTRIBUTES ===\n\n it('93. canvas should have width attribute matching size', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code size=\"200\"></nile-qr-code>`);\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas!.getAttribute('width')).to.equal('200');\n });\n\n it('94. canvas should have height attribute matching size', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code size=\"200\"></nile-qr-code>`);\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas!.getAttribute('height')).to.equal('200');\n });\n\n it('95. canvas should have part attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas!.getAttribute('part')).to.equal('base');\n });\n\n it('96. canvas should have role attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas!.hasAttribute('role')).to.be.true;\n });\n\n it('97. canvas should have aria-label attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas!.hasAttribute('aria-label')).to.be.true;\n });\n\n // === CONNECTED STATE ===\n\n it('98. should be in connected state after fixture', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.isConnected).to.be.true;\n });\n\n it('99. should not affect parent container', async () => {\n const container = await fixture(html`<div class=\"parent\"><nile-qr-code></nile-qr-code></div>`) as HTMLElement;\n expect(container.classList.contains('parent')).to.be.true;\n expect(container.children.length).to.equal(1);\n });\n\n it('100. should handle all properties at once', async () => {\n const el = await fixture<NileQrCode>(html`\n <nile-qr-code\n value=\"https://example.com\"\n size=\"256\"\n fill=\"#333\"\n background=\"#FFF\"\n radius=\"0.4\"\n error-correction=\"Q\"\n label=\"Scan to visit\"\n ></nile-qr-code>\n `);\n expect(el.value).to.equal('https://example.com');\n expect(el.size).to.equal(256);\n expect(el.fill).to.equal('#333');\n expect(el.background).to.equal('#FFF');\n expect(el.radius).to.equal(0.4);\n expect(el.errorCorrection).to.equal('Q');\n expect(el.label).to.equal('Scan to visit');\n const canvas = el.shadowRoot!.querySelector('canvas');\n expect(canvas).to.exist;\n expect(canvas!.getAttribute('aria-label')).to.equal('Scan to visit');\n });\n\n // === IMAGE OVERLAY DEFAULTS ===\n\n it('101. should have default image of empty string', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.image).to.equal('');\n });\n\n it('102. should have default imageSize of 0.25', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.imageSize).to.equal(0.25);\n });\n\n it('103. should have default imagePadding of 4', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.imagePadding).to.equal(4);\n });\n\n it('104. should have default imageRadius of 4', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.imageRadius).to.equal(4);\n });\n\n // === IMAGE OVERLAY PROPERTY SETTING ===\n\n it('105. should accept image property', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code image=\"https://example.com/logo.png\"></nile-qr-code>`);\n expect(el.image).to.equal('https://example.com/logo.png');\n });\n\n it('106. should accept image-size property', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code image-size=\"0.3\"></nile-qr-code>`);\n expect(el.imageSize).to.equal(0.3);\n });\n\n it('107. should accept image-padding property', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code image-padding=\"8\"></nile-qr-code>`);\n expect(el.imagePadding).to.equal(8);\n });\n\n it('108. should accept image-radius property', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code image-radius=\"12\"></nile-qr-code>`);\n expect(el.imageRadius).to.equal(12);\n });\n\n // === IMAGE OVERLAY ATTRIBUTE REFLECTION ===\n\n it('109. should reflect image to attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code image=\"logo.png\"></nile-qr-code>`);\n expect(el.getAttribute('image')).to.equal('logo.png');\n });\n\n it('110. should reflect image-size to attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code image-size=\"0.35\"></nile-qr-code>`);\n expect(el.getAttribute('image-size')).to.equal('0.35');\n });\n\n it('111. should reflect image-padding to attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code image-padding=\"6\"></nile-qr-code>`);\n expect(el.getAttribute('image-padding')).to.equal('6');\n });\n\n it('112. should reflect image-radius to attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code image-radius=\"10\"></nile-qr-code>`);\n expect(el.getAttribute('image-radius')).to.equal('10');\n });\n\n // === IMAGE OVERLAY RENDERING ===\n\n it('113. should still render canvas when image is set', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\" image=\"https://example.com/logo.png\"></nile-qr-code>`);\n expect(el.shadowRoot!.querySelector('canvas')).to.exist;\n });\n\n it('114. should handle invalid image URL gracefully', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\" image=\"not-a-valid-url\"></nile-qr-code>`);\n await el.updateComplete;\n expect(el).to.exist;\n expect(el.shadowRoot!.querySelector('canvas')).to.exist;\n });\n\n it('115. should handle image property change programmatically', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\"></nile-qr-code>`);\n el.image = 'https://example.com/logo.png';\n await el.updateComplete;\n expect(el.image).to.equal('https://example.com/logo.png');\n });\n\n it('116. should clear image when set to empty string', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\" image=\"https://example.com/logo.png\"></nile-qr-code>`);\n el.image = '';\n await el.updateComplete;\n expect(el.image).to.equal('');\n });\n\n // === GRADIENT FILL DEFAULTS ===\n\n it('117. should have default fillGradient of empty string', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code></nile-qr-code>`);\n expect(el.fillGradient).to.equal('');\n });\n\n // === GRADIENT FILL PROPERTY SETTING ===\n\n it('118. should accept fill-gradient property', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code fill-gradient=\"135, #6366f1, #ec4899\"></nile-qr-code>`);\n expect(el.fillGradient).to.equal('135, #6366f1, #ec4899');\n });\n\n it('119. should reflect fill-gradient to attribute', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code fill-gradient=\"90, red, blue\"></nile-qr-code>`);\n expect(el.getAttribute('fill-gradient')).to.equal('90, red, blue');\n });\n\n it('120. should render with gradient fill', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\" fill-gradient=\"45, #000, #fff\"></nile-qr-code>`);\n expect(el.shadowRoot!.querySelector('canvas')).to.exist;\n });\n\n it('121. should fallback to fill when gradient is malformed', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\" fill-gradient=\"invalid\"></nile-qr-code>`);\n await el.updateComplete;\n expect(el).to.exist;\n expect(el.shadowRoot!.querySelector('canvas')).to.exist;\n });\n\n it('122. should handle gradient with multiple color stops', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\" fill-gradient=\"180, red, orange, yellow, green\"></nile-qr-code>`);\n await el.updateComplete;\n expect(el).to.exist;\n });\n\n it('123. should handle gradient change programmatically', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\"></nile-qr-code>`);\n el.fillGradient = '90, #333, #999';\n await el.updateComplete;\n expect(el.fillGradient).to.equal('90, #333, #999');\n });\n\n // === DOWNLOAD METHOD ===\n\n it('124. should have a download method', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\"></nile-qr-code>`);\n expect(el.download).to.be.a('function');\n });\n\n it('125. should have a toDataURL method', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\"></nile-qr-code>`);\n expect(el.toDataURL).to.be.a('function');\n });\n\n it('126. toDataURL should return a data URL string', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\"></nile-qr-code>`);\n const dataUrl = el.toDataURL();\n expect(dataUrl).to.be.a('string');\n expect(dataUrl).to.include('data:image/png');\n });\n\n it('127. toDataURL should accept a custom MIME type', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\"></nile-qr-code>`);\n const dataUrl = el.toDataURL('image/jpeg');\n expect(dataUrl).to.be.a('string');\n });\n\n it('128. download should not throw', async () => {\n const el = await fixture<NileQrCode>(html`<nile-qr-code value=\"test\"></nile-qr-code>`);\n expect(() => el.download('test.png')).to.not.throw();\n });\n\n // === COMBINED FEATURES ===\n\n it('129. should handle gradient + rounded modules together', async () => {\n const el = await fixture<NileQrCode>(html`\n <nile-qr-code\n value=\"test\"\n radius=\"0.5\"\n fill-gradient=\"45, #6366f1, #ec4899\">\n </nile-qr-code>\n `);\n await el.updateComplete;\n expect(el.shadowRoot!.querySelector('canvas')).to.exist;\n });\n\n it('130. should handle all new properties at once', async () => {\n const el = await fixture<NileQrCode>(html`\n <nile-qr-code\n value=\"https://example.com\"\n size=\"256\"\n fill=\"#333\"\n background=\"#FFF\"\n radius=\"0.3\"\n error-correction=\"H\"\n label=\"Full featured\"\n image=\"https://example.com/logo.png\"\n image-size=\"0.25\"\n image-padding=\"6\"\n image-radius=\"8\"\n fill-gradient=\"135, #6366f1, #ec4899\">\n </nile-qr-code>\n `);\n expect(el.value).to.equal('https://example.com');\n expect(el.size).to.equal(256);\n expect(el.imageSize).to.equal(0.25);\n expect(el.imagePadding).to.equal(6);\n expect(el.imageRadius).to.equal(8);\n expect(el.fillGradient).to.equal('135, #6366f1, #ec4899');\n expect(el.shadowRoot!.querySelector('canvas')).to.exist;\n });\n});\n"]}
|
|
@@ -113,17 +113,17 @@ export const styles = css `
|
|
|
113
113
|
|
|
114
114
|
/* Disabled */
|
|
115
115
|
.radio--disabled {
|
|
116
|
-
|
|
116
|
+
|
|
117
117
|
cursor: not-allowed;
|
|
118
118
|
}
|
|
119
119
|
|
|
120
120
|
.radio--disabled .radio__checked-icon {
|
|
121
|
-
background-color:var(--nile-colors-
|
|
121
|
+
background-color:var(--nile-colors-dark-100, var(--ng-colors-fg-disabled-subtle)); // for v2
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
.radio--disabled .radio__control {
|
|
125
125
|
background-color:var(--nile-colors-neutral-100, var(--ng-colors-bg-disabled-subtle));
|
|
126
|
-
border: 1px solid var(--nile-colors-
|
|
126
|
+
border: 1px solid var(--nile-colors-dark-100, var(--ng-colors-border-disabled));
|
|
127
127
|
}
|
|
128
128
|
|
|
129
129
|
/* When the control isn't checked, hide the circle for Windows High Contrast mode a11y */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-radio.css.js","sourceRoot":"","sources":["../../../src/nile-radio/nile-radio.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyIxB,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { css } from 'lit';\n\n/**\n * Radio CSS\n */\nexport const styles = css`\n :host {\n display: block;\n -webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing));\n -moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing));\n text-rendering: var(--nile-text-rendering, var(--ng-text-rendering));\n }\n\n :host(:focus-visible) {\n outline: 0px;\n }\n\n .radio {\n display: inline-flex;\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md));\n font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-medium));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-tertiary-600));\n vertical-align: middle;\n cursor: pointer;\n margin: var(--nile-spacing-10px, var(--ng-spacing-lg)) var(--nile-spacing-none, var(--ng-spacing-none));\n align-items: center;\n }\n\n .radio--medium {\n --toggle-size: 14px;\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md))\n }\n\n .radio__checked-icon {\n display: var(--nile-display-inline-flex, var(--ng-display-block));\n width: var(--nile-radio-inner-width, var(--ng-width-2));\n height: var(--nile-radio-inner-width, var(--ng-height-8px));\n border-radius: var(--nile-radius-full, var(--ng-radius-full));\n background: var(--nile-radio-checked-icon-background, var(--ng-colors-bg-primary));\n }\n\n .radio__control {\n flex: 0 0 auto;\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--nile-radio-outer-width, var(--ng-width-4));\n height: var(--nile-radio-outer-height, var(--ng-height-16px));\n border: solid 1px var(--nile-radio-outer-border-color, var(--ng-colors-border-primary));\n border-radius: var(--nile-radius-full, var(--ng-radius-full));\n background-color: var(--nile-radio-outer-background-color, var(--ng-colors-bg-primary));\n color: transparent;\n transition: var(--nile-transition-duration-default, var(--ng-transition-duration-default)) border-color,\n var(--nile-transition-duration-default, var(--ng-transition-duration-default)) background-color,\n var(--nile-transition-duration-default, var(--ng-transition-duration-default)) color,\n var(--nile-transition-duration-default, var(--ng-transition-duration-default)) box-shadow;\n }\n\n .radio__input {\n position: absolute;\n opacity: 0;\n padding: var(--nile-spacing-none, var(--ng-spacing-none));\n margin: var(--nile-spacing-none, var(--ng-spacing-none));\n pointer-events: none;\n }\n\n /* Hover */\n .radio:not(.radio--checked):not(.radio--disabled) .radio__control:hover {\n border: 1px solid var(--nile-radio-hover-border-color, var(--ng-colors-border-neutral));\n background: var(--nile-radio-hover-background-color, var(--ng-colors-bg-primary));\n }\n\n /* Checked */\n .radio--checked .radio__control {\n color: var(--nile-colors-primary-600, var(--ng-colors-fg-brand-primary-600));\n border: 1px solid var(--nile-radio-checked-border-color, var(--ng-colors-bg-brand-solid));\n background-color: var(--nile-radio-checked-background-color,var(--ng-colors-bg-brand-solid));\n }\n\n /* Checked + hover */\n .radio.radio--checked:not(.radio--disabled) .radio__control:hover {\n border: 1px solid var(--nile-radio-checked-hover-border-color, var(--ng-colors-bg-brand-solid-hover));\n background-color: var(--nile-radio-checked-hover-background-color, var(--ng-colors-bg-brand-solid-hover));\n }\n\n /* Checked + hover */\n .radio__checked-icon:hover {\n background-color: var(--nile-radio-checked-hover-icon-background-color, var(--ng-colors-bg-primary));\n }\n\n /* Checked + focus */\n :host(:focus-visible) .radio__control {\n outline: solid var(--nile-outline-3px, var(--ng-outline-2px)) var(--nile-box-shadow-12, var(--ng-colors-bg-brand-solid));\n outline-offset: 1px;\n }\n\n .radio__control:focus-visible {\n outline: solid var(--nile-outline-3px, var(--ng-outline-2px)) var(--nile-box-shadow-12, var(--ng-colors-bg-brand-solid));\n outline-offset: 2px;\n }\n\n /* Focused, but not disabled */\n.radio--focused:not(.radio--disabled) .radio__control {\n outline: solid var(--nile-outline-none, var(--ng-outline-2px)) var(--nile-outline-none, var(--ng-colors-bg-brand-solid));\n outline-offset: 1px;\n}\n\n /* Disabled */\n .radio--disabled {\n
|
|
1
|
+
{"version":3,"file":"nile-radio.css.js","sourceRoot":"","sources":["../../../src/nile-radio/nile-radio.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyIxB,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { css } from 'lit';\n\n/**\n * Radio CSS\n */\nexport const styles = css`\n :host {\n display: block;\n -webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing));\n -moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing));\n text-rendering: var(--nile-text-rendering, var(--ng-text-rendering));\n }\n\n :host(:focus-visible) {\n outline: 0px;\n }\n\n .radio {\n display: inline-flex;\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md));\n font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-medium));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-tertiary-600));\n vertical-align: middle;\n cursor: pointer;\n margin: var(--nile-spacing-10px, var(--ng-spacing-lg)) var(--nile-spacing-none, var(--ng-spacing-none));\n align-items: center;\n }\n\n .radio--medium {\n --toggle-size: 14px;\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md))\n }\n\n .radio__checked-icon {\n display: var(--nile-display-inline-flex, var(--ng-display-block));\n width: var(--nile-radio-inner-width, var(--ng-width-2));\n height: var(--nile-radio-inner-width, var(--ng-height-8px));\n border-radius: var(--nile-radius-full, var(--ng-radius-full));\n background: var(--nile-radio-checked-icon-background, var(--ng-colors-bg-primary));\n }\n\n .radio__control {\n flex: 0 0 auto;\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--nile-radio-outer-width, var(--ng-width-4));\n height: var(--nile-radio-outer-height, var(--ng-height-16px));\n border: solid 1px var(--nile-radio-outer-border-color, var(--ng-colors-border-primary));\n border-radius: var(--nile-radius-full, var(--ng-radius-full));\n background-color: var(--nile-radio-outer-background-color, var(--ng-colors-bg-primary));\n color: transparent;\n transition: var(--nile-transition-duration-default, var(--ng-transition-duration-default)) border-color,\n var(--nile-transition-duration-default, var(--ng-transition-duration-default)) background-color,\n var(--nile-transition-duration-default, var(--ng-transition-duration-default)) color,\n var(--nile-transition-duration-default, var(--ng-transition-duration-default)) box-shadow;\n }\n\n .radio__input {\n position: absolute;\n opacity: 0;\n padding: var(--nile-spacing-none, var(--ng-spacing-none));\n margin: var(--nile-spacing-none, var(--ng-spacing-none));\n pointer-events: none;\n }\n\n /* Hover */\n .radio:not(.radio--checked):not(.radio--disabled) .radio__control:hover {\n border: 1px solid var(--nile-radio-hover-border-color, var(--ng-colors-border-neutral));\n background: var(--nile-radio-hover-background-color, var(--ng-colors-bg-primary));\n }\n\n /* Checked */\n .radio--checked .radio__control {\n color: var(--nile-colors-primary-600, var(--ng-colors-fg-brand-primary-600));\n border: 1px solid var(--nile-radio-checked-border-color, var(--ng-colors-bg-brand-solid));\n background-color: var(--nile-radio-checked-background-color,var(--ng-colors-bg-brand-solid));\n }\n\n /* Checked + hover */\n .radio.radio--checked:not(.radio--disabled) .radio__control:hover {\n border: 1px solid var(--nile-radio-checked-hover-border-color, var(--ng-colors-bg-brand-solid-hover));\n background-color: var(--nile-radio-checked-hover-background-color, var(--ng-colors-bg-brand-solid-hover));\n }\n\n /* Checked + hover */\n .radio__checked-icon:hover {\n background-color: var(--nile-radio-checked-hover-icon-background-color, var(--ng-colors-bg-primary));\n }\n\n /* Checked + focus */\n :host(:focus-visible) .radio__control {\n outline: solid var(--nile-outline-3px, var(--ng-outline-2px)) var(--nile-box-shadow-12, var(--ng-colors-bg-brand-solid));\n outline-offset: 1px;\n }\n\n .radio__control:focus-visible {\n outline: solid var(--nile-outline-3px, var(--ng-outline-2px)) var(--nile-box-shadow-12, var(--ng-colors-bg-brand-solid));\n outline-offset: 2px;\n }\n\n /* Focused, but not disabled */\n.radio--focused:not(.radio--disabled) .radio__control {\n outline: solid var(--nile-outline-none, var(--ng-outline-2px)) var(--nile-outline-none, var(--ng-colors-bg-brand-solid));\n outline-offset: 1px;\n}\n\n /* Disabled */\n .radio--disabled {\n \n cursor: not-allowed;\n }\n\n .radio--disabled .radio__checked-icon {\n background-color:var(--nile-colors-dark-100, var(--ng-colors-fg-disabled-subtle)); // for v2\n }\n\n .radio--disabled .radio__control {\n background-color:var(--nile-colors-neutral-100, var(--ng-colors-bg-disabled-subtle));\n border: 1px solid var(--nile-colors-dark-100, var(--ng-colors-border-disabled));\n }\n\n /* When the control isn't checked, hide the circle for Windows High Contrast mode a11y */\n .radio:not(.radio--checked) svg circle {\n opacity: 0;\n }\n\n .radio__label {\n display: inline-block;\n color: var(--nile-colors-dark-900, var(--ng-colors-text-tertiary-600));\n line-height: var(--nile-type-scale-3, var(--ng-line-height-text-sm));\n margin-inline-start: var(--nile-spacing-7px, var(--ng-spacing-md));\n user-select: none;\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md));\n margin-top: var(--nile-spacing-xxs, var(--ng-spacing-xxs));\n }\n .radio__label_border {\n padding: var(--nile-spacing-lg, var(--ng-spacing-xl));\n border-radius: var(--nile-radius-sm, var(--ng-radius-xl));\n border: var(--nile-border-width-1, var(--ng-border-width-1)) solid var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));\n }\n`;\n"]}
|
|
@@ -92,10 +92,24 @@ let NileRadio = class NileRadio extends NileElement {
|
|
|
92
92
|
}
|
|
93
93
|
handleCheckedChange() {
|
|
94
94
|
this.setAttribute('aria-checked', this.checked ? 'true' : 'false');
|
|
95
|
-
|
|
95
|
+
if (this.disabled) {
|
|
96
|
+
this.setAttribute('tabindex', '-1');
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
this.setAttribute('tabindex', this.checked ? '0' : '-1');
|
|
100
|
+
}
|
|
96
101
|
}
|
|
97
102
|
handleDisabledChange() {
|
|
98
103
|
this.setAttribute('aria-disabled', this.disabled ? 'true' : 'false');
|
|
104
|
+
if (this.disabled) {
|
|
105
|
+
this.setAttribute('tabindex', '-1');
|
|
106
|
+
if (this.matches(':focus')) {
|
|
107
|
+
this.blur();
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
this.setAttribute('tabindex', this.checked ? '0' : '-1');
|
|
112
|
+
}
|
|
99
113
|
}
|
|
100
114
|
render() {
|
|
101
115
|
return html `
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-radio.js","sourceRoot":"","sources":["../../../src/nile-radio/nile-radio.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAEH,OAAO,EAAa,IAAI,EAAiC,MAAM,KAAK,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,WAAW,MAAM,0BAA0B,CAAC;AAEnD;;;;;;;;;;;;;;;;;;GAkBG;AAEI,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,WAAW;IAAnC;;QAGqB,YAAO,GAAG,KAAK,CAAC;QACvB,aAAQ,GAAG,KAAK,CAAC;QAEpC,iFAAiF;QACrE,UAAK,GAAW,EAAE,CAAC;QAE/B,wBAAwB;QACK,SAAI,GAAiC,QAAQ,CAAC;QAE3E,0BAA0B;QACkB,aAAQ,GAAG,KAAK,CAAC;QAE7D,+BAA+B;QACa,kBAAa,GAAG,KAAK,CAAC;QAGtB,iBAAY,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"nile-radio.js","sourceRoot":"","sources":["../../../src/nile-radio/nile-radio.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {LitElement, html, CSSResultArray, TemplateResult} from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport {styles} from './nile-radio.css';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { state } from 'lit/decorators.js';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup } from 'lit';\n/**\n * Nile icon component.\n *\n * @tag nile-radio\n *\n *\n* @dependency nile-icon\n *\n * @slot - The radio's label.\n *\n * @event blur - Emitted when the control loses focus.\n * @event focus - Emitted when the control gains focus.\n *\n * @csspart base - The component's base wrapper.\n * @csspart control - The circular container that wraps the radio's checked state.\n * @csspart control--checked - The radio control when the radio is checked.\n * @csspart checked-icon - The checked icon, an `<nile-icon>` element.\n * @csspart label - The container that wraps the radio's label.\n */\n@customElement('nile-radio')\nexport class NileRadio extends NileElement {\n static styles: CSSResultGroup = styles;\n\n @property({type:Boolean}) checked = false;\n @state() protected hasFocus = false;\n\n /** The radio's value. When selected, the radio group will receive this value. */\n @property() value: string = '';\n\n /** The radio's size. */\n @property({ reflect: true }) size: 'small' | 'medium' | 'large' = 'medium';\n\n /** Disables the radio. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** The radio's labelborder. */\n @property({ type: Boolean, reflect: true }) islabelborder = false;\n\n \n @property({ type: Boolean, reflect: true }) allowUncheck = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.handleBlur = this.handleBlur.bind(this);\n this.handleClick = this.handleClick.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n\n this.setInitialAttributes();\n this.addEventListeners();\n this.emit('nile-init');\n }\n\n disconnectedCallback() {\n this.removeEventListeners();\n this.emit('nile-destroy');\n }\n\n private addEventListeners() {\n this.addEventListener('blur', this.handleBlur);\n this.addEventListener('click', this.handleClick);\n this.addEventListener('focus', this.handleFocus);\n }\n\n private removeEventListeners() {\n this.removeEventListener('blur', this.handleBlur);\n this.removeEventListener('click', this.handleClick);\n this.removeEventListener('focus', this.handleFocus);\n }\n\n private handleBlur() {\n this.hasFocus = false;\n this.emit('nile-blur')\n }\n\n private handleClick() {\n\n if(this.allowUncheck && !this.disabled) {\n this.checked = !this.checked;\n } else if (!this.disabled) {\n this.checked = true;\n }\n }\n\n private handleFocus() {\n this.hasFocus = true;\n this.emit('nile-focus')\n }\n\n private setInitialAttributes() {\n this.setAttribute('role', 'radio');\n this.setAttribute('tabindex', '-1');\n this.setAttribute('aria-disabled', this.disabled ? 'true' : 'false');\n }\n\n @watch('checked')\n handleCheckedChange() {\n this.setAttribute('aria-checked', this.checked ? 'true' : 'false');\n if (this.disabled) {\n this.setAttribute('tabindex', '-1');\n } else {\n this.setAttribute('tabindex', this.checked ? '0' : '-1');\n }\n \n }\n\n @watch('disabled', { waitUntilFirstUpdate: true })\nhandleDisabledChange() {\n this.setAttribute('aria-disabled', this.disabled ? 'true' : 'false');\n if (this.disabled) {\n this.setAttribute('tabindex', '-1');\n \n if (this.matches(':focus')) {\n (this as HTMLElement).blur();\n }\n } else {\n this.setAttribute('tabindex', this.checked ? '0' : '-1');\n }\n}\n\n render() {\n return html`\n <span\n part=\"base\"\n class=${classMap({\n radio: true,\n 'radio--checked': this.checked,\n 'radio--disabled': this.disabled,\n 'radio--focused': this.hasFocus,\n 'radio--medium': this.size === 'medium',\n 'radio__label_border':this.islabelborder\n })}\n >\n <span part=\"${`control${this.checked ? ' control--checked' : ''}`}\" class=\"radio__control\">\n ${this.checked\n ? html` <span class=\"radio__checked-icon\"></span> `\n : ''}\n </span>\n\n <slot part=\"label\" class=\"radio__label\"></slot>\n </span>\n `;\n }\n}\n\nexport default NileRadio;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-radio': NileRadio;\n }\n}\n"]}
|
|
@@ -112,6 +112,8 @@ let NileRadioGroup = class NileRadioGroup extends NileElement {
|
|
|
112
112
|
});
|
|
113
113
|
}
|
|
114
114
|
handleKeyDown(event) {
|
|
115
|
+
if (this.disabled)
|
|
116
|
+
return;
|
|
115
117
|
if (!['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', ' '].includes(event.key)) {
|
|
116
118
|
return;
|
|
117
119
|
}
|
|
@@ -148,6 +150,8 @@ let NileRadioGroup = class NileRadioGroup extends NileElement {
|
|
|
148
150
|
event.preventDefault();
|
|
149
151
|
}
|
|
150
152
|
handleLabelClick() {
|
|
153
|
+
if (this.disabled)
|
|
154
|
+
return;
|
|
151
155
|
const radios = this.getAllRadios();
|
|
152
156
|
const checked = radios.find(radio => radio.checked);
|
|
153
157
|
const radioToFocus = checked || radios[0];
|
|
@@ -164,6 +168,10 @@ let NileRadioGroup = class NileRadioGroup extends NileElement {
|
|
|
164
168
|
radio.islabelborder = true;
|
|
165
169
|
}
|
|
166
170
|
});
|
|
171
|
+
if (this.disabled) {
|
|
172
|
+
radios.forEach(r => (r.tabIndex = -1));
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
167
175
|
const nile_radio_check = 'nile-radio-button';
|
|
168
176
|
this.hasButtonGroup = radios.some(radio => radio.tagName.toLowerCase() === nile_radio_check);
|
|
169
177
|
if (radios.length > 0 && !radios.some(radio => radio.checked)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-radio-group.js","sourceRoot":"","sources":["../../../src/nile-radio-group/nile-radio-group.ts"],"names":[],"mappings":"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","sourcesContent":["\nimport { classMap } from 'lit/directives/class-map.js';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { HasSlotController } from '../internal/slot';\nimport { html } from 'lit';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport styles from './nile-radio-group.css';\nimport type { CSSResultGroup, PropertyValues } from 'lit';\nimport type NileRadio from '../nile-radio/nile-radio';\n\n/**\n * @summary Radio groups are used to group multiple [radios](/components/radio) or [radio buttons](/components/radio-button) so they function as a single form control.\n *\n * @dependency nile-button-group\n *\n * @slot - The default slot where `<nile-radio>` or `<nile-radio-button>` elements are placed.\n * @slot label - The radio group's label. Required for proper accessibility. Alternatively, you can use the `label`\n * attribute.\n *\n * @event change - Emitted when the radio group's selected value changes.\n * @event input - Emitted when the radio group receives user input.\n * @event invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n * @csspart button-group - The button group that wraps radio buttons.\n * @csspart button-group__base - The button group's `base` part.\n */\n@customElement('nile-radio-group')\nexport class NileRadioGroup extends NileElement {\n static styles: CSSResultGroup = styles;\n\n private readonly hasSlotController = new HasSlotController(this, 'help-text', 'label');\n private customValidityMessage = '';\n\n @query('slot:not([name])') defaultSlot: HTMLSlotElement;\n\n @state() private hasButtonGroup = false;\n\n @state() defaultValue = '';\n\n /**\n * The radio group's label. Required for proper accessibility. If you need to display HTML, use the `label` slot\n * instead.\n */\n @property() label = '';\n\n /** The name of the radio group, submitted as a name/value pair with form data. */\n @property() name = 'option';\n\n /** The current value of the radio group, submitted as a name/value pair with form data. */\n @property({ reflect: true }) value = '';\n\n /**\n * By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\n * to place the form control outside of a form and associate it with the form that has this `id`. The form must be in\n * the same document or shadow root for this to work.\n */\n @property({ reflect: true }) form = '';\n\n /** Ensures a child radio is checked before allowing the containing form to submit. */\n @property({ type: Boolean, reflect: true }) required = false;\n\n\n /** Used to show radio in inline or not */\n @property({ type: Boolean, reflect: true }) labelInline = false;\n\n /** Used to disabled or not */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n @property({ attribute: 'help-text', reflect: true }) helpText = '';\n\n @property({ attribute: 'error-message', reflect: true }) errorMessage = '';\n\n /** The radio's labelborder for whole gp. */\n @property({ type: Boolean, reflect: true }) islabelborder = false;\n\n /** Allow the radio to be unchecked. */\n @property({ type: Boolean, reflect: true, attribute: true }) allowUncheckGroup = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.defaultValue = this.value;\n this.handleInitialDisabledState();\n this.emit('nile-init');\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.emit('nile-destroy');\n }\n\n private getAllRadios() {\n return [...this.querySelectorAll<NileRadio>('nile-radio')];\n }\n\n private handleRadioClick(event: MouseEvent) {\n const target = (event.target as HTMLElement).closest<NileRadio>('nile-radio')!;\n const radios = this.getAllRadios();\n const oldValue = this.value;\n\n if (target.disabled || this.disabled) {\n return;\n }\n\n this.value = target.value;\n if (!this.allowUncheckGroup) {\n radios.forEach(radio => {\n radio.checked = radio === target;\n });\n }\n\n if (!this.allowUncheckGroup && this.value !== oldValue) {\n this.emit('change', { value: this.value});\n this.emit('input');\n } else if (this.allowUncheckGroup) { \n this.emit('change', { value: this.value , checked: target.checked});\n this.emit('input');\n }\n }\n\n protected updated(changedProperties: PropertyValues): void {\n super.updated(changedProperties);\n\n if (changedProperties.has('allowUncheckGroup')) {\n if (this.allowUncheckGroup) {\n this.getAllRadios().forEach(radio => {\n radio.allowUncheck = true;\n });\n }\n }\n }\n\n @watch('disabled', { waitUntilFirstUpdate: true })\n handleDisabledChange() {\n this.getAllRadios().forEach(radio => {\n radio.disabled = this.disabled;\n });\n }\n\n private handleInitialDisabledState() {\n this.getAllRadios().forEach(radio => {\n radio.disabled = radio.hasAttribute('disabled') ? radio.disabled : this.disabled;\n });\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n if (!['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', ' '].includes(event.key)) {\n return;\n }\n\n const radios = this.getAllRadios().filter(radio => !radio.disabled);\n const checkedRadio = radios.find(radio => radio.checked) ?? radios[0];\n const incr = event.key === ' ' ? 0 : ['ArrowUp', 'ArrowLeft'].includes(event.key) ? -1 : 1;\n const oldValue = this.value;\n let index = radios.indexOf(checkedRadio) + incr;\n\n if (index < 0) {\n index = radios.length - 1;\n }\n\n if (index > radios.length - 1) {\n index = 0;\n }\n\n this.getAllRadios().forEach(radio => {\n radio.checked = false;\n\n if (!this.hasButtonGroup) {\n radio.tabIndex = -1;\n }\n });\n\n this.value = radios[index].value;\n radios[index].checked = true;\n\n if (!this.hasButtonGroup) {\n radios[index].tabIndex = 0;\n radios[index].focus();\n } else {\n radios[index].shadowRoot!.querySelector('button')!.focus();\n }\n\n if (this.value !== oldValue) {\n this.emit('change');\n this.emit('input');\n }\n\n event.preventDefault();\n }\n\n private handleLabelClick() {\n const radios = this.getAllRadios();\n const checked = radios.find(radio => radio.checked);\n const radioToFocus = checked || radios[0];\n\n // Move focus to the checked radio (or the first one if none are checked) when clicking the label\n if (radioToFocus) {\n radioToFocus.focus();\n }\n }\n\n private handleSlotChange() {\n const radios = this.getAllRadios();\n\n radios.forEach(radio => {\n radio.checked = radio.value === this.value;\n if (this.islabelborder) {\n radio.islabelborder=true;\n }\n });\n const nile_radio_check='nile-radio-button';\n this.hasButtonGroup = radios.some(radio => radio.tagName.toLowerCase() === nile_radio_check);\n\n if (radios.length > 0 && !radios.some(radio => radio.checked)) {\n if (this.hasButtonGroup) {\n const buttonRadio = radios[0].shadowRoot!.querySelector('button')!;\n buttonRadio.tabIndex = 0;\n } else {\n radios[0].tabIndex = 0;\n }\n }\n\n if (this.hasButtonGroup) {\n const buttonGroup = this.shadowRoot?.querySelector('nile-button-group');\n }\n }\n\n private updateCheckedRadio() {\n const radios = this.getAllRadios();\n radios.forEach(radio => (radio.checked = radio.value === this.value));\n }\n\n @watch('value')\n handleValueChange() {\n if (this.hasUpdated) {\n this.updateCheckedRadio();\n }\n }\n\n render() {\n const hasLabelSlot = this.hasSlotController.test('label');\n const hasHelpTextSlot = this.hasSlotController.test('help-text');\n const hasLabelSuffixSlot = this.hasSlotController.test('label-suffix');\n const hasLabel = this.label ? true : !!hasLabelSlot;\n const hasHelpText = this.helpText ? true : false;\n const hasErrorMessage = this.errorMessage ? true : false;\n\n const defaultSlot = html`\n <slot\n @click=${this.handleRadioClick}\n @keydown=${this.handleKeyDown}\n @slotchange=${this.handleSlotChange}\n role=\"presentation\"\n ></slot>\n `;\n\n return html`\n <fieldset\n part=\"form-control\"\n class=${classMap({\n 'form-control': true,\n 'form-control--medium': true,\n 'form-control--radio-group': true,\n 'form-control--has-label': hasLabel,\n 'form-control--has-help-text': hasHelpText\n })}\n role=\"radiogroup\"\n aria-labelledby=\"label\"\n aria-describedby=\"help-text\"\n aria-errormessage=\"error-message\"\n >\n <label\n part=\"form-control-label\"\n id=\"label\"\n class=\"form-control__label\"\n aria-hidden=${hasLabel ? 'false' : 'true'}\n @click=${this.handleLabelClick}\n >\n <slot name=\"label\">${this.label}</slot>\n </label>\n\n ${hasLabelSuffixSlot ? html` <slot name=\"label-suffix\"></slot> ` : ``}\n\n <div part=\"form-control-input\" class=\"form-control-input\">\n <div class=\"visually-hidden\">\n <label class=\"radio-group__validation\">\n <input\n type=\"text\"\n class=\"radio-group__validation-input\"\n ?required=${this.required}\n tabindex=\"-1\"\n hidden\n />\n </label>\n </div>\n\n ${this.hasButtonGroup\n ? html`\n ${defaultSlot}\n `\n : html`\n <div part=\"options-base\" class=\"${this.labelInline ? `form-control--inline-radio`:``}\"> ${defaultSlot}</div> `}\n </div>\n\n ${\n hasHelpText\n ? html`\n <nile-form-help-text>${this.helpText}</nile-form-help-text>\n `\n : ``\n }\n\n ${\n hasErrorMessage\n ? html`\n <nile-form-error-message\n >${this.errorMessage}</nile-form-error-message\n >\n `\n : ``\n }\n\n </fieldset>\n `;\n }\n}\n\nexport default NileRadioGroup;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-radio-group': NileRadioGroup;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"nile-radio-group.js","sourceRoot":"","sources":["../../../src/nile-radio-group/nile-radio-group.ts"],"names":[],"mappings":"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","sourcesContent":["\nimport { classMap } from 'lit/directives/class-map.js';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { HasSlotController } from '../internal/slot';\nimport { html } from 'lit';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport styles from './nile-radio-group.css';\nimport type { CSSResultGroup, PropertyValues } from 'lit';\nimport type NileRadio from '../nile-radio/nile-radio';\n\n/**\n * @summary Radio groups are used to group multiple [radios](/components/radio) or [radio buttons](/components/radio-button) so they function as a single form control.\n *\n * @dependency nile-button-group\n *\n * @slot - The default slot where `<nile-radio>` or `<nile-radio-button>` elements are placed.\n * @slot label - The radio group's label. Required for proper accessibility. Alternatively, you can use the `label`\n * attribute.\n *\n * @event change - Emitted when the radio group's selected value changes.\n * @event input - Emitted when the radio group receives user input.\n * @event invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n * @csspart button-group - The button group that wraps radio buttons.\n * @csspart button-group__base - The button group's `base` part.\n */\n@customElement('nile-radio-group')\nexport class NileRadioGroup extends NileElement {\n static styles: CSSResultGroup = styles;\n\n private readonly hasSlotController = new HasSlotController(this, 'help-text', 'label');\n private customValidityMessage = '';\n\n @query('slot:not([name])') defaultSlot: HTMLSlotElement;\n\n @state() private hasButtonGroup = false;\n\n @state() defaultValue = '';\n\n /**\n * The radio group's label. Required for proper accessibility. If you need to display HTML, use the `label` slot\n * instead.\n */\n @property() label = '';\n\n /** The name of the radio group, submitted as a name/value pair with form data. */\n @property() name = 'option';\n\n /** The current value of the radio group, submitted as a name/value pair with form data. */\n @property({ reflect: true }) value = '';\n\n /**\n * By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\n * to place the form control outside of a form and associate it with the form that has this `id`. The form must be in\n * the same document or shadow root for this to work.\n */\n @property({ reflect: true }) form = '';\n\n /** Ensures a child radio is checked before allowing the containing form to submit. */\n @property({ type: Boolean, reflect: true }) required = false;\n\n\n /** Used to show radio in inline or not */\n @property({ type: Boolean, reflect: true }) labelInline = false;\n\n /** Used to disabled or not */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n @property({ attribute: 'help-text', reflect: true }) helpText = '';\n\n @property({ attribute: 'error-message', reflect: true }) errorMessage = '';\n\n /** The radio's labelborder for whole gp. */\n @property({ type: Boolean, reflect: true }) islabelborder = false;\n\n /** Allow the radio to be unchecked. */\n @property({ type: Boolean, reflect: true, attribute: true }) allowUncheckGroup = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.defaultValue = this.value;\n this.handleInitialDisabledState();\n this.emit('nile-init');\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.emit('nile-destroy');\n }\n\n private getAllRadios() {\n return [...this.querySelectorAll<NileRadio>('nile-radio')];\n }\n\n private handleRadioClick(event: MouseEvent) {\n const target = (event.target as HTMLElement).closest<NileRadio>('nile-radio')!;\n const radios = this.getAllRadios();\n const oldValue = this.value;\n\n if (target.disabled || this.disabled) {\n return;\n }\n\n this.value = target.value;\n if (!this.allowUncheckGroup) {\n radios.forEach(radio => {\n radio.checked = radio === target;\n });\n }\n\n if (!this.allowUncheckGroup && this.value !== oldValue) {\n this.emit('change', { value: this.value});\n this.emit('input');\n } else if (this.allowUncheckGroup) { \n this.emit('change', { value: this.value , checked: target.checked});\n this.emit('input');\n }\n }\n\n protected updated(changedProperties: PropertyValues): void {\n super.updated(changedProperties);\n\n if (changedProperties.has('allowUncheckGroup')) {\n if (this.allowUncheckGroup) {\n this.getAllRadios().forEach(radio => {\n radio.allowUncheck = true;\n });\n }\n }\n }\n\n @watch('disabled', { waitUntilFirstUpdate: true })\n handleDisabledChange() {\n this.getAllRadios().forEach(radio => {\n radio.disabled = this.disabled;\n });\n }\n\n private handleInitialDisabledState() {\n this.getAllRadios().forEach(radio => {\n radio.disabled = radio.hasAttribute('disabled') ? radio.disabled : this.disabled;\n });\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n if (this.disabled) return;\n if (!['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', ' '].includes(event.key)) {\n return;\n }\n\n const radios = this.getAllRadios().filter(radio => !radio.disabled);\n const checkedRadio = radios.find(radio => radio.checked) ?? radios[0];\n const incr = event.key === ' ' ? 0 : ['ArrowUp', 'ArrowLeft'].includes(event.key) ? -1 : 1;\n const oldValue = this.value;\n let index = radios.indexOf(checkedRadio) + incr;\n\n if (index < 0) {\n index = radios.length - 1;\n }\n\n if (index > radios.length - 1) {\n index = 0;\n }\n\n this.getAllRadios().forEach(radio => {\n radio.checked = false;\n\n if (!this.hasButtonGroup) {\n radio.tabIndex = -1;\n }\n });\n\n this.value = radios[index].value;\n radios[index].checked = true;\n\n if (!this.hasButtonGroup) {\n radios[index].tabIndex = 0;\n radios[index].focus();\n } else {\n radios[index].shadowRoot!.querySelector('button')!.focus();\n }\n\n if (this.value !== oldValue) {\n this.emit('change');\n this.emit('input');\n }\n\n event.preventDefault();\n }\n\n private handleLabelClick() {\n if (this.disabled) return;\n const radios = this.getAllRadios();\n const checked = radios.find(radio => radio.checked);\n const radioToFocus = checked || radios[0];\n\n // Move focus to the checked radio (or the first one if none are checked) when clicking the label\n if (radioToFocus) {\n radioToFocus.focus();\n }\n }\n\n private handleSlotChange() {\n const radios = this.getAllRadios();\n\n radios.forEach(radio => {\n radio.checked = radio.value === this.value;\n if (this.islabelborder) {\n radio.islabelborder=true;\n }\n });\n if (this.disabled) {\n radios.forEach(r => (r.tabIndex = -1));\n return;\n }\n const nile_radio_check='nile-radio-button';\n this.hasButtonGroup = radios.some(radio => radio.tagName.toLowerCase() === nile_radio_check);\n\n if (radios.length > 0 && !radios.some(radio => radio.checked)) {\n if (this.hasButtonGroup) {\n const buttonRadio = radios[0].shadowRoot!.querySelector('button')!;\n buttonRadio.tabIndex = 0;\n } else {\n radios[0].tabIndex = 0;\n }\n }\n\n if (this.hasButtonGroup) {\n const buttonGroup = this.shadowRoot?.querySelector('nile-button-group');\n }\n }\n\n private updateCheckedRadio() {\n const radios = this.getAllRadios();\n radios.forEach(radio => (radio.checked = radio.value === this.value));\n }\n\n @watch('value')\n handleValueChange() {\n if (this.hasUpdated) {\n this.updateCheckedRadio();\n }\n }\n\n render() {\n const hasLabelSlot = this.hasSlotController.test('label');\n const hasHelpTextSlot = this.hasSlotController.test('help-text');\n const hasLabelSuffixSlot = this.hasSlotController.test('label-suffix');\n const hasLabel = this.label ? true : !!hasLabelSlot;\n const hasHelpText = this.helpText ? true : false;\n const hasErrorMessage = this.errorMessage ? true : false;\n\n const defaultSlot = html`\n <slot\n @click=${this.handleRadioClick}\n @keydown=${this.handleKeyDown}\n @slotchange=${this.handleSlotChange}\n role=\"presentation\"\n ></slot>\n `;\n\n return html`\n <fieldset\n part=\"form-control\"\n class=${classMap({\n 'form-control': true,\n 'form-control--medium': true,\n 'form-control--radio-group': true,\n 'form-control--has-label': hasLabel,\n 'form-control--has-help-text': hasHelpText\n })}\n role=\"radiogroup\"\n aria-labelledby=\"label\"\n aria-describedby=\"help-text\"\n aria-errormessage=\"error-message\"\n >\n <label\n part=\"form-control-label\"\n id=\"label\"\n class=\"form-control__label\"\n aria-hidden=${hasLabel ? 'false' : 'true'}\n @click=${this.handleLabelClick}\n >\n <slot name=\"label\">${this.label}</slot>\n </label>\n\n ${hasLabelSuffixSlot ? html` <slot name=\"label-suffix\"></slot> ` : ``}\n\n <div part=\"form-control-input\" class=\"form-control-input\">\n <div class=\"visually-hidden\">\n <label class=\"radio-group__validation\">\n <input\n type=\"text\"\n class=\"radio-group__validation-input\"\n ?required=${this.required}\n tabindex=\"-1\"\n hidden\n />\n </label>\n </div>\n\n ${this.hasButtonGroup\n ? html`\n ${defaultSlot}\n `\n : html`\n <div part=\"options-base\" class=\"${this.labelInline ? `form-control--inline-radio`:``}\"> ${defaultSlot}</div> `}\n </div>\n\n ${\n hasHelpText\n ? html`\n <nile-form-help-text>${this.helpText}</nile-form-help-text>\n `\n : ``\n }\n\n ${\n hasErrorMessage\n ? html`\n <nile-form-error-message\n >${this.errorMessage}</nile-form-error-message\n >\n `\n : ``\n }\n\n </fieldset>\n `;\n }\n}\n\nexport default NileRadioGroup;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-radio-group': NileRadioGroup;\n }\n}\n"]}
|
|
@@ -18,7 +18,7 @@ export const styles = css `
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
.rte-container nile-rte-toolbar {
|
|
21
|
+
.rte-container nile-rte-toolbar {
|
|
22
22
|
display: flex;
|
|
23
23
|
align-items: center;
|
|
24
24
|
gap: 6px;
|
|
@@ -26,12 +26,10 @@ export const styles = css `
|
|
|
26
26
|
border-bottom: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));
|
|
27
27
|
background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));
|
|
28
28
|
border-radius: 8px 8px 0 0;
|
|
29
|
-
|
|
30
29
|
width: 100%;
|
|
31
30
|
box-sizing: border-box;
|
|
32
31
|
}
|
|
33
32
|
|
|
34
|
-
|
|
35
33
|
.rte-container .editor {
|
|
36
34
|
min-height: 160px;
|
|
37
35
|
width: 100%;
|
|
@@ -46,7 +44,26 @@ export const styles = css `
|
|
|
46
44
|
border-radius: var(--nile-radius-radius-xl, var(--ng-radius-md));
|
|
47
45
|
}
|
|
48
46
|
|
|
49
|
-
|
|
47
|
+
nile-rich-text-editor[disabled] .rte-container {
|
|
48
|
+
border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));
|
|
49
|
+
cursor: not-allowed !important;
|
|
50
|
+
background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
nile-rich-text-editor[disabled] .rte-container nile-rte-toolbar {
|
|
54
|
+
border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));
|
|
55
|
+
cursor: not-allowed !important;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
nile-rich-text-editor[disabled] .rte-container .editor {
|
|
59
|
+
background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));
|
|
60
|
+
pointer-events: none ;
|
|
61
|
+
user-select: none;
|
|
62
|
+
-webkit-user-select: none;
|
|
63
|
+
border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));
|
|
64
|
+
color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));
|
|
65
|
+
}
|
|
66
|
+
|
|
50
67
|
nile-rte-preview {
|
|
51
68
|
display: block;
|
|
52
69
|
width: 100%;
|
|
@@ -59,7 +76,14 @@ nile-rte-preview {
|
|
|
59
76
|
word-wrap: break-word;
|
|
60
77
|
}
|
|
61
78
|
|
|
62
|
-
|
|
79
|
+
nile-rich-text-editor[disabled] nile-rte-preview {
|
|
80
|
+
background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));
|
|
81
|
+
cursor: not-allowed ;
|
|
82
|
+
border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));
|
|
83
|
+
user-select: none;
|
|
84
|
+
-webkit-user-select: none;
|
|
85
|
+
color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));
|
|
86
|
+
}
|
|
63
87
|
|
|
64
88
|
nile-rte-toolbar-item nile-button::part(base) {
|
|
65
89
|
width: 32px;
|
|
@@ -83,7 +107,6 @@ nile-rte-preview {
|
|
|
83
107
|
background: var(--nile-colors-white-base);
|
|
84
108
|
}
|
|
85
109
|
|
|
86
|
-
|
|
87
110
|
.editor p { margin: 1em 0; }
|
|
88
111
|
.editor h1, .preview h1 {
|
|
89
112
|
font-size: 2em;
|
|
@@ -158,6 +181,8 @@ nile-rte-toolbar-item nile-button[data-active]::part(base):hover {
|
|
|
158
181
|
opacity: 0.7;
|
|
159
182
|
}
|
|
160
183
|
|
|
184
|
+
|
|
185
|
+
|
|
161
186
|
|
|
162
187
|
|
|
163
188
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-rich-text-editor.css.js","sourceRoot":"","sources":["../../../src/nile-rich-text-editor/nile-rich-text-editor.css.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"nile-rich-text-editor.css.js","sourceRoot":"","sources":["../../../src/nile-rich-text-editor/nile-rich-text-editor.css.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4LxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":[" \nimport { css } from 'lit';\n\nexport const styles = css`\n .editor { all: revert; }\n\n nile-rich-text-editor {\n position: relative;\n display: block;\n font-family: inherit;\n }\n\n\n .rte-container {\n width: 100%;\n border: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n border-radius: var(--nile-radius-radius-xl, var(--ng-radius-md));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n box-sizing: border-box;\n }\n\n \n .rte-container nile-rte-toolbar {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px;\n border-bottom: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border-radius: 8px 8px 0 0;\n width: 100%; \n box-sizing: border-box; \n}\n\n .rte-container .editor {\n min-height: 160px;\n width: 100%;\n padding: 12px;\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border-radius: 0 0 8px 8px;\n outline: none;\n tab-size: 4;\n -moz-tab-size: 4;\n word-break: break-word;\n box-sizing: border-box;\n border-radius: var(--nile-radius-radius-xl, var(--ng-radius-md));\n }\n\n nile-rich-text-editor[disabled] .rte-container {\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n cursor: not-allowed !important;\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n }\n\n nile-rich-text-editor[disabled] .rte-container nile-rte-toolbar {\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n cursor: not-allowed !important;\n } \n\n nile-rich-text-editor[disabled] .rte-container .editor {\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n pointer-events: none ;\n user-select: none;\n -webkit-user-select: none;\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n }\n\nnile-rte-preview {\n display: block;\n width: 100%;\n margin-top: 16px; \n padding: 12px;\n border: 1px dashed var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n border-radius: var(--nile-radius-radius-xl, var(--ng-radius-md));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n box-sizing: border-box;\n word-wrap: break-word;\n}\n\n nile-rich-text-editor[disabled] nile-rte-preview {\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n cursor: not-allowed ;\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n user-select: none;\n -webkit-user-select: none;\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n}\n\n nile-rte-toolbar-item nile-button::part(base) {\n width: 32px;\n height: 32px;\n padding: 0px 6px;\n border: none;\n }\n\n nile-rte-toolbar-item > button,\n nile-rte-toolbar button {\n border: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border-radius: var(--nile-radius-radius-lg, var(--ng-radius-md));\n cursor: pointer;\n }\n\n nile-rte-toolbar-item > button nile-icon { pointer-events: none; }\n\n nile-rte-toolbar-item > button.active {\n border-color: #2563eb;\n background: var(--nile-colors-white-base);\n }\n\n .editor p { margin: 1em 0; }\n .editor h1, .preview h1 {\n font-size: 2em;\n margin: 0.67em 0;\n font-weight: bold;\n }\n .editor h2, .preview h2 {\n font-size: 1.5em;\n margin: 0.83em 0;\n font-weight: bold;\n }\n .editor h3 { font-size: 1.17em; }\n .editor h4 { font-size: 1em; }\n .editor h5 { font-size: 0.83em; }\n .editor h6 { font-size: 0.67em; }\n\n\n .editor.single-line {\n min-height: 50px;\n max-height: 50px;\n line-height: 1.2;\n overflow-x: auto;\n white-space: nowrap;\n padding: 0px 12px 0px 12px;\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n nile-rte-preview.single-line {\n min-height: 50px;\n max-height: 50px;\n line-height: 1.2;\n padding: 0px 12px 0px 12px;\n overflow-x: auto;\n white-space: nowrap;\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n nile-rte-divider { \n margin: 0 4px;\n display: inline-block;\n height: 24px;\n width: 1px;\n background: var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n }\n \n .editor ul,\n.editor ol {\n list-style-position: inside; \n padding: 0px;\n}\n\n\n \n \n\n nile-rte-toolbar-item nile-button[data-active]::part(base) {\n background-color: var(--nile-colors-primary-400, var(--ng-componentcolors-utility-blue-400));\n}\n\nnile-rte-toolbar-item nile-button[data-active]::part(base):hover {\n background-color: var(--nile-colors-primary-500, var(--ng-componentcolors-utility-blue-500)); \n}\n\n.editor.empty::before {\n content: attr(data-placeholder);\n color: var(--nile-colors-neutral-500, var(--ng-colors-text-secondary));\n position: absolute;\n font-family: var(var(--nile-font-family-sans-serif), var(--ng-font-family-body));\n pointer-events: none;\n user-select: none;\n padding-top: 16px;\n opacity: 0.7;\n}\n\n\n\n \n\n\n\n`;\n\nexport default [styles];\n"]}
|